update 标准征求意见流程-发起流程 自测成功

This commit is contained in:
lijiarao
2023-12-13 17:38:49 +08:00
parent 8b02326393
commit 2c1ebd7bcc
3 changed files with 58 additions and 26 deletions
@@ -59,7 +59,7 @@ public class MyGlobalEventListener implements ActivitiEventListener {
this.activityComplete(event);
break;
default:
log.info("Event received: " + event.getType());
//log.info("Event received: " + event.getType());
}
}
@@ -0,0 +1,10 @@
package com.jero.modules.activiti.process.projectassess.common;
/**
* @author liJiaRao
* @date 2023-12-13 17:28
*/
public class ProcessProjectAssessCommon {
public static String standardsEngineer = "standardsEngineer";
public static String managerLeaderList = "managerLeaderList";
}
@@ -1,30 +1,41 @@
package com.jero.modules.activiti.process.projectassess.service;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.jero.common.api.vo.ResultCommon;
import com.jero.common.constant.enums.YesOrNoEnum;
import com.jero.common.exception.JeroBootException;
import com.jero.common.system.api.ISysBaseAPI;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.fb.common.ProcessDefinitionKey;
import com.jero.modules.activiti.process.fb.dto.BasicProcessInfoDTO;
import com.jero.modules.activiti.process.fb.service.IProcessHandleService;
import com.jero.modules.activiti.process.projectassess.common.ProcessProjectAssessCommon;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTerm;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessTermUser;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssessLink;
import com.jero.modules.activiti.process.fb.vo.ProcessInfoVO;
import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.jero.modules.activiti.process.projectassess.entity.ProcessProjectAssess;
import com.jero.modules.activiti.process.projectassess.mapper.ProcessProjectAssessMapper;
import org.springframework.transaction.annotation.Transactional;
/**
*
*@author liJiaRao
*@date 2023-12-05 15:57
*/
@Service
@Transactional(rollbackFor = Exception.class)
public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAssessMapper, ProcessProjectAssess> {
@Resource
private ISysBaseAPI sysBaseAPI;
@@ -59,47 +70,58 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
ProcessProjectAssess processProjectAssess = businessInfoDTO.getProcessProjectAssess();
this.save(processProjectAssess);
String id = processProjectAssess.getId();
String assessmentId = processProjectAssess.getId();
//保存关联标准
List<ProcessProjectAssessLink> processProjectAssessLinkList = businessInfoDTO.getProcessProjectAssessLinkList();
for (ProcessProjectAssessLink processProjectAssessLink : processProjectAssessLinkList) {
processProjectAssessLink.setAssessmentId(id);
processProjectAssessLink.setId(null);
processProjectAssessLink.setAssessmentId(assessmentId);
}
processProjectAssessLinkService.saveBatch(processProjectAssessLinkList);
//保存关联的条款、标准
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
processProjectAssessTerm.setAssessmentId(id);
processProjectAssessTerm.setAssessmentId(assessmentId);
}
processProjectAssessTermService.saveBatch(processProjectAssessTermList);
//保存条款和负责人的关联关系
List<String> AllResponsibleUnitLeaderList = new ArrayList<>();
List<ProcessProjectAssessTermUser> saveProcessProjectAssessTermUserList = new ArrayList<>();
List<ProcessProjectAssessTermUser> processProjectAssessTermUserList = businessInfoDTO.getProcessProjectAssessTermUserList();
for (ProcessProjectAssessTermUser processProjectAssessTermUser : processProjectAssessTermUserList) {
processProjectAssessTermUser.setAssessmentId(id);
String responsibleUnitLeader = processProjectAssessTermUser.getResponsibleUnitLeader();
String responsibleUnit = processProjectAssessTermUser.getResponsibleUnit();
if (StringUtils.isBlank(responsibleUnitLeader)||StringUtils.isBlank(responsibleUnit)){
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
String termId = processProjectAssessTerm.getId();
processProjectAssessTerm.setAssessmentId(assessmentId);
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
//如果是不需要分派的先跳过
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)){
continue;
}
String[] responsibleUnitLeaderSplit = responsibleUnitLeader.split(",");
String[] responsibleUnitSplit = responsibleUnit.split(",");
for (int i = 0; i < responsibleUnitLeaderSplit.length; i++) {
String responsibleUnitLeaderId = responsibleUnitLeaderSplit[i];
String responsibleUnitId = responsibleUnitSplit[i];
ProcessProjectAssessTermUser saveProcessProjectAssessTermUser = new ProcessProjectAssessTermUser();
saveProcessProjectAssessTermUser.setAssessmentId(id);
saveProcessProjectAssessTermUser.setTremId(processProjectAssessTermUser.getTremId());
saveProcessProjectAssessTermUser.setResponsibleUnit(responsibleUnitId);
saveProcessProjectAssessTermUser.setResponsibleUnitLeader(responsibleUnitLeaderId);
saveProcessProjectAssessTermUserList.add(saveProcessProjectAssessTermUser);
String responsibleUnitLeaders = processProjectAssessTerm.getResponsibleUnitLeaders();
if (StringUtils.isBlank(responsibleUnitLeaders)){
throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED);
}
//去重
List<String> responsibleUnitLeaderList = Arrays.asList(responsibleUnitLeaders.split(","));
List<String> distinctResponsibleUnitLeader = responsibleUnitLeaderList.stream().distinct().collect(Collectors.toList());
for (String responsibleUnitLeader : distinctResponsibleUnitLeader) {
ProcessProjectAssessTermUser processProjectAssessTermUser = new ProcessProjectAssessTermUser();
processProjectAssessTermUser.setAssessmentId(assessmentId);
processProjectAssessTermUser.setTremId(termId);
processProjectAssessTermUser.setResponsibleUnitLeader(responsibleUnitLeader);
saveProcessProjectAssessTermUserList.add(processProjectAssessTermUser);
}
AllResponsibleUnitLeaderList.addAll(distinctResponsibleUnitLeader);
}
List<String> distinctAllResponsibleUnitLeaderList = AllResponsibleUnitLeaderList.stream().distinct().collect(Collectors.toList());
String distinctAllResponsibleUnitLeaderListJoin = CollectionUtil.join(distinctAllResponsibleUnitLeaderList, ",");
processProjectAssessTermUserService.saveBatch(saveProcessProjectAssessTermUserList);
BasicProcessInfoDTO basicProcessInfoDTO = processInfoVO.getBasicProcessInfoDTO();
basicProcessInfoDTO.setProcessDefinitionId(processHandleService.getDefinitionIdByKey(ProcessDefinitionKey.PROJECT_ASSESS)); // 流程定义id
basicProcessInfoDTO.setProcessType(ProcessTypeEnum.PROJECT_ASSESS.getValue()); // 流程类型
Map<String, Object> userInfoMap = new HashMap<>();
userInfoMap.put(ProcessProjectAssessCommon.standardsEngineer, CurrentUserUtil.getId());
userInfoMap.put(ProcessProjectAssessCommon.managerLeaderList, distinctAllResponsibleUnitLeaderListJoin);
processInfoVO.setUserInfoMap(userInfoMap);
processHandleService.startProcess(processInfoVO);