update 项目合规评估流程 提交审批操作

This commit is contained in:
lijiarao
2023-12-16 19:18:38 +08:00
parent 51dcacfe9e
commit 74f60f9889
5 changed files with 280 additions and 87 deletions
@@ -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";
//各部门主管级领导下发
@@ -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;
}
@@ -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}
@@ -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:
}
}
}
@@ -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);