瀏覽代碼

自定义流程接口-流程发起代码整改

wangliang 3 年之前
父節點
當前提交
bec37ba864
共有 15 個文件被更改,包括 97 次插入179 次删除
  1. 20 19
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/custom/listener/ProcessEventListener.java
  2. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/flow/CustomFlowSaveDto.java
  3. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/entity/TFCustomFlow.java
  4. 0 57
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CustomFlowDynamicBuildEnum.java
  5. 0 51
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CustomFlowElementEnum.java
  6. 1 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/ActivitiService.java
  7. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/TFCustomFlowService.java
  8. 8 3
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java
  9. 5 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java
  10. 30 28
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java
  11. 6 6
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFCustomFlowServiceImpl.java
  12. 1 1
      distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFFlowJoinServiceImpl.java
  13. 1 1
      distributed-print/src/main/java/com/qmth/distributed/print/api/TFCustomFlowController.java
  14. 21 0
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/contant/SystemConstant.java
  15. 1 1
      teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/TFCustomTypeEnum.java

+ 20 - 19
distributed-print-business/src/main/java/com/qmth/distributed/print/business/activiti/custom/listener/ProcessEventListener.java

@@ -6,9 +6,7 @@ import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.TFFlowLog;
 import com.qmth.distributed.print.business.entity.TFFlowLog;
 import com.qmth.distributed.print.business.enums.CustomFlowMultipleUserApproveTypeEnum;
 import com.qmth.distributed.print.business.enums.CustomFlowMultipleUserApproveTypeEnum;
 import com.qmth.distributed.print.business.enums.MessageEnum;
 import com.qmth.distributed.print.business.enums.MessageEnum;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
 import com.qmth.distributed.print.business.service.BasicMessageService;
 import com.qmth.distributed.print.business.service.BasicMessageService;
-import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.distributed.print.business.service.PrintCommonService;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
 import com.qmth.teachcloud.common.contant.SpringContextHolder;
@@ -16,6 +14,7 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
 import com.qmth.teachcloud.common.enums.FlowApproveOperationEnum;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.service.SysUserService;
 import com.qmth.teachcloud.common.util.JacksonUtil;
 import com.qmth.teachcloud.common.util.JacksonUtil;
 import org.activiti.engine.HistoryService;
 import org.activiti.engine.HistoryService;
@@ -55,9 +54,10 @@ public class ProcessEventListener implements ActivitiEventListener, Serializable
                 Map<String, Object> map = activitiProcessStartedEvent.getVariables();
                 Map<String, Object> map = activitiProcessStartedEvent.getVariables();
                 Long objectId = (Long) map.get(SystemConstant.OBJECT_ID);
                 Long objectId = (Long) map.get(SystemConstant.OBJECT_ID);
                 TFCustomTypeEnum flowType = (TFCustomTypeEnum) map.get(SystemConstant.FLOW_TYPE);
                 TFCustomTypeEnum flowType = (TFCustomTypeEnum) map.get(SystemConstant.FLOW_TYPE);
-                Object o = map.get(SystemConstant.FLOW_SUBMIT);
+                Object o = map.get(SystemConstant.OBJECT_DATA);
+                Boolean flowSubmit = (Boolean) map.get(SystemConstant.FLOW_SUBMIT);
                 //发送命题待审批短信
                 //发送命题待审批短信
