fix: 第一个节点通用信息丢失BUG

This commit is contained in:
2023-10-30 18:21:24 +08:00
parent 0d74855ae2
commit 130b3c3538
6 changed files with 37 additions and 24 deletions
@@ -213,7 +213,7 @@ public class ActFlowCommonService {
return processDefinition.getKey();
}
public void autoCompleteFirstTask(String userId, String processInstanceId, String processDefinitionId) {
public void autoCompleteFirstTask(String userId, String processInstanceId, String processDefinitionId, CommonVO commonVO) {
// 自动完成第一个任务
List<Map<String, Object>> taskList = this.myTaskList(userId);
if (!CollectionUtils.isEmpty(taskList)) {
@@ -224,8 +224,10 @@ public class ActFlowCommonService {
log.info("当前用户ID:{},相关联的流程定义ID:{}", userId, map.get("processDefinitionId").toString());
log.info("匹配到的任务ID{}", map.get("taskId").toString());
this.completeTask(map.get("taskId").toString(), userId);
String taskId = map.get("taskId").toString();
// 更新审批表为完成,填充数据
this.updateApprovalInfo(commonVO, taskId, true);
this.completeTask(taskId, userId);
break;
}
}
@@ -72,6 +72,8 @@ public class ProcessEsAbolishServiceImpl extends ServiceImpl<ProcessEsAbolishMap
String userId = UserUtils.getUserId();
// 业务数据
ProcessEsAbolish esAbolish = abolishData.getData();
// 通用数据
CommonVO commonVO = abolishData.getCommon();
// 人员数据
ESAbolishFlowUserVO flowUser = abolishData.getFlowUser();
// 设置流程变量
@@ -84,7 +86,7 @@ public class ProcessEsAbolishServiceImpl extends ServiceImpl<ProcessEsAbolishMap
// 手动设置所有流程变量
actFlowCommonService.setProcessVariables(processInstanceId, variables);
// 自动完成第一个任务
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId);
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, commonVO);
// 设置流程实例Id
esAbolish.setProcessInstanceId(processInstanceId);
// 保存到业务流程表
@@ -92,9 +94,9 @@ public class ProcessEsAbolishServiceImpl extends ServiceImpl<ProcessEsAbolishMap
// 保存选人信息
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
// 根据流程实例id更新流程总表
String prcName = abolishData.getCommon().getPrcName();
String prcMes = abolishData.getCommon().getPrcMes();
Date dueTime = abolishData.getCommon().getDueTime();
String prcName = commonVO.getPrcName();
String prcMes = commonVO.getPrcMes();
Date dueTime = commonVO.getDueTime();
Integer prcType = ProcessTypeEnum.ES_ABOLISH.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
}
@@ -88,7 +88,10 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
this.startRunTask(annualInitData);
// 流程Key
String processDefinitionKey = ProcessType.ES_ANNUAL_REPORT.getProcessKey();
// 业务数据
List<ProcessEsAnnualInit> annualReportList = annualInitData.getDataList();
// 通用数据
CommonVO commonVO = annualInitData.getCommonVO();
// 当前用户Id
String userId = UserUtils.getUserId();
// 设置流程变量
@@ -101,7 +104,7 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
// 手动设置所有流程变量
actFlowCommonService.setProcessVariables(processInstanceId, variables);
// 自动完成第一个任务
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId);
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, commonVO);
// 设置流程实例Id
annualReportList.forEach(annualReport -> annualReport.setProcessInstanceId(processInstanceId));
// 保存到业务流程表
@@ -109,9 +112,9 @@ public class ProcessEsAnnualInitServiceImpl extends ServiceImpl<ProcessEsAnnualI
// 保存选人信息
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
// 根据流程实例id更新流程总表
String prcName = annualInitData.getCommonVO().getPrcName();
String prcMes = annualInitData.getCommonVO().getPrcMes();
Date dueTime = annualInitData.getCommonVO().getDueTime();
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);
@@ -85,7 +85,10 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
public void startProcess(AnnualReportDataVO annualReportData) {
// 流程Key
String processDefinitionKey = ProcessType.ES_ANNUAL_REPORT.getProcessKey();
// 业务数据
List<ProcessEsAnnualReport> annualReportList = annualReportData.getDataList();
// 通用数据
CommonVO commonVO = annualReportData.getCommonVO();
// 当前用户Id
String userId = UserUtils.getUserId();
// 设置流程变量
@@ -98,15 +101,15 @@ public class ProcessEsAnnualReportServiceImpl extends ServiceImpl<ProcessEsAnnua
// 手动设置所有流程变量
actFlowCommonService.setProcessVariables(processInstanceId, variables);
// 自动完成第一个任务
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId);
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, commonVO);
// 设置流程实例Id
annualReportList.forEach(annualReport -> annualReport.setProcessInstanceId(processInstanceId));
// 保存选人信息
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
// 根据流程实例id更新流程总表
String prcName = annualReportData.getCommonVO().getPrcName();
String prcMes = annualReportData.getCommonVO().getPrcMes();
Date dueTime = annualReportData.getCommonVO().getDueTime();
String prcName = commonVO.getPrcName();
String prcMes = commonVO.getPrcMes();
Date dueTime = commonVO.getDueTime();
Integer prcType = ProcessTypeEnum.ES_ANNUAL_REPORT.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
// 执行流程发起前的操作
@@ -14,7 +14,6 @@ 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.esAbolish.entity.vo.ESAbolishFlowUserVO;
import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive;
import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveDataVO;
import com.jero.modules.activiti.process.esArchive.entity.vo.ESArchiveFlowUserVO;
@@ -73,6 +72,8 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
String userId = UserUtils.getUserId();
// 业务数据
ProcessEsArchive esArchive = archiveData.getData();
// 通用数据
CommonVO common = archiveData.getCommon();
// 人员数据
ESArchiveFlowUserVO flowUser = archiveData.getFlowUser();
// 设置流程变量
@@ -85,7 +86,7 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
// 手动设置所有流程变量
actFlowCommonService.setProcessVariables(processInstanceId, variables);
// 自动完成第一个任务
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId);
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, common);
// 设置流程实例Id
esArchive.setProcessInstanceId(processInstanceId);
// 保存到业务流程表
@@ -93,9 +94,9 @@ public class ProcessEsArchiveServiceImpl extends ServiceImpl<ProcessEsArchiveMap
// 保存选人信息
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
// 根据流程实例id更新流程总表
String prcName = archiveData.getCommon().getPrcName();
String prcMes = archiveData.getCommon().getPrcMes();
Date dueTime = archiveData.getCommon().getDueTime();
String prcName = common.getPrcName();
String prcMes = common.getPrcMes();
Date dueTime = common.getDueTime();
Integer prcType = ProcessTypeEnum.ES_ARCHIVE.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
}
@@ -78,6 +78,8 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
String userId = UserUtils.getUserId();
// 业务数据
List<ProcessEsInitChange> esInitChangeList = initChangeData.getDataList();
// 通用数据
CommonVO commonVO = initChangeData.getCommonVO();
// 设置流程变量
Map<String, Object> variables = this.setVariables(initChangeData);
// 启动流程
@@ -88,7 +90,7 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
// 手动设置所有流程变量
actFlowCommonService.setProcessVariables(processInstanceId, variables);
// 自动完成第一个任务
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId);
actFlowCommonService.autoCompleteFirstTask(userId, processInstanceId, processDefinitionId, commonVO);
// 设置流程实例Id
esInitChangeList.forEach(e -> e.setProcessInstanceId(processInstanceId));
// 保存到业务流程表
@@ -96,9 +98,9 @@ public class ProcessEsInitChangeServiceImpl extends ServiceImpl<ProcessEsInitCha
// 保存选人信息
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, this.getUserMap(variables));
// 根据流程实例id更新流程总表
String prcName = initChangeData.getCommonVO().getPrcName();
String prcMes = initChangeData.getCommonVO().getPrcMes();
Date dueTime = initChangeData.getCommonVO().getDueTime();
String prcName = commonVO.getPrcName();
String prcMes = commonVO.getPrcMes();
Date dueTime = commonVO.getDueTime();
Integer prcType = ProcessTypeEnum.ES_INIT_CHANGE.getValue();
actFlowCommonService.updateProcessAll(processInstanceId, userId, prcName, prcMes, prcType, dueTime);
}