Sfoglia il codice sorgente

命题任务启动流程

wangliang 3 anni fa
parent
commit
e2add0c17a

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

@@ -152,10 +152,9 @@ public interface ActivitiService {
     /**
      * 启动自定义流程
      *
-     * @param taskId
-     * @param approveId
+     * @param map
      */
-    public Map<String, Object> customFlowStart(Long taskId, Long approveId);
+    public Map<String, Object> customFlowStart(Map<String, Object> map);
 
     /**
      * 获取当前流程节点信息

+ 14 - 17
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -317,20 +317,20 @@ public class ActivitiServiceImpl implements ActivitiService {
         Optional.ofNullable(map.get(SystemConstant.FLOW_STATUS)).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程状态不能为空"));
         FlowStatusEnum flowStatusEnum = (FlowStatusEnum) map.get(SystemConstant.FLOW_STATUS);
 
-        String approveId = Objects.nonNull(map.get(SystemConstant.APPROVE_ID)) ? (String) map.get(SystemConstant.APPROVE_ID) : null;
+        String approveId = Objects.nonNull(map.get(SystemConstant.APPROVE_ID)) ? String.valueOf((Long) map.get(SystemConstant.APPROVE_ID)) : null;
         tfFlowApproveService.save(new TFFlowApprove(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), sysUser.getId(), flowStatusEnum, sysUser.getId()));
 
-        Long examTaskId = (Long) map.get(SystemConstant.EXAM_TASK_ID);
         //TODO 测试用
-        ExamTask examTask = examTaskService.getById(examTaskId);
-        examTask.setFlowId(SystemConstant.convertIdToLong(flowId));
-        examTaskService.updateById(examTask);
-
-        String id = (String) map.get(SystemConstant.FLOW_ENTITY_ID);
-        TExamTaskFlow tExamTaskFlow = tExamTaskFlowService.findByFlowLevel(examTaskId);
-        tExamTaskFlow.setFlowEntityId(SystemConstant.convertIdToLong(id));
-        tExamTaskFlow.setFlowId(SystemConstant.convertIdToLong(flowId));
-        tExamTaskFlowService.updateById(tExamTaskFlow);
+        Long examTaskId = (Long) map.get(SystemConstant.EXAM_TASK_ID);
+//        ExamTask examTask = examTaskService.getById(examTaskId);
+//        examTask.setFlowId(SystemConstant.convertIdToLong(flowId));
+//        examTaskService.updateById(examTask);
+//
+//        String id = (String) map.get(SystemConstant.FLOW_ENTITY_ID);
+//        TExamTaskFlow tExamTaskFlow = tExamTaskFlowService.findByFlowLevel(examTaskId);
+//        tExamTaskFlow.setFlowEntityId(SystemConstant.convertIdToLong(id));
+//        tExamTaskFlow.setFlowId(SystemConstant.convertIdToLong(flowId));
+//        tExamTaskFlowService.updateById(tExamTaskFlow);
 
         tfFlowLogService.save(new TFFlowLog(sysUser.getSchoolId(), sysUser.getOrgId(), SystemConstant.convertIdToLong(flowId), examTaskId, sysUser.getId(), sysUser.getId(), "提交流程", approveId, FlowApproveOperationEnum.SUBMIT));
     }
@@ -2169,13 +2169,13 @@ public class ActivitiServiceImpl implements ActivitiService {
     /**
      * 启动自定义流程
      *
-     * @param taskId
-     * @param approveId
+     * @param map
      */
     @Override
     @Transactional
-    public Map<String, Object> customFlowStart(Long taskId, Long approveId) {
+    public Map<String, Object> customFlowStart(Map<String, Object> map) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
+        Long approveId = (Long) map.get(SystemConstant.APPROVE_ID);
         TFCustomFlow tfCustomFlow = tfCustomFlowService.findMaxVersion(sysUser.getSchoolId(), sysUser.getOrgId(), TFCustomTypeEnum.ELECTRON_FLOW);
         Optional.ofNullable(tfCustomFlow).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("未找到自定义流程数据"));
 
@@ -2185,12 +2185,9 @@ public class ActivitiServiceImpl implements ActivitiService {
         agginessMap.put(CustomFlowTypeEnum.USER_TASK.getId() + DefaultInstanceConvertToMultiInstance.DEFAULT_USER_TASK, new CustomFlowVarDto(SystemConstant.APPROVE_ID, new ArrayList(Arrays.asList(String.valueOf(approveId)))));
         flowProcessVarMap.put(SystemConstant.AGGINESS_MAP, agginessMap);
 
-        Map<String, Object> map = new HashMap<>();
         map.computeIfAbsent(SystemConstant.ID, v -> tfCustomFlow.getFlowKey());
         map.computeIfAbsent(SystemConstant.FLOW_PROCESS_VAR_MAP, v -> flowProcessVarMap);
         map.computeIfAbsent(SystemConstant.FLOW_ENTITY_ID, v -> String.valueOf(tfCustomFlowEntity.getId()));
-        map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> String.valueOf(approveId));
-        map.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> taskId);
         map.computeIfAbsent(SystemConstant.CUSTOM_FLOW_ID, v -> tfCustomFlow.getId());
         map.computeIfAbsent(SystemConstant.VERSION, v -> tfCustomFlow.getVersion());
         this.flowStart(map);

