فهرست منبع

自定义流程接口-BUG修复

wangliang 3 سال پیش
والد
کامیت
5fa6ca79eb

+ 2 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/bean/dto/ExamTaskDetailCardDto.java

@@ -2,6 +2,8 @@ package com.qmth.distributed.print.business.bean.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.List;
+
 /**
  * @Date: 2021/3/31.
  */

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

@@ -1066,9 +1066,8 @@ public class ActivitiServiceImpl implements ActivitiService {
         if (Objects.nonNull(task) && Objects.nonNull(task.getAssignee()) && Objects.equals(task.getAssignee(), userId)) {
             throw ExceptionResultEnum.ERROR.exception("不能转给自己");
         }
-        Task taskUser = taskService.createTaskQuery().taskId(taskId).taskAssignee(userId).singleResult();
-        Task taskCandidateUser = taskService.createTaskQuery().taskId(taskId).taskCandidateUser(userId).singleResult();
-        if (Objects.nonNull(taskUser) || Objects.nonNull(taskCandidateUser)) {
+        Task taskUser = taskService.createTaskQuery().taskId(taskId).taskCandidateOrAssigned(userId).singleResult();
+        if (Objects.nonNull(taskUser)) {
             throw ExceptionResultEnum.ERROR.exception("该审批人已有审批权限,无需流转");
         }
 
@@ -2233,6 +2232,7 @@ public class ActivitiServiceImpl implements ActivitiService {
      */
     @Override
     public TaskInfoResult getTaskInfo(Long taskId) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         Task task = taskService.createTaskQuery().taskId(String.valueOf(taskId)).singleResult();
         Optional.ofNullable(task).orElseThrow(() -> ExceptionResultEnum.ERROR.exception("流程任务为空或该流程已被他人审核,请刷新再试!"));
         Long flowId = SystemConstant.convertIdToLong(task.getProcessInstanceId());
@@ -2246,6 +2246,15 @@ public class ActivitiServiceImpl implements ActivitiService {
         Gson gson = new Gson();
         FlowTaskResult currFlowTaskResult = gson.fromJson(gson.toJson(setupMap.get(task.getTaskDefinitionKey())), FlowTaskResult.class);
 
+        //获取当前流程节点
+        TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowId, sysUser.getSchoolId());
+
+        //获取流程待审批人
+        Map<String, CustomFlowVarDto> agginessMap = (Map<String, CustomFlowVarDto>) flowProcessVarMap.get(SystemConstant.AGGINESS_MAP);
+        if (Objects.nonNull(tfFlowApprove.getTransferAssignee())) {
+            agginessMap = JacksonUtil.readJson(tfFlowApprove.getTransferAssignee(), Map.class);
+        }
+
         TaskInfoResult taskInfoResult = new TaskInfoResult(flowId, task.getName(), task.getTaskDefinitionKey(), currFlowTaskResult.getSetup());
         List<FlowTaskResult> flowTaskResultList = null;
         if (Objects.nonNull(approveRejectMap.get(task.getTaskDefinitionKey()))) {
@@ -2253,8 +2262,10 @@ public class ActivitiServiceImpl implements ActivitiService {
             List<CustomFlowSequenceDto> customFlowSequenceDtoList = gson.fromJson(gson.toJson(approveRejectMap.get(task.getTaskDefinitionKey())), new TypeToken<List<CustomFlowSequenceDto>>() {
             }.getType());
             for (CustomFlowSequenceDto c : customFlowSequenceDtoList) {
+                CustomFlowVarDto customFlowVarDto = gson.fromJson(gson.toJson(agginessMap.get(c.getAfterFlowTaskId())), CustomFlowVarDto.class);
                 FlowTaskResult flowTaskResult = gson.fromJson(gson.toJson(setupMap.get(c.getAfterFlowTaskId())), FlowTaskResult.class);
                 flowTaskResult.setFlowId(flowId);
+                flowTaskResult.setApproveUserNames(customFlowVarDto.getApproveUserNames());
                 flowTaskResultList.add(flowTaskResult);
             }
         }
@@ -2316,10 +2327,8 @@ public class ActivitiServiceImpl implements ActivitiService {
                     if (Objects.nonNull(customFlowVarDto.getMultipleUserApproveType()) && customFlowVarDto.getMultipleUserApproveType() == CustomFlowMultipleUserApproveTypeEnum.ORDER) {
                         String[] strs = nextApproveUsers.split(",");
                         nextApproveUsers = strs[0];
-                        currFlowTaskResult.setApproveUserNames(nextApproveUsers);
-                    } else {
-                        currFlowTaskResult.setApproveUserNames(customFlowVarDto.getApproveUserNames());
                     }
+                    currFlowTaskResult.setApproveUserNames(nextApproveUsers);
                     return new FlowViewResult(customFlowVarDto.getMultipleUserApproveType(), currFlowTaskResult, flowViewTaskResultList);
                 }
             }

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

@@ -23,7 +23,10 @@ import com.qmth.teachcloud.common.contant.SystemConstant;
 import com.qmth.teachcloud.common.entity.BasicAttachment;
 import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.entity.TBTask;
-import com.qmth.teachcloud.common.enums.*;
+import com.qmth.teachcloud.common.enums.ExceptionResultEnum;
+import com.qmth.teachcloud.common.enums.FlowApprovePassEnum;
+import com.qmth.teachcloud.common.enums.TaskTypeEnum;
+import com.qmth.teachcloud.common.enums.UploadFileEnum;
 import com.qmth.teachcloud.common.service.BasicAttachmentService;
 import com.qmth.teachcloud.common.service.BasicStudentService;
 import com.qmth.teachcloud.common.util.Result;
@@ -102,17 +105,18 @@ public class ExamTaskController {
 
     /**
      * 命题任务管理-查询
-     * @param enable 正常/禁用
-     * @param status 状态
-     * @param cardRuleId 题卡规则ID
-     * @param courseCode 课程代码
+     *
+     * @param enable      正常/禁用
+     * @param status      状态
+     * @param cardRuleId  题卡规则ID
+     * @param courseCode  课程代码
      * @param paperNumber 试卷编号
-     * @param startTime 开始时间
-     * @param endTime 结束时间
-     * @param userName 命题老师名称
-     * @param createName 创建人名称
-     * @param pageNumber 分页参数
-     * @param pageSize 分页参数
+     * @param startTime   开始时间
+     * @param endTime     结束时间
+     * @param userName    命题老师名称
+     * @param createName  创建人名称
+     * @param pageNumber  分页参数
+     * @param pageSize    分页参数
      * @return Result
      */
     @ApiOperation(value = "命题任务管理-查询")
@@ -131,12 +135,11 @@ public class ExamTaskController {
                        @RequestParam @Min(SystemConstant.PAGE_NUMBER_MIN) Integer pageNumber,
                        @RequestParam @Min(SystemConstant.PAGE_SIZE_MIN) @Max(SystemConstant.PAGE_SIZE_MAX) Integer pageSize) {
 
-        return ResultUtil.ok(examTaskService.list(SystemConstant.convertIdToLong(semesterId),SystemConstant.convertIdToLong(examId),enable, status, SystemConstant.convertIdToLong(cardRuleId), courseCode, paperNumber, startTime, endTime, userName, createName, pageNumber, pageSize));
+        return ResultUtil.ok(examTaskService.list(SystemConstant.convertIdToLong(semesterId), SystemConstant.convertIdToLong(examId), enable, status, SystemConstant.convertIdToLong(cardRuleId), courseCode, paperNumber, startTime, endTime, userName, createName, pageNumber, pageSize));
     }
 
     /**
      * 试卷编号模糊查询
-     *
      */
     @ApiOperation(value = "试卷编号模糊查询")
     @RequestMapping(value = "/paper_number_query", method = RequestMethod.POST)
@@ -152,7 +155,6 @@ public class ExamTaskController {
 
     /**
      * 命题老师模糊查询
-     *
      */
     @ApiOperation(value = "命题老师模糊查询")
     @RequestMapping(value = "/user_query", method = RequestMethod.POST)
@@ -162,7 +164,6 @@ public class ExamTaskController {
 
     /**
      * 命题任务管理-更改/指派命题老师
-     *
      */
     @ApiOperation(value = "命题任务管理-更改/指派命题老师")
     @RequestMapping(value = "/assign_user", method = RequestMethod.POST)
@@ -172,7 +173,6 @@ public class ExamTaskController {
 
     /**
      * 命题任务管理-启用/禁用
-     *
      */
     @ApiOperation(value = "命题任务管理-启用/禁用")
     @RequestMapping(value = "/enable", method = RequestMethod.POST)
@@ -182,7 +182,6 @@ public class ExamTaskController {
 
     /**
      * 命题任务管理-新建命题任务
-     *
      */
     @ApiOperation(value = "命题任务管理-新建命题任务")
     @RequestMapping(value = "/save", method = RequestMethod.POST)
@@ -197,7 +196,6 @@ public class ExamTaskController {
 
     /**
      * 命题任务管理-文件导入
-     *
      */
     @ApiOperation(value = "命题任务管理-文件导入")
     @RequestMapping(value = "/import", method = RequestMethod.POST)
@@ -226,7 +224,6 @@ public class ExamTaskController {
 
     /**
      * 命题任务管理-批量保存命题任务
-     *
      */
     @ApiOperation(value = "命题任务管理-批量保存命题任务")
     @RequestMapping(value = "/save_batch", method = RequestMethod.POST)
@@ -242,7 +239,6 @@ public class ExamTaskController {
 
     /**
      * 审核历史
-     *
      */
     @ApiOperation(value = "审核历史")
     @RequestMapping(value = "/review_list", method = RequestMethod.POST)
@@ -301,14 +297,17 @@ public class ExamTaskController {
     @RequestMapping(value = "/apply_get_one", method = RequestMethod.POST)
     public Result applyGetOne(@RequestParam(value = "examTaskId") Long examTaskId,
                               @RequestParam(value = "source", required = false) String source) {
+        SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
         ExamTaskDetailCardDto detail = examTaskService.applyGetOne(examTaskId, source);
         if (Objects.nonNull(detail) && Objects.nonNull(detail.getFlowId())) {
-            Task task = taskService.createTaskQuery().processInstanceId(detail.getFlowId()).singleResult();
+            Task task = taskService.createTaskQuery().processInstanceId(detail.getFlowId())
+                    .taskCandidateOrAssigned(String.valueOf(sysUser.getId())).singleResult();
             if (Objects.nonNull(task)) {
                 detail.setFlowTaskId(task.getId());
             } else {
                 TFFlowJoin tfFlowJoin = tfFlowJoinService.findByFlowLevel(Long.parseLong(detail.getExamTaskId()));
-                task = taskService.createTaskQuery().processInstanceId(String.valueOf(tfFlowJoin.getFlowId())).singleResult();
+                task = taskService.createTaskQuery().processInstanceId(detail.getFlowId())
+                        .taskCandidateOrAssigned(String.valueOf(sysUser.getId())).singleResult();
                 if (Objects.nonNull(task)) {
                     detail.setSubFlowReject(true);
                     detail.setFlowTaskId(task.getId());
@@ -392,17 +391,17 @@ public class ExamTaskController {
     /**
      * 入库审核-查询-未审核
      *
-     * @param courseCode 课程代码
-     * @param paperNumber 试卷编号
-     * @param userId 命题老师ID
-     * @param cardRuleId 题卡规则ID
-     * @param startTime 开始时间
-     * @param endTime 结束时间
+     * @param courseCode      课程代码
+     * @param paperNumber     试卷编号
+     * @param userId          命题老师ID
+     * @param cardRuleId      题卡规则ID
+     * @param startTime       开始时间
+     * @param endTime         结束时间
      * @param startCreateTime 申请时间-起始
      * @param endCreateTime   申请时间-终止
      * @param createName      创建人
-     * @param pageNumber 分页参数
-     * @param pageSize 分页参数
+     * @param pageNumber      分页参数
+     * @param pageSize        分页参数
      * @return Result
      */
     @ApiOperation(value = "入库审核-查询-已审核")
@@ -462,24 +461,28 @@ public class ExamTaskController {
         if (!CollectionUtils.isEmpty(examTaskIdList)) {
             for (Long examTaskId : examTaskIdList) {
                 ExamTask examTask = examTaskService.getById(examTaskId);
-                Task task = taskService.createTaskQuery().processInstanceId(String.valueOf(examTask.getFlowId())).singleResult();
-                Map<String, Object> map = new HashMap<>();
-                map.computeIfAbsent(SystemConstant.FLOW_TASK_ID, v -> task.getId());
-                map.computeIfAbsent(SystemConstant.APPROVE_OPERATION, v -> FlowApprovePassEnum.PASS);
-                Map<String, Object> objectMap = activitiService.taskApprove(map);
-                if (Objects.nonNull(objectMap)) {
-                    TFFlowApprove tfFlowApprove = (TFFlowApprove) objectMap.get("tfFlowApprove");
-                    //审核通过,生成pdf
-                    if (Objects.nonNull(tfFlowApprove) && FlowApproveSetupEnum.FINISH.getSetup() == tfFlowApprove.getSetup()) {
-//                        ExamTask examTask = (ExamTask) objectMap.get("examTask");
-                        SysUser sysUser = (SysUser) objectMap.get("sysUser");
-                        try {
-                            printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
-                        } catch (IOException e) {
-                            throw ExceptionResultEnum.ERROR.exception("生成pdf失败");
-                        }
+                List<Task> taskList = taskService.createTaskQuery().processInstanceId(String.valueOf(examTask.getFlowId())).list();
+                if (Objects.nonNull(taskList) && taskList.size() > 0) {
+                    for (Task task : taskList) {
+                        Map<String, Object> map = new HashMap<>();
+                        map.computeIfAbsent(SystemConstant.FLOW_TASK_ID, v -> task.getId());
+                        map.computeIfAbsent(SystemConstant.APPROVE_OPERATION, v -> FlowApprovePassEnum.PASS);
+                        Map<String, Object> objectMap = activitiService.taskApprove(map);
                     }
                 }
+//                if (Objects.nonNull(objectMap)) {
+//                    TFFlowApprove tfFlowApprove = (TFFlowApprove) objectMap.get("tfFlowApprove");
+//                    //审核通过,生成pdf
+//                    if (Objects.nonNull(tfFlowApprove) && FlowApproveSetupEnum.FINISH.getSetup() == tfFlowApprove.getSetup()) {
+////                        ExamTask examTask = (ExamTask) objectMap.get("examTask");
+//                        SysUser sysUser = (SysUser) objectMap.get("sysUser");
+//                        try {
+//                            printCommonService.checkData(examTask.getSchoolId(), examTask.getCourseCode(), examTask.getPaperNumber(), sysUser);
+//                        } catch (IOException e) {
+//                            throw ExceptionResultEnum.ERROR.exception("生成pdf失败");
+//                        }
+//                    }
+//                }
             }
         }
         /*SysUser sysUser = (SysUser) ServletUtil.getRequestUser();
@@ -512,12 +515,12 @@ public class ExamTaskController {
     /**
      * 卷库查询
      *
-     * @param courseCode 课程代码
+     * @param courseCode  课程代码
      * @param paperNumber 试卷编号
-     * @param startTime 开始时间
-     * @param endTime 结束时间
-     * @param pageNumber 分页参数
-     * @param pageSize 分页参数
+     * @param startTime   开始时间
+     * @param endTime     结束时间
+     * @param pageNumber  分页参数
+     * @param pageSize    分页参数
      * @return Result
      */
     @ApiOperation(value = "卷库查询")