Browse Source

修改作业node传参

车车 4 months ago
parent
commit
6012d7fd1d

+ 12 - 0
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/controller/admin/workdesign/workflowworknode/vo/WorkflowWorkNodeSaveReqVO.java

@@ -40,4 +40,16 @@ public class WorkflowWorkNodeSaveReqVO {
     @Schema(description = "节点设置人员信息")
     private List<WorkflowWorkNodeUserDO> nodeUserDOList;
 
+    @Schema(description = "短信模板CODE")
+    private String smsTemplateCode;
+
+    @Schema(description = "站内信模板CODE")
+    private String messageTemplateCode;
+
+    @Schema(description = "邮件模板CODE")
+    private String emailTemplateCode;
+
+    @Schema(description = "APP通知模板CODE")
+    private String appTemplateCode;
+
 }

+ 23 - 13
yudao-module-iscs/src/main/java/cn/iocoder/yudao/module/iscs/service/workdesign/WorkflowWorkServiceImpl.java

@@ -90,7 +90,7 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
         String code;
         do {
             code = RandomCodeUtil.generateCode();
-            } while (!list(Wrappers.<WorkflowWorkDO>lambdaQuery().eq(WorkflowWorkDO::getOrderNo, code)).isEmpty());
+        } while (!list(Wrappers.<WorkflowWorkDO>lambdaQuery().eq(WorkflowWorkDO::getOrderNo, code)).isEmpty());
         return code;
     }
 
@@ -343,20 +343,30 @@ public class WorkflowWorkServiceImpl extends ServiceImpl<WorkflowWorkMapper, Wor
 
             // 开启后面的节点
             if (StringUtils.isNotBlank(nodeDO.getChildrenUuid())) {
-                // 如果有后续节点,则开启
+                // 如果有后续节点,则开启,但是需要检查后续节点的所有父节点是不是都审核通过,才能开启
                 String[] split = nodeDO.getChildrenUuid().split(",");
                 List<String> list = Arrays.asList(split);
-                workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
-                        .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
-                        .in(WorkflowWorkNodeDO::getUuid, list)
-                        .set(WorkflowWorkNodeDO::getApprovalStatus, "running")
-                        .set(WorkflowWorkNodeDO::getStartTime, now));
-                // 发送消息
-                List<WorkflowWorkNodeDO> list1 = workflowWorkNodeService.list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
-                        .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
-                        .in(WorkflowWorkNodeDO::getUuid, list));
-                for (WorkflowWorkNodeDO workflowWorkNodeDO : list1) {
-                    workflowWorkNodeService.sendMessageToAdmin(workflowWorkNodeDO.getId());
+                for (String uuid : list) {
+                    // 查询子节点的父节点有没有没通过或者没审核的
+                    List<WorkflowWorkNodeDO> childNodeParents = workflowWorkNodeService.list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
+                            .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
+                            .like(WorkflowWorkNodeDO::getChildrenUuid, uuid)
+                            .ne(WorkflowWorkNodeDO::getApprovalStatus, "approved"));
+                    if (childNodeParents.isEmpty()) {
+                        // 如果没有除了通过的其他状态的,就可以开启
+                        workflowWorkNodeService.update(Wrappers.<WorkflowWorkNodeDO>lambdaUpdate()
+                                .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
+                                .eq(WorkflowWorkNodeDO::getUuid, uuid)
+                                .set(WorkflowWorkNodeDO::getApprovalStatus, "running")
+                                .set(WorkflowWorkNodeDO::getStartTime, now));
+                        // 开启后,发送消息
+                        List<WorkflowWorkNodeDO> list1 = workflowWorkNodeService.list(Wrappers.<WorkflowWorkNodeDO>lambdaQuery()
+                                .eq(WorkflowWorkNodeDO::getWorkId, nodeDO.getWorkId())
+                                .eq(WorkflowWorkNodeDO::getUuid, uuid));
+                        for (WorkflowWorkNodeDO workflowWorkNodeDO : list1) {
+                            workflowWorkNodeService.sendMessageToAdmin(workflowWorkNodeDO.getId());
+                        }
+                    }
                 }
             } else {
                 // 如果没有后续节点,看下是否完成整个流程