feat: 企标制修订流程流程流转相关代码
This commit is contained in:
+4
-3
@@ -6,8 +6,6 @@ package com.jero.modules.activiti.process.esRevisionAdvice.common;
|
|||||||
*/
|
*/
|
||||||
public class RevisionTaskNodeIdConstant {
|
public class RevisionTaskNodeIdConstant {
|
||||||
|
|
||||||
/** 主起草人分发 */
|
|
||||||
public static final String MAIN_DRAFT_USER_DISTRIBUTE = "Activity_0v98tow";
|
|
||||||
/** 法规工程师确认是否开启征求意见 */
|
/** 法规工程师确认是否开启征求意见 */
|
||||||
public static final String CONFIRM_ADVISE = "Activity_1siuksf";
|
public static final String CONFIRM_ADVISE = "Activity_1siuksf";
|
||||||
/** 设计工程师填写意见 */
|
/** 设计工程师填写意见 */
|
||||||
@@ -16,5 +14,8 @@ public class RevisionTaskNodeIdConstant {
|
|||||||
public static final String ADVICE_COLLECT = "Activity_1riqzkp";
|
public static final String ADVICE_COLLECT = "Activity_1riqzkp";
|
||||||
/** 法规工程师派号 */
|
/** 法规工程师派号 */
|
||||||
public static final String SET_STANDARD_NUMBER = "Activity_1ralk8e";
|
public static final String SET_STANDARD_NUMBER = "Activity_1ralk8e";
|
||||||
|
/** 征求意见人员 */
|
||||||
|
public static final String ADVICE_USER_LIST = "adviceUserList";
|
||||||
|
/** 开启征求意见 */
|
||||||
|
public static final String OPEN = "open";
|
||||||
}
|
}
|
||||||
|
|||||||
+13
-7
@@ -103,19 +103,25 @@ public class EsRevisionAdvice implements Serializable {
|
|||||||
@Dict(dicCode = "consultation_opinion")
|
@Dict(dicCode = "consultation_opinion")
|
||||||
private String handleAdvice;
|
private String handleAdvice;
|
||||||
|
|
||||||
/**
|
|
||||||
* 0无意见 1有意见
|
|
||||||
*/
|
|
||||||
@ApiModelProperty(value = "0无意见 1有意见")
|
|
||||||
@Dict(dicCode = "yn")
|
|
||||||
private String haveNoOpinion;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 理由
|
* 理由
|
||||||
*/
|
*/
|
||||||
@ApiModelProperty(value = "理由")
|
@ApiModelProperty(value = "理由")
|
||||||
private String reason;
|
private String reason;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 轮数
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "轮数")
|
||||||
|
@Dict(dicCode = "batch_num")
|
||||||
|
private Integer batchNum;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准Id
|
||||||
|
*/
|
||||||
|
@ApiModelProperty(value = "标准Id")
|
||||||
|
private String standardId;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
}
|
}
|
||||||
+63
-78
@@ -1,11 +1,28 @@
|
|||||||
package com.jero.modules.activiti.process.esRevisionAdvice.listener;
|
package com.jero.modules.activiti.process.esRevisionAdvice.listener;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
|
||||||
|
import com.jero.modules.activiti.process.common.enums.StandardStateEnum;
|
||||||
|
import com.jero.modules.activiti.process.esRevisionAdvice.entity.EsRevisionAdvice;
|
||||||
|
import com.jero.modules.activiti.process.esRevisionAdvice.entity.ProcessEsRevision;
|
||||||
|
import com.jero.modules.activiti.process.esRevisionAdvice.service.EsRevisionAdviceService;
|
||||||
|
import com.jero.modules.activiti.process.esRevisionAdvice.service.EsRevisionService;
|
||||||
|
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||||
|
import com.jero.modules.laws.common.service.ILawsCommonService;
|
||||||
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||||
|
import com.jero.modules.tag.enums.TableNameEnum;
|
||||||
import org.activiti.engine.delegate.DelegateExecution;
|
import org.activiti.engine.delegate.DelegateExecution;
|
||||||
import org.activiti.engine.delegate.ExecutionListener;
|
import org.activiti.engine.delegate.ExecutionListener;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import static com.jero.modules.laws.common.constant.FieldCommon.MAIN_DRAFT_USER;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author: Mzaxd
|
* @author: Mzaxd
|
||||||
@@ -17,91 +34,59 @@ public class ProcessESRevisionEndListener implements ExecutionListener {
|
|||||||
@Resource
|
@Resource
|
||||||
private EnterpriseStandardPlanService espService;
|
private EnterpriseStandardPlanService espService;
|
||||||
|
|
||||||
// @Resource
|
@Resource
|
||||||
// private EsRevisionService esRevisionService;
|
private EsRevisionService esRevisionService;
|
||||||
//
|
|
||||||
// @Resource
|
|
||||||
// private EnterpriseStandardReviewMeetingRecordService rmrService;
|
|
||||||
//
|
|
||||||
// @Resource
|
|
||||||
// private EnterpriseStandardRmrEvaluateDetailService rmrDetailService;
|
|
||||||
//
|
|
||||||
// @Resource
|
|
||||||
// private ILawsCommonService lawsCommonService;
|
|
||||||
//
|
|
||||||
// @Resource
|
|
||||||
// private IBusProcessModelHisService busProcessModelHisService;
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private EsRevisionAdviceService esAdviceService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ILawsCommonService lawsCommonService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void notify(DelegateExecution delegateExecution) {
|
public void notify(DelegateExecution delegateExecution) {
|
||||||
// 获取流程实例Id
|
// 获取流程实例Id
|
||||||
String processInstanceId = delegateExecution.getProcessInstanceId();
|
String processInstanceId = delegateExecution.getProcessInstanceId();
|
||||||
// 根据流程Id获取业务数据
|
// 根据流程Id获取业务数据
|
||||||
// LambdaQueryWrapper<ProcessEsRevision> revisionWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<ProcessEsRevision> revisionWrapper = new LambdaQueryWrapper<>();
|
||||||
// revisionWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
|
revisionWrapper.eq(ProcessEsRevision::getProcessInstanceId, processInstanceId);
|
||||||
// // 获取企标相关数据
|
// 获取企标相关数据
|
||||||
// ProcessEsRevision data = esRevisionService.getOne(revisionWrapper);
|
ProcessEsRevision data = esRevisionService.getOne(revisionWrapper);
|
||||||
// Map<String, Object> variables = JSON.parseObject(data.getBusinessJson(), Map.class);
|
// 将数据转换为Map
|
||||||
// String inspectContentJson = data.getInspectContentJson();
|
Map<String, Object> variables = transMap(data);
|
||||||
// List<LinkedHashMap<String, Object>> inspectContentList;
|
// 发布企标
|
||||||
// if (StrUtil.isNotBlank(inspectContentJson)) {
|
String esId = lawsCommonService.commonAdd(variables);
|
||||||
// inspectContentList =
|
// 所有意见设置标准Id
|
||||||
// JSON.parseObject(inspectContentJson, new TypeReference<List<LinkedHashMap<String, Object>>>() {});
|
LambdaQueryWrapper<EsRevisionAdvice> adviceWrapper = new LambdaQueryWrapper<>();
|
||||||
// variables.put(FieldCommon.CHECK_LIST, inspectContentList);
|
adviceWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId);
|
||||||
// }
|
List<EsRevisionAdvice> list = esAdviceService.list(adviceWrapper);
|
||||||
// // 将标准号进行拆分后填充字段
|
if (!list.isEmpty()) {
|
||||||
// String standardNumber = (String) variables.get(FieldCommon.STANDARD_NUMBER);
|
list.forEach(item -> item.setStandardId(esId));
|
||||||
// if (StringUtils.isNotBlank(standardNumber)) {
|
}
|
||||||
// Map<String, String> map = EnterpriseStandardUtil.splitStandardNumber(standardNumber);
|
// 更新企标计划状态
|
||||||
// variables.putAll(map);
|
String espId = data.getEspId();
|
||||||
// // 如果没有主起草人,则需要填充主起草人
|
EnterpriseStandardPlan esp = espService.getById(espId);
|
||||||
// }
|
espService.updateById(esp);
|
||||||
// // 主起草人
|
}
|
||||||
// String mainDraftUser = (String) variables.get(FieldCommon.MAIN_DRAFTING_USER);
|
|
||||||
// if (StringUtils.isBlank(mainDraftUser)) {
|
private Map<String, Object> transMap(ProcessEsRevision data) {
|
||||||
// variables.put(FieldCommon.MAIN_DRAFTING_USER, data.getMainDraftUser());
|
Map<String, Object> variables;
|
||||||
// }
|
// 转换 创建 ObjectMapper 实例并设置命名策略
|
||||||
// // 标准状态
|
ObjectMapper objectMapper = new ObjectMapper();
|
||||||
// variables.put(FieldCommon.STANDARD_STATE, StandardStateEnum.RELEASE.getStateValue());
|
objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);
|
||||||
// String tryFlag = (String) variables.get(FieldCommon.TRY_FLAG);
|
// 将对象转换为 Map<String, Object>
|
||||||
// if (tryFlag != null) {
|
variables = objectMapper.convertValue(data, Map.class);
|
||||||
// if (tryFlag.equals(YesOrNoEnum.YES.getValue())) {
|
variables.put(FieldCommon.MODULE, TableNameEnum.ENTERPRISE_STANDARDS.getValue());
|
||||||
// variables.put(FieldCommon.STANDARD_STATE, StandardStateEnum.TRIAL_OPERATION.getStateValue());
|
// 主起草人
|
||||||
// }
|
String mainDraftUser = (String) variables.get(MAIN_DRAFT_USER);
|
||||||
// }
|
variables.put(FieldCommon.MAIN_DRAFTING_USER, mainDraftUser);
|
||||||
// variables.put(FieldCommon.RELEASE_DATE, data.getReleaseDate());
|
// 标准状态
|
||||||
// variables.put(FieldCommon.IMPLEMENTATION_DATE, data.getImplementDate());
|
variables.put(FieldCommon.STANDARD_STATE, StandardStateEnum.CURRENTLY_EFFECTIVE.getStateValue());
|
||||||
// variables.put(FieldCommon.MAIN_DRAFTING_UNIT_RESPONSIBLE_PERSON, data.getApprovalUser());
|
String standardId = IdWorker.getIdStr();
|
||||||
// variables.put(FieldCommon.MODULE, TableNameEnum.ENTERPRISE_STANDARDS.getValue());
|
variables.put(FieldCommon.ID, standardId);
|
||||||
// variables.put(FieldCommon.AUTH_DEPT, data.getAuthDept());
|
String onEditFile = data.getOnEditFile();
|
||||||
// String standardId = IdWorker.getIdStr();
|
// 发布稿
|
||||||
// variables.put(FieldCommon.ID, standardId);
|
variables.put(FieldCommon.FILE_PUBLISH_OF_ORIGINAL, onEditFile);
|
||||||
// // minio上传在线编辑文件
|
return variables;
|
||||||
// String onEditFile = data.getOnEditFile();
|
|
||||||
// if (StringUtils.isNotBlank(onEditFile)) {
|
|
||||||
// String fileId = busProcessModelHisService.saveProcessFileToOss(onEditFile);
|
|
||||||
// variables.put(FieldCommon.FILE_PUBLISH_OF_ORIGINAL, fileId);
|
|
||||||
// }
|
|
||||||
// // 发布企标
|
|
||||||
// lawsCommonService.commonAdd(variables);
|
|
||||||
// String espId = data.getEspId();
|
|
||||||
// EnterpriseStandardPlan esp = espService.getById(espId);
|
|
||||||
// // 保存评审会记录
|
|
||||||
// EnterpriseStandardReviewMeetingRecord esRmr = new EnterpriseStandardReviewMeetingRecord();
|
|
||||||
// esRmr.setStandardId(standardId);
|
|
||||||
// esRmr.setPlanId(esp.getId());
|
|
||||||
// esRmr.setReviewDate(data.getReviewDate());
|
|
||||||
// esRmr.setReviewUser(data.getReviewUser());
|
|
||||||
// rmrService.save(esRmr);
|
|
||||||
// // 保存评审会评审结果
|
|
||||||
// List<ReviewMeetingDetailVO> reviewMeetingDetailVOS = data.parseReviewMeetingDetails();
|
|
||||||
// List<EnterpriseStandardRmrEvaluateDetail> rmrEvaluateDetails =
|
|
||||||
// BeanCopyUtils.copyBeanList(reviewMeetingDetailVOS, EnterpriseStandardRmrEvaluateDetail.class);
|
|
||||||
// rmrEvaluateDetails.forEach(r -> r.setReviewMeetingId(esRmr.getId()));
|
|
||||||
// rmrDetailService.saveBatch(rmrEvaluateDetails);
|
|
||||||
// // 更新企标计划状态
|
|
||||||
// espService.updateById(esp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+47
-107
@@ -1,22 +1,18 @@
|
|||||||
package com.jero.modules.activiti.process.esRevisionAdvice.service.impl;
|
package com.jero.modules.activiti.process.esRevisionAdvice.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.StrUtil;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import com.jero.common.api.SendMessageAPI;
|
||||||
import com.jero.common.api.dto.message.SendMessageDTO;
|
import com.jero.common.api.dto.message.SendMessageDTO;
|
||||||
import com.jero.common.api.vo.ResultCommon;
|
import com.jero.common.api.vo.ResultCommon;
|
||||||
import com.jero.common.aspect.TranslationAspect;
|
|
||||||
import com.jero.common.constant.enums.YesOrNoEnum;
|
import com.jero.common.constant.enums.YesOrNoEnum;
|
||||||
import com.jero.common.exception.JeroBootException;
|
import com.jero.common.exception.JeroBootException;
|
||||||
import com.jero.modules.activiti.entity.ProcessAll;
|
import com.jero.modules.activiti.entity.ProcessAll;
|
||||||
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
|
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.enums.ProcessTypeEnum;
|
||||||
import com.jero.modules.activiti.process.common.enums.ProcessType;
|
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.ActFlowCommonService;
|
||||||
import com.jero.modules.activiti.process.common.service.ProcessDraftService;
|
|
||||||
import com.jero.modules.activiti.process.esRevisionAdvice.entity.EsRevisionAdvice;
|
import com.jero.modules.activiti.process.esRevisionAdvice.entity.EsRevisionAdvice;
|
||||||
import com.jero.modules.activiti.process.esRevisionAdvice.entity.HandleAdviceEnum;
|
|
||||||
import com.jero.modules.activiti.process.esRevisionAdvice.entity.ProcessEsRevision;
|
import com.jero.modules.activiti.process.esRevisionAdvice.entity.ProcessEsRevision;
|
||||||
import com.jero.modules.activiti.process.esRevisionAdvice.entity.vo.ProcessRevisionVO;
|
import com.jero.modules.activiti.process.esRevisionAdvice.entity.vo.ProcessRevisionVO;
|
||||||
import com.jero.modules.activiti.process.esRevisionAdvice.mapper.EsRevisionMapper;
|
import com.jero.modules.activiti.process.esRevisionAdvice.mapper.EsRevisionMapper;
|
||||||
@@ -27,15 +23,13 @@ import com.jero.modules.activiti.process.fb.dto.BasicTaskInfoDTO;
|
|||||||
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
|
||||||
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
|
||||||
import com.jero.modules.activiti.service.ProcessAllService;
|
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.service.ProcessNodeLinkService;
|
||||||
|
import com.jero.modules.laws.common.constant.FieldCommon;
|
||||||
|
import com.jero.modules.laws.common.constant.MessageTemplateCodeCommon;
|
||||||
import com.jero.modules.laws.enterprise.entity.ESPProjectStatus;
|
import com.jero.modules.laws.enterprise.entity.ESPProjectStatus;
|
||||||
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
import com.jero.modules.laws.enterprise.entity.EnterpriseStandardPlan;
|
||||||
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
import com.jero.modules.laws.enterprise.service.EnterpriseStandardPlanService;
|
||||||
import com.jero.modules.laws.system.service.ILawsContactManageService;
|
|
||||||
import com.jero.modules.sys.utils.UserUtils;
|
import com.jero.modules.sys.utils.UserUtils;
|
||||||
import com.jero.modules.system.service.ISysUserDepartService;
|
|
||||||
import com.jero.modules.system.service.ISysUserService;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.activiti.engine.RuntimeService;
|
import org.activiti.engine.RuntimeService;
|
||||||
import org.activiti.engine.TaskService;
|
import org.activiti.engine.TaskService;
|
||||||
@@ -48,7 +42,6 @@ import java.util.*;
|
|||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import static com.jero.modules.activiti.common.ActivitiCommon.MAIN_INSTANCE_ID;
|
import static com.jero.modules.activiti.common.ActivitiCommon.MAIN_INSTANCE_ID;
|
||||||
import static com.jero.modules.activiti.common.ActivitiCommon.PASS;
|
|
||||||
import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*;
|
import static com.jero.modules.activiti.process.esRevisionAdvice.common.RevisionTaskNodeIdConstant.*;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -87,25 +80,7 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
|||||||
private EsRevisionAdviceService adviceService;
|
private EsRevisionAdviceService adviceService;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private TranslationAspect translationAspect;
|
private SendMessageAPI sendMessageAPI;
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ISysUserDepartService sysUserDepartService;
|
|
||||||
|
|
||||||
// @Resource
|
|
||||||
// private SendMessageAPI sendMessageAPI;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ILawsContactManageService contactManageService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProcessApprovalRecordService parService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ISysUserService userService;
|
|
||||||
|
|
||||||
@Resource
|
|
||||||
private ProcessDraftService prcDraftService;
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void startProcess(ProcessInfoVO<ProcessRevisionVO> processInfoVO) {
|
public void startProcess(ProcessInfoVO<ProcessRevisionVO> processInfoVO) {
|
||||||
@@ -193,35 +168,24 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
|||||||
if (Objects.nonNull(data)) {
|
if (Objects.nonNull(data)) {
|
||||||
detailQueryWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId);
|
detailQueryWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId);
|
||||||
adviceList = adviceService.list(detailQueryWrapper);
|
adviceList = adviceService.list(detailQueryWrapper);
|
||||||
|
// 筛选出最新一轮
|
||||||
|
if (!adviceList.isEmpty()) {
|
||||||
|
Map<Integer, List<EsRevisionAdvice>> map = adviceList.stream().collect(Collectors.groupingBy(EsRevisionAdvice::getBatchNum));
|
||||||
|
// 获取轮数最大的轮数
|
||||||
|
Integer maxNum = this.calculateAdviceBatchNum(adviceList);
|
||||||
|
adviceList = map.get(maxNum);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
// 获取当前流程
|
// 获取当前流程
|
||||||
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().processInstanceId(processInstanceId).singleResult();
|
|
||||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
|
||||||
String xmlNodeId = record.getNodeId();
|
String xmlNodeId = record.getNodeId();
|
||||||
// 设置流程信息
|
// 设置流程信息
|
||||||
switch (xmlNodeId) {
|
switch (xmlNodeId) {
|
||||||
case CONFIRM_ADVISE:
|
case CONFIRM_ADVISE:
|
||||||
// 判断是否开启征求意见子流程 设置流程变量
|
|
||||||
// boolean adviceFlag = !data.getAdviceFlag().equals(YesOrNoEnum.NO.getValue());
|
|
||||||
// if (adviceFlag) {
|
|
||||||
// List<String> adviceUserList = Arrays.asList(data.getAdviceUsers().split(","));
|
|
||||||
// taskService.setVariable(taskId, "adviceUserList", adviceUserList);
|
|
||||||
// taskService.setVariable(taskId, "open", true);
|
|
||||||
// // 保存流程数据
|
|
||||||
// saveOrUpdate(data);
|
|
||||||
// userMap.put("mainDraftCollectUser", mainDraftUser);
|
|
||||||
// userMap.put("contactUser", data.getContactUser());
|
|
||||||
// processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
|
||||||
// } else {
|
|
||||||
// taskService.setVariable(taskId, "open", false);
|
|
||||||
// }
|
|
||||||
break;
|
|
||||||
case ADVICE:
|
case ADVICE:
|
||||||
|
|
||||||
case ADVICE_COLLECT:
|
|
||||||
|
|
||||||
case SET_STANDARD_NUMBER:
|
case SET_STANDARD_NUMBER:
|
||||||
|
break;
|
||||||
|
case ADVICE_COLLECT:
|
||||||
|
processVo.setAdviceList(adviceList);
|
||||||
}
|
}
|
||||||
// 设置流程变量等相关信息
|
// 设置流程变量等相关信息
|
||||||
processVo.setProcessInfo(data);
|
processVo.setProcessInfo(data);
|
||||||
@@ -255,30 +219,42 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
|||||||
// 获取流程实例ID
|
// 获取流程实例ID
|
||||||
String processDefinitionId = processInstance.getProcessDefinitionId();
|
String processDefinitionId = processInstance.getProcessDefinitionId();
|
||||||
Map<String, Object> userMap = new HashMap<>();
|
Map<String, Object> userMap = new HashMap<>();
|
||||||
|
LambdaQueryWrapper<EsRevisionAdvice> detailQueryWrapper = new LambdaQueryWrapper<>();
|
||||||
|
detailQueryWrapper.eq(EsRevisionAdvice::getProcessInstanceId, processInstanceId);
|
||||||
|
List<EsRevisionAdvice> dbAdviceList = adviceService.list(detailQueryWrapper);
|
||||||
|
// 筛选出最新一轮
|
||||||
|
Integer maxBatchNum = this.calculateAdviceBatchNum(dbAdviceList);
|
||||||
switch (xmlNodeId) {
|
switch (xmlNodeId) {
|
||||||
case CONFIRM_ADVISE:
|
case CONFIRM_ADVISE:
|
||||||
// 判断是否开启征求意见子流程 设置流程变量
|
// 判断是否开启征求意见子流程 设置流程变量
|
||||||
boolean adviceFlag = !data.getAdviceFlag().equals(YesOrNoEnum.NO.getValue());
|
boolean adviceFlag = !data.getAdviceFlag().equals(YesOrNoEnum.NO.getValue());
|
||||||
if (adviceFlag) {
|
if (adviceFlag) {
|
||||||
List<String> adviceUserList = Arrays.asList(data.getAdviceUsers().split(","));
|
List<String> adviceUserList = Arrays.asList(data.getAdviceUsers().split(","));
|
||||||
taskService.setVariable(taskId, "adviceUserList", adviceUserList);
|
taskService.setVariable(taskId, ADVICE_USER_LIST, adviceUserList);
|
||||||
taskService.setVariable(taskId, "open", true);
|
taskService.setVariable(taskId, OPEN, true);
|
||||||
// 保存流程数据
|
// 保存流程数据
|
||||||
saveOrUpdate(data);
|
saveOrUpdate(data);
|
||||||
// userMap.put("mainDraftCollectUser", mainDraftUser);
|
userMap.put(ADVICE_USER_LIST, data.getAdviceUsers());
|
||||||
// userMap.put("contactUser", data.getContactUser());
|
processNodeLinkService.saveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
||||||
processNodeLinkService.incrementSaveNodeUserLink(processDefinitionId, processInstanceId, userMap);
|
|
||||||
} else {
|
} else {
|
||||||
taskService.setVariable(taskId, "open", false);
|
taskService.setVariable(taskId, OPEN, false);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case ADVICE:
|
case ADVICE:
|
||||||
|
// 保存意见数据
|
||||||
|
adviceList.forEach(advice -> advice.setProcessInstanceId(processInstanceId));
|
||||||
|
adviceList.forEach(advice -> advice.setBatchNum(maxBatchNum));
|
||||||
|
adviceService.saveBatch(adviceList);
|
||||||
case ADVICE_COLLECT:
|
case ADVICE_COLLECT:
|
||||||
|
// 保存数据
|
||||||
|
adviceService.updateBatchById(adviceList);
|
||||||
|
// 给主起草人发消息
|
||||||
|
String mainDraftUser = (String) taskService.getVariable(taskId, FieldCommon.MAIN_DRAFT_USER);
|
||||||
|
this.sendMessageToMainDraftUser(mainDraftUser, processInstanceId, maxBatchNum);
|
||||||
case SET_STANDARD_NUMBER:
|
case SET_STANDARD_NUMBER:
|
||||||
|
// 保存数据
|
||||||
|
updateById(data);
|
||||||
}
|
}
|
||||||
runtimeService.setVariable(processInstanceId, PASS, true);
|
|
||||||
// 审批节点
|
// 审批节点
|
||||||
actFlowCommonService.completeTask(taskId, curUserId);
|
actFlowCommonService.completeTask(taskId, curUserId);
|
||||||
// 更新审批表为完成,填充数据
|
// 更新审批表为完成,填充数据
|
||||||
@@ -289,56 +265,20 @@ public class EsRevisionServiceImpl extends ServiceImpl<EsRevisionMapper, Process
|
|||||||
processHandleService.saveToSnapshot(processInfoVO, curUserId);
|
processHandleService.saveToSnapshot(processInfoVO, curUserId);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendMessageToMainDraftUser(ProcessEsRevision revision, String processInstanceId) {
|
private Integer calculateAdviceBatchNum(List<EsRevisionAdvice> adviceList) {
|
||||||
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
return adviceList.stream().mapToInt(EsRevisionAdvice::getBatchNum).max().orElse(0);
|
||||||
List<EsRevisionAdvice> advices = revision.getAdvices();
|
|
||||||
Map<String, List<EsRevisionAdvice>> adviceMap = advices.stream()
|
|
||||||
.collect(Collectors.groupingBy(EsRevisionAdvice::getCreateUserId));
|
|
||||||
// 按照Map的Key遍历
|
|
||||||
for (String userId : adviceMap.keySet()) {
|
|
||||||
List<EsRevisionAdvice> adviceList = adviceMap.get(userId);
|
|
||||||
// 只有未被采纳和部分采纳才发消息
|
|
||||||
if (adviceList.stream().allMatch(advice -> HandleAdviceEnum.AGREE.getValue().equals(advice.getHandleAdvice()))) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
|
||||||
// sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_REVISION_ADVICE);
|
|
||||||
sendMessageDTO.setToUserId(userId);
|
|
||||||
Map<String, String> sendMap = new HashMap<>();
|
|
||||||
sendMap.put("prcNum", processAll.getPrcNum());
|
|
||||||
sendMap.put("prcName", processAll.getPrcName());
|
|
||||||
StringBuilder msg = new StringBuilder();
|
|
||||||
for (EsRevisionAdvice advice : adviceList) {
|
|
||||||
// 采纳的不发消息
|
|
||||||
if (HandleAdviceEnum.AGREE.getValue().equals(advice.getHandleAdvice())) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
msg.append(advice.getClauseNum()).append(" ").append(advice.getClauseName());
|
|
||||||
if (HandleAdviceEnum.DISAGREE.getValue().equals(advice.getHandleAdvice())) {
|
|
||||||
msg.append(" 未被采纳,");
|
|
||||||
} else {
|
|
||||||
msg.append(" 被部分采纳,");
|
|
||||||
}
|
|
||||||
msg.append("理由为:").append(advice.getReason()).append(";");
|
|
||||||
}
|
|
||||||
// 去除最后一个分号
|
|
||||||
if (StrUtil.isNotBlank(msg)) {
|
|
||||||
msg.deleteCharAt(msg.length() - 1);
|
|
||||||
}
|
|
||||||
sendMap.put("msg", msg.toString());
|
|
||||||
sendMessageDTO.setMap(sendMap);
|
|
||||||
// sendMessageAPI.sendMessage(sendMessageDTO);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void sendMessageToMainDraftUser(String mainDraftUser, String processInstanceId, Integer maxBatchNum) {
|
||||||
// @Override
|
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
||||||
public void updateAllPlanDate() {
|
SendMessageDTO sendMessageDTO = new SendMessageDTO();
|
||||||
// 从流程主表找到所有企标制修订流程
|
sendMessageDTO.setTemplateCode(MessageTemplateCodeCommon.ES_REVISION_ADVICE);
|
||||||
List<ProcessAll> processAlls = processAllService.list(new LambdaQueryWrapper<ProcessAll>()
|
sendMessageDTO.setToUserId(mainDraftUser);
|
||||||
// .eq(ProcessAll::getPrcType, ProcessTypeEnum.ES_REVISION.getValue())
|
Map<String, String> sendMap = new HashMap<>();
|
||||||
.ne(ProcessAll::getPrcStatus, ProcessStatusEnum.WITHDRAWN.getValue()));
|
sendMap.put("prcNum", processAll.getPrcNum());
|
||||||
// this.updatePlanDateByProcessInstanceId(processAlls);
|
sendMap.put("batchNum", maxBatchNum.toString());
|
||||||
|
sendMessageDTO.setMap(sendMap);
|
||||||
|
sendMessageAPI.sendMessage(sendMessageDTO);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+1
@@ -14,6 +14,7 @@ public class MessageTemplateCodeCommon {
|
|||||||
public static final String URGING = "urging"; // 催办
|
public static final String URGING = "urging"; // 催办
|
||||||
public static final String REPLACE_STANDARD_NEW = "replace_standard_new"; // 当前标准引用的标准有新版本标准
|
public static final String REPLACE_STANDARD_NEW = "replace_standard_new"; // 当前标准引用的标准有新版本标准
|
||||||
public static final String IMPLEMENTATION_DATE_NEW_STANDARD = "implementation_date_new_standard"; // 代替标准到实施日期
|
public static final String IMPLEMENTATION_DATE_NEW_STANDARD = "implementation_date_new_standard"; // 代替标准到实施日期
|
||||||
|
public static final String ES_REVISION_ADVICE = "es_revision_advice"; // 代替标准到实施日期
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user