-                if (Objects.nonNull(objectId) && Objects.nonNull(flowType) && Objects.nonNull(o)) {
+                if (Objects.nonNull(objectId) && Objects.nonNull(flowType) && Objects.nonNull(o) && Objects.nonNull(flowSubmit) && flowSubmit) {
                     if (flowType == TFCustomTypeEnum.ELECTRON_FLOW && o instanceof ExamTask) {
                     if (flowType == TFCustomTypeEnum.ELECTRON_FLOW && o instanceof ExamTask) {
                         basicMessageService.sendNoticeTaskCreate((ExamTask) o);
                         basicMessageService.sendNoticeTaskCreate((ExamTask) o);
                     }
                     }
@@ -66,29 +66,32 @@ public class ProcessEventListener implements ActivitiEventListener, Serializable
             case PROCESS_COMPLETED:
             case PROCESS_COMPLETED:
                 // 流程结束
                 // 流程结束
                 log.info("流程结束_PROCESS_COMPLETED:ProcessInstanceId:{},ExecutionId:{},ProcessDefinitionId:{}", event.getProcessInstanceId(), event.getExecutionId(), event.getProcessDefinitionId());
                 log.info("流程结束_PROCESS_COMPLETED:ProcessInstanceId:{},ExecutionId:{},ProcessDefinitionId:{}", event.getProcessInstanceId(), event.getExecutionId(), event.getProcessDefinitionId());
-                TaskService taskService = SpringContextHolder.getBean(TaskService.class);
                 HistoryService historyService = SpringContextHolder.getBean(HistoryService.class);
                 HistoryService historyService = SpringContextHolder.getBean(HistoryService.class);
                 SysUserService sysUserService = SpringContextHolder.getBean(SysUserService.class);
                 SysUserService sysUserService = SpringContextHolder.getBean(SysUserService.class);
-                ExamTaskService examTaskService = SpringContextHolder.getBean(ExamTaskService.class);
                 PrintCommonService printCommonService = SpringContextHolder.getBean(PrintCommonService.class);
                 PrintCommonService printCommonService = SpringContextHolder.getBean(PrintCommonService.class);
 
 
                 List<HistoricVariableInstance> historicVariableInstanceList = historyService.createHistoricVariableInstanceQuery().processInstanceId(event.getProcessInstanceId()).list();
                 List<HistoricVariableInstance> historicVariableInstanceList = historyService.createHistoricVariableInstanceQuery().processInstanceId(event.getProcessInstanceId()).list();
                 if (Objects.nonNull(historicVariableInstanceList) && historicVariableInstanceList.size() > 0) {
                 if (Objects.nonNull(historicVariableInstanceList) && historicVariableInstanceList.size() > 0) {
                     TFFlowLog tfFlowLog = null;
                     TFFlowLog tfFlowLog = null;
+                    Object object = null;
                     for (HistoricVariableInstance h : historicVariableInstanceList) {
                     for (HistoricVariableInstance h : historicVariableInstanceList) {
                         if (Objects.equals(h.getVariableName(), SystemConstant.APPROVE_TF_FLOW_LOG)) {
                         if (Objects.equals(h.getVariableName(), SystemConstant.APPROVE_TF_FLOW_LOG)) {
                             tfFlowLog = (TFFlowLog) h.getValue();
                             tfFlowLog = (TFFlowLog) h.getValue();
+                            Optional.ofNullable(tfFlowLog).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程审批日志为空"));
+                        } else if (Objects.equals(h.getVariableName(), SystemConstant.OBJECT_DATA)) {
+                            object = h.getValue();
+                            Optional.ofNullable(object).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("实体数据为空"));
+                        }
+                        if (Objects.nonNull(object) && Objects.nonNull(tfFlowLog)) {
                             break;
                             break;
                         }
                         }
                     }
                     }
-                    if (Objects.nonNull(tfFlowLog) && Objects.nonNull(tfFlowLog.getObjectTable())) {
+                    if (Objects.nonNull(tfFlowLog.getObjectTable())) {
                         if (Objects.equals(tfFlowLog.getObjectTable(), TFCustomTypeEnum.ELECTRON_FLOW.getTable())) {//如果是命题任务交卷
                         if (Objects.equals(tfFlowLog.getObjectTable(), TFCustomTypeEnum.ELECTRON_FLOW.getTable())) {//如果是命题任务交卷
-                            ExamTask examTask = examTaskService.getById(tfFlowLog.getObjectId());
-                            Optional.ofNullable(examTask).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("命题任务为空"));
                             //取命题老师ID
                             //取命题老师ID
-                            SysUser sysUser = sysUserService.getById(examTask.getUserId());
+                            SysUser sysUser = sysUserService.getById(((ExamTask) object).getUserId());
                             try {
                             try {
-                                printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+                                printCommonService.checkData(((ExamTask) object).getSchoolId(), ((ExamTask) object).getCourseCode(), ((ExamTask) object).getPaperNumber(), sysUser);
                             } catch (IOException e) {
                             } catch (IOException e) {
                                 throw ExceptionResultEnum.ERROR.exception("生成pdf失败");
                                 throw ExceptionResultEnum.ERROR.exception("生成pdf失败");
                             }
                             }
@@ -186,21 +189,19 @@ public class ProcessEventListener implements ActivitiEventListener, Serializable
             case TASK_COMPLETED:
             case TASK_COMPLETED:
                 // 任务被完成了。它会在ENTITY_DELETE事件之前触发。当任务是流程一部分时,事件会在流程继续运行之前, 后续事件将是ACTIVITY_COMPLETE,对应着完成任务的节点。
                 // 任务被完成了。它会在ENTITY_DELETE事件之前触发。当任务是流程一部分时,事件会在流程继续运行之前, 后续事件将是ACTIVITY_COMPLETE,对应着完成任务的节点。
                 log.info("流程任务完成_TASK_COMPLETED:ProcessInstanceId:{},ExecutionId:{},ProcessDefinitionId:{}", event.getProcessInstanceId(), event.getExecutionId(), event.getProcessDefinitionId());
                 log.info("流程任务完成_TASK_COMPLETED:ProcessInstanceId:{},ExecutionId:{},ProcessDefinitionId:{}", event.getProcessInstanceId(), event.getExecutionId(), event.getProcessDefinitionId());
-                taskService = SpringContextHolder.getBean(TaskService.class);
+                TaskService taskService = SpringContextHolder.getBean(TaskService.class);
                 sysUserService = SpringContextHolder.getBean(SysUserService.class);
                 sysUserService = SpringContextHolder.getBean(SysUserService.class);
-                examTaskService = SpringContextHolder.getBean(ExamTaskService.class);
                 basicMessageService = SpringContextHolder.getBean(BasicMessageService.class);
                 basicMessageService = SpringContextHolder.getBean(BasicMessageService.class);
 
 
                 Task task = taskService.createTaskQuery().executionId(event.getExecutionId()).singleResult();
                 Task task = taskService.createTaskQuery().executionId(event.getExecutionId()).singleResult();
                 if (Objects.nonNull(task)) {
                 if (Objects.nonNull(task)) {
                     TFFlowLog tfFlowLog = (TFFlowLog) taskService.getVariable(task.getId(), SystemConstant.APPROVE_TF_FLOW_LOG);
                     TFFlowLog tfFlowLog = (TFFlowLog) taskService.getVariable(task.getId(), SystemConstant.APPROVE_TF_FLOW_LOG);
-                    o = null;
-                    if (Objects.nonNull(tfFlowLog.getObjectTable()) && Objects.equals(tfFlowLog.getObjectTable(), TFCustomTypeEnum.ELECTRON_FLOW.getTable())) {
-                        o = examTaskService.getById(tfFlowLog.getObjectId());
-                    }
-                    if (Objects.nonNull(tfFlowLog) && (tfFlowLog.getApproveOperation() != FlowApproveOperationEnum.SUBMIT
+                    Optional.ofNullable(tfFlowLog).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程审批日志为空"));
+                    o = taskService.getVariable(task.getId(), SystemConstant.OBJECT_DATA);
+                    Optional.ofNullable(o).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("实体数据为空"));
+                    if (tfFlowLog.getApproveOperation() != FlowApproveOperationEnum.SUBMIT
                             && tfFlowLog.getApproveOperation() != FlowApproveOperationEnum.END
                             && tfFlowLog.getApproveOperation() != FlowApproveOperationEnum.END
-                            && tfFlowLog.getApproveOperation() != FlowApproveOperationEnum.FINISH)) {
+                            && tfFlowLog.getApproveOperation() != FlowApproveOperationEnum.FINISH) {
                         if (Objects.nonNull(tfFlowLog.getPendApproveId())) {
                         if (Objects.nonNull(tfFlowLog.getPendApproveId())) {
                             String[] strs = tfFlowLog.getPendApproveId().split(",");
                             String[] strs = tfFlowLog.getPendApproveId().split(",");
                             List<Long> userIds = new ArrayList<>();
                             List<Long> userIds = new ArrayList<>();

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/flow/CustomFlowSaveDto.java

@@ -3,7 +3,7 @@ package com.qmth.distributed.print.business.bean.flow;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 
 import javax.validation.constraints.NotBlank;
 import javax.validation.constraints.NotBlank;

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

@@ -4,8 +4,8 @@ import com.baomidou.mybatisplus.annotation.FieldStrategy;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableField;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
 import com.qmth.teachcloud.common.base.BaseEntity;
 import com.qmth.teachcloud.common.base.BaseEntity;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiModelProperty;
 
 

+ 0 - 57
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CustomFlowDynamicBuildEnum.java

@@ -1,57 +0,0 @@
-//package com.qmth.distributed.print.business.enums;
-//
-//import java.util.Objects;
-//
-///**
-// * @Description: 流程动态创建 enum
-// * @Param:
-// * @return:
-// * @Author: wangliang
-// * @Date: 2021/10/22
-// */
-//public enum CustomFlowDynamicBuildEnum {
-//
-//    START("start", "开始节点"),
-//
-//    USER_TASK("usertask", "任务节点"),
-//
-//    PARALLEL_GATE_WAY("parallelgateway", "并行网关"),
-//
-//    EXCLUSIVE_GATE_WAY("exclusivegateway", "排他网关"),
-//
-//    SEQUENCE("flow", "箭头"),
-//
-//    END("end", "结束节点");
-//
-//    private String id;
-//
-//    private String title;
-//
-//    private CustomFlowDynamicBuildEnum(String id, String title) {
-//        this.id = id;
-//        this.title = title;
-//    }
-//
-//    public String getId() {
-//        return id;
-//    }
-//
-//    public String getTitle() {
-//        return title;
-//    }
-//
-//    /**
-//     * 状态转换 toName
-//     *
-//     * @param title
-//     * @return
-//     */
-//    public static String convertToName(String title) {
-//        for (CustomFlowDynamicBuildEnum e : CustomFlowDynamicBuildEnum.values()) {
-//            if (Objects.equals(title, e.getTitle())) {
-//                return e.name();
-//            }
-//        }
-//        return null;
-//    }
-//}

+ 0 - 51
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/CustomFlowElementEnum.java

@@ -1,51 +0,0 @@
-//package com.qmth.distributed.print.business.enums;
-//
-//import java.util.Objects;
-//
-///**
-// * @Description: 流程元素 enum
-// * @Param:
-// * @return:
-// * @Author: wangliang
-// * @Date: 2021/10/22
-// */
-//public enum CustomFlowElementEnum {
-//
-//    APPROVE("approve", "审批"),
-//
-//    REJECT("reject", "驳回"),
-//
-//    END("end", "终止");
-//
-//    private String id;
-//
-//    private String title;
-//
-//    private CustomFlowElementEnum(String id, String title) {
-//        this.id = id;
-//        this.title = title;
-//    }
-//
-//    public String getId() {
-//        return id;
-//    }
-//
-//    public String getTitle() {
-//        return title;
-//    }
-//
-//    /**
-//     * 状态转换 toName
-//     *
-//     * @param title
-//     * @return
-//     */
-//    public static String convertToName(String title) {
-//        for (CustomFlowElementEnum e : CustomFlowElementEnum.values()) {
-//            if (Objects.equals(title, e.getTitle())) {
-//                return e.name();
-//            }
-//        }
-//        return null;
-//    }
-//}

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

@@ -4,11 +4,9 @@ import com.qmth.distributed.print.business.bean.flow.CustomFlowSaveDto;
 import com.qmth.distributed.print.business.bean.result.FlowTaskResult;
 import com.qmth.distributed.print.business.bean.result.FlowTaskResult;
 import com.qmth.distributed.print.business.bean.result.FlowViewResult;
 import com.qmth.distributed.print.business.bean.result.FlowViewResult;
 import com.qmth.distributed.print.business.bean.result.TaskInfoResult;
 import com.qmth.distributed.print.business.bean.result.TaskInfoResult;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.activiti.engine.runtime.ProcessInstance;
-import org.springframework.web.multipart.MultipartFile;
 
 
-import java.io.File;
 import java.io.IOException;
 import java.io.IOException;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;

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

@@ -3,7 +3,7 @@ package com.qmth.distributed.print.business.service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 
 
 import java.util.Map;
 import java.util.Map;
 
 

+ 8 - 3
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -10,7 +10,10 @@ import com.qmth.distributed.print.business.bean.flow.link.FlowTaskLink;
 import com.qmth.distributed.print.business.bean.flow.link.FlowTaskNode;
 import com.qmth.distributed.print.business.bean.flow.link.FlowTaskNode;
 import com.qmth.distributed.print.business.bean.result.*;
 import com.qmth.distributed.print.business.bean.result.*;
 import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.entity.*;
-import com.qmth.distributed.print.business.enums.*;
+import com.qmth.distributed.print.business.enums.CustomFlowMultipleUserApproveTypeEnum;
+import com.qmth.distributed.print.business.enums.CustomFlowRejectResubmitTypeEnum;
+import com.qmth.distributed.print.business.enums.CustomFlowTypeEnum;
+import com.qmth.distributed.print.business.enums.ExamStatusEnum;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
@@ -106,7 +109,8 @@ public class ActivitiServiceImpl implements ActivitiService {
         String id = (String) map.get(SystemConstant.ID);
         String id = (String) map.get(SystemConstant.ID);
         Long objectId = (Long) map.get(SystemConstant.OBJECT_ID);
         Long objectId = (Long) map.get(SystemConstant.OBJECT_ID);
         TFCustomTypeEnum flowType = (TFCustomTypeEnum) map.get(SystemConstant.FLOW_TYPE);
         TFCustomTypeEnum flowType = (TFCustomTypeEnum) map.get(SystemConstant.FLOW_TYPE);
-        Object o = map.get(SystemConstant.FLOW_SUBMIT);
+        Object o = map.get(SystemConstant.OBJECT_DATA);
+        Boolean flowSubmit = (Boolean) map.get(SystemConstant.FLOW_SUBMIT);
         Map flowProcessVarMap = (Map) map.get(SystemConstant.FLOW_PROCESS_VAR_MAP);
         Map flowProcessVarMap = (Map) map.get(SystemConstant.FLOW_PROCESS_VAR_MAP);
         Map<String, CustomFlowVarDto> agginessMap = (Map<String, CustomFlowVarDto>) flowProcessVarMap.get(SystemConstant.AGGINESS_MAP);
         Map<String, CustomFlowVarDto> agginessMap = (Map<String, CustomFlowVarDto>) flowProcessVarMap.get(SystemConstant.AGGINESS_MAP);
         Map<String, Object> varMap = new HashMap<>();
         Map<String, Object> varMap = new HashMap<>();
@@ -120,8 +124,9 @@ public class ActivitiServiceImpl implements ActivitiService {
             }
             }
         }
         }
         varMap.computeIfAbsent(SystemConstant.OBJECT_ID, v -> objectId);
         varMap.computeIfAbsent(SystemConstant.OBJECT_ID, v -> objectId);
+        varMap.computeIfAbsent(SystemConstant.OBJECT_DATA, v -> o);
         varMap.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> flowType);
         varMap.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> flowType);
-        varMap.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> o);
+        varMap.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> flowSubmit);
 
 
         //启动流程
         //启动流程
         ProcessInstance processInstance = varMap.size() > 0 ? runtimeService.startProcessInstanceByKey(id, varMap) : runtimeService.startProcessInstanceByKey(id);
         ProcessInstance processInstance = varMap.size() > 0 ? runtimeService.startProcessInstanceByKey(id, varMap) : runtimeService.startProcessInstanceByKey(id);

+ 5 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskDetailServiceImpl.java

@@ -12,7 +12,6 @@ import com.qmth.distributed.print.business.entity.*;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.ExamDetailStatusEnum;
 import com.qmth.distributed.print.business.enums.FlowJoinTypeEnum;
 import com.qmth.distributed.print.business.enums.FlowJoinTypeEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
 import com.qmth.distributed.print.business.enums.PrintPlanStatusEnum;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
 import com.qmth.distributed.print.business.mapper.ExamTaskDetailMapper;
 import com.qmth.distributed.print.business.mapper.ExamTaskDetailMapper;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.service.*;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
 import com.qmth.distributed.print.business.templete.execute.AsyncCreatePdfTempleteService;
@@ -373,11 +372,11 @@ public class ExamTaskDetailServiceImpl extends ServiceImpl<ExamTaskDetailMapper,
         // 不需要审核,直接更新,否则加入待审核列表(状态为不需要审核的或者为管理员身份的都不重新走审核流程)
         // 不需要审核,直接更新,否则加入待审核列表(状态为不需要审核的或者为管理员身份的都不重新走审核流程)
         if (examTask.getReview() || !sysUserService.isAdminDataAuth(requestUser.getId())) {
         if (examTask.getReview() || !sysUserService.isAdminDataAuth(requestUser.getId())) {
             // 发起新流程
             // 发起新流程
-            Map<String, Object> map = new HashMap<>();
-            map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> examTask.getId());
-            map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> TFCustomTypeEnum.ELECTRON_FLOW);
-            map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
-
+            Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
+                    examTask,
+                    TFCustomTypeEnum.ELECTRON_FLOW,
+                    examTask.getUserId(),
+                    true);
             map = activitiService.customFlowStart(map);
             map = activitiService.customFlowStart(map);
             Long flowId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID));
             Long flowId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID));
             UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();
             UpdateWrapper<ExamTask> updateWrapper = new UpdateWrapper<>();

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

