feat: scc流程设计工程师驳回
This commit is contained in:
+1
-12
@@ -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();
|
||||
|
||||
+32
-19
@@ -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:
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user