+ 7 - 14
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ExamTaskServiceImpl.java

@@ -422,32 +422,25 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
             }
             examTask.insertInfo(sysUser.getId());
             examTask.updateInfo(sysUser.getId());
-            // TODO: 2022/2/21  新建命题任务先屏蔽流程
-            examTask.setReview(false);
-//            examTask.setReview(basicExamRule.getReview());
+            examTask.setReview(basicExamRule.getReview());
             // 取课程所在机构
             Long teachingRoomId = basicCourseService.getOrgIdBySchoolIdAndCourseCode(schoolId, courseCode);
             examTask.setOrgId(teachingRoomId);
             examTask.setTeachingRoomId(teachingRoomId);
-            Long flowEntityId = null;
+            Map<String, Object> map = new HashMap<>();
+            map.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
+            map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> examTask.getUserId());
             if (examTask.getUserId() == null) {
                 examTask.setStatus(ExamStatusEnum.DRAFT);
             } else if (examTask.getReview()) {
                 examTask.setStatus(ExamStatusEnum.STAGE);
-                Map<String, Object> map = activitiService.customFlowStart(examTask.getId(), examTask.getUserId());
+                map = activitiService.customFlowStart(map);
                 examTask.setFlowId(SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID)));
-                flowEntityId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ENTITY_ID));
             } else if (!examTask.getReview()) {
                 examTask.setStatus(ExamStatusEnum.STAGE);
             }
             this.save(examTask);
