fix: 标准化发起流程数据流转数据丢失BUG

This commit is contained in:
2023-12-15 16:47:01 +08:00
parent 22741971d5
commit dd3ba33924
2 changed files with 12 additions and 12 deletions
@@ -3,7 +3,6 @@ package com.jero.modules.activiti.process.esAnnualInit.controller;
import com.jero.common.api.vo.Result; import com.jero.common.api.vo.Result;
import com.jero.common.api.vo.ResultCommon; import com.jero.common.api.vo.ResultCommon;
import com.jero.common.aspect.annotation.AutoLog; import com.jero.common.aspect.annotation.AutoLog;
import com.jero.common.aspect.annotation.DictPoint;
import com.jero.common.aspect.annotation.Translation; import com.jero.common.aspect.annotation.Translation;
import com.jero.common.constant.enums.YesOrNoEnum; import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.util.MessageUtils; import com.jero.common.util.MessageUtils;
@@ -13,7 +12,6 @@ import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit; import com.jero.modules.activiti.process.esAnnualInit.entity.ProcessEsAnnualInit;
import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitDataVO; import com.jero.modules.activiti.process.esAnnualInit.entity.vo.AnnualInitDataVO;
import com.jero.modules.activiti.process.esAnnualInit.service.ProcessEsAnnualInitService; import com.jero.modules.activiti.process.esAnnualInit.service.ProcessEsAnnualInitService;
import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService; import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO; import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import io.swagger.annotations.*; import io.swagger.annotations.*;
@@ -131,7 +129,7 @@ public class ESAnnualInitController {
/** /**
* 批量驳回 * 批量驳回
* *
* @param ids * @param annualInitData
*/ */
@AutoLog(value = "企标年度制修订标准化发起流程-批量驳回") @AutoLog(value = "企标年度制修订标准化发起流程-批量驳回")
@ApiOperation(value="企标年度制修订标准化发起流程-批量驳回", notes="企标年度制修订标准化发起流程-批量驳回") @ApiOperation(value="企标年度制修订标准化发起流程-批量驳回", notes="企标年度制修订标准化发起流程-批量驳回")
@@ -185,7 +185,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
@Override @Override
public AnnualInitDataVO getHandleData(String taskId) { public AnnualInitDataVO getHandleData(String taskId) {
String userId = UserUtils.getUserId(); String userId = actFlowCommonService.getOriginTaskAssignee(taskId);
if (!actFlowCommonService.taskExists(taskId)) { if (!actFlowCommonService.taskExists(taskId)) {
throw new JeroBootException("任务不存在"); throw new JeroBootException("任务不存在");
} }
@@ -209,6 +209,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<ProcessEsAnnualInit> wrapper = new LambdaQueryWrapper<>();
Task task = taskService.createTaskQuery().taskId(taskId).singleResult(); Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
String taskName = task.getName(); String taskName = task.getName();
String contactUser = (String) runtimeService.getVariable(executionId, "contactUser");
String workGroupUser = (String) runtimeService.getVariable(executionId, "workGroupUser");
switch (taskName) { switch (taskName) {
case CONTACT_USER_SELECT: case CONTACT_USER_SELECT:
wrapper.eq(ProcessEsAnnualInit::getContactUser, userId); wrapper.eq(ProcessEsAnnualInit::getContactUser, userId);
@@ -218,8 +220,8 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
break; break;
case MAIN_DRAFT_LEADER_APPROVAL: case MAIN_DRAFT_LEADER_APPROVAL:
wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId).or() wrapper.eq(ProcessEsAnnualInit::getContactUser, contactUser);
.eq(ProcessEsAnnualInit::getExecutionId, executionId); wrapper.eq(ProcessEsAnnualInit::getApprovalUser, userId);
break; break;
case CONTACT_USER_EDIT: case CONTACT_USER_EDIT:
wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue()); wrapper.eq(ProcessEsAnnualInit::getRejectFlag, YesOrNoEnum.YES.getValue());
@@ -271,9 +273,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
// 处理驳回 // 处理驳回
if (pass) { if (pass) {
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
List<String> approvalUserList = new ArrayList<>(); Set<String> approvalUserSet = new HashSet<>();
dataList.forEach(d -> approvalUserList.add(d.getApprovalUser())); dataList.forEach(d -> approvalUserSet.add(d.getApprovalUser()));
taskService.setVariable(taskId, "approvalUserList", approvalUserList); taskService.setVariable(taskId, "approvalUserList", approvalUserSet);
dataList.forEach(data -> data.setExecutionId(executionId)); dataList.forEach(data -> data.setExecutionId(executionId));
saveOrUpdateBatch(dataList); saveOrUpdateBatch(dataList);
} else { } else {
@@ -300,10 +302,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
if (pass) { if (pass) {
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue())); dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.NO.getValue()));
// 设置本地变量 // 设置本地变量
List<String> mainDraftUserList = new ArrayList<>(); Set<String> mainDraftUserSet = new HashSet<>();
dataList.forEach(d -> mainDraftUserList.add(d.getPrcMainDraftUser())); dataList.forEach(d -> mainDraftUserSet.add(d.getPrcMainDraftUser()));
dataList.forEach(data -> data.setExecutionId(executionId)); dataList.forEach(data -> data.setExecutionId(executionId));
taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserList); taskService.setVariable(taskId, "mainDraftUserList", mainDraftUserSet);
} else { } else {
dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue())); dataList.forEach(d -> d.setRejectFlag(YesOrNoEnum.YES.getValue()));
} }