From c9c738d6e336e777e69e52d8a66a0226820ab627 Mon Sep 17 00:00:00 2001 From: wintel Date: Fri, 4 Apr 2025 23:35:19 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20#IBYEGX=20=E5=A2=9E=E5=8A=A0URL?= =?UTF-8?q?=E8=A1=A8=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OpenAuth.App/FlowInstance/FlowInstanceApp.cs | 37 +++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs index 6128cb17..67b24f66 100644 --- a/OpenAuth.App/FlowInstance/FlowInstanceApp.cs +++ b/OpenAuth.App/FlowInstance/FlowInstanceApp.cs @@ -2,7 +2,7 @@ * @Author: yubaolee | ahfu~ <954478625@qq.com> * @Date: 2024-12-13 16:55:17 * @Description: 工作流实例表操作 - * @LastEditTime: 2025-03-08 13:59:47 + * @LastEditTime: 2025-04-04 23:30:39 * Copyright (c) 2024 by yubaolee | ahfu~ , All Rights Reserved. */ @@ -70,17 +70,20 @@ namespace OpenAuth.App addFlowInstanceReq.SchemeContent = scheme.SchemeContent; - var form = _formApp.FindSingle(scheme.FrmId); - if (form == null) + FormResp form = null; + if (scheme.FrmType != Define.FORM_TYPE_URL) { - throw new Exception("该流程模板对应的表单已不存在,请重新设计流程"); + form = _formApp.FindSingle(scheme.FrmId); + if (form == null) + { + throw new Exception("该流程模板对应的表单已不存在,请重新设计流程"); + } + addFlowInstanceReq.FrmContentData = form.ContentData; + addFlowInstanceReq.FrmContentParse = form.ContentParse; + addFlowInstanceReq.FrmType = form.FrmType; + addFlowInstanceReq.FrmId = form.Id; } - addFlowInstanceReq.FrmContentData = form.ContentData; - addFlowInstanceReq.FrmContentParse = form.ContentParse; - addFlowInstanceReq.FrmType = form.FrmType; - addFlowInstanceReq.FrmId = form.Id; - var flowInstance = addFlowInstanceReq.MapTo(); //创建运行实例 @@ -119,7 +122,7 @@ namespace OpenAuth.App }); } - if (flowInstance.FrmType == 1) //如果是开发者自定义的表单 + if (flowInstance.FrmType == Define.FORM_TYPE_DEVELOP) //如果是开发者自定义的表单 { var t = Type.GetType("OpenAuth.App." + flowInstance.DbName + "App"); ICustomerForm icf = (ICustomerForm)_serviceProvider.GetService(t); @@ -134,7 +137,7 @@ namespace OpenAuth.App } //如果工作流配置的表单配置有对应的数据库 - if (!string.IsNullOrEmpty(form.DbName)) + if (form != null && !string.IsNullOrEmpty(form.DbName)) { var dbcolumns = _dbExtension.GetDbTableStructure(form.DbName); var json = JsonHelper.Instance.Deserialize(addFlowInstanceReq.FrmData); @@ -339,7 +342,7 @@ namespace OpenAuth.App { var flowInstance = Get(request.FlowInstanceId); var user = _auth.GetCurrentUser().User; - + // 获取运行实例 var wfruntime = new FlowRuntime(flowInstance); @@ -351,7 +354,7 @@ namespace OpenAuth.App // 更新流程实例状态 flowInstance.IsFinish = FlowInstanceStatus.Running; flowInstance.SchemeContent = JsonHelper.Instance.Serialize(wfruntime.ToSchemeObj()); - + SugarClient.Updateable(flowInstance).ExecuteCommand(); // 记录撤销操作 @@ -624,17 +627,17 @@ namespace OpenAuth.App resp.NextNodeDesignateType = runtime.nextNode.setInfo.NodeDesignate; resp.CanWriteFormItemIds = runtime.currentNode.setInfo.CanWriteFormItemIds; } - + var user = _auth.GetCurrentUser(); var query = SugarClient.Queryable() .OrderByDescending(u => u.CreateDate) - .First(u => u.InstanceId == id); + .First(u => u.InstanceId == id); if (query != null) { //最后一个审批人是当前用户,可以撤销 resp.CanUndoVerify = query.CreateUserId == user.User.Id; } - + var approvers = _flowApproverApp.GetApproverIds(new QueryApproverReq { FlowInstanceId = id, @@ -662,7 +665,7 @@ namespace OpenAuth.App FROM `SysUser` WHERE fi.MakerList like concat('%', Id, '%') ) "; //sqlserver的行转列需要特殊处理 - if(SugarClient.CurrentConnectionConfig.DbType == DbType.SqlServer) + if (SugarClient.CurrentConnectionConfig.DbType == DbType.SqlServer) { groupConcatSql = $@" STUFF(( SELECT ',' + Account