-            // TODO: 2022/2/22 流程相关
-//            Map<String, Object> texamTaskFlowMap = new HashMap<>();
-//            texamTaskFlowMap.computeIfAbsent(SystemConstant.SCHOOL_ID, v -> examTask.getSchoolId());
-//            texamTaskFlowMap.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> examTask.getId());
-//            texamTaskFlowMap.computeIfAbsent(SystemConstant.FLOW_ID, v -> examTask.getFlowId());
-//            texamTaskFlowMap.put(SystemConstant.FLOW_ENTITY_ID, flowEntityId);
-//            tExamTaskFlowService.saveOrUpdate(texamTaskFlowMap);
+            tExamTaskFlowService.saveOrUpdate(map);
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);
             if (e instanceof ActivitiObjectNotFoundException) {
@@ -677,7 +670,7 @@ public class ExamTaskServiceImpl extends ServiceImpl<ExamTaskMapper, ExamTask> i
         for (Map<String, String> userMap : userList) {
             String courseCode = userMap.get("courseCode");
             // 配置信息
-            BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examId,courseCode);
+            BasicPrintConfig basicPrintConfig = basicPrintConfigService.getByExamIdAndCourseCode(examId, courseCode);
             Long cardRuleId = basicPrintConfig.getCardRuleId();
 
             ExamTask examTask = new ExamTask();

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

@@ -8,10 +8,8 @@ import com.qmth.distributed.print.business.enums.ExamTaskFlowTypeEnum;
 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.entity.BasicSchool;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
-import com.qmth.teachcloud.common.service.CommonCacheService;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -40,9 +38,6 @@ public class TExamTaskFlowServiceImpl extends ServiceImpl<TExamTaskFlowMapper, T
     @Resource
     TExamTaskFlowMapper taskFlowMapper;
 
-    @Resource
-    CommonCacheService commonCacheService;
-
     /**
      * 保存TExamTaskFlow
      *
@@ -51,10 +46,9 @@ public class TExamTaskFlowServiceImpl extends ServiceImpl<TExamTaskFlowMapper, T
     @Override
     public boolean saveOrUpdate(Map<String, Object> map) {
         SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
-        Long schoolId = (Long) map.get(SystemConstant.SCHOOL_ID);
         Long taskId = (Long) map.get(SystemConstant.EXAM_TASK_ID);
-        Long flowId = (Long) map.get(SystemConstant.FLOW_ID);
-        Long flowEntityId = (Long) map.get(SystemConstant.FLOW_ENTITY_ID);
+        Long flowId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ID));
+        Long flowEntityId = SystemConstant.convertIdToLong((String) map.get(SystemConstant.FLOW_ENTITY_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("该流程正在审批中,请稍候再试!");
@@ -67,14 +61,10 @@ public class TExamTaskFlowServiceImpl extends ServiceImpl<TExamTaskFlowMapper, T
                 TExamTaskFlow tExamTaskFlow = new TExamTaskFlow(flowEntityId, taskId, flowId, 1, ExamTaskFlowTypeEnum.NEW, sysUser.getId());
                 this.save(tExamTaskFlow);
             } else if (Objects.nonNull(tExamTaskFlowList) && tExamTaskFlowList.size() == 1) {
-                Map<String, List<String>> flowSchoolCodeMap = SystemConstant.getFlowSchoolCodeMap();
-                BasicSchool basicSchool = commonCacheService.schoolCache(schoolId);
-                if (flowSchoolCodeMap.get(SystemConstant.GDYKDX_FLOW_KEY).contains(basicSchool.getCode())) {
-                    TExamTaskFlow tExamTaskFlow = tExamTaskFlowList.get(0);
-                    Integer level = tExamTaskFlow.getLevel();
-                    TExamTaskFlow tExamTaskFlowSub = new TExamTaskFlow(flowEntityId, taskId, flowId, ++level, ExamTaskFlowTypeEnum.NEW, sysUser.getId());
-                    this.save(tExamTaskFlowSub);
-                }
+                TExamTaskFlow tExamTaskFlow = tExamTaskFlowList.get(0);
+                Integer level = tExamTaskFlow.getLevel();
+                TExamTaskFlow tExamTaskFlowSub = new TExamTaskFlow(flowEntityId, taskId, flowId, ++level, ExamTaskFlowTypeEnum.NEW, sysUser.getId());
+                this.save(tExamTaskFlowSub);
             }
         } catch (Exception e) {
             log.error(SystemConstant.LOG_ERROR, e);

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

@@ -144,7 +144,10 @@ public class TFCustomFlowController {
     @Transactional
     public Result testStart(@ApiParam(value = "命题任务id", required = true) @RequestParam String taskId,
                             @ApiParam(value = "命题老师id", required = true) @RequestParam String approveId) {
-        activitiService.customFlowStart(SystemConstant.convertIdToLong(taskId), SystemConstant.convertIdToLong(approveId));
+        Map<String, Object> map = new HashMap<>();
+        map.computeIfAbsent(SystemConstant.EXAM_TASK_ID, v -> SystemConstant.convertIdToLong(taskId));
+        map.computeIfAbsent(SystemConstant.APPROVE_ID, v -> SystemConstant.convertIdToLong(approveId));
+        activitiService.customFlowStart(map);
         return ResultUtil.ok(true);
     }