@@ -266,11 +266,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
 
             if (Objects.nonNull(examTask.getUserId())) {
             if (Objects.nonNull(examTask.getUserId())) {
                 examStatusEnum = ExamStatusEnum.STAGE;
                 examStatusEnum = ExamStatusEnum.STAGE;
-                Map<String, Object> map = new HashMap<>();
-                map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> examTask.getId());
-                map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> TFCustomTypeEnum.ELECTRON_FLOW);
-                map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
-                map.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> examTask);
+                Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
+                        examTask,
+                        TFCustomTypeEnum.ELECTRON_FLOW,
+                        examTask.getUserId(),
+                        true);
                 map = activitiService.customFlowStart(map);
                 map = activitiService.customFlowStart(map);
                 flowId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID));
                 flowId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID));
                 map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
                 map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
@@ -289,10 +289,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examStatusEnum = ExamStatusEnum.STAGE;
                 examStatusEnum = ExamStatusEnum.STAGE;
 
 
                 if (examTask.getUserId().longValue() != task.getUserId().longValue()) {
                 if (examTask.getUserId().longValue() != task.getUserId().longValue()) {
-                    Map<String, Object> map = new HashMap<>();
-                    map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> examTask.getId());
-                    map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> TFCustomTypeEnum.ELECTRON_FLOW);
-                    map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
+                    Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
+                            examTask,
+                            TFCustomTypeEnum.ELECTRON_FLOW,
+                            examTask.getUserId(),
+                            true);
                     map = activitiService.customFlowStart(map);
                     map = activitiService.customFlowStart(map);
                     map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
                     map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
                     tfFlowJoinService.saveOrUpdate(map);
                     tfFlowJoinService.saveOrUpdate(map);
