fix: 81657 年度制修订计划(标准化发起)(部所联络人选取审批人) 驳回后提交,驳回的那个流程还在

This commit is contained in:
2024-02-23 15:57:25 +08:00
parent 1196379165
commit 9a27db6de7
@@ -24,10 +24,8 @@ import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.service.ProcessNodeLinkService;
import com.jero.modules.activiti.util.ExcelUtils;
import com.jero.modules.activiti.util.ThreadLocalUtil;
import com.jero.modules.laws.common.util.ImportUtil;
import com.jero.modules.laws.standard.entity.LawsEnterpriseStandard;
import com.jero.modules.laws.standard.service.ILawsEnterpriseStandardService;
@@ -99,9 +97,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
@Resource
private ILawsEnterpriseStandardService esService;
@Resource
private ProcessApprovalRecordService parService;
@Override
public void startProcess(AnnualInitDataVO annualInitData) {
// 流程Key
@@ -112,13 +107,6 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
String userId = UserUtils.getUserId();
// 业务数据
List<ProcessEsAnnualInit> dataList = annualInitData.getDataList();
// 如果dataList中有流程实例Id,则需要去删除对应流程
ProcessEsAnnualInit processEsAnnualInit = dataList.get(0);
String oldPrcId = processEsAnnualInit.getProcessInstanceId();
if (StrUtil.isNotBlank(oldPrcId)) {
processAllService.deleteByPrcId(oldPrcId);
parService.deleteByPrcId(oldPrcId);
}
// 设置流程变量
Map<String, Object> actVariables = this.setVariables(annualInitData);
// 删除草稿
@@ -182,19 +170,25 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
dataList.forEach(data -> data.setProcessInstanceId(processInstanceId));
dataList.forEach(ProcessEsAnnualInit::setDateEditFlag);
saveOrUpdateBatch(dataList);
// 根据流程实例id更新流程总表
// 强制撤回
CommonVO commonVO = annualInitData.getCommonVO();
String prcName = processAll.getPrcName();
String prcMes = processAll.getPrcMes();
Date dueTime = processAll.getDueTime();
Integer prcType = ProcessTypeEnum.ES_ANNUAL_INIT.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, standardEngineer, prcName, prcMes, prcType, dueTime);
// 强制撤回
CommonVO commonVO = new CommonVO();
commonVO.setProcessInstanceId(processInstanceId);
commonVO.setPrcName(prcName);
commonVO.setPrcMes(prcMes);
commonVO.setDueTime(dueTime);
commonVO.setProcessInstanceId(processInstanceId);
actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT, annualInitData);
commonVO.setCommitText(null);
commonVO.setCommitFile(null);
// 手动翻译
String jsonData = translationAspect.autoParseDictText(annualInitData, actVariables);
// 强制撤回
actFlowCommonService.saveFirstNodeDraft(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT, jsonData);
// 根据流程实例id更新流程总表
Integer prcType = ProcessTypeEnum.ES_ANNUAL_INIT.getValue();
// 更新流程信息
actFlowCommonService.updateProcessAll(processInstanceId, standardEngineer, prcName, prcMes, prcType, dueTime);
}
public Map<String, Object> setVariables(AnnualInitDataVO annualInitData) {
@@ -308,7 +302,27 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
String contactUser = (String) runtimeService.getVariable(executionId, "contactUser");
switch (taskName) {
case STANDARD_ENGINEER_INIT:
dataList = annualInitData.getDataList();
// 设置流程变量
Map<String, Object> actVariables = this.setVariables(annualInitData);
// 删除草稿
actFlowCommonService.getExistDraftAndRemove(commonVO, ProcessTypeEnum.ES_ANNUAL_INIT);
// 保存数据
dataList.forEach(data -> data.setProcessInstanceId(processInstanceId));
dataList.forEach(ProcessEsAnnualInit::setDateEditFlag);
saveOrUpdateBatch(dataList);
// 手动设置所有流程变量
actFlowCommonService.setProcessVariables(processInstanceId, actVariables);
// 保存选人信息
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(actVariables));
// 强制撤回
commonVO.setProcessInstanceId(processInstanceId);
// 根据流程实例id更新流程总表
String prcName = commonVO.getPrcName();
String prcMes = commonVO.getPrcMes();
Date dueTime = commonVO.getDueTime();
Integer prcType = ProcessTypeEnum.ES_ANNUAL_INIT.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
break;
case CONTACT_USER_SELECT:
dataList = annualInitData.getDataList();