فهرست منبع

广药子流程find修改

wangliang 3 سال پیش
والد
کامیت
198664fd82
39فایلهای تغییر یافته به همراه402 افزوده شده و 126 حذف شده
  1. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/DirectorApproveByJxzyyListener.java
  2. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/DirectorApproveListener.java
  3. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/PresidentApproveListener.java
  4. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/PrintApproveSubListener.java
  5. 10 24
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/StartApproveSubListener.java
  6. 5 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowTaskApprovePeopleAllResult.java
  7. 4 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTask.java
  8. 85 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TExamTaskFlow.java
  9. 5 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowApprove.java
  10. 5 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowApproveLog.java
  11. 6 5
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowLog.java
  12. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java
  13. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskReviewLogMapper.java
  14. 16 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TExamTaskFlowMapper.java
  15. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TFFlowApproveMapper.java
  16. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TFFlowMapper.java
  17. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ActivitiService.java
  18. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskReviewLogService.java
  19. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java
  20. 33 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TExamTaskFlowService.java
  21. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TFFlowApproveService.java
  22. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TFFlowService.java
  23. 22 24
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java
  24. 7 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  25. 2 2
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskReviewLogServiceImpl.java
  26. 41 12
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  27. 86 0
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TExamTaskFlowServiceImpl.java
  28. 1 4
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFFlowApproveServiceImpl.java
  29. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFFlowServiceImpl.java
  30. 14 5
      distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml
  31. 10 2
      distributed-print-business/src/main/resources/mapper/ExamTaskReviewLogMapper.xml
  32. 5 0
      distributed-print-business/src/main/resources/mapper/TExamTaskFlowMapper.xml
  33. 5 1
      distributed-print-business/src/main/resources/mapper/TFFlowApproveLogMapper.xml
  34. 7 1
      distributed-print-business/src/main/resources/mapper/TFFlowApproveMapper.xml
  35. 4 1
      distributed-print-business/src/main/resources/mapper/TFFlowLogMapper.xml
  36. 4 1
      distributed-print-business/src/main/resources/mapper/TFFlowMapper.xml
  37. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java
  38. 5 8
      distributed-print/src/main/java/com/qmth/distributed/print/api/TFFlowController.java
  39. 3 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/DirectorApproveByJxzyyListener.java