@@ -422,11 +423,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
                 examTask.setStatus(ExamStatusEnum.DRAFT);
                 examTask.setStatus(ExamStatusEnum.DRAFT);
             } else if (examTask.getReview()) {
             } else if (examTask.getReview()) {
                 examTask.setStatus(ExamStatusEnum.STAGE);
                 examTask.setStatus(ExamStatusEnum.STAGE);
-                Map<String, Object> map = new HashMap<>();
-                map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> examTask.getId());
-                map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> TFCustomTypeEnum.ELECTRON_FLOW);
-                map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
-                map.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> examTask);
+                Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
+                        examTask,
+                        TFCustomTypeEnum.ELECTRON_FLOW,
+                        examTask.getUserId(),
+                        true);
                 map = activitiService.customFlowStart(map);
                 map = activitiService.customFlowStart(map);
                 examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                 examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                 map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
                 map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
@@ -726,12 +727,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         this.saveBatch(list);
         this.saveBatch(list);
         for (ExamTask examTask : list) {
         for (ExamTask examTask : list) {
             if (examTask.getReview() && Objects.nonNull(examTask.getUserId()) && Objects.isNull(examTask.getFlowId())) {
             if (examTask.getReview() && Objects.nonNull(examTask.getUserId()) && Objects.isNull(examTask.getFlowId())) {
-                Map<String, Object> map = new HashMap<>();
-                map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> examTask.getId());
-                map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> TFCustomTypeEnum.ELECTRON_FLOW);
-                map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
-                map.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> examTask);
-
+                Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
+                        examTask,
+                        TFCustomTypeEnum.ELECTRON_FLOW,
+                        examTask.getUserId(),
+                        true);
                 map = activitiService.customFlowStart(map);
                 map = activitiService.customFlowStart(map);
                 examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                 examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                 map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
                 map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
