feat: 回显人员改为从流程变量中取数据

This commit is contained in:
2024-07-17 18:18:42 +08:00
parent 09a4f81860
commit a0f954188c
2 changed files with 60 additions and 9 deletions
@@ -137,20 +137,29 @@ public class ProcessStandardComplianceCheck implements Serializable {
* 车型上传文件Id * 车型上传文件Id
*/ */
@ApiModelProperty(value = "车型上传文件Id") @ApiModelProperty(value = "车型上传文件Id")
@TableField(exist = false) @Dict(dictTable = "oss_file", dicCode = "id", dicText = "file_name")
private String modelFile; private String modelFile;
/** /**
* 拆解单上传文件Id * 拆解单上传文件Id
*/ */
@ApiModelProperty(value = "拆解单上传文件Id") @ApiModelProperty(value = "拆解单上传文件Id")
@TableField(exist = false) @Dict(dictTable = "oss_file", dicCode = "id", dicText = "file_name")
private String splitFile; private String splitFile;
/**
* 部门接口人
*/
@ApiModelProperty(value = "部门接口人")
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
@TableField(exist = false)
private String deptUser;
/** /**
* 主排查人 * 主排查人
*/ */
@ApiModelProperty(value = "主排查人") @ApiModelProperty(value = "主排查人")
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
@TableField(exist = false) @TableField(exist = false)
private String mainCheckUser; private String mainCheckUser;
@@ -166,6 +175,7 @@ public class ProcessStandardComplianceCheck implements Serializable {
* 会签人员 * 会签人员
*/ */
@ApiModelProperty(value = "会签人员") @ApiModelProperty(value = "会签人员")
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
@TableField(exist = false) @TableField(exist = false)
private String countersignUser; private String countersignUser;
@@ -173,6 +183,7 @@ public class ProcessStandardComplianceCheck implements Serializable {
* 设计工程师科室经理 * 设计工程师科室经理
*/ */
@ApiModelProperty(value = "设计工程师科室经理") @ApiModelProperty(value = "设计工程师科室经理")
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
@TableField(exist = false) @TableField(exist = false)
private String manager; private String manager;
@@ -180,6 +191,7 @@ public class ProcessStandardComplianceCheck implements Serializable {
* 高级经理 * 高级经理
*/ */
@ApiModelProperty(value = "高级经理") @ApiModelProperty(value = "高级经理")
@Dict(dictTable = "sys_user", dicCode = "id", dicText = "realname")
@TableField(exist = false) @TableField(exist = false)
private String seniorManager; private String seniorManager;
@@ -52,6 +52,8 @@ import javax.annotation.Resource;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.util.*; import java.util.*;
import java.util.function.Consumer;
import java.util.function.Function;
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.*;
@@ -159,10 +161,16 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
// 给流程中设置主表流程变量Id // 给流程中设置主表流程变量Id
runtimeService.setVariable(processInstanceId, CHECK_ID, standardInfo.getId()); runtimeService.setVariable(processInstanceId, CHECK_ID, standardInfo.getId());
runtimeService.setVariable(processInstanceId, MAIN_INSTANCE_ID, processInstanceId); runtimeService.setVariable(processInstanceId, MAIN_INSTANCE_ID, processInstanceId);
this.startNodeDetailBusProcess(processInstanceId, standardInfo.getId(), businessInfoDTO.getDetailInfoList());
}
private void startNodeDetailBusProcess(String processInstanceId, String checkId, List<ProcessStandardComplianceCheckDetail> detailInfoList) {
LambdaUpdateWrapper<ProcessStandardComplianceCheckDetail> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessStandardComplianceCheckDetail::getCheckId, checkId);
sccDetailService.remove(updateWrapper);
// 子表设置流程实例Id // 子表设置流程实例Id
List<ProcessStandardComplianceCheckDetail> detailInfoList = businessInfoDTO.getDetailInfoList();
detailInfoList.forEach(detail -> { detailInfoList.forEach(detail -> {
detail.setCheckId(standardInfo.getId()); detail.setCheckId(checkId);
detail.setProcessInstanceId(processInstanceId); detail.setProcessInstanceId(processInstanceId);
}); });
sccDetailService.saveBatch(detailInfoList); sccDetailService.saveBatch(detailInfoList);
@@ -258,6 +266,11 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
String processDefinitionId = processInstance.getProcessDefinitionId(); String processDefinitionId = processInstance.getProcessDefinitionId();
Map<String, Object> userMap = new HashMap<>(); Map<String, Object> userMap = new HashMap<>();
switch (xmlNodeId) { switch (xmlNodeId) {
case STANDARD_ENGINEER_START:
ProcessInfoVO<ProcessSccVO> handleData = this.getHandleData(taskId);
ProcessSccVO oldBus = handleData.getBusinessInfoDTO();
this.startNodeDetailBusProcess(processInstanceId, oldBus.getStandardInfo().getId(), businessInfoDTO.getDetailInfoList());
break;
case DEPT_USER_DISTRIBUTE: case DEPT_USER_DISTRIBUTE:
// 设置主排查人 // 设置主排查人
String mainCheckUser = businessInfoDTO.getStandardInfo().getMainCheckUser(); String mainCheckUser = businessInfoDTO.getStandardInfo().getMainCheckUser();
@@ -265,6 +278,8 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
// 保存选人信息 // 保存选人信息
userMap.put(MAIN_CHECK_USER, mainCheckUser); userMap.put(MAIN_CHECK_USER, mainCheckUser);
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap); processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
// 保存数据
this.updateById(standardInfo);
break; break;
case MAIN_CHECK_USER_DISTRIBUTE: case MAIN_CHECK_USER_DISTRIBUTE:
// 驳回 // 驳回
@@ -381,11 +396,6 @@ 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);
} }
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(); String xmlNodeId = record.getNodeId();
// 设置流程信息 // 设置流程信息
switch (xmlNodeId) { switch (xmlNodeId) {
@@ -414,10 +424,39 @@ public class ProcessStandardComplianceCheckServiceImpl extends ServiceImpl<Proce
processSccVO.setDetailInfoList(detailList); processSccVO.setDetailInfoList(detailList);
break; break;
} }
// 设置流程变量等相关信息
this.handleDataVariables(scc, mainInstanceId);
processSccVO.setStandardInfo(scc);
result.setBusinessInfoDTO(processSccVO); result.setBusinessInfoDTO(processSccVO);
return result; return result;
} }
private void handleDataVariables(ProcessStandardComplianceCheck scc, String mainInstanceId) {
Object distributeFlag = runtimeService.getVariable(mainInstanceId, DISTRIBUTE);
if (distributeFlag != null) {
scc.setDistributeFlag((boolean)distributeFlag ? YesOrNoEnum.YES.getValue() : YesOrNoEnum.NO.getValue());
}
setStringAttribute(mainInstanceId, DEPT_USER, scc::setDeptUser, Object::toString);
setStringAttribute(mainInstanceId, MAIN_CHECK_USER, scc::setMainCheckUser, Object::toString);
setListAttribute(mainInstanceId, COUNTERSIGN_USER_LIST, v -> scc.setCountersignUser(String.join(",", (List<String>) v)), v -> (List<String>) v);
setStringAttribute(mainInstanceId, MANAGER, scc::setManager, Object::toString);
setStringAttribute(mainInstanceId, SENIOR_MANAGER, scc::setSeniorManager, Object::toString);
}
private void setListAttribute(String instanceId, String variableName, Consumer<List<String>> setter, Function<Object, List<String>> converter) {
Object value = runtimeService.getVariable(instanceId, variableName);
if (value != null) {
setter.accept(converter.apply(value));
}
}
private void setStringAttribute(String instanceId, String variableName, Consumer<String> setter, Function<Object, String> converter) {
Object value = runtimeService.getVariable(instanceId, variableName);
if (value != null) {
setter.accept(converter.apply(value));
}
}
private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String mainInstanceId, String processInstanceId) { private void setDesignerEngineerEvaluationHandleData(ProcessSccVO processSccVO, String mainInstanceId, String processInstanceId) {
LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessStandardComplianceCheck> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, mainInstanceId); queryWrapper.eq(ProcessStandardComplianceCheck::getProcessInstanceId, mainInstanceId);