feat: scc流程设计工程师驳回

This commit is contained in:
2024-07-17 11:56:18 +08:00
parent 350565795d
commit 77eff94e45
2 changed files with 33 additions and 31 deletions
@@ -345,18 +345,7 @@ public class ActFlowCommonService {
return processSnapshotService.getOne(draftWrapper); return processSnapshotService.getOne(draftWrapper);
} }
public String getParentTaskId(String taskId) { public BasicProcessInfoDTO getProcessInfo(String processInstanceId) {
ProcessApprovalRecord processApprovalRecord = processApprovalRecordService.getByTaskId(taskId);
String parentTaskId = processApprovalRecord.getParentTaskId();
if (StrUtil.isBlank(parentTaskId)) {
return taskId;
}
return parentTaskId;
}
public BasicProcessInfoDTO getProcessInfo(String taskId) {
String finalTaskId = this.getParentTaskId(taskId);
String processInstanceId = this.getProcessInstanceIdByTaskId(finalTaskId);
// 获取流程通用数据 // 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId); ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO(); BasicProcessInfoDTO basicProcessInfoDTO = new BasicProcessInfoDTO();
@@ -9,7 +9,6 @@ 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;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord; 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;
@@ -55,8 +54,8 @@ import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static com.jero.modules.activiti.common.ActivitiCommon.*; import static com.jero.modules.activiti.common.ActivitiCommon.*;
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.UNALLOCATED_QUANTITY; import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.UNALLOCATED_QUANTITY;
import static com.jero.modules.activiti.process.standardComplianceCheck.common.ProcessStandardComplianceCheckConstants.*;
/** /**
* @author ThinkBook * @author ThinkBook
@@ -362,16 +361,15 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
} }
ProcessInfoVO<ProcessSccVO> result = new ProcessInfoVO<>(); ProcessInfoVO<ProcessSccVO> result = new ProcessInfoVO<>();
ProcessSccVO processSccVO = new ProcessSccVO(); ProcessSccVO processSccVO = new ProcessSccVO();
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(taskId));
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
// 使用流程引擎根据taskId找到流程实例Id // 使用流程引擎根据taskId找到流程实例Id
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
String mainInstanceId = (String) taskService.getVariable(taskId, MAIN_INSTANCE_ID);
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(mainInstanceId));
// 获取流程通用数据 // 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId); ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
// 获取当前流程数据 // 获取当前流程数据
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId); queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, mainInstanceId);
ProcessStandardComplianceCheck scc = getOne(queryWrapper); ProcessStandardComplianceCheck scc = getOne(queryWrapper);
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>();
List<ProcessStandardComplianceCheckDetail> detailList = null; List<ProcessStandardComplianceCheckDetail> detailList = null;
@@ -379,9 +377,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId()); detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId());
detailList = sccDetailService.list(detailQueryWrapper); detailList = sccDetailService.list(detailQueryWrapper);
} }
boolean distributeFlag = (boolean) runtimeService.getVariable(processInstanceId, DISTRIBUTE); Object distributeFlag = runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
if (distributeFlag != null) {
scc.setDistributeFlag(distributeFlag ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue()); scc.setDistributeFlag((boolean)distributeFlag ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue());
}
processSccVO.setStandardInfo(scc); processSccVO.setStandardInfo(scc);
String xmlNodeId = record.getNodeId(); String xmlNodeId = record.getNodeId();
// 设置流程信息 // 设置流程信息
@@ -403,23 +402,28 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
break; break;
case DESIGNER_ENGINEER_EVALUATION: case DESIGNER_ENGINEER_EVALUATION:
case MAIN_CHECK_USER_APPROVAL: case MAIN_CHECK_USER_APPROVAL:
this.setDesignerEngineerEvaluationHandleData(processSccVO, taskId); this.setDesignerEngineerEvaluationHandleData(processSccVO, mainInstanceId, processInstanceId);
break;
case MAIN_CHECK_USER_REDISTRIBUTE:
detailList = detailList.stream().filter(detail ->
detail.getProcessInstanceId().equals(processInstanceId)).collect(Collectors.toList());
processSccVO.setDetailInfoList(detailList);
break; break;
} }
result.setBusinessInfoDTO(processSccVO); result.setBusinessInfoDTO(processSccVO);
return result; return result;
} }
private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String taskId) { private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String mainInstanceId, String processInstanceId) {
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId); LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, mainInstanceId);
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
processSccVO.setStandardInfo(scc);
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>();
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getProcessInstanceId, processInstanceId); detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getProcessInstanceId, processInstanceId);
List<ProcessStandardComplianceCheckDetail> detailList = sccDetailService.list(detailQueryWrapper); List<ProcessStandardComplianceCheckDetail> detailList = sccDetailService.list(detailQueryWrapper);
processSccVO.setDetailInfoList(detailList); processSccVO.setDetailInfoList(detailList);
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardComplianceCheck::getId, detailList.get(0).getCheckId());
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
processSccVO.setStandardInfo(scc);
} }
@Override @Override
@@ -433,8 +437,12 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
String mainInstanceId = (String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID); String mainInstanceId = (String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID);
//保存父子关联信息 //保存父子关联信息
Map<String, Object> variables = new HashMap<>(); Map<String, Object> variables = new HashMap<>();
String checkId = (String) delegateTask.getVariable(CHECK_ID);
String batchId = (String) delegateTask.getVariable(BATCH_ID);
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);
variables.put(CHECK_ID, checkId);
variables.put(BATCH_ID, batchId);
String mainCheckUser = (String) delegateTask.getVariable(MAIN_CHECK_USER); String mainCheckUser = (String) delegateTask.getVariable(MAIN_CHECK_USER);
LambdaUpdateWrapper<ProcessStandardComplianceCheckDetail> wrapper = new LambdaUpdateWrapper<>(); LambdaUpdateWrapper<ProcessStandardComplianceCheckDetail> wrapper = new LambdaUpdateWrapper<>();
switch (taskDefinitionKey) { switch (taskDefinitionKey) {
@@ -442,8 +450,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
case AUTO_TASK_1: case AUTO_TASK_1:
case AUTO_TASK_3: case AUTO_TASK_3:
List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST); List<String> designerList = (List<String>) delegateTask.getVariable(DESIGNER_LIST);
String checkId = (String) delegateTask.getVariable(CHECK_ID);
String batchId = (String) delegateTask.getVariable(BATCH_ID);
for (String designer : designerList) { for (String designer : designerList) {
userInfoMap.put(DESIGNER, designer); userInfoMap.put(DESIGNER, designer);
userInfoMap.put(MAIN_CHECK_USER, mainCheckUser); userInfoMap.put(MAIN_CHECK_USER, mainCheckUser);
@@ -476,7 +482,14 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
processInfoVO.setProcessVariables(variables); processInfoVO.setProcessVariables(variables);
processInfoVO.setUserInfoMap(userInfoMap); processInfoVO.setUserInfoMap(userInfoMap);
processHandleService.startChildrenProcess(processInfoVO); String childPrcId = processHandleService.startChildrenProcess(processInfoVO);
// 将数据设为新的流程id
// 更新子表数据,将数据绑定给子流程
wrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, checkId);
wrapper.eq(ProcessStandardComplianceCheckDetail::getBatchId, batchId);
wrapper.set(ProcessStandardComplianceCheckDetail::getDesignEngineer, null);
wrapper.set(ProcessStandardComplianceCheckDetail::getProcessInstanceId, childPrcId);
sccDetailService.update(wrapper);
break; break;
default: default:
} }