Explorar o código

广药子流程update 撤销和暂存

wangliang %!s(int64=3) %!d(string=hai) anos
pai
achega
0d9c8bbbf7

+ 20 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -1126,16 +1126,31 @@ public class ActivitiServiceImpl implements ActivitiService {
                                  String remark,
                                  ProcessDefinitionEntity processDefinitionEntity,
                                  Map<String, Object> map) {
-        flowApproveVaild(task, sysUser.getId(), map);
+        FlowApprovePassEnum flowApprovePassEnum = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_CANCEL);
+        Long approveCancelUserId = (Long) map.get(SystemConstant.APPROVE_CANCEL_USER);
+        if (Objects.isNull(approveCancelUserId) || approveCancelUserId.longValue() != SystemConstant.APPROVE_CANCEL_USER_ID.longValue()) {
+            flowApproveVaild(task, sysUser.getId(), map);
+        }
         FlowApprovePassEnum approvePass = (FlowApprovePassEnum) map.get(SystemConstant.APPROVE_OPERATION);
         FlowApproveVariableEnum approve = approvePass == FlowApprovePassEnum.PASS ? FlowApproveVariableEnum.PRIMARY_APPROVE : FlowApproveVariableEnum.PRIMARY_REJECT;
+
         tfFlowLog.setApproveSetup(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup());
-        tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
+        if (Objects.nonNull(flowApprovePassEnum) && flowApprovePassEnum == FlowApprovePassEnum.CANCEL) {
+            tfFlowApproveLog.setPrimaryApproveId(approveCancelUserId);
+        } else {
+            tfFlowApproveLog.setPrimaryApproveId(sysUser.getId());
+        }
         tfFlowApproveLog.setPrimaryApproveRemark(remark);
         if (approve == FlowApproveVariableEnum.PRIMARY_REJECT) {//驳回命题
-            tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
-            tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.REJECT);
-            tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
+            if (Objects.nonNull(flowApprovePassEnum) && flowApprovePassEnum == FlowApprovePassEnum.CANCEL) {
+                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.CANCEL);
+                tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.CANCEL);
+                tfFlowApprove.setStatus(FlowStatusEnum.CANCEL);
+            } else {
+                tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
+                tfFlowApproveLog.setPrimaryApproveOperation(FlowApproveOperationEnum.REJECT);
+                tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
+            }
             tfFlowApprove.setSetup(FlowApproveSetupEnum.SUBMIT.getSetup());
             tfFlowLog.setPendApproveId(String.valueOf(tfFlowApproveLog.getStartId()));
         } else if (approve == FlowApproveVariableEnum.PRIMARY_APPROVE) {//提交

+ 28 - 18
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -965,7 +965,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         // 更新examTask状态status
         ExamTask examTask = this.getById(examTaskDetail.getExamTaskId());
 
-        if (Objects.nonNull(examTask.getFlowId()) && ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType())) {
+        if (ExamStatusEnum.SUBMIT.name().equals(examTaskDetail.getOperateType())) {
             //TODO 加入从前端获取userId
             // 审核一级
             Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(examTask.getFlowId())).singleResult();
@@ -976,22 +976,23 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 map1.computeIfAbsent(SystemConstant.PAPAER_ATTACHMENT_IDS, v -> examTaskDetail.getPaperAttachmentIds());
                 activitiService.taskApprove(map1);
             }
-        } else {
-            Map<String, Object> map = new HashMap<>();
-            map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
-            map.computeIfAbsent(SystemConstant.TEACHING_ROOM_ID, v -> examTask.getTeachingRoomId());
-            ProcessInstance processInstance = activitiService.flowStart(map);
-            examTask.setFlowId(SystemConstant.convertIdToLong(processInstance.getId()));
-
-            List<TExamTaskFlow> tExamTaskFlowList = tExamTaskFlowService.findByExamTaskId(examTask.getId());
-            tExamTaskFlowService.removeByIds(tExamTaskFlowList.stream().map(s -> s.getId()).collect(Collectors.toList()));
-
-            Map<String, Object> map2 = new HashMap<>();
-            map2.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
-            map2.computeIfAbsent(SystemConstant.FLOW_ID, v -> examTask.getFlowId());
-            tExamTaskFlowService.saveOrUpdate(map2);
+        }
+//        else if(ExamStatusEnum.STAGE.name().equals(examTaskDetail.getOperateType())){
+//            Map<String, Object> map = new HashMap<>();
+//            map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
+//            map.computeIfAbsent(SystemConstant.TEACHING_ROOM_ID, v -> examTask.getTeachingRoomId());
+//            ProcessInstance processInstance = activitiService.flowStart(map);
+//            examTask.setFlowId(SystemConstant.convertIdToLong(processInstance.getId()));
+//
+//            List<TExamTaskFlow> tExamTaskFlowList = tExamTaskFlowService.findByExamTaskId(examTask.getId());
+//            tExamTaskFlowService.removeByIds(tExamTaskFlowList.stream().map(s -> s.getId()).collect(Collectors.toList()));
+//
+//            Map<String, Object> map2 = new HashMap<>();
+//            map2.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
+//            map2.computeIfAbsent(SystemConstant.FLOW_ID, v -> examTask.getFlowId());
+//            tExamTaskFlowService.saveOrUpdate(map2);
 
