Explorar o código

自定义流程接口-流程撤销修复

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

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowApproveListResult.java

@@ -54,10 +54,10 @@ public class FlowApproveListResult implements Serializable {
     @ApiModelProperty(value = "下一级处理人id/当前处理人")
     private String pendApproveUserName;
 
-    @ApiModelProperty(value = "状态,START:已开始,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
+    @ApiModelProperty(value = "状态,START:待审核,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
     private FlowStatusEnum status;
 
-    @ApiModelProperty(value = "状态,START:已开始,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
+    @ApiModelProperty(value = "状态,START:待审核,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
     private String statusStr;
 
     @ApiModelProperty(value = "当前节点")

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowApprove.java

@@ -42,7 +42,7 @@ public class TFFlowApprove extends BaseEntity implements Serializable {
     @JsonSerialize(using = ToStringSerializer.class)
     private Long approveId;
 
-    @ApiModelProperty(value = "状态,START:已开始,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
+    @ApiModelProperty(value = "状态,START:待审核,AUDITING:审核中,REJECT:已驳回,END:已终止,FINISH:已结束")
     private FlowStatusEnum status;
 
     @ApiModelProperty(value = "计划步骤")

+ 10 - 7
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -348,7 +348,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                         rejectLinkMap.remove(userTask.getId());
                         tfFlowApprove.setRejectLink(rejectLinkMap.size() == 0 ? null : JacksonUtil.parseJson(rejectLinkMap));
                     }
-                } else if (approvePass == FlowApprovePassEnum.REJECT) {
+                } else if (approvePass == FlowApprovePassEnum.REJECT || approvePass == FlowApprovePassEnum.CANCEL) {
                     Optional.ofNullable(map.get(SystemConstant.APPROVE_SETUP)).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程驳回节点不能为空"));
                     Integer rejectSetup = Integer.parseInt(map.get(SystemConstant.APPROVE_SETUP).toString());
 
@@ -369,7 +369,8 @@ public class ActivitiServiceImpl implements ActivitiService {
                             tfFlowApprove,
                             tfFlowLog,
                             agginessMap,
-                            gson);
+                            gson,
+                            approvePass);
                 }
                 //获取流程变量
                 this.getAgginess(nextFlowTaskResult,
@@ -520,6 +521,7 @@ public class ActivitiServiceImpl implements ActivitiService {
      * @param tfFlowLog
      * @param agginessMap
      * @param gson
+     * @param approvePass
      */
     protected void approveReject(boolean multiInstance,
                                  Map<String, Object> map,
@@ -529,16 +531,17 @@ public class ActivitiServiceImpl implements ActivitiService {
                                  TFFlowApprove tfFlowApprove,
                                  TFFlowLog tfFlowLog,
                                  Map<String, CustomFlowVarDto> agginessMap,
-                                 Gson gson) {
+                                 Gson gson,
+                                 FlowApprovePassEnum approvePass) {
         if (multiInstance) {
             map.computeIfAbsent(FlowApproveOperationEnum.REJECT.getId() + id, v -> 1);
         }
         map.put(SystemConstant.APPROVE, nextFlowTaskResult.getTaskKey());
         tfFlowApprove.setSetup(nextFlowTaskResult.getSetup());
-        tfFlowApprove.setStatus(FlowStatusEnum.REJECT);
-        tfFlowLog.setApproveOperation(FlowApproveOperationEnum.REJECT);
+        tfFlowApprove.setStatus(FlowStatusEnum.convertToEnum(approvePass.name()));
+        tfFlowLog.setApproveOperation(FlowApproveOperationEnum.convertToEnum(approvePass.name()));
         CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(currFlowTaskResult.getTaskKey())), CustomFlowVarDto.class);
-        if (Objects.nonNull(customFlowVarDto) && customFlowVarDto.getRejectResubmitType() == CustomFlowRejectResubmitTypeEnum.PREV_STEP) {
+        if (approvePass == FlowApprovePassEnum.REJECT && Objects.nonNull(customFlowVarDto) && customFlowVarDto.getRejectResubmitType() == CustomFlowRejectResubmitTypeEnum.PREV_STEP) {
             Map<String, FlowTaskResult> rejectLinkMap = null;
             if (Objects.nonNull(tfFlowApprove.getRejectLink())) {
                 rejectLinkMap = JacksonUtil.readJson(tfFlowApprove.getRejectLink(), Map.class);
@@ -579,7 +582,7 @@ public class ActivitiServiceImpl implements ActivitiService {
             } else {
                 nextFlowTaskResult = this.getNextFlowTaskResult(setupMap, gson, currSetup, nextFlowTaskResult);
             }
-        } else if (approvePass == FlowApprovePassEnum.REJECT) {
+        } else if (approvePass == FlowApprovePassEnum.REJECT || approvePass == FlowApprovePassEnum.CANCEL) {
             nextFlowTaskResult = this.getNextFlowTaskResult(setupMap, gson, currSetup, nextFlowTaskResult);
         }
         Optional.ofNullable(nextFlowTaskResult).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("该节点不能审批通过"));

+ 9 - 15
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -107,9 +107,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Resource
     private ExamDetailService examDetailService;
 
-    @Resource
-    private BasicTemplateService basicTemplateService;
-
     @Resource
     TBTaskService tbTaskService;
 
@@ -146,9 +143,6 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Resource
     RedisUtil redisUtil;
 
-    @Resource
-    TFFlowLogService tfFlowLogService;
-
     @Resource
     SysOrgService sysOrgService;
 
@@ -1053,18 +1047,18 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(task.getFlowId(), task.getSchoolId());
         Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("审核流程进度丢失,不能撤回"));
 
-//        if (!tfFlowApprove.getSetup().equals(FlowApproveSetupEnum.PRIMARY_APPROVE.getSetup())) {
-//            throw ExceptionResultEnum.ERROR.exception("当前审核节点不能撤回");
-//        }
+        if (tfFlowApprove.getSetup().intValue() != 2) {
+            throw ExceptionResultEnum.ERROR.exception("当前审核节点不能撤回");
+        }
 
-        Task flowTask = taskService.createTaskQuery().processInstanceId(String.valueOf(task.getFlowId())).singleResult();
+        List<Task> flowTaskList = taskService.createTaskQuery().processInstanceId(String.valueOf(task.getFlowId())).list();
         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.FLOW_TASK_ID, v -> flowTaskList.get(0).getId());
+        map.computeIfAbsent(SystemConstant.APPROVE_OPERATION, v -> FlowApprovePassEnum.CANCEL);
         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);
+//        map.computeIfAbsent(SystemConstant.APPROVE_CANCEL, v -> FlowApprovePassEnum.CANCEL);
+//        map.computeIfAbsent(SystemConstant.APPROVE_CANCEL_USER, v -> SystemConstant.APPROVE_CANCEL_USER_ID);
         activitiService.taskApprove(map);
         return true;
     }
@@ -1518,7 +1512,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             }
 
             examTask.setId(Objects.isNull(examTask.getId()) ? SystemConstant.getDbUuid() : examTask.getId());
-            examTask.setCardRuleId(basicPrintConfigService.getByExamIdAndCourseCode(examId,courseCode).getCardRuleId());
+            examTask.setCardRuleId(basicPrintConfigService.getByExamIdAndCourseCode(examId, courseCode).getCardRuleId());
             examTask.setPaperNumberId(SystemConstant.getDbUuid());
             examTask.setSchoolId(schoolId);
             examTask.setOrgId(basicCourseService.getOrgIdBySchoolIdAndCourseCode(schoolId, examTask.getCourseCode()));

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

@@ -224,9 +224,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_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";//流程审批意见

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

@@ -56,4 +56,19 @@ public enum FlowApproveOperationEnum {
         }
         return null;
     }
+
+    /**
+     * 状态转换 toEnum
+     *
+     * @param name
+     * @return
+     */
+    public static FlowApproveOperationEnum convertToEnum(String name) {
+        for (FlowApproveOperationEnum e : FlowApproveOperationEnum.values()) {
+            if (Objects.equals(name, e.name())) {
+                return e;
+            }
+        }
+        return null;
+    }
 }

+ 16 - 1
teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/FlowStatusEnum.java

@@ -11,7 +11,7 @@ import java.util.Objects;
  */
 public enum FlowStatusEnum {
 
-    START("已开始"),
+    START("待审核"),
 
     AUDITING("审核中"),
 
@@ -47,4 +47,19 @@ public enum FlowStatusEnum {
         }
         return null;
     }
+
+    /**
+     * 状态转换 toEnum
+     *
+     * @param name
+     * @return
+     */
+    public static FlowStatusEnum convertToEnum(String name) {
+        for (FlowStatusEnum e : FlowStatusEnum.values()) {
+            if (Objects.equals(name, e.name())) {
+                return e;
+            }
+        }
+        return null;
+    }
 }