feat: 自动发起的企标制修订流程第一个节点同意以后更新强制撤回的草稿

This commit is contained in:
2024-05-28 15:41:00 +08:00
parent 35001b0270
commit 6dfc0f271b
2 changed files with 29 additions and 1 deletions
@@ -23,4 +23,6 @@ public class ESRevisionDataVO {
@JsonProperty("flowUser")
Map<String, Object> flowUser;
@JsonProperty("infoJsonStr")
String infoJsonStr;
}
@@ -17,10 +17,13 @@ import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.CommitFlagEnum;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.common.common.DraftCommon;
import com.jero.modules.activiti.process.common.entity.CommonVO;
import com.jero.modules.activiti.process.common.entity.CounterSignNodeNameConstants;
import com.jero.modules.activiti.process.common.entity.ProcessDraft;
import com.jero.modules.activiti.process.common.enums.ProcessType;
import com.jero.modules.activiti.process.common.service.ActFlowCommonService;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPProjectStatus;
import com.jero.modules.activiti.process.esInitChange.entity.enums.ESPRevisionType;
import com.jero.modules.activiti.process.esRevision.entity.*;
@@ -113,6 +116,9 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
@Resource
private ISysUserService userService;
@Resource
private ProcessDraftService prcDraftService;
@Override
public void startProcess(ESRevisionDataVO revisionData) {
// 执行流程发起前的操作
@@ -414,7 +420,6 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
List<EsRevisionAdvice> advices;
ProcessEsRevision data;
Map<String, Object> flowUser;
String contactUser = (String) runtimeService.getVariable(executionId, "contactUser");
// 更新审批表为完成,填充数据
actFlowCommonService.updateApprovalInfo(commonVO, taskId, pass);
String curUserId;
@@ -444,6 +449,8 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
// 保存人员信息
Map<String, Object> actVariables = this.setVariables(revisionData);
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(actVariables));
// 替换草稿数据
this.replaceAutoStartDraft(revisionData, processInstanceId);
break;
case OTHER_DRAFT_USER_UPLOAD:
data = revisionData.getData();
@@ -678,6 +685,25 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
actFlowCommonService.completeTask(taskId, userId);
}
private void replaceAutoStartDraft(ESRevisionDataVO revisionData, String processInstanceId) {
String autoStartPrcDraftId = this.getAutoStartPrcDraftId(processInstanceId);
ProcessDraft oldDraft = prcDraftService.getById(autoStartPrcDraftId);
oldDraft.setInfoJsonStr(revisionData.getInfoJsonStr());
prcDraftService.updateById(oldDraft);
}
private String getAutoStartPrcDraftId(String processInstanceId) {
LambdaQueryWrapper<ProcessDraft> draftLambdaQueryWrapper = new LambdaQueryWrapper<>();
draftLambdaQueryWrapper.eq(ProcessDraft::getProcessInstanceId, processInstanceId);
draftLambdaQueryWrapper.eq(ProcessDraft::getSaveSource, DraftCommon.INITIAL_SOURCE);
draftLambdaQueryWrapper.isNull(ProcessDraft::getTaskId);
ProcessDraft one = prcDraftService.getOne(draftLambdaQueryWrapper);
if (one == null) {
throw new JeroBootException("获取自动发起时创建的草稿失败,请联系管理员后重试");
}
return one.getId();
}
@Override
public void transfer(String taskId, String toUserId) {
processHandleService.transfer(taskId, toUserId);