update 项目合规评估流程 提交审批操作
This commit is contained in:
+2
@@ -8,6 +8,8 @@ public class ProcessProjectAssessCommon {
|
||||
public static final String STANDARDS_ENGINEER = "standardsEngineer";
|
||||
public static final String MANAGER_LEADER_LIST = "managerLeaderList";
|
||||
public static final String MODULE_OWNER_LIST = "moduleOwnerList";
|
||||
public static final String DESIGN_ENGINEER_LIST = "designEngineerList";
|
||||
public static final String PASS = "pass";
|
||||
//法规工程师发起
|
||||
public static final String FGGCSFQ = "fggcsfq";
|
||||
//各部门主管级领导下发
|
||||
|
||||
+46
-2
@@ -100,6 +100,13 @@ public class ProcessProjectAssessTerm {
|
||||
@ApiModelProperty(value = "可以分派标识")
|
||||
private Integer canAssignFlag;
|
||||
|
||||
/**
|
||||
* 条款关联用户表ID
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "条款关联用户表ID")
|
||||
private String termUserId;
|
||||
|
||||
/**
|
||||
* 责任单位id
|
||||
*/
|
||||
@@ -111,15 +118,22 @@ public class ProcessProjectAssessTerm {
|
||||
* 责任单位负责人id
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "责任单位负责人id")
|
||||
@ApiModelProperty(value = "责任单位负责人ids")
|
||||
private String responsibleUnitLeaders;
|
||||
/**
|
||||
* 模块负责人id
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "模块负责人id")
|
||||
@ApiModelProperty(value = "模块负责人ids")
|
||||
private String moduleOwners;
|
||||
|
||||
/**
|
||||
* 设计工程师
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "设计工程师ids")
|
||||
private String designEngineers;
|
||||
|
||||
/**
|
||||
* 不涉及原因
|
||||
*/
|
||||
@@ -137,5 +151,35 @@ public class ProcessProjectAssessTerm {
|
||||
@ApiModelProperty(value = "条款关联用户")
|
||||
private List<ProcessProjectAssessTermUser> processProjectAssessTermUserList;
|
||||
|
||||
/**
|
||||
* 评估反馈
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "评估反馈")
|
||||
private Integer evaluationFeedback;
|
||||
|
||||
/**
|
||||
* 依据描述
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "依据描述")
|
||||
private String description;
|
||||
|
||||
/**
|
||||
* 佐证材料
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "佐证材料")
|
||||
private String fileId;
|
||||
|
||||
/**
|
||||
* 预计整改完成日期
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
@ApiModelProperty(value = "预计整改完成日期")
|
||||
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
|
||||
@DateTimeFormat(pattern="yyyy-MM-dd")
|
||||
private Date expectedTime;
|
||||
|
||||
|
||||
}
|
||||
+5
@@ -17,6 +17,7 @@
|
||||
<result column="term_text" jdbcType="VARCHAR" property="termText" />
|
||||
<result column="split_info_id" property="splitInfoId"/>
|
||||
<result column="can_assign_flag" property="canAssignFlag"/>
|
||||
<result column="term_user_id" property="termUserId"/>
|
||||
</resultMap>
|
||||
|
||||
<sql id="Base_Column_List">
|
||||
@@ -42,6 +43,8 @@
|
||||
<include refid="Base_Column_List">
|
||||
<property name="alias" value="ppat"/>
|
||||
</include>
|
||||
,
|
||||
ppatu.id termUserId
|
||||
from process_project_assess_term ppat
|
||||
left join process_project_assess_term_user ppatu on ppat.id = ppatu.term_id
|
||||
where ppat.assessment_id = #{assessmentId}
|
||||
@@ -55,6 +58,8 @@
|
||||
<include refid="Base_Column_List">
|
||||
<property name="alias" value="ppat"/>
|
||||
</include>
|
||||
,
|
||||
ppatu.id termUserId
|
||||
from process_project_assess_term ppat
|
||||
left join process_project_assess_term_user ppatu on ppat.id = ppatu.term_id
|
||||
where ppat.assessment_id = #{assessmentId}
|
||||
|
||||
+225
-84
@@ -1,4 +1,6 @@
|
||||
package com.jero.modules.activiti.process.projectassess.service;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import cn.hutool.core.collection.CollStreamUtil;
|
||||
@@ -34,6 +36,7 @@ import org.activiti.engine.runtime.Execution;
|
||||
import org.activiti.engine.task.Task;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -44,10 +47,9 @@ import com.jero.modules.activiti.process.projectassess.mapper.ProcessProjectAsse
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
/**
|
||||
*
|
||||
*@author liJiaRao
|
||||
*@date 2023-12-05 15:57
|
||||
*/
|
||||
* @author liJiaRao
|
||||
* @date 2023-12-05 15:57
|
||||
*/
|
||||
@Service
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAssessMapper, ProcessProjectAssess> {
|
||||
@@ -84,10 +86,10 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
}
|
||||
|
||||
public ProcessInfoVO<ProcessProjectAssessVO> queryProcessInfoVO(String draftId, String processInstanceId, String taskId) {
|
||||
if (StringUtils.isNotBlank(draftId) && StringUtils.isBlank(taskId)){
|
||||
ProcessInfoVO draft = processHandleService.getDraft(draftId);
|
||||
return draft;
|
||||
}
|
||||
if (StringUtils.isNotBlank(draftId) && StringUtils.isBlank(taskId)) {
|
||||
ProcessInfoVO draft = processHandleService.getDraft(draftId);
|
||||
return draft;
|
||||
}
|
||||
ProcessInfoVO processInfoVO = processHandleService.queryProcessInfoVO(draftId, processInstanceId, taskId);
|
||||
String assessmentId = processInfoVO.getBusinessId();
|
||||
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
||||
@@ -95,31 +97,29 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
|
||||
String executionParentId = task.getFormKey();
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
Execution execution = processDTO.getExecution();
|
||||
String executionParentId = (String) runtimeService.getVariable(execution.getId(),"flowIndex");
|
||||
//String executionParentId = execution.getParentId();
|
||||
List<ProcessProjectAssessTermUser> processProjectAssessTermUserList = new ArrayList<>();
|
||||
List<ProcessProjectAssessTerm> processProjectAssessTermList = new ArrayList<>();
|
||||
//获取所有用户信息
|
||||
List<LoginUser> userList = sysBaseAPI.getAllUser();
|
||||
Map<String,String> userNameMap = new HashMap<>();
|
||||
Map<String, String> userNameMap = new HashMap<>();
|
||||
for (LoginUser loginUser : userList) {
|
||||
userNameMap.put(loginUser.getId(),loginUser.calcNameWorkNo());
|
||||
userNameMap.put(loginUser.getId(), loginUser.calcNameWorkNo());
|
||||
}
|
||||
//上一节点处理人
|
||||
Map<String,String> previousNodeHandlerMap = new HashMap<>();
|
||||
Map<String, String> previousNodeHandlerMap = new HashMap<>();
|
||||
LambdaQueryWrapper<ProcessProjectAssessTermUser> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, assessmentId);
|
||||
switch (taskDefinitionKey) {
|
||||
//各部门主管级领导下发
|
||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId,originUserId);
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId, originUserId);
|
||||
break;
|
||||
//各部门主管级领导(汇总)审批
|
||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId,originUserId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader,originUserId);
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId, originUserId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader, originUserId);
|
||||
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
||||
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
||||
.collect(
|
||||
@@ -132,15 +132,15 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
break;
|
||||
//模块负责人分发
|
||||
case ProcessProjectAssessCommon.MKFZRFF:
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId,originUserId,executionParentId);
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId, originUserId, executionParentId);
|
||||
break;
|
||||
//模块负责人审批
|
||||
case ProcessProjectAssessCommon.MKFZRSP:
|
||||
//模块负责人修改
|
||||
//模块负责人修改
|
||||
case ProcessProjectAssessCommon.MKFZRXG:
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId,originUserId,executionParentId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getModuleOwner,originUserId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId,executionParentId);
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByModuleOwner(assessmentId, originUserId, executionParentId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getModuleOwner, originUserId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionParentId);
|
||||
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
||||
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
||||
.collect(
|
||||
@@ -153,15 +153,15 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
break;
|
||||
//设计工程师评估
|
||||
case ProcessProjectAssessCommon.SJGCSPG:
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByDesignEngineer(assessmentId,originUserId,executionParentId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getDesignEngineer,originUserId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId,executionParentId);
|
||||
processProjectAssessTermList = processProjectAssessTermService.getByDesignEngineer(assessmentId, originUserId, executionParentId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getDesignEngineer, originUserId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionParentId);
|
||||
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
|
||||
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
|
||||
.collect(
|
||||
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
|
||||
Collectors.mapping(item -> {
|
||||
return userNameMap.get(item.getModuleOwner());
|
||||
return userNameMap.get(item.getModuleOwner());
|
||||
},
|
||||
Collectors.joining(",")))
|
||||
);
|
||||
@@ -174,7 +174,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
.collect(
|
||||
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
|
||||
Collectors.mapping(item -> {
|
||||
return userNameMap.get(item.getResponsibleUnitLeader());
|
||||
return userNameMap.get(item.getResponsibleUnitLeader());
|
||||
},
|
||||
Collectors.joining(",")))
|
||||
);
|
||||
@@ -184,7 +184,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
}
|
||||
|
||||
//给条款中保存关联的信息
|
||||
if (!processProjectAssessTermUserList.isEmpty()){
|
||||
if (!processProjectAssessTermUserList.isEmpty()) {
|
||||
Map<String, List<ProcessProjectAssessTermUser>> termIdListMap = CollStreamUtil.groupByKey(processProjectAssessTermUserList, ProcessProjectAssessTermUser::getTermId);
|
||||
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
|
||||
String termId = term.getId();
|
||||
@@ -200,7 +200,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
List<String> usedSplitInfoId = new ArrayList<>();
|
||||
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
|
||||
String splitInfoId = term.getSplitInfoId();
|
||||
if (!usedSplitInfoId.contains(splitInfoId) && splitInfoIdMap.containsKey(splitInfoId)){
|
||||
if (!usedSplitInfoId.contains(splitInfoId) && splitInfoIdMap.containsKey(splitInfoId)) {
|
||||
usedSplitInfoId.add(splitInfoId);
|
||||
ProcessProjectAssessTerm titleTerm = splitInfoIdMap.get(splitInfoId);
|
||||
ProcessProjectAssessTerm term1 = new ProcessProjectAssessTerm();
|
||||
@@ -245,11 +245,11 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
processProjectAssessTerm.setAssessmentId(assessmentId);
|
||||
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
||||
//如果是不需要分派的先跳过
|
||||
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)){
|
||||
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)) {
|
||||
continue;
|
||||
}
|
||||
String responsibleUnitLeaders = processProjectAssessTerm.getResponsibleUnitLeaders();
|
||||
if (StringUtils.isBlank(responsibleUnitLeaders)){
|
||||
if (StringUtils.isBlank(responsibleUnitLeaders)) {
|
||||
throw new JeroBootException(ResultCommon.PARAMETER_NOT_RECOGNIZED);
|
||||
}
|
||||
//去重
|
||||
@@ -280,10 +280,47 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
|
||||
}
|
||||
|
||||
public void approveTask(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, boolean b) {
|
||||
public void approveTask(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, boolean pass) {
|
||||
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = basicTaskInfoDTO.getTaskId();
|
||||
ProcessDTO processDTO = processHandleService.getProcessDTO(taskId);
|
||||
String processInstanceId = processDTO.getProcessInstanceId();
|
||||
ProcessAll processAll = processAllService.getByProcessInstanceId(processInstanceId);
|
||||
processInfoVO.setBusinessId(processAll.getProjectId());
|
||||
Task task = processDTO.getTask();
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
processHandleService.updateApprovalRecord(processInfoVO);
|
||||
switch (taskDefinitionKey) {
|
||||
//模块负责人审批
|
||||
case ProcessProjectAssessCommon.MKFZRSP:
|
||||
mkfzrspApprove(processInfoVO, processDTO, pass);
|
||||
break;
|
||||
//各部门主管级领导(汇总)审批
|
||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||
gbmzgjldspApprove(processInfoVO, processDTO, pass);
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private void mkfzrspApprove(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ProcessProjectAssessCommon.PASS, pass);
|
||||
taskService.complete(taskId, variables);
|
||||
}
|
||||
|
||||
private void gbmzgjldspApprove(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO, boolean pass) {
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ProcessProjectAssessCommon.PASS, pass);
|
||||
taskService.complete(taskId, variables);
|
||||
}
|
||||
|
||||
|
||||
public void submit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
||||
BasicTaskInfoDTO basicTaskInfoDTO = processInfoVO.getBasicTaskInfoDTO();
|
||||
String taskId = basicTaskInfoDTO.getTaskId();
|
||||
@@ -293,43 +330,32 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
processInfoVO.setBusinessId(processAll.getProjectId());
|
||||
Task task = processDTO.getTask();
|
||||
String taskDefinitionKey = task.getTaskDefinitionKey();
|
||||
processHandleService.updateApprovalRecord(processInfoVO);
|
||||
switch (taskDefinitionKey) {
|
||||
//各部门主管级领导下发
|
||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||
gbmzgjldxfSubmit(processInfoVO,processDTO);
|
||||
gbmzgjldxfSubmit(processInfoVO, processDTO);
|
||||
break;
|
||||
//模块负责人分发
|
||||
case ProcessProjectAssessCommon.MKFZRFF:
|
||||
mkfzrffSubmit(processInfoVO,processDTO);
|
||||
mkfzrffSubmit(processInfoVO, processDTO);
|
||||
break;
|
||||
//设计工程师评估
|
||||
case ProcessProjectAssessCommon.SJGCSPG:
|
||||
sjgcspgSubmit(processInfoVO, processDTO);
|
||||
break;
|
||||
//模块负责人修改
|
||||
case ProcessProjectAssessCommon.MKFZRXG:
|
||||
mkfzrxgSubmit(processInfoVO, processDTO);
|
||||
break;
|
||||
//法规工程师归档
|
||||
case ProcessProjectAssessCommon.FGGCSGD:
|
||||
break;
|
||||
default:
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void mkfzrffSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
String executionId = task.getExecutionId();
|
||||
// 删除原先存储的关联
|
||||
LambdaQueryWrapper<ProcessProjectAssessTermUser> removeWrapper = new LambdaQueryWrapper<>();
|
||||
removeWrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
||||
removeWrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader, originUserId);
|
||||
processProjectAssessTermUserService.remove(removeWrapper);
|
||||
}
|
||||
|
||||
//各部门主管级领导下发
|
||||
private void gbmzgjldxfSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
@@ -350,7 +376,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
String termId = processProjectAssessTerm.getId();
|
||||
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
||||
String notInvolved = processProjectAssessTerm.getNotInvolved();
|
||||
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)){
|
||||
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)) {
|
||||
continue;
|
||||
}
|
||||
if (StringUtils.isNotBlank(notInvolved)) {
|
||||
@@ -378,7 +404,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
}
|
||||
}
|
||||
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
||||
if (moduleOwnerIds.isEmpty()){
|
||||
if (moduleOwnerIds.isEmpty()) {
|
||||
throw new JeroBootException(ResultCommon.ProjectAssess);
|
||||
}
|
||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.GBMZGJLDXF, moduleOwnerIds);
|
||||
@@ -386,15 +412,139 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ProcessProjectAssessCommon.MODULE_OWNER_LIST, moduleOwnerIds);
|
||||
variables.put("flowIndex", executionId);
|
||||
taskService.complete(taskId,variables);
|
||||
taskService.complete(taskId, variables);
|
||||
}
|
||||
|
||||
//模块负责人分发
|
||||
private void mkfzrffSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
String executionId = task.getExecutionId();
|
||||
//拿到一条用于获取责任单位负责人
|
||||
LambdaQueryWrapper<ProcessProjectAssessTermUser> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getModuleOwner, originUserId);
|
||||
wrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionId);
|
||||
wrapper.last("limit 1");
|
||||
ProcessProjectAssessTermUser one = processProjectAssessTermUserService.getOne(wrapper);
|
||||
String responsibleUnitLeader = one.getResponsibleUnitLeader();
|
||||
// 删除原先存储的关联
|
||||
LambdaQueryWrapper<ProcessProjectAssessTermUser> removeWrapper = new LambdaQueryWrapper<>();
|
||||
removeWrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId);
|
||||
removeWrapper.eq(ProcessProjectAssessTermUser::getModuleOwner, originUserId);
|
||||
removeWrapper.eq(ProcessProjectAssessTermUser::getParentExecutionId, executionId);
|
||||
|
||||
processProjectAssessTermUserService.remove(removeWrapper);
|
||||
|
||||
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
|
||||
List<ProcessProjectAssessTermUser> allTermUserList = new ArrayList<>();
|
||||
List<String> designEngineerIds = new ArrayList<>();
|
||||
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
|
||||
String termId = processProjectAssessTerm.getId();
|
||||
Integer canAssignFlag = processProjectAssessTerm.getCanAssignFlag();
|
||||
String notInvolved = processProjectAssessTerm.getNotInvolved();
|
||||
if (YesOrNoEnum.NO.getInteger().equals(canAssignFlag)) {
|
||||
continue;
|
||||
}
|
||||
if (StringUtils.isNotBlank(notInvolved)) {
|
||||
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
|
||||
newTermUser.setAssessmentId(businessId);
|
||||
newTermUser.setTermId(termId);
|
||||
newTermUser.setResponsibleUnitLeader(responsibleUnitLeader);
|
||||
newTermUser.setModuleOwner(originUserId);
|
||||
newTermUser.setParentExecutionId(executionId);
|
||||
newTermUser.setNotInvolved(notInvolved);
|
||||
allTermUserList.add(newTermUser);
|
||||
continue;
|
||||
}
|
||||
|
||||
String designEngineers = processProjectAssessTerm.getDesignEngineers();
|
||||
List<String> designEngineerIdList = Arrays.asList(designEngineers.split(","));
|
||||
for (String designEngineerId : designEngineerIdList) {
|
||||
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
|
||||
newTermUser.setAssessmentId(businessId);
|
||||
newTermUser.setTermId(termId);
|
||||
newTermUser.setResponsibleUnitLeader(responsibleUnitLeader);
|
||||
newTermUser.setParentExecutionId(executionId);
|
||||
newTermUser.setModuleOwner(originUserId);
|
||||
newTermUser.setDesignEngineer(designEngineerId);
|
||||
designEngineerIds.add(designEngineerId);
|
||||
allTermUserList.add(newTermUser);
|
||||
}
|
||||
}
|
||||
processProjectAssessTermUserService.saveBatch(allTermUserList);
|
||||
if (designEngineerIds.isEmpty()) {
|
||||
throw new JeroBootException(ResultCommon.ProjectAssess);
|
||||
}
|
||||
processHandleService.saveNodeUserLink(processDTO.getProcessInstanceId(), ProcessProjectAssessCommon.MKFZRFF, designEngineerIds);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
Map<String, Object> variables = new HashMap<>();
|
||||
variables.put(ProcessProjectAssessCommon.DESIGN_ENGINEER_LIST, designEngineerIds);
|
||||
taskService.complete(taskId, variables);
|
||||
}
|
||||
|
||||
//设计工程师评估
|
||||
private void sjgcspgSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
String executionId = task.getExecutionId();
|
||||
|
||||
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
|
||||
List<ProcessProjectAssessTermUser> allTermUserList = new ArrayList<>();
|
||||
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
|
||||
ProcessProjectAssessTermUser termUser = new ProcessProjectAssessTermUser();
|
||||
termUser.setId(processProjectAssessTerm.getTermUserId());
|
||||
termUser.setEvaluationFeedback(processProjectAssessTerm.getEvaluationFeedback());
|
||||
termUser.setDescription(processProjectAssessTerm.getDescription());
|
||||
termUser.setFileId(processProjectAssessTerm.getFileId());
|
||||
termUser.setExpectedTime(processProjectAssessTerm.getExpectedTime());
|
||||
allTermUserList.add(termUser);
|
||||
}
|
||||
processProjectAssessTermUserService.updateBatchById(allTermUserList);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
taskService.complete(taskId);
|
||||
}
|
||||
|
||||
//模块负责人修改
|
||||
private void mkfzrxgSubmit(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO, ProcessDTO processDTO) {
|
||||
String businessId = processInfoVO.getBusinessId();
|
||||
ProcessApprovalRecord processApprovalRecord = processDTO.getProcessApprovalRecord();
|
||||
String originUserId = processApprovalRecord.getOriginUserId();
|
||||
Task task = processDTO.getTask();
|
||||
String executionId = task.getExecutionId();
|
||||
|
||||
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
List<ProcessProjectAssessTerm> processProjectAssessTermList = businessInfoDTO.getProcessProjectAssessTermList();
|
||||
List<ProcessProjectAssessTermUser> allTermUserList = new ArrayList<>();
|
||||
for (ProcessProjectAssessTerm processProjectAssessTerm : processProjectAssessTermList) {
|
||||
ProcessProjectAssessTermUser termUser = new ProcessProjectAssessTermUser();
|
||||
termUser.setId(processProjectAssessTerm.getTermUserId());
|
||||
termUser.setEvaluationFeedback(processProjectAssessTerm.getEvaluationFeedback());
|
||||
termUser.setDescription(processProjectAssessTerm.getDescription());
|
||||
termUser.setFileId(processProjectAssessTerm.getFileId());
|
||||
termUser.setExpectedTime(processProjectAssessTerm.getExpectedTime());
|
||||
allTermUserList.add(termUser);
|
||||
}
|
||||
processProjectAssessTermUserService.updateBatchById(allTermUserList);
|
||||
// 完成任务
|
||||
String taskId = processDTO.getTaskId();
|
||||
taskService.complete(taskId);
|
||||
}
|
||||
|
||||
|
||||
public void saveToDraft(ProcessInfoVO<ProcessProjectAssessVO> processInfoVO) {
|
||||
ProcessProjectAssessVO businessInfoDTO = processInfoVO.getBusinessInfoDTO();
|
||||
if (businessInfoDTO!=null){
|
||||
if (businessInfoDTO != null) {
|
||||
ProcessProjectAssess processProjectAssess = businessInfoDTO.getProcessProjectAssess();
|
||||
if (processProjectAssess!=null){
|
||||
if (processProjectAssess != null) {
|
||||
processInfoVO.setBusinessId(processProjectAssess.getId());
|
||||
}
|
||||
}
|
||||
@@ -410,39 +560,30 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
|
||||
String taskDefinitionKey = delegateTask.getTaskDefinitionKey();
|
||||
String assignee = delegateTask.getAssignee();
|
||||
String processInstanceId = delegateTask.getProcessInstanceId();
|
||||
String nodeId = null;
|
||||
switch (taskDefinitionKey) {
|
||||
//模块负责人分发
|
||||
case ProcessProjectAssessCommon.MKFZRFF:
|
||||
nodeId = ProcessProjectAssessCommon.GBMZGJLDSP;
|
||||
break;
|
||||
//设计工程师评估
|
||||
case ProcessProjectAssessCommon.SJGCSPG:
|
||||
nodeId = ProcessProjectAssessCommon.MKFZRFF;
|
||||
break;
|
||||
//模块负责人审批
|
||||
case ProcessProjectAssessCommon.MKFZRSP:
|
||||
nodeId = ProcessProjectAssessCommon.MKFZRFF;
|
||||
//模块负责人修改
|
||||
case ProcessProjectAssessCommon.MKFZRXG:
|
||||
nodeId = ProcessProjectAssessCommon.GBMZGJLDSP;
|
||||
break;
|
||||
default:
|
||||
}
|
||||
//查询我最新提交的task
|
||||
ProcessApprovalRecord myLastComplete = processApprovalRecordService.getMyLastComplete(processInstanceId);
|
||||
ProcessApprovalRecord myLastComplete = processApprovalRecordService.getMyLastComplete(processInstanceId, nodeId);
|
||||
String lastCompleteTaskId = myLastComplete.getTaskId();
|
||||
ProcessDTO processDTO = processHandleService.getProcessDTO(lastCompleteTaskId);
|
||||
Execution execution = processDTO.getExecution();
|
||||
delegateTask.setFormKey(execution.getId());
|
||||
switch (taskDefinitionKey) {
|
||||
//各部门主管级领导下发
|
||||
case ProcessProjectAssessCommon.GBMZGJLDXF:
|
||||
break;
|
||||
//各部门主管级领导(汇总)审批
|
||||
case ProcessProjectAssessCommon.GBMZGJLDSP:
|
||||
|
||||
break;
|
||||
//模块负责人分发
|
||||
case ProcessProjectAssessCommon.MKFZRFF:
|
||||
break;
|
||||
//模块负责人审批
|
||||
case ProcessProjectAssessCommon.MKFZRSP:
|
||||
//模块负责人修改
|
||||
case ProcessProjectAssessCommon.MKFZRXG:
|
||||
|
||||
break;
|
||||
//设计工程师评估
|
||||
case ProcessProjectAssessCommon.SJGCSPG:
|
||||
|
||||
break;
|
||||
//法规工程师归档
|
||||
case ProcessProjectAssessCommon.FGGCSGD:
|
||||
|
||||
break;
|
||||
|
||||
default:
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -53,11 +53,12 @@ public class ProcessApprovalRecordService extends ServiceImpl<ProcessApprovalRec
|
||||
return pageList;
|
||||
}
|
||||
|
||||
public ProcessApprovalRecord getMyLastComplete(String processInstanceId) {
|
||||
public ProcessApprovalRecord getMyLastComplete(String processInstanceId,String nodeId) {
|
||||
LambdaQueryWrapper<ProcessApprovalRecord> wrapper = new LambdaQueryWrapper<>();
|
||||
wrapper.eq(ProcessApprovalRecord::getProcessInstanceId,processInstanceId);
|
||||
wrapper.eq(ProcessApprovalRecord::getUserId, CurrentUserUtil.getId());
|
||||
wrapper.eq(ProcessApprovalRecord::getFinishFlag,FinishFlagEnum.COMPLETE.getValue());
|
||||
wrapper.eq(StringUtils.isNotBlank(nodeId), ProcessApprovalRecord::getNodeId,nodeId);
|
||||
wrapper.orderByDesc(ProcessApprovalRecord::getEndTime);
|
||||
wrapper.last("limit 1");
|
||||
ProcessApprovalRecord approvalRecord = this.getOne(wrapper);
|
||||
|
||||
Reference in New Issue
Block a user