feat: 新版转办2.0优化版

This commit is contained in:
2024-01-12 11:17:51 +08:00
parent fa8b450e2c
commit 6532b9c430
8 changed files with 68 additions and 107 deletions
@@ -172,6 +172,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
boolean distribute = annualReport.getDistributeFlag().equals("1");
contactUserLeaderLeader = annualReport.getContactUserLeaderLeader();
taskService.setVariable(taskId, "distribute", distribute);
String curContactUser = UserUtils.getUserId();
// 获取是否分发
if (distribute) {
String workGroupUsers = annualReport.getWorkGroupUser();
@@ -187,14 +188,16 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
dataList.forEach(data -> data.setContactUserLeaderLeader(contactUserLeaderLeader));
dataList.forEach(data -> data.setExecutionId(executionId));
dataList.forEach(data -> data.setProcessInstanceId(processInstanceId));
dataList.forEach(data -> data.setContactUser(contactUser));
dataList.forEach(data -> data.setContactUser(curContactUser));
// 不分发,入库存表
saveBatch(dataList);
taskService.setVariable(taskId, "contactUserLeaderLeader", contactUserLeaderLeader);
}
taskService.setVariable(taskId, contactUser + "-ContactUserLeaderLeader", contactUserLeaderLeader);
taskService.setVariable(taskId, curContactUser + "-ContactUserLeaderLeader", contactUserLeaderLeader);
userVariable.put("contactUserLeaderLeader", contactUserLeaderLeader);
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userVariable);
// 转办
runtimeService.setVariable(executionId, "contactUser", curContactUser);
break;
case WORK_GROUP_COLLECT:
// 先删后增
@@ -211,13 +214,20 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
// 保存收集联络人主管级领导
dataList.forEach(data -> data.setCollectUserLeader(collectUserLeader));
dataList.forEach(data -> data.setContactUserLeaderLeader(contactUserLeaderLeader));
dataList.forEach(data -> data.setWorkGroupUser(workGroupUser));
String curWorkGroupUser = UserUtils.getUserId();
dataList.forEach(data -> data.setWorkGroupUser(curWorkGroupUser));
saveBatch(dataList);
// 转办
runtimeService.setVariable(executionId, "workGroupUser", curWorkGroupUser);
// 设置下一个节点的审批人流程变量
taskService.setVariable(taskId, "collectUserLeader", collectUserLeader);
userVariable.put("collectUserLeader", collectUserLeader);
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userVariable);
break;
case COLLECT_LEADER_APPROVAL:
// 转办
runtimeService.setVariable(executionId, "collectUserLeader", UserUtils.getUserId());
break;
case CONTACT_USER_COLLECT:
// 先删后增
wrapper.eq(ProcessEsAnnualReport::getContactUser, contactUser);
@@ -232,6 +242,12 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
userVariable.put("contactUserLeaderLeader", contactUserLeaderLeader);
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userVariable);
saveBatch(dataList);
// 转办
runtimeService.setVariable(executionId, "contactUser", UserUtils.getUserId());
break;
case CONTACT_USER_LEADER_APPROVAL:
// 转办
runtimeService.setVariable(executionId, "contactUserLeaderLeader", UserUtils.getUserId());
break;
}
runtimeService.setVariableLocal(processInstanceId, "pass", pass);
@@ -297,6 +313,7 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
break;
case CONTACT_USER_COLLECT:
wrapper.eq(ProcessEsAnnualReport::getContactUser, userId);
wrapper.eq(ProcessEsAnnualReport::getExecutionId, executionId);
break;
case CONTACT_USER_LEADER_APPROVAL:
wrapper.eq(ProcessEsAnnualReport::getContactUserLeaderLeader, userId);
@@ -182,7 +182,7 @@ public class ProcessESInitChangeController {
@ApiOperation(value="企标立项变更流程-转办", notes="企标立项变更流程-转办")
@PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody TransferVO transferVO) {
initChangeService.transfer(transferVO.getTaskId(), transferVO.getUserId());
processHandleService.transfer(transferVO.getTaskId(), transferVO.getUserId());
return Result.OK();
}
}
@@ -33,12 +33,6 @@ public interface ProcessEsInitChangeService extends IService<ProcessEsInitChange
*/
void saveToDraft(ProcessInfoVO<InitChangeDataVO> initChangeData);
/**
* 软删除实例数据
* @param processInstanceId
*/
void removeByProcessInstanceId(String processInstanceId);
/**
* 获取办理数据
* @param taskId
@@ -53,10 +47,4 @@ public interface ProcessEsInitChangeService extends IService<ProcessEsInitChange
*/
void autoStartProcessByRecheck(String standardNo);
/**
* 转办
* @param taskId
* @param userId
*/
void transfer(String taskId, String userId);
}
@@ -200,20 +200,6 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
actFlowCommonService.updateProcessAll(processInstanceId, mainDraftUser, prcName, null, prcType, null);
}
@Override
public void transfer(String taskId, String toUserId) {
// 判断是否是特殊节点,如果是特殊节点则需要替换流程变量
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("taskId为空或任务不存在");
}
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName();
if (taskName.equals(STANDARDIZATION_CHECK)) {
taskService.setVariable(taskId, "standardizationApprovalUser", toUserId);
}
processHandleService.transfer(taskId, toUserId);
}
@Override
public void approvalInitChange(InitChangeDataVO initChangeDataVO, boolean pass) {
String userId = UserUtils.getUserId();
@@ -250,9 +236,9 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
update(updateWrapper);
}
runtimeService.setVariableLocal(processInstanceId, "pass", true);
} else {
// 设置流程变量
runtimeService.setVariableLocal(processInstanceId, "pass", false);
if (taskName.equals(STANDARDIZATION_CHECK)) {
taskService.setVariable(taskId, "standardizationApprovalUser", userId);
}
}
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass);
@@ -260,8 +246,10 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
actFlowCommonService.completeTask(taskId, userId);
// 删除草稿
actFlowCommonService.removeDraft(commonVO);
// 如果是会签节点,驳回后要将其余节点recode设置为 未处理 状态
if (!pass) {
// 设置流程变量
runtimeService.setVariableLocal(processInstanceId, "pass", false);
// 如果是会签节点,驳回后要将其余节点recode设置为 未处理 状态
if (taskName.equals(CounterSignNodeNameConstants.ES_INIT_CHANGE_EXPERT_NODE_NAME)) {
actFlowCommonService.updateOtherCountersignRecodeStatus(processInstanceId, CounterSignNodeNameConstants.ES_INIT_CHANGE_EXPERT_NODE_NAME);
}
@@ -291,13 +279,6 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
}
}
@Override
public void removeByProcessInstanceId(String processInstanceId) {
LambdaUpdateWrapper<ProcessEsInitChange> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessEsInitChange::getProcessInstanceId, processInstanceId).set(ProcessEsInitChange::getDelFlag, YesOrNoEnum.YES.getValue());
update(updateWrapper);
}
@Override
public List<String> getSequenceNumbers(String esCodeDictValue, String esNameCodeDictValue, String categoryCodeDictValue) {
// 已经存在的标准
@@ -134,7 +134,7 @@ public class ESRecheckController {
@ApiOperation(value="企标复审流程-转办", notes="企标复审流程-转办")
@PostMapping(value = "/transfer")
public Result<?> transfer(@RequestBody TransferVO transferVO) {
recheckService.transfer(transferVO.getTaskId(), transferVO.getUserId());
processHandleService.transfer(transferVO.getTaskId(), transferVO.getUserId());
return Result.OK();
}
@@ -22,5 +22,4 @@ public interface ProcessEsRecheckService extends IService<ProcessEsRecheck> {
void approval(ESRecheckDataVO recheckData, boolean pass);
void transfer(String taskId, String userId);
}
@@ -210,7 +210,7 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
if (flowUser != null) {
// 人员数据
Map<String, Object> variables = recheckData.getFlowUser();
// 设置联络人节点人员
// 设置联络人节点人员
actFlowCommonService.putIfNotNull(variables, "standardizationUser", data.getStandardizationUser());
// 设置流程变量
Map<String, Object> actVariables = this.setVariables(variables);
@@ -238,6 +238,16 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
Integer prcType = ProcessTypeEnum.ES_RECHECK.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
}
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName();
switch (taskName) {
case DRAFTER_EDIT:
taskService.setVariable(taskId, "mainDraftUser", userId);
break;
case DRAFTER_LEADER_APPROVAL:
taskService.setVariable(taskId, "mainDraftUserLeader", userId);
break;
}
}
// 设置流程变量
runtimeService.setVariable(processInstanceId, "pass", pass);
@@ -249,25 +259,6 @@ public class ProcessEsRecheckServiceImpl extends ServiceImpl<ProcessEsRecheckMap
actFlowCommonService.removeDraft(commonVO);
}
@Override
public void transfer(String taskId, String toUserId) {
// 判断是否是特殊节点,如果是特殊节点则需要替换流程变量
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("taskId为空或任务不存在");
}
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName();
switch (taskName) {
case DRAFTER_EDIT:
taskService.setVariable(taskId, "mainDraftUser", toUserId);
break;
case DRAFTER_LEADER_APPROVAL:
taskService.setVariable(taskId, "mainDraftUserLeader", toUserId);
break;
}
processHandleService.transfer(taskId, toUserId);
}
}
@@ -388,7 +388,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
List<ReviewMeetingDetailVO> reviewMeetingDetails = data.getReviewMeetingDetails();
// 设置当前评分人
curUserId = UserUtils.getUserId();
reviewMeetingDetails.forEach(reviewMeetingDetail -> reviewMeetingDetail.setAdjudicatorId(curUserId));
String finalCurUserId = curUserId;
reviewMeetingDetails.forEach(reviewMeetingDetail -> reviewMeetingDetail.setAdjudicatorId(finalCurUserId));
ProcessEsRevision revisionDb = getById(dataDb.getId());
List<ReviewMeetingDetailVO> reviewMeetingDetailsDb = revisionDb.parseReviewMeetingDetails();
if (reviewMeetingDetailsDb == null) {
@@ -530,56 +531,40 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
// TODO 在线编辑 插入签章
break;
}
if (pass) {
runtimeService.setVariable(processInstanceId, "pass", true);
} else {
// 设置流程变量
runtimeService.setVariable(processInstanceId, "pass", false);
// 获取当前节点的id
curUserId = UserUtils.getUserId();
// 转办修改流程变量逻辑
switch (xmlNodeId) {
case MAIN_DRAFT_USER_COLLECT_FIRST:
taskService.setVariable(taskId, "mainDraftUser", curUserId);
break;
case STANDARDIZATION_CHECK:
taskService.setVariable(taskId, "standardizationUser", curUserId);
break;
case CONTACT_USER_DISTRIBUTE:
case CONTACT_USER_COLLECT:
runtimeService.setVariable(executionId, "contactUser", curUserId);
runtimeService.setVariable(executionId, curUserId + "-ExecutionId", executionId);
break;
case CONTACT_USER_LEADER_APPROVAL:
runtimeService.setVariable(executionId, "contactUserLeader", curUserId);
runtimeService.setVariable(executionId, executionId + "-ContactUserLeader", curUserId);
break;
case LEADER_APPROVAL:
// 根据流程实例Id修改审批人字段
runtimeService.setVariable(executionId, "contactUserLeader", curUserId);
updateWrapper.clear();
updateWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId)
.set(ProcessEsRevision::getApprovalUser, curUserId);
update(updateWrapper);
}
runtimeService.setVariable(processInstanceId, "pass", pass);
// 审批节点
actFlowCommonService.completeTask(taskId, userId);
}
@Override
public void transfer(String taskId, String toUserId) {
// 判断是否是特殊节点,如果是特殊节点则需要替换流程变量
if (StrUtil.isBlank(taskId) && !actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("taskId为空或任务不存在");
}
if (StrUtil.isBlank(toUserId)) {
throw new JeroBootException("转办人不能为空");
}
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String processInstanceId = task.getProcessInstanceId();
// 获取执行id
String executionId = task.getExecutionId();
// 获取当前节点的id
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
switch (xmlNodeId) {
case MAIN_DRAFT_USER_COLLECT_FIRST:
taskService.setVariable(taskId, "mainDraftUser", toUserId);
break;
case STANDARDIZATION_CHECK:
taskService.setVariable(taskId, "standardizationUser", toUserId);
break;
case CONTACT_USER_DISTRIBUTE:
case CONTACT_USER_COLLECT:
runtimeService.setVariable(executionId, "contactUser", toUserId);
runtimeService.setVariable(executionId, toUserId + "-ExecutionId", executionId);
break;
case CONTACT_USER_LEADER_APPROVAL:
runtimeService.setVariable(executionId, "contactUserLeader", toUserId);
runtimeService.setVariable(executionId, executionId + "-ContactUserLeader", toUserId);
break;
case LEADER_APPROVAL:
// 根据流程实例Id修改审批人字段
runtimeService.setVariable(executionId, "contactUserLeader", toUserId);
LambdaUpdateWrapper<ProcessEsRevision> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId)
.set(ProcessEsRevision::getApprovalUser, toUserId);
update(updateWrapper);
}
processHandleService.transfer(taskId, toUserId);
}