diff --git a/OpenAuth.App/workflow/WorkflowEngineApp.cs b/OpenAuth.App/workflow/WorkflowEngineApp.cs index 4160e42..1429ce2 100644 --- a/OpenAuth.App/workflow/WorkflowEngineApp.cs +++ b/OpenAuth.App/workflow/WorkflowEngineApp.cs @@ -19,18 +19,6 @@ public class WorkflowEngineApp : SqlSugarBaseApp _auditDeptRoleIds = new() - { - 1, // 政策法规科 - 2, // 详细规划科 - 3, // 空间规划科 - 4, // 开发利用科 - 5 // 工程科 - }; - - // 配置:执法监督科角色ID(需与sys_role表对应,自行修改为实际值) - private const long _supervisionDeptRoleId = 6; public WorkflowEngineApp(ISugarUnitOfWork unitWork, ISimpleClient repository, IAuth auth, BusinessNoGenerator businessNoGenerator) : base(unitWork, repository, auth) @@ -199,47 +187,41 @@ public class WorkflowEngineApp : SqlSugarBaseApp((w, i) => new JoinQueryInfos( - JoinType.Inner, w.InstanceId == i.InstanceId)) - .Where((w, i) => (w.HandlerId == userId || (w.Status == "Draft" && _auditDeptRoleIds.Contains(w.NodeId))) - && i.Status != "Completed") + var unfinishedInstanceIds = _sqlSugar + .Queryable((w, i) + => new JoinQueryInfos(JoinType.Inner, w.InstanceId == i.InstanceId)) + .Where((w, i) + => (w.HandlerId == userId || w.Status == "Draft") + && i.Status != "Completed") .Select((w, i) => i.InstanceId) .Distinct() .ToList(); @@ -556,7 +540,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp((w, i) => new JoinQueryInfos( JoinType.Inner, w.InstanceId == i.InstanceId)) - .Where((w, i) => (w.HandlerId == userId || (w.Status == "Draft" && _auditDeptRoleIds.Contains(w.NodeId))) + .Where((w, i) => (w.HandlerId == userId || w.Status == "Draft") && i.Status == "Completed") .Select((w, i) => i.InstanceId) .Distinct() @@ -732,10 +716,7 @@ public class WorkflowEngineApp : SqlSugarBaseApp() + .Where(a => a.InstanceId == instanceId) + .Count(); + return auditsCount == 5; + } + /// /// 处理汇总节点(归档/退回区县) /// @@ -855,12 +845,12 @@ public class WorkflowEngineApp : SqlSugarBaseApp /// 为审核科创建工作项 /// - private void CreateAuditDeptWorkitem(long instanceId, ZyFlowNode parallelNode, long roleId) + private void CreateAuditDeptWorkitem(long instanceId, ZyFlowNode parallelNode) { // 获取科室用户信息 - var userInfo = GetRoleFirstUserInfo(roleId); + var userInfo = GetRoleFirstUserInfo(parallelNode.RoleId); if (userInfo.userId <= 0 || string.IsNullOrEmpty(userInfo.userName)) - throw new Exception($"审核科角色【{roleId}】未配置有效用户"); + throw new Exception($"审核科角色【{parallelNode.RoleId}】未配置有效用户"); // 创建工作项 var workitem = new ZyFlowWorkitem @@ -929,18 +919,6 @@ public class WorkflowEngineApp : SqlSugarBaseApp - /// 判断所有审核科是否完成会签 - /// - private bool IsAllAuditCompleted(long instanceId) - { - var auditResults = _sqlSugar.Queryable() - .Where(a => a.InstanceId == instanceId) - .ToList(); - - // 条件:会签记录数=5个审核科 且 无待审核状态 - return auditResults.Count == _auditDeptRoleIds.Count && !auditResults.Any(a => a.AuditResult == "Pending"); - } /// /// 获取用户所属科室名称