-            //TODO 撤销问题
+        //TODO 撤销问题
 //            Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(examTask.getFlowId())).singleResult();
 //            if (Objects.nonNull(task)) {
 //                Map<String, Object> map1 = new HashMap<>();
@@ -1000,7 +1001,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 //                map1.computeIfAbsent(SystemConstant.PAPAER_ATTACHMENT_IDS, v -> examTaskDetail.getPaperAttachmentIds());
 //                activitiService.taskApprove(map1);
 //            }
-        }
+//        }
 
         UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda()
@@ -1090,7 +1091,16 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 //                .eq(ExamTask::getId, examTask.getId());
 //        this.update(updateWrapper);
 
-        activitiService.flowEnd(String.valueOf(task.getFlowId()));
+        Task flowTask = taskService.createTaskQuery().processInstanceId(String.valueOf(task.getFlowId())).singleResult();
+        Map<String, Object> map = new HashMap<>();
+        map.computeIfAbsent(SystemConstant.FLOW_TASK_ID, v -> flowTask.getId());
+        map.computeIfAbsent(SystemConstant.APPROVE_OPERATION, v -> FlowApprovePassEnum.REJECT);
+        map.computeIfAbsent(SystemConstant.APPROVE_REMARK, v -> FlowApprovePassEnum.CANCEL.getTitle());
+        map.computeIfAbsent(SystemConstant.APPROVE_SETUP, v -> FlowApproveSetupEnum.SUBMIT.getSetup());
+        map.computeIfAbsent(SystemConstant.APPROVE_CANCEL, v -> FlowApprovePassEnum.CANCEL);
+        map.computeIfAbsent(SystemConstant.APPROVE_CANCEL_USER, v -> SystemConstant.APPROVE_CANCEL_USER_ID);
+        activitiService.taskApprove(map);
+//        activitiService.flowEnd(String.valueOf(task.getFlowId()));
 
 //        Map<String, Object> map2 = new HashMap<>();
 //        map2.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());

+ 3 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

@@ -211,6 +211,9 @@ public class SystemConstant {
     public static final String APPROVE_PRESIDENT_USER_IDS = "approvePresidentUserIds";//流程院长审批人列表
     public static final String APPROVE_PRINT_USER_IDS = "approvePrintUserIds";//印刷人员审批人列表
     public static final String APPROVE_OPERATION = "approveOperation";//流程操作
+    public static final String APPROVE_CANCEL = "cancel";//流程撤销操作
+    public static final String APPROVE_CANCEL_USER = "approveCancelUserId";//流程撤销用户id操作
+    public static final Long APPROVE_CANCEL_USER_ID = -1L;//流程撤销用户id操作
     public static final String APPROVE_EXCHANGE_USER_ID = "approveExchangeUserId:";//转审审批人列表
     public static final String FLOW_STATUS = "flowStatus";//流程状态
     public static final String APPROVE_REMARK = "approveRemark";//流程审批意见

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowApproveOperationEnum.java

@@ -19,6 +19,8 @@ public enum FlowApproveOperationEnum {
 
     END("终止"),
 
+    CANCEL("撤销"),
+
     EXCHANGE("转他人审批");
 
     private String title;

+ 3 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowApprovePassEnum.java

@@ -13,7 +13,9 @@ public enum FlowApprovePassEnum {
 
     PASS("通过"),
 
-    REJECT("驳回");
+    REJECT("驳回"),
+
+    CANCEL("撤销");
 
     private String title;
 

+ 2 - 0
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowStatusEnum.java

@@ -17,6 +17,8 @@ public enum FlowStatusEnum {
 
     REJECT("已驳回"),
 
+    CANCEL("已撤回"),
+
     END("已终止"),
 
     FINISH("已结束");