Merge branch 'fourthStage-snapshot' into fourthStage

This commit is contained in:
2024-08-08 11:05:36 +08:00
14 changed files with 242 additions and 15 deletions
@@ -0,0 +1,144 @@
package com.jero.modules.activiti.process.common.utility;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.vo.LoginUser;
import com.jero.common.util.SnowflakeUtils;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.FinishFlagEnum;
import com.jero.modules.activiti.process.common.entity.ProcessSnapshot;
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
import com.jero.modules.activiti.process.common.service.ProcessSnapshotService;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import lombok.RequiredArgsConstructor;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.runtime.ProcessInstance;
import org.apache.shiro.SecurityUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import java.util.stream.Collectors;
/**
* @ClassName: FlowUtility
* @Description:
* @Author: yjz
* @Date: 2024-06-24 16:08
* @Version: 1.0
**/
@RequiredArgsConstructor
@Transactional(rollbackFor = {Exception.class, JeroBootException.class})
@Component
public class FlowUtility {
private final ProcessAllService processAllService;
private final ProcessApprovalRecordService processApprovalRecordService;
private final ProcessDraftService processDraftService;
private final RuntimeService runtimeService;
private final ProcessSnapshotService processSnapshotService;
public void flowApprovalUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){
LoginUser loginUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
// 更新流程总表信息
processAllService.updateById(processAll);
// 更新流程审批信息
processApprovalRecordService.update(
new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getUserId, loginUser.getId())
.eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId())
.set(StringUtils.isNotBlank(processApprovalRecord.getCommitText()),
ProcessApprovalRecord::getCommitText, processApprovalRecord.getCommitText())
.set(ProcessApprovalRecord::getCommitFlag, processApprovalRecord.getCommitFlag())
.set(ProcessApprovalRecord::getFinishFlag, FinishFlagEnum.COMPLETE.getValue())
.set(ProcessApprovalRecord::getCommitFile, processApprovalRecord.getCommitFile())
.set(ProcessApprovalRecord::getEndTime, new Date()));
}
public void flowSaveUpdate(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord){
// 更新流程信息
processAllService.update(new LambdaUpdateWrapper<ProcessAll>()
.eq(ProcessAll::getId, processAll.getId())
.set(ProcessAll::getPrcName, processAll.getPrcName())
.set(ProcessAll::getPrcMes, processAll.getPrcMes())
.set(ProcessAll::getDueTime, processAll.getDueTime()));
// 更新流程审批信息
processApprovalRecordService.update(new LambdaUpdateWrapper<ProcessApprovalRecord>()
.eq(ProcessApprovalRecord::getTaskId, processAll.getTaskId())
.set(ProcessApprovalRecord::getCommitText, processApprovalRecord.getCommitText())
.set(ProcessApprovalRecord::getCommitFile, processApprovalRecord.getCommitFile()));
}
public void flowSaveSnapshot(ProcessAll processAll, ProcessApprovalRecord processApprovalRecord, String infoJsonStr){
// 保存快照
ProcessSnapshot processSnapshot = new ProcessSnapshot();
BeanUtils.copyProperties(processAll, processSnapshot);
processSnapshot.setId(String.valueOf(SnowflakeUtils.snowflake()));
processSnapshot.setCreateBy(null);
processSnapshot.setCreateTime(null);
processSnapshot.setUpdateBy(null);
processSnapshot.setUpdateTime(null);
if (StringUtils.isNotBlank(processApprovalRecord.getCommitFile())){
processSnapshot.setHandleFile(processApprovalRecord.getCommitFile());
}
if (StringUtils.isNotBlank(processApprovalRecord.getCommitText())){
processSnapshot.setHandleText(processApprovalRecord.getCommitFile());
}
if (!Objects.isNull(processAll.getDueTime())){
processSnapshot.setProcessDueDate(processAll.getDueTime());
}
if (StringUtils.isNotBlank(processAll.getPrcMes())){
processSnapshot.setProcessDescription(processAll.getPrcMes());
}
if (StringUtils.isNotBlank(infoJsonStr)){
processSnapshot.setInfoJsonStr(infoJsonStr);
}
if (StringUtils.isNotBlank(processApprovalRecord.getTaskId())){
processSnapshot.setTaskId(processApprovalRecord.getTaskId());
}
if (StringUtils.isNotBlank(processApprovalRecord.getUserId())){
processSnapshot.setUserId(processApprovalRecord.getUserId());
}
processSnapshotService.save(processSnapshot);
}
/**
* 流程是否结束
* @param processInstanceId
* @return
*/
public boolean isLastNode(String processInstanceId) {
// 查询流程实例状态
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery()
.processInstanceId(processInstanceId)
.singleResult();
// 如果流程实例为null,表示流程已结束
return processInstance == null;
}
/**
* 将Map中值为List类型的元素转换为以逗号分隔的字符串。
* 这样做的目的是为了简化Map的表示,尤其是当List中包含多个元素时。
* 对于非List类型的值,直接保留原样。
*
* @param map 原始的Map,可能包含值为List类型的元素。
* @return 返回一个新的Map,其中所有值为List类型的元素都被转换为以逗号分隔的字符串。
*/
public static Map<String, Object> listToString(Map<String, Object> map) {
Map<String, Object> stringObjectHashMap = new HashMap<>(map);
stringObjectHashMap = stringObjectHashMap.entrySet().stream().map(v -> {
if (v.getValue() instanceof List) {
List<String> list = (List<String>)v.getValue();
v.setValue(String.join(",", list));
}
return v;
}).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
return stringObjectHashMap;
}
}
@@ -18,6 +18,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
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.ProcessDraftService;
import com.jero.modules.activiti.process.common.utility.FlowUtility;
import com.jero.modules.activiti.process.esdeclare.common.EsDeclareCommon;
import com.jero.modules.activiti.process.esdeclare.entity.ProcessEsDeclare;
import com.jero.modules.activiti.process.esdeclare.service.IEsDeclareFlowService;
@@ -66,6 +67,7 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService {
private final IOSSFileService ossFileService;
private final SendMessageAPI sendMessageAPI;
private final ISysUserService sysUserService;
private final FlowUtility flowUtility;
public EsDeclareFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
@@ -75,7 +77,8 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService {
EnterpriseStandardDeclareService enterpriseStandardDeclareService,
IOSSFileService ossFileService,
SendMessageAPI sendMessageAPI,
ISysUserService sysUserService) {
ISysUserService sysUserService,
FlowUtility flowUtility) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
@@ -85,6 +88,7 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService {
this.ossFileService = ossFileService;
this.sendMessageAPI = sendMessageAPI;
this.sysUserService = sysUserService;
this.flowUtility = flowUtility;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -143,6 +147,12 @@ public class EsDeclareFlowServiceImpl implements IEsDeclareFlowService {
// 自动完成第一个节点
taskService.complete(task.getId());
// 保存快照
processAll.setProcessInstanceId(task.getProcessInstanceId());
processApprovalRecord.setTaskId(task.getId());
processApprovalRecord.setUserId(loginUser.getId());
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esDeclareFlowVO.getInfoJsonStr());
// 发起即结束
ProcessEsDeclare processEsDeclare = processEsDeclareService.queryByProjectId(processAll.getProjectId());
// 保存数据至企标宣贯
@@ -16,6 +16,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
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.ProcessDraftService;
import com.jero.modules.activiti.process.common.utility.FlowUtility;
import com.jero.modules.activiti.process.esinspect.common.EsInspectCommon;
import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect;
import com.jero.modules.activiti.process.esinspect.service.IEsInspectFlowService;
@@ -80,6 +81,7 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
private final EnterpriseStandardInspectReportService enterpriseStandardInspectReportService;
private final IEsInspectRectifyFlowService esInspectReportFlowService;
private final IProcessEsInspectRectifyService processEsInspectRectifyService;
private final FlowUtility flowUtility;
public EsInspectFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
ProcessDraftService processDraftService,
@@ -91,7 +93,8 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
EnterpriseStandardInspectRectifyPlanService enterpriseStandardInspectRectifyPlanService,
EnterpriseStandardInspectReportService enterpriseStandardInspectReportService,
IEsInspectRectifyFlowService esInspectReportFlowService,
IProcessEsInspectRectifyService processEsInspectReportService) {
IProcessEsInspectRectifyService processEsInspectReportService,
FlowUtility flowUtility) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
@@ -104,6 +107,7 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
this.enterpriseStandardInspectReportService = enterpriseStandardInspectReportService;
this.esInspectReportFlowService = esInspectReportFlowService;
this.processEsInspectRectifyService = processEsInspectReportService;
this.flowUtility = flowUtility;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -164,6 +168,12 @@ public class EsInspectFlowServiceImpl implements IEsInspectFlowService {
// 更新企标稽查状态
updateLawsEnterpriseStandardStatus(processAll.getProjectId());
// 保存快照
processAll.setProcessInstanceId(task.getProcessInstanceId());
processApprovalRecord.setTaskId(task.getId());
processApprovalRecord.setUserId(loginUser.getId());
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectFlowVO.getInfoJsonStr());
}
private void handleBusinessData(EsInspectFlowVO esInspectFlowVO) {
@@ -15,6 +15,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
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.ProcessDraftService;
import com.jero.modules.activiti.process.common.utility.FlowUtility;
import com.jero.modules.activiti.process.esinspect.common.EsInspectCommon;
import com.jero.modules.activiti.process.esinspect.entity.ProcessEsInspect;
import com.jero.modules.activiti.process.esinspect.service.IProcessEsInspectService;
@@ -67,6 +68,7 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
private final EnterpriseStandardInspectService enterpriseStandardInspectService;
private final IProcessEsInspectDelayApplyService processEsInspectDelayApplyService;
private final EnterpriseStandardInspectDelayService enterpriseStandardInspectDelayService;
private final FlowUtility flowUtility;
public EsInspectDelayApplyFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
@@ -75,7 +77,8 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
IProcessEsInspectService processEsInspectService,
EnterpriseStandardInspectService enterpriseStandardInspectService,
IProcessEsInspectDelayApplyService processEsInspectDelayApplyService,
EnterpriseStandardInspectDelayService enterpriseStandardInspectDelayService) {
EnterpriseStandardInspectDelayService enterpriseStandardInspectDelayService,
FlowUtility flowUtility) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
@@ -84,6 +87,7 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
this.enterpriseStandardInspectService = enterpriseStandardInspectService;
this.processEsInspectDelayApplyService = processEsInspectDelayApplyService;
this.enterpriseStandardInspectDelayService = enterpriseStandardInspectDelayService;
this.flowUtility = flowUtility;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -141,6 +145,12 @@ public class EsInspectDelayApplyFlowServiceImpl implements IEsInspectDelayApplyF
// 自动完成第一个节点
taskService.complete(task.getId());
// 保存快照
processAll.setProcessInstanceId(task.getProcessInstanceId());
processApprovalRecord.setTaskId(task.getId());
processApprovalRecord.setUserId(loginUser.getId());
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectDelayApplyFlowVO.getInfoJsonStr());
}
private void handleBusinessData(EsInspectDelayApplyFlowVO esInspectDelayApplyFlowVO) {
@@ -20,6 +20,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
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.ProcessDraftService;
import com.jero.modules.activiti.process.common.utility.FlowUtility;
import com.jero.modules.activiti.process.esAbolish.entity.ProcessEsAbolish;
import com.jero.modules.activiti.process.esAbolish.service.ProcessEsAbolishService;
import com.jero.modules.activiti.process.esArchive.entity.ProcessEsArchive;
@@ -82,6 +83,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
private final IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService;
private final ProcessEsAbolishService processEsAbolishService;
private final ProcessEsArchiveService processEsArchiveService;
private final FlowUtility flowUtility;
public EsInspectPlanFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
ProcessDraftService processDraftService,
@@ -95,7 +97,8 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
EnterpriseStandardInspectObjectService enterpriseStandardInspectObjectService,
IProcessEsInspectPlanOpinionService processEsInspectPlanOpinionService,
ProcessEsAbolishService processEsAbolishService,
ProcessEsArchiveService processEsArchiveService) {
ProcessEsArchiveService processEsArchiveService,
FlowUtility flowUtility) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
@@ -110,6 +113,7 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
this.processEsInspectPlanOpinionService = processEsInspectPlanOpinionService;
this.processEsAbolishService = processEsAbolishService;
this.processEsArchiveService = processEsArchiveService;
this.flowUtility = flowUtility;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -170,6 +174,12 @@ public class EsInspectPlanFlowServiceImpl implements IEsInspectPlanFlowService {
// 自动完成第一个节点
taskService.complete(task.getId());
// 保存快照
processAll.setProcessInstanceId(task.getProcessInstanceId());
processApprovalRecord.setTaskId(task.getId());
processApprovalRecord.setUserId(loginUser.getId());
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectPlanFlowVO.getInfoJsonStr());
}
private void handleBusinessData(EsInspectPlanFlowVO esInspectPlanFlowVO) {
@@ -19,6 +19,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
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.ProcessDraftService;
import com.jero.modules.activiti.process.common.utility.FlowUtility;
import com.jero.modules.activiti.process.esinspectrectify.common.EsInspectRectifyCommon;
import com.jero.modules.activiti.process.esinspectrectify.entity.ProcessEsInspectRectify;
import com.jero.modules.activiti.process.esinspectrectify.service.IEsInspectRectifyFlowService;
@@ -67,6 +68,7 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
private final IProcessEsInspectRectifyService processEsInspectRectifyService;
private final EnterpriseStandardInspectRectifyPlanService enterpriseStandardInspectRectifyPlanService;
private final ISysUserService sysUserService;
private final FlowUtility flowUtility;
public EsInspectRectifyFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
@@ -74,7 +76,8 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
ProcessNodeLinkService processNodeLinkService,
IProcessEsInspectRectifyService processEsInspectReportService,
EnterpriseStandardInspectRectifyPlanService enterpriseStandardInspectRectifyPlanService,
ISysUserService sysUserService) {
ISysUserService sysUserService,
FlowUtility flowUtility) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
@@ -82,6 +85,7 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
this.processEsInspectRectifyService = processEsInspectReportService;
this.enterpriseStandardInspectRectifyPlanService = enterpriseStandardInspectRectifyPlanService;
this.sysUserService = sysUserService;
this.flowUtility = flowUtility;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -142,6 +146,12 @@ public class EsInspectRectifyFlowServiceImpl implements IEsInspectRectifyFlowSer
// 自动完成第一个节点
taskService.complete(task.getId());
// 保存快照
processAll.setProcessInstanceId(task.getProcessInstanceId());
processApprovalRecord.setTaskId(task.getId());
processApprovalRecord.setUserId(loginUser.getId());
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esInspectReportFlowVO.getInfoJsonStr());
}
@Override
@@ -16,6 +16,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
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.ProcessDraftService;
import com.jero.modules.activiti.process.common.utility.FlowUtility;
import com.jero.modules.activiti.process.espermissionapply.common.ProcessEsPermissionApplyCommon;
import com.jero.modules.activiti.process.espermissionapply.entity.ProcessEsPermissionApply;
import com.jero.modules.activiti.process.espermissionapply.service.EsPermissionApplyFlowService;
@@ -62,16 +63,19 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
private final ProcessDraftService processDraftService;
private final ProcessNodeLinkService processNodeLinkService;
private final IProcessEsPermissionApplyService processEsPermissionApplyService;
private final FlowUtility flowUtility;
public EsPermissionApplyFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
ProcessDraftService processDraftService,
ProcessNodeLinkService processNodeLinkService,
IProcessEsPermissionApplyService processEsPermissionApplyService) {
IProcessEsPermissionApplyService processEsPermissionApplyService,
FlowUtility flowUtility) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
this.processNodeLinkService = processNodeLinkService;
this.processEsPermissionApplyService = processEsPermissionApplyService;
this.flowUtility = flowUtility;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -133,6 +137,12 @@ public class EsPermissionApplyFlowServiceImpl implements EsPermissionApplyFlowSe
// 自动完成第一个节点
taskService.complete(task.getId());
// 保存快照
processAll.setProcessInstanceId(task.getProcessInstanceId());
processApprovalRecord.setTaskId(task.getId());
processApprovalRecord.setUserId(loginUser.getId());
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, esPermissionApplyFlowVO.getInfoJsonStr());
}
private void handleBusinessData(EsPermissionApplyFlowVO esPermissionApplyFlowVO) {
@@ -191,7 +191,8 @@ public class ProcessFbEntryChangeServiceImpl extends ServiceImpl<ProcessFbEntryC
// 同一个标准编号不能同时有多个进行中的标准变更流程
verify(processInfoVO.getBusinessId());
processHandleService.startProcess(processInfoVO);
// 保存快照
processHandleService.saveToSnapshot(processInfoVO,CurrentUserUtil.getId());
// 保存草稿用于强制撤销
processInfoVO.setSaveSource("3");
processInfoVO.getBasicTaskInfoDTO().setTaskId(null);
@@ -98,7 +98,7 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
private ProcessAllService processAllService;
@Resource
private ISysDictService sysDictService;
public static final String EXCEPTION = "目前还未开发,请联系管理员";
/**
@@ -132,7 +132,8 @@ public class ProcessFbStandardConsultationServiceImpl extends ServiceImpl<Proces
processDraftService.removeById(draftId);
}
processHandleService.startProcess(processInfoVO);
// 保存快照
processHandleService.saveToSnapshot(processInfoVO,CurrentUserUtil.getId());
// 把各部所主管级领导数据存入关联人员表
List<String> departLeaderList = Arrays.asList(departLeaders.split(","));
List<ProcessFbConsultationUserLink> linkList = new ArrayList<>();
@@ -124,7 +124,8 @@ public class ProcessFbStandardPurchaseServiceImpl extends ServiceImpl<ProcessFbS
processDraftService.removeById(draftId);
}
processHandleService.startProcess(processInfoVO);
// 保存快照
processHandleService.saveToSnapshot(processInfoVO,CurrentUserUtil.getId());
// 保存草稿用于强制撤销
processInfoVO.setSaveSource("3");
processInfoVO.getBasicTaskInfoDTO().setTaskId(null);
@@ -16,6 +16,7 @@ import com.jero.modules.activiti.enums.ProcessStatusEnum;
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.ProcessDraftService;
import com.jero.modules.activiti.process.common.utility.FlowUtility;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.meetingmanage.common.ProcessMeetingManageCommon;
import com.jero.modules.activiti.process.meetingmanage.entity.ProcessMeetingManage;
@@ -67,6 +68,7 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
private final IProcessMeetingManagePersonnelService processMeetingManagePersonnelService;
private final ILawsStandardizationService lawsStandardizationService;
private final ISysUserService sysUserService;
private final FlowUtility flowUtility;
public MeetingManageFlowServiceImpl(ProcessAllService processAllService,
ProcessApprovalRecordService processApprovalRecordService,
@@ -75,7 +77,8 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
IProcessMeetingManageService processMeetingManageService,
IProcessMeetingManagePersonnelService processMeetingManagePersonnelService,
ILawsStandardizationService lawsStandardizationService,
ISysUserService sysUserService) {
ISysUserService sysUserService,
FlowUtility flowUtility) {
this.processAllService = processAllService;
this.processApprovalRecordService = processApprovalRecordService;
this.processDraftService = processDraftService;
@@ -84,6 +87,7 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
this.processMeetingManagePersonnelService = processMeetingManagePersonnelService;
this.lawsStandardizationService = lawsStandardizationService;
this.sysUserService = sysUserService;
this.flowUtility = flowUtility;
}
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
@@ -143,6 +147,12 @@ public class MeetingManageFlowServiceImpl implements IMeetingManageFlowService {
// 自动完成第一个节点
taskService.complete(task.getId());
// 保存快照
processAll.setProcessInstanceId(task.getProcessInstanceId());
processApprovalRecord.setTaskId(task.getId());
processApprovalRecord.setUserId(loginUser.getId());
flowUtility.flowSaveSnapshot(processAll, processApprovalRecord, meetingManageFlowVO.getInfoJsonStr());
}
@Override
@@ -421,7 +421,9 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
userInfoMap.put(ProcessProjectAssessCommon.MANAGER_LEADER_LIST, distinctAllResponsibleUnitLeaderListJoin);
processInfoVO.setUserInfoMap(userInfoMap);
processHandleService.startProcess(processInfoVO);
//保存快照 start
processHandleService.saveToSnapshot(processInfoVO,CurrentUserUtil.getId());
//保存快照 end
//start 先保存一份初始草稿
processInfoVO.setSaveSource(DraftCommon.INITIAL_SOURCE);
processInfoVO.setBasicTaskInfoDTO(processInfoVO.getBasicTaskInfoDTO().setTaskId(null));
@@ -180,6 +180,9 @@ public class ProcessProjectNotMetService extends ServiceImpl<ProcessProjectNotMe
wrapper.set(LawsEvaluationNotMet::getProcessInstanceId, processAll.getProcessInstanceId());
wrapper.in(LawsEvaluationNotMet::getId,projectNotMetIdList);
lawsEvaluationNotMetService.update(wrapper);
//保存快照 start
processHandleService.saveToSnapshot(processInfoVO,CurrentUserUtil.getId());
//保存快照 end
//start 先保存一份初始草稿
processInfoVO.setSaveSource(DraftCommon.INITIAL_SOURCE);
processInfoVO.setBasicTaskInfoDTO(processInfoVO.getBasicTaskInfoDTO().setTaskId(null));
@@ -35,6 +35,7 @@ import com.jero.modules.activiti.process.projectstandard.mapper.ProcessProjectSt
import com.jero.modules.activiti.process.projectstandard.vo.ProcessProjectStandardVO;
import com.jero.modules.activiti.process.projectstandard.vo.StandardSelectionVO;
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.activiti.service.ProcessApprovalRecordService;
import com.jero.modules.activiti.util.ThreadLocalUtil;
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
import com.jero.modules.laws.common.mapper.LawsCommonMapper;
@@ -112,6 +113,8 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
private ProcessProjectStandardTermApprovalService termApprovalService;
@Resource
private ILawsSpecialProjectLibraryService lawsSpecialProjectLibraryService;
@Resource
private ProcessApprovalRecordService processApprovalRecordService;
@@ -413,6 +416,9 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
userInfoMap.put(ProcessProjectStandardCommon.MANAGER_LEADER_LIST, distinctAllResponsibleUnitLeaderListJoin);
processInfoVO.setUserInfoMap(userInfoMap);
processHandleService.startProcess(processInfoVO);
//保存快照 start
processHandleService.saveToSnapshot(processInfoVO,CurrentUserUtil.getId());
//保存快照 end
//保存一份初始草稿
processInfoVO.setSaveSource(DraftCommon.INITIAL_SOURCE);
processInfoVO.setBasicTaskInfoDTO(processInfoVO.getBasicTaskInfoDTO().setTaskId(null));
@@ -1119,9 +1125,8 @@ public class ProcessProjectStandardService extends ServiceImpl<ProcessProjectSta
public IPage<ProcessProjectStandardTermUser> getTermUserList(ProcessProjectStandardTermUser termUser, Integer pageNo, Integer pageSize) {
String taskId = termUser.getTaskId();
if (taskId != null){
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
String originUserId = processApprovalRecord.getOriginUserId();
ProcessApprovalRecord approvalRecord = processApprovalRecordService.getByTaskId(taskId);
String originUserId = approvalRecord.getOriginUserId();
termUser.setResponsibleUnitLeader(originUserId);
}
Page<ProcessProjectStandardTermUser> page = new Page<>(pageNo, pageSize);