@@ -48,7 +48,7 @@ public class DirectorApproveByJxzyyListener implements TaskListener {
         BasicMessageService basicMessageService = SpringContextHolder.getBean(BasicMessageService.class);
         TFFlowApproveService tfFlowApproveService = SpringContextHolder.getBean(TFFlowApproveService.class);
         List<Long> approveUserIds = (List<Long>) delegateTask.getVariable(SystemConstant.APPROVE_DIRECTOR_USER_IDS);
-        String flowId = delegateTask.getProcessInstanceId();
+        Long flowId = SystemConstant.convertIdToLong(delegateTask.getProcessInstanceId());
         ExamTask examTask = examTaskService.findByFlowId(flowId);
         List<ApproveUserResult> sysUserList = null;
         if (Objects.nonNull(approveUserIds) && approveUserIds.size() > 0) {

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/DirectorApproveListener.java

@@ -47,7 +47,7 @@ public class DirectorApproveListener implements TaskListener {
         BasicMessageService basicMessageService = SpringContextHolder.getBean(BasicMessageService.class);
         TFFlowApproveService tfFlowApproveService = SpringContextHolder.getBean(TFFlowApproveService.class);
         List<Long> approveUserIds = (List<Long>) delegateTask.getVariable(SystemConstant.APPROVE_DIRECTOR_USER_IDS);
-        String flowId = delegateTask.getProcessInstanceId();
+        Long flowId = SystemConstant.convertIdToLong(delegateTask.getProcessInstanceId());
         ExamTask examTask = examTaskService.findByFlowId(flowId);
         List<ApproveUserResult> sysUserList = null;
         if (Objects.nonNull(approveUserIds) && approveUserIds.size() > 0) {

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/PresidentApproveListener.java

@@ -50,7 +50,7 @@ public class PresidentApproveListener implements TaskListener {
         BasicMessageService basicMessageService = SpringContextHolder.getBean(BasicMessageService.class);
         TFFlowApproveService tfFlowApproveService = SpringContextHolder.getBean(TFFlowApproveService.class);
         List<Long> approveUserIds = (List<Long>) delegateTask.getVariable(SystemConstant.APPROVE_PRESIDENT_USER_IDS);
-        String flowId = delegateTask.getProcessInstanceId();
+        Long flowId = SystemConstant.convertIdToLong(delegateTask.getProcessInstanceId());
         ExamTask examTask = examTaskService.findByFlowId(flowId);
         List<ApproveUserResult> sysUserList = null;
         if (Objects.nonNull(approveUserIds) && approveUserIds.size() > 0) {

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/PrintApproveSubListener.java

@@ -52,7 +52,7 @@ public class PrintApproveSubListener implements TaskListener {
         ActivitiService activitiService = SpringContextHolder.getBean(ActivitiService.class);
 
         List<Long> approveUserIds = (List<Long>) delegateTask.getVariable(SystemConstant.APPROVE_PRINT_USER_IDS);
-        String flowId = delegateTask.getProcessInstanceId();
+        Long flowId = SystemConstant.convertIdToLong(delegateTask.getProcessInstanceId());
         ExamTask examTask = examTaskService.findByFlowId(flowId);
         List<ApproveUserResult> sysUserList = null;
         if (Objects.nonNull(approveUserIds) && approveUserIds.size() > 0) {

+ 10 - 24
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/StartApproveSubListener.java

@@ -4,18 +4,18 @@ import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.TFFlowApprove;
 import com.qmth.distributed.print.business.entity.TFFlowApproveLog;
 import com.qmth.distributed.print.business.entity.TFFlowLog;
-import com.qmth.distributed.print.business.service.ExamTaskService;
-import com.qmth.distributed.print.business.service.TFFlowApproveLogService;
-import com.qmth.distributed.print.business.service.TFFlowApproveService;
-import com.qmth.distributed.print.business.service.TFFlowLogService;
+import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
+import com.qmth.teachcloud.common.contant.SystemConstant;
 import org.activiti.engine.delegate.DelegateExecution;
 import org.activiti.engine.delegate.ExecutionListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 import java.util.StringJoiner;
 
 /**
@@ -32,25 +32,11 @@ public class StartApproveSubListener implements ExecutionListener {
     @Transactional
     public void notify(DelegateExecution delegateExecution) {
         ExamTaskService examTaskService = SpringContextHolder.getBean(ExamTaskService.class);
-        TFFlowApproveService tfFlowApproveService = SpringContextHolder.getBean(TFFlowApproveService.class);
-        TFFlowApproveLogService tfFlowApproveLogService = SpringContextHolder.getBean(TFFlowApproveLogService.class);
-        TFFlowLogService tfFlowLogService = SpringContextHolder.getBean(TFFlowLogService.class);
-
-        TFFlowApprove flowApprove = tfFlowApproveService.findByFlowId(delegateExecution.getRootProcessInstanceId());
-        TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.findByFlowId(delegateExecution.getRootProcessInstanceId());
-        List<TFFlowLog> tfFlowLogList = tfFlowLogService.findByFlowId(delegateExecution.getRootProcessInstanceId());
-        ExamTask examTask = examTaskService.findByFlowId(delegateExecution.getRootProcessInstanceId());
-        String flowIds = new StringJoiner("").add(examTask.getFlowId()).add(",").add(delegateExecution.getProcessInstanceId()).toString();
-        examTask.setFlowId(flowIds);
-        examTaskService.updateById(examTask);
-
-        flowApprove.setFlowId(flowIds);
-        tfFlowApproveService.updateById(flowApprove);
-
-        tfFlowApproveLog.setFlowId(flowIds);
-        tfFlowApproveLogService.updateById(tfFlowApproveLog);
-
-        tfFlowLogList.forEach(s -> s.setFlowId(flowIds));
-        tfFlowLogService.updateBatchById(tfFlowLogList);
+        TExamTaskFlowService tExamTaskFlowService = SpringContextHolder.getBean(TExamTaskFlowService.class);
+        ExamTask examTask = examTaskService.findByFlowId(SystemConstant.convertIdToLong(delegateExecution.getRootProcessInstanceId()));
+        Map<String, Object> map = new HashMap<>();
+        map.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
+        map.computeIfAbsent(SystemConstant.FLOW_ID, v -> SystemConstant.convertIdToLong(delegateExecution.getProcessInstanceId()));
+        tExamTaskFlowService.saveOrUpdate(map);
     }
 }

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/result/FlowTaskApprovePeopleAllResult.java

@@ -17,7 +17,8 @@ import java.util.List;
 public class FlowTaskApprovePeopleAllResult implements Serializable {
 
     @ApiModelProperty(value = "流程id")
-    private String flowId;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
 
     @ApiModelProperty(value = "流程审批人列表")
     private List<FlowTaskApprovePeopleResult> approveUserList;
@@ -26,7 +27,7 @@ public class FlowTaskApprovePeopleAllResult implements Serializable {
 
     }
 
-    public FlowTaskApprovePeopleAllResult(String flowId) {
+    public FlowTaskApprovePeopleAllResult(Long flowId) {
         this.flowId = flowId;
     }
 
@@ -34,11 +35,11 @@ public class FlowTaskApprovePeopleAllResult implements Serializable {
         this.approveUserList = approveUserList;
     }
 
-    public String getFlowId() {
+    public Long getFlowId() {
         return flowId;
     }
 
-    public void setFlowId(String flowId) {
+    public void setFlowId(Long flowId) {
         this.flowId = flowId;
     }
 

+ 4 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/ExamTask.java

@@ -116,19 +116,20 @@ public class ExamTask extends BaseEntity implements Serializable {
     private List<Map<String, String>> users;
 
     @ApiModelProperty(value = "流程id")
+    @JsonSerialize(using = ToStringSerializer.class)
     @TableField(value = "flow_id", updateStrategy = FieldStrategy.IGNORED)
-    private String flowId;
+    private Long flowId;
 
     @ApiModelProperty(value = "命题任务审批表记录")
     @JsonSerialize(using = ToStringSerializer.class)
     @TableField(value = "approve_form_attachment_id")
     private Long approveFormAttachmentId;
 
-    public String getFlowId() {
+    public Long getFlowId() {
         return flowId;
     }
 
-    public void setFlowId(String flowId) {
+    public void setFlowId(Long flowId) {
         this.flowId = flowId;
     }
 

+ 85 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TExamTaskFlow.java

@@ -0,0 +1,85 @@
+package com.qmth.distributed.print.business.entity;
+
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 考试任务和流程关联表
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-11-22
+ */
+@ApiModel(value = "TExamTaskFlow对象", description = "考试任务和流程关联表")
+public class TExamTaskFlow implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty(value = "主键")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    @ApiModelProperty(value = "考试任务id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long examTaskId;
+
+    @ApiModelProperty(value = "流程id")
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
+
+    @ApiModelProperty(value = "流程等级")
+    private Integer level;
+
+    public TExamTaskFlow() {
+
+    }
+
+    public TExamTaskFlow(Long examTaskId, Long flowId, Integer level) {
+        setId(SystemConstant.getDbUuid());
+        this.examTaskId = examTaskId;
+        this.flowId = flowId;
+        this.level = level;
+    }
+
+    public static long getSerialVersionUID() {
+        return serialVersionUID;
+    }
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getExamTaskId() {
+        return examTaskId;
+    }
+
+    public void setExamTaskId(Long examTaskId) {
+        this.examTaskId = examTaskId;
+    }
+
+    public Long getFlowId() {
+        return flowId;
+    }
+
+    public void setFlowId(Long flowId) {
+        this.flowId = flowId;
+    }
+
+    public Integer getLevel() {
+        return level;
+    }
+
+    public void setLevel(Integer level) {
+        this.level = level;
+    }
+}

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

@@ -37,7 +37,8 @@ public class TFFlowApprove extends BaseEntity implements Serializable {
     private Long orgId;
 
     @ApiModelProperty(value = "流程id")
-    private String flowId;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
 
     @ApiModelProperty(value = "审核人id")
     @JsonSerialize(using = ToStringSerializer.class)
@@ -56,7 +57,7 @@ public class TFFlowApprove extends BaseEntity implements Serializable {
 
     }
 
-    public TFFlowApprove(Long schoolId, Long orgId, String flowId, Long approveId, FlowStatusEnum status, Long userId, FlowModelEnum model) {
+    public TFFlowApprove(Long schoolId, Long orgId, Long flowId, Long approveId, FlowStatusEnum status, Long userId, FlowModelEnum model) {
         setId(SystemConstant.getDbUuid());
         this.schoolId = schoolId;
         this.orgId = orgId;
@@ -112,11 +113,11 @@ public class TFFlowApprove extends BaseEntity implements Serializable {
         return serialVersionUID;
     }
 
-    public String getFlowId() {
+    public Long getFlowId() {
         return flowId;
     }
 
-    public void setFlowId(String flowId) {
+    public void setFlowId(Long flowId) {
         this.flowId = flowId;
     }
 

+ 5 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowApproveLog.java

@@ -35,7 +35,8 @@ public class TFFlowApproveLog extends BaseEntity implements Serializable {
     private Long orgId;
 
     @ApiModelProperty(value = "流程id")
-    private String flowId;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
 
     @ApiModelProperty(value = "命题任务id")
     @JsonSerialize(using = ToStringSerializer.class)
@@ -92,7 +93,7 @@ public class TFFlowApproveLog extends BaseEntity implements Serializable {
 
     }
 
-    public TFFlowApproveLog(Long schoolId, Long orgId, String flowId, Long taskId, Long startId, Long userId) {
+    public TFFlowApproveLog(Long schoolId, Long orgId, Long flowId, Long taskId, Long startId, Long userId) {
         setId(SystemConstant.getDbUuid());
         this.schoolId = schoolId;
         this.orgId = orgId;
@@ -170,11 +171,11 @@ public class TFFlowApproveLog extends BaseEntity implements Serializable {
         return serialVersionUID;
     }
 
-    public String getFlowId() {
+    public Long getFlowId() {
         return flowId;
     }
 
-    public void setFlowId(String flowId) {
+    public void setFlowId(Long flowId) {
         this.flowId = flowId;
     }
 

+ 6 - 5
distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFFlowLog.java

@@ -35,7 +35,8 @@ public class TFFlowLog extends BaseEntity implements Serializable {
     private Long orgId;
 
     @ApiModelProperty(value = "流程id")
-    private String flowId;
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long flowId;
 
     @ApiModelProperty(value = "任务id")
     @JsonSerialize(using = ToStringSerializer.class)
@@ -61,7 +62,7 @@ public class TFFlowLog extends BaseEntity implements Serializable {
 
     }
 
-    public TFFlowLog(Long schoolId, Long orgId, String flowId, Long taskId, Long approveId, Long userId, String approveRemark) {
+    public TFFlowLog(Long schoolId, Long orgId, Long flowId, Long taskId, Long approveId, Long userId, String approveRemark) {
         setId(SystemConstant.getDbUuid());
         this.schoolId = schoolId;
         this.orgId = orgId;
@@ -72,7 +73,7 @@ public class TFFlowLog extends BaseEntity implements Serializable {
         insertInfo(userId);
     }
 
-    public TFFlowLog(Long schoolId, Long orgId, String flowId, Long taskId, Long userId, String approveRemark, FlowApproveOperationEnum approveOperation) {
+    public TFFlowLog(Long schoolId, Long orgId, Long flowId, Long taskId, Long userId, String approveRemark, FlowApproveOperationEnum approveOperation) {
         setId(SystemConstant.getDbUuid());
         this.schoolId = schoolId;
         this.orgId = orgId;
@@ -111,11 +112,11 @@ public class TFFlowLog extends BaseEntity implements Serializable {
         return serialVersionUID;
     }
 
-    public String getFlowId() {
+    public Long getFlowId() {
         return flowId;
     }
 
-    public void setFlowId(String flowId) {
+    public void setFlowId(Long flowId) {
         this.flowId = flowId;
     }
 

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskMapper.java

@@ -139,7 +139,7 @@ public interface ExamTaskMapper extends BaseMapper<ExamTask> {
      */
     List<ExamPackageDetail> findExamPackageDetailByPaperNumber(@Param("schoolId") Long schoolId, @Param("courseCode") String courseCode, @Param("paperNumber") String paperNumber, @Param("printPlanStatusEnumList") List<PrintPlanStatusEnum> printPlanStatusEnumList);
 
-    ExamTask findByFlowId(@Param("flowId") String flowId);
+    ExamTask findByFlowId(@Param("flowId") Long flowId);
 
     /**
      * 获取ProcessDefinitionId

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/ExamTaskReviewLogMapper.java

@@ -18,7 +18,7 @@ import java.util.List;
  */
 public interface ExamTaskReviewLogMapper extends BaseMapper<ExamTaskReviewLog> {
 
-    List<ReviewLogDto> list(@Param("flowId") String flowId);
+    List<ReviewLogDto> list(@Param("flowId") Long flowId);
 
-    ApprovalInfo findOnePassBySetUp(@Param("flowId") String flowId, @Param("setup") int setup);
+    ApprovalInfo findOnePassBySetUp(@Param("flowId") Long flowId, @Param("setup") int setup);
 }

+ 16 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TExamTaskFlowMapper.java

@@ -0,0 +1,16 @@
+package com.qmth.distributed.print.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.qmth.distributed.print.business.entity.TExamTaskFlow;
+
+/**
+ * <p>
+ * 考试任务和流程关联表 Mapper 接口
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-11-22
+ */
+public interface TExamTaskFlowMapper extends BaseMapper<TExamTaskFlow> {
+
+}

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TFFlowApproveMapper.java

@@ -20,5 +20,5 @@ public interface TFFlowApproveMapper extends BaseMapper<TFFlowApprove> {
      * @param flowId
      * @return
      */
-    TFFlowApprove findByFlowId(@Param("flowId") String flowId);
+    TFFlowApprove findByFlowId(@Param("flowId") Long flowId);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/mapper/TFFlowMapper.java

@@ -39,7 +39,7 @@ public interface TFFlowMapper extends BaseMapper<TFFlow> {
      * @param flowId
      * @return
      */
-    IPage<FlowApproveResult> flowApproveList(IPage<Map> iPage, @Param("startName") String startName, @Param("schoolId") Long schoolId, @Param("orgId") Long orgId, @Param("flowId") String flowId);
+    IPage<FlowApproveResult> flowApproveList(IPage<Map> iPage, @Param("startName") String startName, @Param("schoolId") Long schoolId, @Param("orgId") Long orgId, @Param("flowId") Long flowId);
 
     /**
      * 根据key查找id

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ActivitiService.java

@@ -120,5 +120,5 @@ public interface ActivitiService {
      * @param flowId
      * @return
      */
-    public List<ApproveUserResult> findByPrintApprove(String flowId);
+    public List<ApproveUserResult> findByPrintApprove(Long flowId);
 }

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskReviewLogService.java

@@ -17,7 +17,7 @@ import java.util.List;
  */
 public interface ExamTaskReviewLogService extends IService<ExamTaskReviewLog> {
 
-    List<ReviewLogDto> list(String flowId);
+    List<ReviewLogDto> list(Long flowId);
 
-    ApprovalInfo findOnePassBySetUp(String flowId, int setup);
+    ApprovalInfo findOnePassBySetUp(Long flowId, int setup);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ExamTaskService.java

@@ -240,7 +240,7 @@ public interface ExamTaskService extends IService<ExamTask> {
      * @param flowId
      * @return
      */
-    public ExamTask findByFlowId(String flowId);
+    public ExamTask findByFlowId(Long flowId);
 
     /**
      * 获取ProcessDefinitionId

+ 33 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TExamTaskFlowService.java

@@ -0,0 +1,33 @@
+package com.qmth.distributed.print.business.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.qmth.distributed.print.business.entity.TExamTaskFlow;
+
+import java.util.Map;
+
+/**
+ * <p>
+ * 考试任务和流程关联表 服务类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-11-22
+ */
+public interface TExamTaskFlowService extends IService<TExamTaskFlow> {
+
+    /**
+     * 保存或更新TExamTaskFlow
+     *
+     * @param map
+     */
+    public boolean saveOrUpdate(Map<String, Object> map);
+
+    /**
+     * 根据考试任务id和流程level查找
+     *
+     * @param examTaskId
+     * @param level
+     * @return
+     */
+    public TExamTaskFlow findByFlowLevel(Long examTaskId, Integer level);
+}

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TFFlowApproveService.java

@@ -19,5 +19,5 @@ public interface TFFlowApproveService extends IService<TFFlowApprove> {
      * @param flowId
      * @return
      */
-    TFFlowApprove findByFlowId(String flowId);
+    TFFlowApprove findByFlowId(Long flowId);
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TFFlowService.java

@@ -38,7 +38,7 @@ public interface TFFlowService extends IService<TFFlow> {
      * @param flowId
      * @return
      */
-    public IPage<FlowApproveResult> flowApproveList(IPage<Map> iPage, String startName, Long schoolId, Long orgId, String flowId);
+    public IPage<FlowApproveResult> flowApproveList(IPage<Map> iPage, String startName, Long schoolId, Long orgId, Long flowId);
 
     /**
      * 根据key查找流程

+ 22 - 24
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -186,11 +186,11 @@ public class ActivitiServiceImpl implements ActivitiService {
             SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
             runtimeService.deleteProcessInstance(flowId, FlowApproveSetupEnum.END.getTitle());
             //流程审批
-            TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowId);
+            TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(SystemConstant.convertIdToLong(flowId));
             if (Objects.isNull(tfFlowApprove)) {
-                ExamTask examTask = examTaskService.findByFlowId(flowId);
+                ExamTask examTask = examTaskService.findByFlowId(SystemConstant.convertIdToLong(flowId));
                 int count = sysUserService.countByTeachingRoomId(examTask.getTeachingRoomId());
-                tfFlowApprove = new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), flowId, sysUser.getId(), FlowStatusEnum.END, sysUser.getId(), count == 0 ? FlowModelEnum.CHOOSE : FlowModelEnum.SYSTEM);
+                tfFlowApprove = new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), sysUser.getId(), FlowStatusEnum.END, sysUser.getId(), count == 0 ? FlowModelEnum.CHOOSE : FlowModelEnum.SYSTEM);
             } else {
                 tfFlowApprove.setStatus(FlowStatusEnum.END);
                 tfFlowApprove.setSetup(FlowApproveSetupEnum.END.getSetup());
@@ -199,7 +199,7 @@ public class ActivitiServiceImpl implements ActivitiService {
             tfFlowApproveService.saveOrUpdate(tfFlowApprove);
 
             //流程流水日志
-            ExamTask examTask = examTaskService.findByFlowId(flowId);
+            ExamTask examTask = examTaskService.findByFlowId(SystemConstant.convertIdToLong(flowId));
             TFFlowLog tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), examTask.getFlowId(), examTask.getId(), sysUser.getId(), sysUser.getId(), FlowApproveSetupEnum.END.getTitle());
             tfFlowLog.setApproveOperation(FlowApproveOperationEnum.END);
             tfFlowLog.setApproveSetup(FlowApproveSetupEnum.END.getSetup());
@@ -217,7 +217,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                     //流程审批记录
                     TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.findByFlowId(flowId);
                     if (Objects.isNull(tfFlowApproveLog)) {
-                        tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), flowId, examTask.getId(), sysUser.getId(), sysUser.getId());
+                        tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), examTask.getId(), sysUser.getId(), sysUser.getId());
                     }
                     FlowApproveSetupEnum setupEnum = FlowApproveSetupEnum.convertToInstance(userTask.getId());
                     //广东医科大学流程
@@ -282,7 +282,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         Long approveId = Objects.nonNull(map.get(SystemConstant.APPROVE_ID)) ? Long.parseLong(String.valueOf(map.get(SystemConstant.APPROVE_ID))) : null;
         Long teachingRoomId = Objects.nonNull(map.get(SystemConstant.TEACHING_ROOM_ID)) ? (Long) map.get(SystemConstant.TEACHING_ROOM_ID) : null;
         int count = sysUserService.countByTeachingRoomId(teachingRoomId);
-        tfFlowApproveService.save(new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), flowId, approveId, flowStatusEnum, sysUser.getId(), count == 0 ? FlowModelEnum.CHOOSE : FlowModelEnum.SYSTEM));
+        tfFlowApproveService.save(new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), approveId, flowStatusEnum, sysUser.getId(), count == 0 ? FlowModelEnum.CHOOSE : FlowModelEnum.SYSTEM));
     }
 
     /**
@@ -305,7 +305,7 @@ public class ActivitiServiceImpl implements ActivitiService {
             Task task = taskService.createTaskQuery().taskId(flowTaskId).singleResult();
             Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
             String processInstanceId = task.getProcessInstanceId();
-            ExamTask examTask = examTaskService.findByFlowId(processInstanceId);
+            ExamTask examTask = examTaskService.findByFlowId(SystemConstant.convertIdToLong(processInstanceId));
 
             String processDefinitionId = historyService.createHistoricProcessInstanceQuery().processInstanceId(processInstanceId).singleResult().getProcessDefinitionId();
             ProcessDefinitionEntity processDefinitionEntity = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(processDefinitionId);
@@ -315,7 +315,7 @@ public class ActivitiServiceImpl implements ActivitiService {
             FlowNode currFlow = (FlowNode) bpmnModel.getMainProcess().getFlowElement(currActivityId);
 
             //流程审批
-            TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(processInstanceId);
+            TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(SystemConstant.convertIdToLong(processInstanceId));
 
             //流程审批记录
             TFFlowApproveLog tfFlowApproveLog = tfFlowApproveLogService.findByFlowId(processInstanceId);
@@ -326,10 +326,10 @@ public class ActivitiServiceImpl implements ActivitiService {
                 UserTask userTask = (UserTask) currFlow;
                 String remark = Objects.nonNull(map.get(SystemConstant.APPROVE_REMARK)) ? map.get(SystemConstant.APPROVE_REMARK).toString() : null;
                 //流程流水日志
-                tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), examTask.getFlowId(), examTask.getId(), sysUser.getId(), sysUser.getId(), remark);
+                tfFlowLog = new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId(), remark);
                 FlowApproveSetupEnum setupEnum = FlowApproveSetupEnum.convertToInstance(userTask.getId());
                 if (Objects.isNull(tfFlowApproveLog)) {
-                    tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), processInstanceId, examTask.getId(), sysUser.getId(), sysUser.getId());
+                    tfFlowApproveLog = new TFFlowApproveLog(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(processInstanceId), examTask.getId(), sysUser.getId(), sysUser.getId());
                 }
                 //广东医科大学流程
                 if (Objects.nonNull(processDefinitionEntity) && (processDefinitionEntity.getKey().contains(SystemConstant.GDYKDX_FLOW_KEY)
@@ -467,7 +467,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         if (Objects.nonNull(taskId) && !Objects.equals(taskId, "")) {//说明从已审核的节点开始捞人
             Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
             Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
-            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(task.getProcessInstanceId());
+            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
             flowTaskApprovePeopleResultList = new LinkedList();
             //获取当前流程节点
             TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
@@ -595,7 +595,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                                 //获取命题审批人
                                 flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, approveUserMtResult));
                                 //获取印刷员审批人
-                                List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(task.getProcessInstanceId());
+                                List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
                                 flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
                             }
                         } else {
@@ -625,7 +625,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                         //获取命题审批人
                         flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, approveUserMtResult));
                         //获取印刷员审批人
-                        List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(task.getProcessInstanceId());
+                        List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
                         flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
                     }
                     break;
@@ -640,7 +640,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                     List<ApproveUserResult> sysUserPresidentList = sysUserService.findById(flowApproveResult.getSecondApproveId());
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.SECOND_APPROVE.getSetup(), true, sysUserPresidentList));
                     //获取印刷员审批人
-                    List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(task.getProcessInstanceId());
+                    List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
                     break;
                 case 5:
@@ -693,7 +693,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
         Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
         String flowId = task.getProcessInstanceId();
-        TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowId);
+        TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(SystemConstant.convertIdToLong(flowId));
         Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程状态记录"));
         if (tfFlowApprove.getSetup() <= 0) {
             throw ExceptionResultEnum.ERROR.exception("流程已结束或已终止");
@@ -737,7 +737,7 @@ public class ActivitiServiceImpl implements ActivitiService {
 //            ids.add(Long.parseLong(userId));
 //            taskService.setVariable(taskId, variableName, ids);
 //        }
-        ExamTask examTask = examTaskService.findByFlowId(flowId);
+        ExamTask examTask = examTaskService.findByFlowId(SystemConstant.convertIdToLong(flowId));
 
         //获取当前流程节点
         String currActivityId = task.getTaskDefinitionKey();
@@ -768,7 +768,7 @@ public class ActivitiServiceImpl implements ActivitiService {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
         Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
-        FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(task.getProcessInstanceId());
+        FlowTaskApprovePeopleAllResult flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
         //获取当前流程节点
         TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
         Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程状态记录"));
@@ -842,7 +842,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                 break;
             case 5:
                 //获取印刷员审批人
-                List<ApproveUserResult> approvePrintUserResultList = this.findByPrintApprove(task.getProcessInstanceId());
+                List<ApproveUserResult> approvePrintUserResultList = this.findByPrintApprove(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
                 flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(approvePrintUserResultList));
                 break;
             default:
@@ -867,7 +867,7 @@ public class ActivitiServiceImpl implements ActivitiService {
             Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
             Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
 
-            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(task.getProcessInstanceId());
+            flowTaskApprovePeopleAllResult = new FlowTaskApprovePeopleAllResult(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
             //获取当前流程节点
             TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowTaskApprovePeopleAllResult.getFlowId());
             Optional.ofNullable(tfFlowApprove).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到流程状态记录"));
@@ -911,7 +911,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                     break;
                 case 4:
                     //获取印刷员审批人
-                    approveUserResultList = this.findByPrintApprove(task.getProcessInstanceId());
+                    approveUserResultList = this.findByPrintApprove(SystemConstant.convertIdToLong(task.getProcessInstanceId()));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, approveUserResultList));
                     break;
                 default:
@@ -946,7 +946,7 @@ public class ActivitiServiceImpl implements ActivitiService {
      * @return
      */
     @Override
-    public List<ApproveUserResult> findByPrintApprove(String flowId) {
+    public List<ApproveUserResult> findByPrintApprove(Long flowId) {
         ExamTask examTask = examTaskService.findByFlowId(flowId);
         QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
         examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getSchoolId, examTask.getSchoolId())
@@ -1035,7 +1035,7 @@ public class ActivitiServiceImpl implements ActivitiService {
                 flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.THREE_APPROVE.getSetup(), false, sysUserTeacherList));
                 if (Objects.nonNull(processInstanceId)) {
                     //获取印刷员审批人
-                    List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(processInstanceId);
+                    List<ApproveUserResult> sysUserPrintList = this.findByPrintApprove(SystemConstant.convertIdToLong(processInstanceId));
                     flowTaskApprovePeopleResultList.add(new FlowTaskApprovePeopleResult(FlowApproveSetupEnum.FOUR_APPROVE.getSetup(), false, sysUserPrintList));
                 }
             }
@@ -1239,8 +1239,6 @@ public class ActivitiServiceImpl implements ActivitiService {
                 tfFlowApprove.setStatus(FlowStatusEnum.AUDITING);
                 tfFlowApprove.setSetup(FlowApproveSetupEnum.THREE_APPROVE.getSetup());
                 objectMap.computeIfAbsent(SystemConstant.APPROVE_PRESIDENT_SYSTEM, v -> true);
-                TFFlowLog finalTfFlowLog = tfFlowLog;
-                objectMap.computeIfAbsent(SystemConstant.APPROVE_TF_FLOW_LOG, v -> finalTfFlowLog);
             } else {
                 tfFlowApprove.setStatus(FlowStatusEnum.FINISH);
                 tfFlowApprove.setSetup(FlowApproveSetupEnum.FINISH.getSetup());

+ 7 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -76,9 +76,6 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     @Resource
     TBTaskService tbTaskService;
 
-    @Autowired
-    private ExamTaskPaperLogService examTaskPaperLogService;
-
     @Resource
     TeachcloudCommonService teachcloudCommonService;
 
@@ -94,6 +91,9 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
     @Autowired
     TFFlowApproveService tfFlowApproveService;
 
+    @Resource
+    TExamTaskFlowService tExamTaskFlowService;
+
     @Transactional
     @Override
     public boolean enable(ExamTaskDetail examTaskDetail) {
@@ -377,6 +377,10 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
             UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
             updateWrapper.lambda().set(ExamTask::getFlowId, flowId).eq(ExamTask::getId, examTaskDetail.getExamTaskId());
             examTaskService.update(updateWrapper);
+            Map<String, Object> map2 = new HashMap<>();
+            map2.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
+            map2.computeIfAbsent(SystemConstant.FLOW_ID, v -> flowId);
+            tExamTaskFlowService.saveOrUpdate(map2);
             if (Objects.nonNull(flowId)) {
                 // 审核一级
                 Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(flowId)).singleResult();

+ 2 - 2
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskReviewLogServiceImpl.java

@@ -22,12 +22,12 @@ import java.util.List;
 public class ExamTaskReviewLogServiceImpl extends ServiceImpl<ExamTaskReviewLogMapper, ExamTaskReviewLog> implements ExamTaskReviewLogService {
 
     @Override
-    public List<ReviewLogDto> list(String flowId) {
+    public List<ReviewLogDto> list(Long flowId) {
         return this.baseMapper.list(flowId);
     }
 
     @Override
-    public ApprovalInfo findOnePassBySetUp(String flowId, int setup) {
+    public ApprovalInfo findOnePassBySetUp(Long flowId, int setup) {
         return this.baseMapper.findOnePassBySetUp(flowId,setup);
     }
 }

+ 41 - 12
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -170,6 +170,9 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
     @Autowired
     ExamStudentService examStudentService;
 
+    @Resource
+    TExamTaskFlowService tExamTaskFlowService;
+
     @Override
     public List<ExamTask> listByCourseCode(Long schoolId, String code) {
         QueryWrapper<ExamTask> queryWrapper = new QueryWrapper<>();
@@ -253,7 +256,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         }
 
         ExamStatusEnum examStatusEnum = ExamStatusEnum.DRAFT;
-        String flowId = null;
+        Long flowId = null;
         UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
         ExamTask task = this.getById(examTask.getId());
         // 指派命题老师
@@ -268,7 +271,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
                 map.computeIfAbsent(SystemConstant.TEACHING_ROOM_ID, v -> examTask.getTeachingRoomId());
                 ProcessInstance processInstance = activitiService.flowStart(map);
-                flowId = processInstance.getId();
+                flowId = SystemConstant.convertIdToLong(processInstance.getId());
+                Map<String, Object> map2 = new HashMap<>();
+                map2.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
+                map2.computeIfAbsent(SystemConstant.FLOW_ID, v -> SystemConstant.convertIdToLong(processInstance.getId()));
+                tExamTaskFlowService.saveOrUpdate(map2);
             }
         }
         // 更改命题老师
@@ -287,7 +294,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(examTask.getUserId()));
                     map.computeIfAbsent(SystemConstant.TEACHING_ROOM_ID, v -> examTask.getTeachingRoomId());
                     ProcessInstance processInstance = activitiService.startActivity(SystemConstant.GDYKDX_FLOW_KEY, map);
-                    flowId = processInstance.getId();
+                    flowId = SystemConstant.convertIdToLong(processInstance.getId());
+                    Map<String, Object> map2 = new HashMap<>();
+                    map2.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
+                    map2.computeIfAbsent(SystemConstant.FLOW_ID, v -> SystemConstant.convertIdToLong(processInstance.getId()));
+                    tExamTaskFlowService.saveOrUpdate(map2);
                 } else {
                     flowId = task.getFlowId();
                 }
@@ -413,11 +424,15 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 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(processInstance.getId());
+                examTask.setFlowId(SystemConstant.convertIdToLong(processInstance.getId()));
             } else if (!examTask.getReview()) {
                 examTask.setStatus(ExamStatusEnum.STAGE);
             }
             this.save(examTask);
+            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);
         } catch (Exception e) {
             log.error("请求出错", e);
             if (e instanceof ActivitiObjectNotFoundException) {
@@ -701,7 +716,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 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(processInstance.getId());
+                examTask.setFlowId(SystemConstant.convertIdToLong(processInstance.getId()));
+                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);
                 this.updateById(examTask);
             }
         }
@@ -1024,6 +1043,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         map.computeIfAbsent(SystemConstant.TEACHING_ROOM_ID, v -> task.getTeachingRoomId());
         ProcessInstance processInstance = activitiService.flowStart(map);
 
+        Map<String, Object> map2 = new HashMap<>();
+        map2.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
+        map2.computeIfAbsent(SystemConstant.FLOW_ID, v -> Long.parseLong(processInstance.getId()));
+        tExamTaskFlowService.saveOrUpdate(map2);
+
         UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
         updateWrapper.lambda().set(ExamTask::getStatus, ExamStatusEnum.STAGE)
                 .set(ExamTask::getFlowId, Long.parseLong(processInstance.getId()))
@@ -1482,7 +1506,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     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(processInstance.getId());
+                    examTask.setFlowId(SystemConstant.convertIdToLong(processInstance.getId()));
+                    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);
                 }
             }
             this.saveOrUpdate(examTask);
@@ -1617,7 +1645,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                     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(processInstance.getId());
+                    examTask.setFlowId(SystemConstant.convertIdToLong(processInstance.getId()));
+                    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);
                 }
             }
             this.save(examTask);
@@ -1767,7 +1799,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
 
         // 流程id
-        String flowId = examTask.getFlowId();
+        Long flowId = examTask.getFlowId();
 
         // 3.ApprovalInfo部分
         Boolean review = examTask.getReview();
@@ -1896,10 +1928,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
      * @return
      */
     @Override
-    public ExamTask findByFlowId(String flowId) {
-//        QueryWrapper<ExamTask> examTaskQueryWrapper = new QueryWrapper<>();
-//        examTaskQueryWrapper.lambda().eq(ExamTask::getFlowId, flowId);
-//        return examTaskService.getOne(examTaskQueryWrapper);
+    public ExamTask findByFlowId(Long flowId) {
         ExamTask examTask = examTaskMapper.findByFlowId(flowId);
         Optional.ofNullable(examTask).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("命题计划为空"));
         return examTask;

+ 86 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TExamTaskFlowServiceImpl.java

@@ -0,0 +1,86 @@
+package com.qmth.distributed.print.business.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.qmth.boot.api.exception.ApiException;
+import com.qmth.distributed.print.business.entity.TExamTaskFlow;
+import com.qmth.distributed.print.business.mapper.TExamTaskFlowMapper;
+import com.qmth.distributed.print.business.service.TExamTaskFlowService;
+import com.qmth.teachcloud.common.contant.SystemConstant;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.util.RedisUtil;
+import com.qmth.teachcloud.common.util.ResultUtil;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Map;
+import java.util.Objects;
+
+/**
+ * <p>
+ * 考试任务和流程关联表 服务实现类
+ * </p>
+ *
+ * @author wangliang
+ * @since 2021-11-22
+ */
+@Service
+public class TExamTaskFlowServiceImpl extends ServiceImpl<TExamTaskFlowMapper, TExamTaskFlow> implements TExamTaskFlowService {
+
+    @Resource
+    RedisUtil redisUtil;
+
+    /**
+     * 保存TExamTaskFlow
+     *
+     * @param map
+     */
+    @Override
+    public boolean saveOrUpdate(Map<String, Object> map) {
+        Long examTaskId = (Long) map.get(SystemConstant.EXAM_TASK_ID);
+        Long flowId = (Long) map.get(SystemConstant.FLOW_ID);
+        boolean lock = redisUtil.lock(SystemConstant.REDIS_LOCK_EXAM_TASK_FLOW_PREFIX + flowId, SystemConstant.REDIS_LOCK_EXAM_TASK_FLOW_TIME_OUT);
+        if (!lock) {
+            throw ExceptionResultEnum.ERROR.exception("该流程正在审批中,请稍候再试!");
+        }
+        try {
+            QueryWrapper<TExamTaskFlow> taskFlowQueryWrapper = new QueryWrapper<>();
+            taskFlowQueryWrapper.lambda().eq(TExamTaskFlow::getExamTaskId, examTaskId);
+            TExamTaskFlow tExamTaskFlow = this.getOne(taskFlowQueryWrapper);
+            if (Objects.isNull(tExamTaskFlow)) {
+                tExamTaskFlow = new TExamTaskFlow(examTaskId, flowId, 1);
+                this.save(tExamTaskFlow);
+            } else {
+                Integer level = tExamTaskFlow.getLevel();
+                TExamTaskFlow tExamTaskFlowSub = new TExamTaskFlow(examTaskId, flowId, ++level);
+                this.save(tExamTaskFlowSub);
+            }
+        } catch (Exception e) {
+            log.error("请求出错", e);
+            e.printStackTrace();
+            if (e instanceof ApiException) {
+                ResultUtil.error((ApiException) e, e.getMessage());
+            } else {
+                ResultUtil.error(e.getMessage());
+            }
+        } finally {
+            redisUtil.releaseLock(SystemConstant.REDIS_LOCK_EXAM_TASK_FLOW_PREFIX + flowId);
+        }
+        return true;
+    }
+
+    /**
+     * 根据考试任务id和流程level查找
+     *
+     * @param examTaskId
+     * @param level
+     * @return
+     */
+    @Override
+    public TExamTaskFlow findByFlowLevel(Long examTaskId, Integer level) {
+        QueryWrapper<TExamTaskFlow> tExamTaskFlowQueryWrapper = new QueryWrapper<>();
+        tExamTaskFlowQueryWrapper.lambda().eq(TExamTaskFlow::getExamTaskId,examTaskId)
+                .eq(TExamTaskFlow::getLevel,level);
+        return this.getOne(tExamTaskFlowQueryWrapper);
+    }
+}

+ 1 - 4
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFFlowApproveServiceImpl.java

@@ -30,10 +30,7 @@ public class TFFlowApproveServiceImpl extends ServiceImpl<TFFlowApproveMapper, T
      * @return
      */
     @Override
-    public TFFlowApprove findByFlowId(String flowId) {
-//        QueryWrapper<TFFlowApprove> tfFlowApproveQueryWrapper = new QueryWrapper<>();
-//        tfFlowApproveQueryWrapper.lambda().eq(TFFlowApprove::getFlowId, flowId);
-//        return this.getOne(tfFlowApproveQueryWrapper);
+    public TFFlowApprove findByFlowId(Long flowId) {
         return tfFlowApproveMapper.findByFlowId(flowId);
     }
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFFlowServiceImpl.java

@@ -53,7 +53,7 @@ public class TFFlowServiceImpl extends ServiceImpl<TFFlowMapper, TFFlow> impleme
      * @return
      */
     @Override
-    public IPage<FlowApproveResult> flowApproveList(IPage<Map> iPage, String startName, Long schoolId, Long orgId, String flowId) {
+    public IPage<FlowApproveResult> flowApproveList(IPage<Map> iPage, String startName, Long schoolId, Long orgId, Long flowId) {
         return tfFlowMapper.flowApproveList(iPage, startName, schoolId, orgId, flowId);
     }
 

+ 14 - 5
distributed-print-business/src/main/resources/mapper/ExamTaskMapper.xml

@@ -852,8 +852,10 @@
                 so.name teachingRoomName
             from
                 ACT_RU_TASK art
+            left join t_exam_task_flow tetf on
+                tetf.flow_id = art.PROC_INST_ID_
             left join exam_task et on
-                find_in_set(art.PROC_INST_ID_ ,et.flow_id)
+                et.id = tetf.exam_task_id
             left join basic_card_rule b ON
                 et.card_rule_id = b.id
             left join t_f_flow_approve tffa on
@@ -904,8 +906,10 @@
                 so.name teachingRoomName
             from
                 ACT_RU_TASK art
+            left join t_exam_task_flow tetf on
+                tetf.flow_id = art.PROC_INST_ID_
             left join exam_task et on
-                find_in_set(art.PROC_INST_ID_ ,et.flow_id)
+                et.id = tetf.exam_task_id
             left join act_ru_identitylink ari on
                 ari.TASK_ID_ = art.ID_
             left join basic_card_rule b ON
@@ -925,7 +929,7 @@
                 and ari.USER_ID_ = cast(#{userId} as char)
                 and ari.TYPE_ = 'candidate'
                 and et.school_id = #{schoolId}
-            union all
+            <!--union all
                     select
                 et.id,
                 et.school_id schoolId,
@@ -992,7 +996,8 @@
             LEFT JOIN exam_task_detail det ON
                     det.exam_task_id = et.id
             LEFT JOIN
-                sys_org so ON et.teaching_room_id = so.id) t order by t.updateTime desc
+                sys_org so ON et.teaching_room_id = so.id -->
+                ) t order by t.updateTime desc
     </select>
 
     <select id="findFlowIdToMySelf" resultType="java.lang.Long">
@@ -1143,7 +1148,11 @@
     </select>
 
     <select id="findByFlowId" resultType="com.qmth.distributed.print.business.entity.ExamTask">
-        select * from exam_task et where find_in_set(#{flowId} ,et.flow_id)
+        select * from exam_task et where
+            EXISTS(
+            select tetf.exam_task_id from t_exam_task_flow tetf
+            where tetf.flow_id = #{flowId} and tetf.exam_task_id = et.id
+            )
     </select>
 
     <select id="getProcessDefinitionIdByMaxVersion" resultType="java.lang.String">

+ 10 - 2
distributed-print-business/src/main/resources/mapper/ExamTaskReviewLogMapper.xml

@@ -30,7 +30,11 @@
         from
             t_f_flow_log tffl
         left join sys_user su on tffl.approve_id = su.id
-        where find_in_set(#{flowId} ,tffl.flow_id)
+        where EXISTS(
+            select t.flow_id from t_exam_task_flow t
+        where EXISTS (select tetf.exam_task_id from t_exam_task_flow tetf
+                where tetf.flow_id = #{flowId} and tetf.exam_task_id = t.exam_task_id)
+        and tffl.flow_id = t.flow_id)
         order by tffl.create_time desc
     </select>
 
@@ -49,7 +53,11 @@
         <where>
             AND tffl.approve_operation = 'APPROVE'
             <if test="flowId > 0 and flowId != ''">
-                AND find_in_set(#{flowId} ,tffl.flow_id)
+                AND EXISTS(
+                select t.flow_id from t_exam_task_flow t
+                where EXISTS (select tetf.exam_task_id from t_exam_task_flow tetf
+                where tetf.flow_id = #{flowId} and tetf.exam_task_id = t.exam_task_id)
+                and tffl.flow_id = t.flow_id)
             </if>
             <if test="setup != null and setup != ''">
                 AND tffl.approve_setup = #{setup}

+ 5 - 0
distributed-print-business/src/main/resources/mapper/TExamTaskFlowMapper.xml

@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.qmth.distributed.print.business.mapper.TExamTaskFlowMapper">
+
+</mapper>

+ 5 - 1
distributed-print-business/src/main/resources/mapper/TFFlowApproveLogMapper.xml

@@ -3,6 +3,10 @@
 <mapper namespace="com.qmth.distributed.print.business.mapper.TFFlowApproveLogMapper">
 
     <select id="findByFlowId" resultType="com.qmth.distributed.print.business.entity.TFFlowApproveLog">
-        select * from t_f_flow_approve_log tffal where find_in_set(#{flowId} ,tffal.flow_id)
+        select * from t_f_flow_approve_log tffal
+         where EXISTS(
+            select tetf.exam_task_id from t_exam_task_flow tetf
+            where tetf.flow_id = #{flowId} and tetf.exam_task_id = tffal.task_id
+            )
     </select>
 </mapper>

+ 7 - 1
distributed-print-business/src/main/resources/mapper/TFFlowApproveMapper.xml

@@ -3,6 +3,12 @@
 <mapper namespace="com.qmth.distributed.print.business.mapper.TFFlowApproveMapper">
 
     <select id="findByFlowId" resultType="com.qmth.distributed.print.business.entity.TFFlowApprove">
-        select * from t_f_flow_approve tffa where find_in_set(#{flowId} ,tffa.flow_id)
+        select * from t_f_flow_approve tffa
+        where EXISTS(
+            select t.flow_id from t_exam_task_flow t
+            where EXISTS (select tetf.exam_task_id from t_exam_task_flow tetf
+            where tetf.flow_id = #{flowId} and t.exam_task_id = tetf.exam_task_id)
+            and t.`level` = 1 and tffa.flow_id = t.flow_id
+            )
     </select>
 </mapper>

+ 4 - 1
distributed-print-business/src/main/resources/mapper/TFFlowLogMapper.xml

@@ -3,6 +3,9 @@
 <mapper namespace="com.qmth.distributed.print.business.mapper.TFFlowLogMapper">
 
     <select id="findByFlowId" resultType="com.qmth.distributed.print.business.entity.TFFlowLog">
-        select * from t_f_flow_log tffl where find_in_set(#{flowId} ,tffl.flow_id)
+        select * from t_f_flow_log tffl
+         join t_exam_task_flow tetf on
+         tetf.flow_id = tffl.flow_id
+         where tffl.flow_id = #{flowId}
     </select>
 </mapper>

+ 4 - 1
distributed-print-business/src/main/resources/mapper/TFFlowMapper.xml

@@ -59,7 +59,10 @@
 <!--                and tffal.org_id = #{orgId}-->
 <!--            </if>-->
             <if test="flowId != null and flowId != ''">
-                and find_in_set(#{flowId} ,tffal.flow_id)
+                and EXISTS(
+                select tetf.exam_task_id from t_exam_task_flow tetf
+                where tetf.flow_id = #{flowId} and tetf.exam_task_id = tffal.task_id
+                )
             </if>
             and tffal.enable = 1
         </where>

+ 1 - 1
distributed-print/src/main/java/com/qmth/distributed/print/api/ExamTaskController.java

@@ -257,7 +257,7 @@ public class ExamTaskController {
     @ApiOperation(value = "审核历史")
     @RequestMapping(value = "/review_list", method = RequestMethod.POST)
     public Result reviewList(@ApiParam(value = "流程id", required = true) @RequestParam String flowId) {
-        return ResultUtil.ok(examTaskReviewLogService.list(flowId));
+        return ResultUtil.ok(examTaskReviewLogService.list(SystemConstant.convertIdToLong(flowId)));
     }
 
     /**

+ 5 - 8
distributed-print/src/main/java/com/qmth/distributed/print/api/TFFlowController.java

@@ -90,6 +90,9 @@ public class TFFlowController {
     @Resource
     TFFlowLogService tfFlowLogService;
 
+    @Resource
+    TExamTaskFlowService tExamTaskFlowService;
+
     @ApiOperation(value = "注册流程")
     @Transactional
     @ApiResponses({@ApiResponse(code = 200, message = "常规信息", response = ResultUtil.class)})
@@ -182,7 +185,6 @@ public class TFFlowController {
             TFFlowApprove tfFlowApprove = (TFFlowApprove) objectMap.get("tfFlowApprove");
             ExamTask examTask = (ExamTask) objectMap.get("examTask");
             boolean presidentApprove = Objects.nonNull(objectMap.get(SystemConstant.APPROVE_PRESIDENT_SYSTEM)) ? (boolean) objectMap.get(SystemConstant.APPROVE_PRESIDENT_SYSTEM) : false;
-            TFFlowLog tfFlowLog = Objects.nonNull(objectMap.get(SystemConstant.APPROVE_TF_FLOW_LOG)) ? (TFFlowLog) objectMap.get(SystemConstant.APPROVE_TF_FLOW_LOG) : null;
             //审核通过,生成pdf
             if (Objects.nonNull(tfFlowApprove) && FlowApproveSetupEnum.FINISH.getSetup() == tfFlowApprove.getSetup()) {
                 // 取命题老师ID
@@ -193,19 +195,14 @@ public class TFFlowController {
                     throw ExceptionResultEnum.ERROR.exception("生成pdf失败");
                 }
             } else if (Objects.nonNull(tfFlowApprove) && FlowApproveSetupEnum.THREE_APPROVE.getSetup() == tfFlowApprove.getSetup() && presidentApprove) {//命题老师后台提交
-                String flowId = examTask.getFlowId();
-                String[] flowIds = flowId.split(",");
-                Task task = taskService.createTaskQuery().processInstanceId(flowIds[1]).singleResult();
+                TExamTaskFlow tExamTaskFlow = tExamTaskFlowService.findByFlowLevel(examTask.getId(), 2);
+                Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(tExamTaskFlow.getFlowId())).singleResult();
                 if (Objects.nonNull(task)) {
                     Map<String, Object> mapObject = new HashMap<>();
                     mapObject.computeIfAbsent(SystemConstant.FLOW_TASK_ID, v -> task.getId());
                     mapObject.computeIfAbsent(SystemConstant.APPROVE_PRESIDENT_SYSTEM, v -> presidentApprove);
                     activitiService.taskApprove(mapObject);
                 }
-                if (Objects.nonNull(tfFlowLog)) {
-                    tfFlowLog.setFlowId(examTask.getFlowId());
-                    tfFlowLogService.updateById(tfFlowLog);
-                }
             }
 
             // 驳回短信(驳回给提交老师)

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

@@ -214,9 +214,11 @@ public class SystemConstant {
     public static final String FLOW_STATUS = "flowStatus";//流程状态
     public static final String APPROVE_REMARK = "approveRemark";//流程审批意见
     public static final String APPROVE_PRESIDENT_SYSTEM = "presidentApprove";//流程院长自动审批
-    public static final String APPROVE_TF_FLOW_LOG = "TFFlowLog";//流程院长自动审批
+    public static final String EXAM_TASK_ID = "examTaskId";
     public static final String REDIS_LOCK_FLOW_TASK_PREFIX = "redis:lock:flow:task:";//流程节点锁
+    public static final String REDIS_LOCK_EXAM_TASK_FLOW_PREFIX = "redis:lock:exam:task:flow:";//考试任务流程节点锁
     public static final long REDIS_LOCK_FLOW_TASK_TIME_OUT = 60L * 2;
+    public static final long REDIS_LOCK_EXAM_TASK_FLOW_TIME_OUT = 60L * 2;
     public static final String REDIS_LOCK_FLOW_PREFIX = "redis:lock:flow:";//流程锁
     public static final long REDIS_LOCK_FLOW_TIME_OUT = 60L * 2;