@@ -1518,10 +1518,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             examTask.setStatus(ExamStatusEnum.valueOf(examTaskDetail.getOperateType()));
             examTask.setStatus(ExamStatusEnum.valueOf(examTaskDetail.getOperateType()));
             if (Objects.isNull(examTask.getFlowId())) {
             if (Objects.isNull(examTask.getFlowId())) {
                 if (basicExamRule.getReview()) {
                 if (basicExamRule.getReview()) {
-                    Map<String, Object> map = new HashMap<>();
-                    map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> examTask.getId());
-                    map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> TFCustomTypeEnum.ELECTRON_FLOW);
-                    map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
+                    Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
+                            examTask,
+                            TFCustomTypeEnum.ELECTRON_FLOW,
+                            examTask.getUserId(),
+                            false);
                     map = activitiService.customFlowStart(map);
                     map = activitiService.customFlowStart(map);
                     examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                     examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                     map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
                     map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
@@ -1660,10 +1661,11 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
 
 
             if (Objects.isNull(examTask.getFlowId())) {
             if (Objects.isNull(examTask.getFlowId())) {
                 if (basicExamRule.getReview()) {
                 if (basicExamRule.getReview()) {
-                    Map<String, Object> map = new HashMap<>();
-                    map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> examTask.getId());
-                    map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> TFCustomTypeEnum.ELECTRON_FLOW);
-                    map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
+                    Map<String, Object> map = SystemConstant.buildFlowVar(examTask.getId(),
+                            examTask,
+                            TFCustomTypeEnum.ELECTRON_FLOW,
+                            examTask.getUserId(),
+                            false);
                     map = activitiService.customFlowStart(map);
                     map = activitiService.customFlowStart(map);
                     examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                     examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
                     map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);
                     map.computeIfAbsent(SystemConstant.FLOW_JOIN_TYPE, v -> FlowJoinTypeEnum.NEW);

+ 6 - 6
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/TFCustomFlowServiceImpl.java

@@ -3,9 +3,9 @@ package com.qmth.distributed.print.business.service.impl;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
 import com.qmth.distributed.print.business.mapper.TFCustomFlowMapper;
 import com.qmth.distributed.print.business.mapper.TFCustomFlowMapper;
 import com.qmth.distributed.print.business.service.TFCustomFlowService;
 import com.qmth.distributed.print.business.service.TFCustomFlowService;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -54,11 +54,11 @@ public class TFCustomFlowServiceImpl extends ServiceImpl<TFCustomFlowMapper, TFC
     }
     }
 
 
     /**
     /**
-          * 根据key查找id
-          *
-          * @param flowKey
-          * @return
-          */
+     * 根据key查找id
+     *
+     * @param flowKey
+     * @return
+     */
     @Override
     @Override
     public String findActIdByFlowKey(String flowKey) {
     public String findActIdByFlowKey(String flowKey) {
         return tfCustomFlowMapper.findActIdByFlowKey(flowKey);
         return tfCustomFlowMapper.findActIdByFlowKey(flowKey);

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

@@ -5,12 +5,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.entity.TFFlowJoin;
 import com.qmth.distributed.print.business.entity.TFFlowJoin;
 import com.qmth.distributed.print.business.enums.FlowJoinTypeEnum;
 import com.qmth.distributed.print.business.enums.FlowJoinTypeEnum;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
 import com.qmth.distributed.print.business.mapper.TFFlowJoinMapper;
 import com.qmth.distributed.print.business.mapper.TFFlowJoinMapper;
 import com.qmth.distributed.print.business.service.TFFlowJoinService;
 import com.qmth.distributed.print.business.service.TFFlowJoinService;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;

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

@@ -19,7 +19,6 @@ import com.qmth.distributed.print.business.bean.result.TaskInfoResult;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
 import com.qmth.distributed.print.business.entity.TFCustomFlow;
 import com.qmth.distributed.print.business.entity.TFCustomFlowEntity;
 import com.qmth.distributed.print.business.entity.TFCustomFlowEntity;
 import com.qmth.distributed.print.business.entity.TFFlowApprove;
 import com.qmth.distributed.print.business.entity.TFFlowApprove;
-import com.qmth.distributed.print.business.enums.TFCustomTypeEnum;
 import com.qmth.distributed.print.business.service.ActivitiService;
 import com.qmth.distributed.print.business.service.ActivitiService;
 import com.qmth.distributed.print.business.service.TFCustomFlowEntityService;
 import com.qmth.distributed.print.business.service.TFCustomFlowEntityService;
 import com.qmth.distributed.print.business.service.TFCustomFlowService;
 import com.qmth.distributed.print.business.service.TFCustomFlowService;
@@ -30,6 +29,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.FieldUniqueEnum;
 import com.qmth.teachcloud.common.enums.FlowStatusEnum;
 import com.qmth.teachcloud.common.enums.FlowStatusEnum;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.*;
 import com.qmth.teachcloud.common.util.*;
 import io.swagger.annotations.*;
 import io.swagger.annotations.*;

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

@@ -6,6 +6,7 @@ import com.qmth.teachcloud.common.bean.result.DBVerifyResult;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.config.DictionaryConfig;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.TFCustomTypeEnum;
 import com.qmth.teachcloud.common.util.ServletUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
 
 
 import java.io.File;
 import java.io.File;
@@ -223,6 +224,7 @@ public class SystemConstant {
     public static final String FLOW_STATUS = "flowStatus";//流程状态
     public static final String FLOW_STATUS = "flowStatus";//流程状态
     public static final String APPROVE_REMARK = "approveRemark";//流程审批意见
     public static final String APPROVE_REMARK = "approveRemark";//流程审批意见
     public static final String OBJECT_ID = "objectId";
     public static final String OBJECT_ID = "objectId";
+    public static final String OBJECT_DATA = "objectData";
     public static final String APPROVE_TF_FLOW_LOG = "TFFlowLog";//流程院长自动审批
     public static final String APPROVE_TF_FLOW_LOG = "TFFlowLog";//流程院长自动审批
     public static final String PAPAER_ATTACHMENT_IDS = "paperAttachmentIds";//命题附件ids
     public static final String PAPAER_ATTACHMENT_IDS = "paperAttachmentIds";//命题附件ids
     public static final String REDIS_LOCK_FLOW_TASK_PREFIX = "redis:lock:flow:task:";//流程节点锁
     public static final String REDIS_LOCK_FLOW_TASK_PREFIX = "redis:lock:flow:task:";//流程节点锁
@@ -454,4 +456,23 @@ public class SystemConstant {
         }
         }
         return result;
         return result;
     }
     }
