feat: scc流程各部门分发驳回流转
This commit is contained in:
@@ -9,4 +9,5 @@ public class ActivitiCommon {
|
|||||||
public static final String MAIN_INSTANCE_ID = "mainInstanceId";
|
public static final String MAIN_INSTANCE_ID = "mainInstanceId";
|
||||||
public static final String PARENT_TASK_ID = "parentTaskId";
|
public static final String PARENT_TASK_ID = "parentTaskId";
|
||||||
public static final String DISTRIBUTE = "distribute";
|
public static final String DISTRIBUTE = "distribute";
|
||||||
|
public static final String UNALLOCATED_QUANTITY = "unallocatedQuantity";
|
||||||
}
|
}
|
||||||
|
|||||||
+4
@@ -12,6 +12,10 @@ public class ProcessStandardComplianceCheckConstants {
|
|||||||
public static final String DEPT_USER = "deptUser";
|
public static final String DEPT_USER = "deptUser";
|
||||||
/** 主排查人 */
|
/** 主排查人 */
|
||||||
public static final String MAIN_CHECK_USER = "mainCheckUser";
|
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";
|
public static final String COUNTERSIGN_USER_LIST = "countersignUserList";
|
||||||
/** 设计工程师科室经理审核 */
|
/** 设计工程师科室经理审核 */
|
||||||
|
|||||||
+21
-9
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil;
|
|||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
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.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.common.util.MinioUtil;
|
import com.jero.common.util.MinioUtil;
|
||||||
import com.jero.modules.activiti.common.ActivitiCommon;
|
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.enums.ProcessTypeEnum;
|
||||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
||||||
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
|
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.demo.vo.ProcessDemoVO;
|
||||||
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
|
||||||
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
|
||||||
@@ -54,6 +54,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
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.DISTRIBUTE;
|
||||||
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
|
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
|
||||||
@@ -240,6 +241,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
actFlowCommonService.updateApprovalInfo(processTask, taskId);
|
||||||
String curUserId = UserUtils.getUserId();
|
String curUserId = UserUtils.getUserId();
|
||||||
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
ProcessSccVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||||
|
ProcessStandardComplianceCheck standardInfo = businessInfoDTO.getStandardInfo();
|
||||||
|
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
|
||||||
switch (xmlNodeId) {
|
switch (xmlNodeId) {
|
||||||
case DEPT_USER_DISTRIBUTE:
|
case DEPT_USER_DISTRIBUTE:
|
||||||
// 设置主排查人
|
// 设置主排查人
|
||||||
@@ -248,6 +251,17 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
break;
|
break;
|
||||||
case MAIN_CHECK_USER_DISTRIBUTE:
|
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;
|
break;
|
||||||
}
|
}
|
||||||
// 审批节点
|
// 审批节点
|
||||||
@@ -321,15 +335,15 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
Map<String, Object> variables = new HashMap<>();
|
Map<String, Object> variables = new HashMap<>();
|
||||||
variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId);
|
variables.put(ActivitiCommon.MAIN_INSTANCE_ID, mainInstanceId != null ? mainInstanceId : processInstanceId);
|
||||||
variables.put(ActivitiCommon.PARENT_TASK_ID, taskId);
|
variables.put(ActivitiCommon.PARENT_TASK_ID, taskId);
|
||||||
|
String mainCheckUser = (String) delegateTask.getVariable(MAIN_CHECK_USER);
|
||||||
switch (taskDefinitionKey) {
|
switch (taskDefinitionKey) {
|
||||||
//主排查人分批下发后自动任务
|
//主排查人分批下发后自动任务
|
||||||
case AUTO_TASK_1:
|
case AUTO_TASK_1:
|
||||||
case AUTO_TASK_3:
|
case AUTO_TASK_3:
|
||||||
// TODO
|
List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST);
|
||||||
List<String> interpreterList = (List<String>) delegateTask.getVariable(ProcessDemoCommon.INTERPRETER);
|
for (String designer : designerList) {
|
||||||
for (String interpreter : interpreterList) {
|
userInfoMap.put(DESIGNER, designer);
|
||||||
userInfoMap.put(ProcessDemoCommon.INTERPRETER, interpreter);
|
userInfoMap.put(MAIN_CHECK_USER, mainCheckUser);
|
||||||
// 流程定义id
|
// 流程定义id
|
||||||
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE);
|
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_DISTRIBUTE);
|
||||||
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
||||||
@@ -343,9 +357,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
|
|||||||
break;
|
break;
|
||||||
//设计工程师驳回后自动任务
|
//设计工程师驳回后自动任务
|
||||||
case AUTO_TASK_2:
|
case AUTO_TASK_2:
|
||||||
// TODO
|
userInfoMap.put(MAIN_CHECK_USER, mainCheckUser);
|
||||||
String mainInterpreter = (String) delegateTask.getVariable(ProcessDemoCommon.MAIN_INTERPRETER);
|
|
||||||
userInfoMap.put(ProcessDemoCommon.MAIN_INTERPRETER, mainInterpreter);
|
|
||||||
// 流程定义id
|
// 流程定义id
|
||||||
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE);
|
String definitionId = processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.STANDARD_COMPLIANCE_CHECK_REDISTRIBUTE);
|
||||||
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
basicProcessInfoDTO.setProcessDefinitionId(definitionId);
|
||||||
|
|||||||
Reference in New Issue
Block a user