fix: 企标更改流程驳回再次发起之后修改意见没有保存

This commit is contained in:
2024-05-10 16:56:14 +08:00
parent b1ec1242b0
commit aef003b3de
2 changed files with 41 additions and 0 deletions
@@ -0,0 +1,16 @@
package com.jero.modules.activiti.process.esChange.entity;
public class ESChangeTaskNodeIdConstant {
/** 主起草人发起 */
public static final String MAIN_DRAFT_USER_START = "sid-030A34BF-65B2-460C-BCAB-4BFEE0F77987";
/** 相关人员校对 */
public static final String OTHER_USER_CHECK= "sid-109C6F14-FB23-4A90-A462-F10F344BECD1";
/** 主起草人主管级领导审批 */
public static final String MAIN_DRAFT_LEADER_APPROVAL = "sid-8A8307F2-20BB-423C-80AA-F426F5F612C3";
/** 标准化审批 */
public static final String STANDARDIZATION_APPROVAL = "sid-F0B237E0-1D97-455B-BE15-C3796429B412";
/** 起草人主管级上一级领导审批 */
public static final String MAIN_DRAFT_LEADER_LEADER_APPROVAL = "sid-05CC5BD1-2451-45AF-9453-74AE93D026EF";
}
@@ -9,6 +9,7 @@ import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.DictModel;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.ProcessStatusEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.entity.CommonVO;
@@ -51,6 +52,8 @@ import javax.annotation.Resource;
import java.util.*;
import java.util.stream.Collectors;
import static com.jero.modules.activiti.process.esChange.entity.ESChangeTaskNodeIdConstant.MAIN_DRAFT_USER_START;
/**
* @author ThinkBook
* @description 针对表【process_es_change(企业标准)】的数据库操作Service实现
@@ -286,6 +289,27 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl<ProcessEsChangeMappe
Date dueTime = commonVO.getDueTime();
Integer prcType = ProcessTypeEnum.ES_CHANGE.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
// 第一个节点更新修改意见
ProcessApprovalRecord record = actFlowCommonService.getNodeIdByTaskId(taskId);
String xmlNodeId = record.getNodeId();
if (xmlNodeId.equals(MAIN_DRAFT_USER_START)) {
// 清理原来的修改意见
LambdaQueryWrapper<EsChangeOpinion> esChangeOpinionLambdaQueryWrapper = new LambdaQueryWrapper<>();
esChangeOpinionLambdaQueryWrapper.eq(EsChangeOpinion::getBusinessId, data.getId());
esChangeOpinionService.remove(esChangeOpinionLambdaQueryWrapper);
// 新增修改意见
List<EsChangeOpinion> opinionList = data.getList();
if (opinionList != null && !opinionList.isEmpty()) {
String deptId = userDepartService.getFirstDeptIdByUserId(userId);
// 遍历 opinionList,设置 opinion 的 BusinessId
opinionList.forEach(opinion -> {
opinion.setBusinessId(data.getId());
if (StrUtil.isBlank(opinion.getCreateUser())) opinion.setCreateUser(userId);
if (StrUtil.isBlank(opinion.getCreateUnit())) opinion.setCreateUnit(deptId);
});
esChangeOpinionService.saveOrUpdateBatch(opinionList);
}
}
}
if (flowUser != null) {
Map<String, Object> variables = setVariables(flowUser);
@@ -296,6 +320,7 @@ public class ProcessEsChangeServiceImpl extends ServiceImpl<ProcessEsChangeMappe
runtimeService.setVariables(executionId, variables);
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(flowUser));
}
// 设置流程变量
runtimeService.setVariable(processInstanceId, "pass", pass);
// 更新审批表为完成,填充数据