feat: scc流程各部门分发驳回流转

This commit is contained in:
2024-07-12 17:26:25 +08:00
parent b281af6a89
commit bf8d6f1968
3 changed files with 26 additions and 9 deletions
@@ -9,4 +9,5 @@ public class ActivitiCommon {
public static final String MAIN_INSTANCE_ID = "mainInstanceId";
public static final String PARENT_TASK_ID = "parentTaskId";
public static final String DISTRIBUTE = "distribute";
public static final String UNALLOCATED_QUANTITY = "unallocatedQuantity";
}
@@ -12,6 +12,10 @@ public class ProcessStandardComplianceCheckConstants {
public static final String DEPT_USER = "deptUser";
/** 主排查人 */
public static final String MAIN_CHECK_USER = "mainCheckUser";
/** 设计师 */
public static final String DESIGNER = "designer";
/** 设计师列表 */
public static final String DESIGNER_LIST = "designerList";
/** 会签人员列表 */
public static final String COUNTERSIGN_USER_LIST = "countersignUserList";
/** 设计工程师科室经理审核 */
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.util.MinioUtil;
import com.jero.modules.activiti.common.ActivitiCommon;
@@ -12,7 +13,6 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.demo.common.ProcessDemoCommon;
import com.jero.modules.activiti.process.demo.vo.ProcessDemoVO;
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
@@ -54,6 +54,7 @@ import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import static com.jero.modules.activiti.common.ActivitiCommon.DISTRIBUTE;
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
@@ -240,6 +241,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
actFlowCommonService.updateApprovalInfo(processTask, taskId);
String curUserId = UserUtils.getUserId();
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo();
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
switch (xmlNodeId) {
case DEPT_USER_DISTRIBUTE:
// 设置主排查人
@@ -248,6 +251,17 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
break;
case MAIN_CHECK_USER_DISTRIBUTE:
// 驳回
boolean distributeFlag = businessInfoDTO.getStandardInfo().getDistributeFlag().equals(YesOrNoEnum.YES.getValue());
int unallocatedQuantity = 0;
if (distributeFlag) {
// 分发需要设置未分发数据条数
unallocatedQuantity = (int) detailInfoList.stream().filter(e -> StrUtil.isBlank(e.getDesignEngineer())).count();
// 去重找到所有设计师
List<String> designEngineerList = detailInfoList.stream().map(ProcessStandardComplianceCheckDetail::getDesignEngineer).distinct().collect(Collectors.toList());
runtimeService.setVariable(processInstanceId, DESIGNER_LIST, designEngineerList);
}
runtimeService.setVariable(processInstanceId, DISTRIBUTE, distributeFlag);
runtimeService.setVariable(processInstanceId, UNALLOCATED_QUANTITY, unallocatedQuantity);
break;
}
// 审批节点
@@ -321,15 +335,15 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
Map<String, Object> variables = new HashMap<>();
variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId);
variables.put(ActivitiCommon.PARENT_TASK_ID, taskId);
String mainCheckUser = (String) delegateTask.getVariable(MAIN_CHECK_USER);
switch (taskDefinitionKey) {
//主排查人分批下发后自动任务
case AUTO_TASK_1:
case AUTO_TASK_3:
// TODO
List<String> interpreterList = (List<String>) delegateTask.getVariable(ProcessDemoCommon.INTERPRETER);
for (String interpreter : interpreterList) {
userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpreter);
List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST);
for (String designer : designerList) {
userInfoMap.put(DESIGNER, designer);
userInfoMap.put(MAIN_CHECK_USER, mainCheckUser);
// 流程定义id
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE);
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
@@ -343,9 +357,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
break;
//设计工程师驳回后自动任务
case AUTO_TASK_2:
// TODO
String mainInterpreter = (String) delegateTask.getVariable(ProcessDemoCommon.MAIN_INTERPRETER);
userInfoMap.put(ProcessDemoCommon.MAIN_INTERPRETER, mainInterpreter);
userInfoMap.put(MAIN_CHECK_USER, mainCheckUser);
// 流程定义id
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE);
basicProcessInfoDTO.setProcessDefinitionId(definitionId);