feat: scc流程加签驳回以后从NodeList中拿人员信息

This commit is contained in:
2024-07-26 09:32:41 +08:00
parent ea1a69be65
commit ebb008d71d
@@ -16,6 +16,7 @@ import com.jero.common.util.ZipUtil;
import com.jero.common.util.obs.ObsBootUtil;
import com.jero.modules.activiti.common.ActivitiCommon;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.entity.ProcessNode;
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;
@@ -35,6 +36,7 @@ import com.jero.modules.activiti.process.standardComplianceCheck.mapper.ProcessS
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckDetailService;
import com.jero.modules.activiti.process.standardComplianceCheck.service.IProcessStandardComplianceCheckService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.activiti.service.ProcessNodeService;
import com.jero.modules.activiti.util.ExcelUtils;
import com.jero.modules.laws.common.service.impl.LawsCommonServiceImpl;
import com.jero.modules.laws.documenttool.entity.LawsDocumentSplit;
@@ -49,7 +51,6 @@ import com.jero.modules.split.service.ISarFileSplitInfoService;
import com.jero.modules.sys.utils.UserUtils;
import com.jero.modules.system.entity.SysDepart;
import com.jero.modules.system.service.ISysDepartService;
import com.jero.modules.system.service.ISysDictService;
import lombok.Cleanup;
import lombok.extern.slf4j.Slf4j;
import org.activiti.engine.RuntimeService;
@@ -122,7 +123,7 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
@Resource
private ExcelUtils excelUtils;
@Resource
private ISysDictService dictService;
private ProcessNodeService processNodeService;
@Value("${jero.path.exportExcelTempPath}")
private String exportExcelTempPath;
@@ -797,22 +798,28 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
break;
}
// 设置流程变量等相关信息
this.handleDataVariables(scc, mainInstanceId);
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(mainInstanceId).singleResult();
String processDefinitionId = processInstance.getProcessDefinitionId();
this.handleDataVariables(scc, mainInstanceId, processDefinitionId);
processSccVO.setStandardInfo(scc);
result.setBusinessInfoDTO(processSccVO);
return result;
}
private void handleDataVariables(ProcessStandardComplianceCheck scc, String mainInstanceId) {
private void handleDataVariables(ProcessStandardComplianceCheck scc, String mainInstanceId, String processDefinitionId) {
actFlowCommonService.setStringBooleanAttribute(mainInstanceId, DISTRIBUTE, scc::setDistributeFlag, value -> (boolean) value ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue());
// 如果没有下发过
String distributeFlag = scc.getDistributeFlag();
scc.setLockDistributeFlag(YesOrNoEnum.YES.getValue().equals(distributeFlag));
actFlowCommonService.setStringAttribute(mainInstanceId, DEPT_USER, scc::setDeptUser, Object::toString);
actFlowCommonService.setStringAttribute(mainInstanceId, MAIN_CHECK_USER, scc::setMainCheckUser, Object::toString);
actFlowCommonService.setListAttribute(mainInstanceId, COUNTERSIGN_USER_LIST, v -> scc.setCountersignUser(String.join(",", v)), v -> (List<String>) v);
actFlowCommonService.setListAttribute(mainInstanceId, MANAGER_LIST, v -> scc.setManager(String.join(",", v)), v -> (List<String>) v);
actFlowCommonService.setListAttribute(mainInstanceId, SENIOR_MANAGER_LIST, v -> scc.setSeniorManager(String.join(",", v)), v -> (List<String>) v);
// actFlowCommonService.setListAttribute(mainInstanceId, COUNTERSIGN_USER_LIST, v -> scc.setCountersignUser(String.join(",", v)), v -> (List<String>) v);
// actFlowCommonService.setListAttribute(mainInstanceId, MANAGER_LIST, v -> scc.setManager(String.join(",", v)), v -> (List<String>) v);
// actFlowCommonService.setListAttribute(mainInstanceId, SENIOR_MANAGER_LIST, v -> scc.setSeniorManager(String.join(",", v)), v -> (List<String>) v);
List<ProcessNode> nodeList = processNodeService.getNodeList(processDefinitionId, mainInstanceId);
scc.setCountersignUser(nodeList.stream().filter(node -> node.getXmlNodeId().equals(COUNTERSIGN)).findFirst().get().getLinkUserIds());
scc.setManager(nodeList.stream().filter(node -> node.getXmlNodeId().equals(MANAGER_APPROVAL)).findFirst().get().getLinkUserIds());
scc.setSeniorManager(nodeList.stream().filter(node -> node.getXmlNodeId().equals(SENIOR_MANAGER_APPROVAL)).findFirst().get().getLinkUserIds());
}
private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String mainInstanceId, String processInstanceId) {