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);
}
public String getParentTaskId(String taskId) {
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);
public BasicProcessInfoDTO getProcessInfo(String processInstanceId) {
// 获取流程通用数据
ProcessAll process = processAllService.getByProcessInstanceId(processInstanceId);
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.util.MinioUtil;
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.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.enums.ProcessType;
@@ -55,8 +54,8 @@ import java.util.*;
import java.util.stream.Collectors;
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.*;
/**
* @author ThinkBook
@@ -362,16 +361,15 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
}
ProcessInfoVO<ProcessSccVO> result = new ProcessInfoVO<>();
ProcessSccVO processSccVO = new ProcessSccVO();
result.setBasicProcessInfoDTO(actFlowCommonService.getProcessInfo(taskId));
String executionId = taskService.createTaskQuery().taskId(taskId).singleResult().getExecutionId();
// 使用流程引擎根据taskId找到流程实例Id
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);
// 获取当前流程数据
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, processInstanceId);
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, mainInstanceId);
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>();
List<ProcessStandardComplianceCheckDetail> detailList = null;
@@ -379,9 +377,10 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, scc.getId());
detailList = sccDetailService.list(detailQueryWrapper);
}
boolean distributeFlag = (boolean) runtimeService.getVariable(processInstanceId, DISTRIBUTE);
scc.setDistributeFlag(distributeFlag ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue());
Object distributeFlag = runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
if (distributeFlag != null) {
scc.setDistributeFlag((boolean)distributeFlag ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue());
}
processSccVO.setStandardInfo(scc);
String xmlNodeId = record.getNodeId();
// 设置流程信息
@@ -403,23 +402,28 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
break;
case DESIGNER_ENGINEER_EVALUATION:
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;
}
result.setBusinessInfoDTO(processSccVO);
return result;
}
private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String taskId) {
String processInstanceId = actFlowCommonService.getProcessInstanceIdByTaskId(taskId);
private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String mainInstanceId, String processInstanceId) {
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, mainInstanceId);
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
processSccVO.setStandardInfo(scc);
LambdaQueryWrapper<ProcessStandardComplianceCheckDetail> detailQueryWrapper = new LambdaQueryWrapper<>();
detailQueryWrapper.eq(ProcessStandardComplianceCheckDetail::getProcessInstanceId, processInstanceId);
List<ProcessStandardComplianceCheckDetail> detailList = sccDetailService.list(detailQueryWrapper);
processSccVO.setDetailInfoList(detailList);
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardComplianceCheck::getId, detailList.get(0).getCheckId());
ProcessStandardComplianceCheck scc = getOne(queryWrapper);
processSccVO.setStandardInfo(scc);
}
@Override
@@ -433,8 +437,12 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
String mainInstanceId = (String) delegateTask.getVariable(ActivitiCommon.MAIN_INSTANCE_ID);
//保存父子关联信息
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.PARENT_TASK_ID, taskId);
variables.put(CHECK_ID, checkId);
variables.put(BATCH_ID, batchId);
String mainCheckUser = (String) delegateTask.getVariable(MAIN_CHECK_USER);
LambdaUpdateWrapper<ProcessStandardComplianceCheckDetail> wrapper = new LambdaUpdateWrapper<>();
switch (taskDefinitionKey) {
@@ -442,8 +450,6 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
case AUTO_TASK_1:
case AUTO_TASK_3:
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) {
userInfoMap.put(DESIGNER, designer);
userInfoMap.put(MAIN_CHECK_USER, mainCheckUser);
@@ -476,7 +482,14 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
processInfoVO.setProcessVariables(variables);
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;
default:
}