Bladeren bron

广药子流程update

wangliang 3 jaren geleden
bovenliggende
commit
d61ff73f5e

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

@@ -5,6 +5,7 @@ import com.google.gson.Gson;
 import com.qmth.distributed.print.business.entity.ExamTask;
 import com.qmth.distributed.print.business.entity.TFFlowApprove;
 import com.qmth.distributed.print.business.enums.MessageEnum;
+import com.qmth.distributed.print.business.service.ActivitiService;
 import com.qmth.distributed.print.business.service.BasicMessageService;
 import com.qmth.distributed.print.business.service.ExamTaskService;
 import com.qmth.distributed.print.business.service.TFFlowApproveService;
@@ -23,7 +24,6 @@ import org.activiti.engine.delegate.TaskListener;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.util.Arrays;
 import java.util.List;
 import java.util.Objects;
 import java.util.stream.Collectors;
@@ -49,6 +49,8 @@ public class PrintApproveSubListener implements TaskListener {
         ExamTaskService examTaskService = SpringContextHolder.getBean(ExamTaskService.class);
         BasicMessageService basicMessageService = SpringContextHolder.getBean(BasicMessageService.class);
         TFFlowApproveService tfFlowApproveService = SpringContextHolder.getBean(TFFlowApproveService.class);
+        ActivitiService activitiService = SpringContextHolder.getBean(ActivitiService.class);
+
         List<Long> approveUserIds = (List<Long>) delegateTask.getVariable(SystemConstant.APPROVE_PRINT_USER_IDS);
         String flowId = delegateTask.getProcessInstanceId();
         ExamTask examTask = examTaskService.findByFlowId(flowId);
@@ -63,13 +65,13 @@ public class PrintApproveSubListener implements TaskListener {
             if (Objects.isNull(sysUser.getOrgId())) {
                 throw ExceptionResultEnum.ERROR.exception("审批人机构为空");
             }
-            delegateTask.addCandidateUsers(Arrays.asList("190416459858444288", "190416551696924672"));
-//            sysUserList = sysUserService.findByPresidentApprove(Arrays.asList(sysUser.getOrgId()), null);
-//            if (Objects.nonNull(sysUserList) && sysUserList.size() > 0) {
-//                List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
-//                //添加或签的人员,一人通过即可进入下一环节
-//                delegateTask.addCandidateUsers(ids);
-//            }
+            sysUserList = activitiService.findByPrintApprove(flowId);
+            if (Objects.nonNull(sysUserList) && sysUserList.size() > 0) {
+                List<String> ids = sysUserList.stream().map(s -> String.valueOf(s.getId())).collect(Collectors.toList());
+                //添加或签的人员,一人通过即可进入下一环节
+                delegateTask.addCandidateUsers(ids);
+            }
+//            delegateTask.addCandidateUsers(Arrays.asList("190416459858444288", "190416551696924672"));
         }
         // 发送审核短信
         TFFlowApprove tfFlowApprove = tfFlowApproveService.findByFlowId(flowId);

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

@@ -2,6 +2,7 @@ package com.qmth.distributed.print.business.service;
 
 import com.qmth.distributed.print.business.bean.result.FlowTaskApprovePeopleAllResult;
 import com.qmth.distributed.print.business.bean.result.FlowTaskResult;
+import com.qmth.teachcloud.common.bean.params.ApproveUserResult;
 import org.activiti.engine.runtime.ProcessInstance;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -112,4 +113,12 @@ public interface ActivitiService {
      * @return
      */
     public FlowTaskApprovePeopleAllResult taskApproverNextPeople(String courseCode, String taskId);
+
+    /**
+     * 获取印刷员审批人
+     *
+     * @param flowId
+     * @return
+     */
+    public List<ApproveUserResult> findByPrintApprove(String flowId);
 }

+ 43 - 0
distributed-print-business/src/main/java/com/qmth/distributed/print/business/service/impl/ActivitiServiceImpl.java

@@ -1,8 +1,11 @@
 package com.qmth.distributed.print.business.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.common.reflect.TypeToken;
+import com.google.gson.Gson;
 import com.qmth.boot.api.exception.ApiException;
 import com.qmth.distributed.print.business.bean.result.FlowApproveResult;
 import com.qmth.distributed.print.business.bean.result.FlowTaskApprovePeopleAllResult;
@@ -20,6 +23,7 @@ import com.qmth.teachcloud.common.entity.SysUser;
 import com.qmth.teachcloud.common.enums.*;
 import com.qmth.teachcloud.common.service.SysOrgService;
 import com.qmth.teachcloud.common.service.SysUserService;
+import com.qmth.teachcloud.common.util.JacksonUtil;
 import com.qmth.teachcloud.common.util.RedisUtil;
 import com.qmth.teachcloud.common.util.ResultUtil;
 import com.qmth.teachcloud.common.util.ServletUtil;
@@ -93,6 +97,12 @@ public class ActivitiServiceImpl implements ActivitiService {
     @Resource
     SysOrgService sysOrgService;
 
+    @Resource
+    ExamDetailCourseService examDetailCourseService;
+
+    @Resource
+    ExamDetailService examDetailService;
+
     /**
      * 注册流程
      *
@@ -831,6 +841,39 @@ public class ActivitiServiceImpl implements ActivitiService {
         return flowTaskApprovePeopleAllResult;
     }
 
+    /**
+     * 获取印刷员审批人
+     *
+     * @param flowId
+     * @return
+     */
+    @Override
+    public List<ApproveUserResult> findByPrintApprove(String flowId) {
+        ExamTask examTask = examTaskService.findByFlowId(flowId);
+        QueryWrapper<ExamDetailCourse> examDetailCourseQueryWrapper = new QueryWrapper<>();
+        examDetailCourseQueryWrapper.lambda().eq(ExamDetailCourse::getSchoolId, examTask.getSchoolId())
+                .eq(ExamDetailCourse::getCourseCode, examTask.getCourseCode())
+                .eq(ExamDetailCourse::getPaperNumber, examTask.getPaperNumber());
+        List<ExamDetailCourse> examDetailCourseList = examDetailCourseService.list(examDetailCourseQueryWrapper);
+
+        List<ApproveUserResult> approveUserResultList = null;
+        if (Objects.nonNull(examDetailCourseList) && examDetailCourseList.size() > 0) {
+            Set<Long> examDetailIdSet = examDetailCourseList.stream().map(s -> s.getExamDetailId()).collect(Collectors.toSet());
+            QueryWrapper<ExamDetail> examDetailQueryWrapper = new QueryWrapper<>();
+            examDetailQueryWrapper.lambda().in(ExamDetail::getId, examDetailIdSet);
+            List<ExamDetail> examDetailList = examDetailService.list(examDetailQueryWrapper);
+            if (Objects.nonNull(examDetailList) && examDetailList.size() > 0) {
+                Set<Long> printHouseIdSet = examDetailList.stream().map(s -> s.getPrintHouseId()).collect(Collectors.toSet());
+                QueryWrapper<SysUser> sysUserQueryWrapper = new QueryWrapper<>();
+                sysUserQueryWrapper.lambda().in(SysUser::getOrgId, printHouseIdSet);
+                List<SysUser> sysUserList = sysUserService.list(sysUserQueryWrapper);
+                approveUserResultList = new Gson().fromJson(JacksonUtil.parseJson(sysUserList), new TypeToken<List<ApproveUserResult>>() {
+                }.getType());
+            }
+        }
+        return approveUserResultList;
+    }
+
     /**
      * 流程提交校验
      *