+
+    /**
+     * 构建流程变量
+     *
+     * @return
+     */
+    public static Map<String, Object> buildFlowVar(Long objectId,
+                                                   Object o,
+                                                   TFCustomTypeEnum tfCustomTypeEnum,
+                                                   Long approveId,
+                                                   boolean flowSubmit) {
+        Map<String, Object> map = new HashMap<>();
+        map.computeIfAbsent(SystemConstant.OBJECT_ID, v -> objectId);
+        map.computeIfAbsent(SystemConstant.OBJECT_DATA, v -> o);
+        map.computeIfAbsent(SystemConstant.FLOW_TYPE, v -> tfCustomTypeEnum);
+        map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> approveId);
+        map.computeIfAbsent(SystemConstant.FLOW_SUBMIT, v -> flowSubmit);
+        return map;
+    }
 }
 }

+ 1 - 1
distributed-print-business/src/main/java/com/qmth/distributed/print/business/enums/TFCustomTypeEnum.java → teachcloud-common/src/main/java/com/qmth/teachcloud/common/enums/TFCustomTypeEnum.java

@@ -1,4 +1,4 @@
-package com.qmth.distributed.print.business.enums;
+package com.qmth.teachcloud.common.enums;
 
 
 import java.util.Objects;
 import java.util.Objects;