add 项目合规评估流程 各个节点的查询详情

update 项目合规评估流程 各部门主管级领导下发
This commit is contained in:
lijiarao
2023-12-15 11:34:12 +08:00
parent c88e0c18b7
commit 2a75ef6b9f
9 changed files with 170 additions and 27 deletions
@@ -126,6 +126,12 @@ public class ProcessProjectAssessTerm {
@TableField(exist = false)
@ApiModelProperty(value = "不涉及原因")
private String notInvolved;
/**
* 上一节点处理人
*/
@TableField(exist = false)
@ApiModelProperty(value = "上一节点处理人")
private String previousNodeHandler;
@TableField(exist = false)
@ApiModelProperty(value = "条款关联用户")
@@ -77,7 +77,7 @@ public class ProcessProjectAssessTermUser {
* 关联条款表id
*/
@ApiModelProperty(value = "关联条款表id")
private String tremId;
private String termId;
/**
* 责任单位id
@@ -12,4 +12,9 @@ import java.util.List;
*/
public interface ProcessProjectAssessTermMapper extends BaseMapper<ProcessProjectAssessTerm> {
List<ProcessProjectAssessTerm> getByResponsibleUnitLeader(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId);
List<ProcessProjectAssessTerm> getByModuleOwner(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId);
List<ProcessProjectAssessTerm> getByDesignEngineer(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId);
}
@@ -25,17 +25,41 @@
term_number, term_name, term_text, split_info_id, can_assign_flag
</sql>
<select id="getByResponsibleUnitLeader" resultMap="BaseResultMap">
select
ppat.id,ppat.create_by,ppat.create_time,ppat.update_by,ppat.update_time,ppat.org_code,ppat.del_flag,ppat.assessment_id,
ppat.term_number,ppat.term_name,ppat.term_text,ppat.split_info_id,ppat.can_assign_flag
from process_project_assess_term ppat
left join process_project_assess_term_user ppatu on ppat.id = ppatu.trem_id
where
ppat.assessment_id = #{assessmentId}
select
<include refid="Base_Column_List">
<property name="alias" value="ppat"/>
</include>
from process_project_assess_term ppat
left join process_project_assess_term_user ppatu on ppat.id = ppatu.trem_id
where ppat.assessment_id = #{assessmentId}
and ppatu.responsible_unit_leader = #{originUserId}
and ppatu.id is not null
</select>
</select>
<select id="getByModuleOwner" resultMap="BaseResultMap">
select
<include refid="Base_Column_List">
<property name="alias" value="ppat"/>
</include>
from process_project_assess_term ppat
left join process_project_assess_term_user ppatu on ppat.id = ppatu.trem_id
where ppat.assessment_id = #{assessmentId}
and ppatu.module_owner = #{originUserId}
and ppatu.parent_execution_id = #{executionParentId}
and ppatu.id is not null
</select>
<select id="getByDesignEngineer" resultMap="BaseResultMap">
select
<include refid="Base_Column_List">
<property name="alias" value="ppat"/>
</include>
from process_project_assess_term ppat
left join process_project_assess_term_user ppatu on ppat.id = ppatu.trem_id
where ppat.assessment_id = #{assessmentId}
and ppatu.design_engineer = #{originUserId}
and ppatu.parent_execution_id = #{executionParentId}
and ppatu.id is not null
</select>
</mapper>
@@ -12,7 +12,7 @@
<result column="org_code" jdbcType="VARCHAR" property="orgCode" />
<result column="del_flag" jdbcType="INTEGER" property="delFlag" />
<result column="assessment_id" jdbcType="VARCHAR" property="assessmentId" />
<result column="trem_id" jdbcType="VARCHAR" property="tremId" />
<result column="trem_id" jdbcType="VARCHAR" property="termId" />
<result column="responsible_unit" jdbcType="VARCHAR" property="responsibleUnit" />
<result column="responsible_unit_leader" jdbcType="VARCHAR" property="responsibleUnitLeader" />
<result column="sub_process_id" jdbcType="VARCHAR" property="subProcessId" />
@@ -1,17 +1,18 @@
package com.jero.modules.activiti.process.projectassess.service;
import java.util.List;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.ComboModel;
import com.jero.common.system.vo.LoginUser;
import com.jero.modules.activiti.entity.ProcessAll;
import com.jero.modules.activiti.entity.ProcessApprovalRecord;
import com.jero.modules.activiti.enums.ProcessTypeEnum;
import com.jero.modules.activiti.process.fb.common.ConsultationNodeSort;
import com.jero.modules.activiti.process.fb.common.FbCommon;
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.dto.BasicTaskInfoDTO;
@@ -27,6 +28,7 @@ import com.jero.modules.activiti.process.projectassess.vo.ProcessProjectAssessVO
import com.jero.modules.activiti.service.ProcessAllService;
import com.jero.modules.laws.common.util.CurrentUserUtil;
import org.activiti.engine.TaskService;
import org.activiti.engine.runtime.Execution;
import org.activiti.engine.task.Task;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
@@ -87,34 +89,106 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
String originUserId = processApprovalRecord.getOriginUserId();
Task task = processDTO.getTask();
String taskDefinitionKey = task.getTaskDefinitionKey();
Execution execution = processDTO.getExecution();
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<>();
for (LoginUser loginUser : userList) {
userNameMap.put(loginUser.getId(),loginUser.calcNameWorkNo());
}
//上一节点处理人
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);
break;
//各部门主管级领导(汇总)审批
case ProcessProjectAssessCommon.GBMZGJLDSP:
processProjectAssessTermList = processProjectAssessTermService.getByResponsibleUnitLeader(assessmentId,originUserId);
wrapper.eq(ProcessProjectAssessTermUser::getResponsibleUnitLeader,originUserId);
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
.collect(
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
Collectors.mapping(item -> {
return userNameMap.get(item.getModuleOwner());
},
Collectors.joining(",")))
);
break;
//模块负责人分发
case ProcessProjectAssessCommon.MKFZRFF:
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);
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
.collect(
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
Collectors.mapping(item -> {
return userNameMap.get(item.getDesignEngineer());
},
Collectors.joining(",")))
);
break;
//设计工程师评估
case ProcessProjectAssessCommon.SJGCSPG:
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());
},
Collectors.joining(",")))
);
break;
//法规工程师归档
case ProcessProjectAssessCommon.FGGCSGD:
processProjectAssessTermList = processProjectAssessTermService.getByStandardsEngineer(assessmentId);
processProjectAssessTermUserList = processProjectAssessTermUserService.list(wrapper);
previousNodeHandlerMap = processProjectAssessTermUserList.stream()
.collect(
Collectors.groupingBy(ProcessProjectAssessTermUser::getTermId,
Collectors.mapping(item -> {
return userNameMap.get(item.getResponsibleUnitLeader());
},
Collectors.joining(",")))
);
break;
default:
}
//给条款中保存关联的信息
Map<String, ProcessProjectAssessTerm> splitInfoIdMap = processProjectAssessTermService.getSplitInfoIdMap(assessmentId);
if (!processProjectAssessTermUserList.isEmpty()){
//给条款中保存关联的信息
if (!processProjectAssessTermUserList.isEmpty()){
Map<String, List<ProcessProjectAssessTermUser>> termIdListMap = CollStreamUtil.groupByKey(processProjectAssessTermUserList, ProcessProjectAssessTermUser::getTermId);
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
String termId = term.getId();
List<ProcessProjectAssessTermUser> termUsers = termIdListMap.get(termId);
term.setProcessProjectAssessTermUserList(termUsers);
String previousNodeHandler = previousNodeHandlerMap.get(termId);
term.setPreviousNodeHandler(previousNodeHandler);
}
}
//拼接分类法规标题
List<ProcessProjectAssessTerm> AllProjectAssesTermList = new ArrayList<>();
Map<String, ProcessProjectAssessTerm> splitInfoIdMap = processProjectAssessTermService.getSplitInfoIdMap(assessmentId);
List<ProcessProjectAssessTerm> allProjectAssesTermList = new ArrayList<>();
List<String> usedSplitInfoId = new ArrayList<>();
for (ProcessProjectAssessTerm term : processProjectAssessTermList) {
String splitInfoId = term.getSplitInfoId();
@@ -125,12 +199,12 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
term1.setTermName(titleTerm.getTermName());
term1.setTermNumber(titleTerm.getTermNumber());
term1.setTermText(titleTerm.getTermText());
AllProjectAssesTermList.add(term1);
allProjectAssesTermList.add(term1);
}
AllProjectAssesTermList.add(term);
allProjectAssesTermList.add(term);
}
ProcessProjectAssessVO processProjectAssessVO = new ProcessProjectAssessVO();
processProjectAssessVO.setProcessProjectAssessTermList(AllProjectAssesTermList);
processProjectAssessVO.setProcessProjectAssessTermList(allProjectAssesTermList);
processInfoVO.setBusinessInfoDTO(processProjectAssessVO);
return processInfoVO;
}
@@ -176,7 +250,7 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
for (String responsibleUnitLeader : distinctResponsibleUnitLeader) {
ProcessProjectAssessTermUser processProjectAssessTermUser = new ProcessProjectAssessTermUser();
processProjectAssessTermUser.setAssessmentId(assessmentId);
processProjectAssessTermUser.setTremId(termId);
processProjectAssessTermUser.setTermId(termId);
processProjectAssessTermUser.setResponsibleUnitLeader(responsibleUnitLeader);
saveProcessProjectAssessTermUserList.add(processProjectAssessTermUser);
}
@@ -231,6 +305,8 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
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);
@@ -251,9 +327,9 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
if (StringUtils.isNotBlank(notInvolved)) {
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
newTermUser.setAssessmentId(businessId);
newTermUser.setTremId(termId);
newTermUser.setTermId(termId);
newTermUser.setResponsibleUnitLeader(originUserId);
//newTermUser.setParentExecutionId();
newTermUser.setParentExecutionId(executionId);
newTermUser.setNotInvolved(notInvolved);
allTermUserList.add(newTermUser);
continue;
@@ -264,9 +340,9 @@ public class ProcessProjectAssessService extends ServiceImpl<ProcessProjectAsses
for (String moduleOwnerId : moduleOwnerIdList) {
ProcessProjectAssessTermUser newTermUser = new ProcessProjectAssessTermUser();
newTermUser.setAssessmentId(businessId);
newTermUser.setTremId(termId);
newTermUser.setTermId(termId);
newTermUser.setResponsibleUnitLeader(originUserId);
//newTermUser.setParentExecutionId();
newTermUser.setParentExecutionId(executionId);
newTermUser.setModuleOwner(moduleOwnerId);
moduleOwnerIds.add(moduleOwnerId);
allTermUserList.add(newTermUser);
@@ -63,4 +63,22 @@ public class ProcessProjectAssessTermService extends ServiceImpl<ProcessProjectA
Map<String, ProcessProjectAssessTerm> stringProcessProjectAssessTermMap = CollStreamUtil.toIdentityMap(list, ProcessProjectAssessTerm::getSplitInfoId);
return stringProcessProjectAssessTermMap;
}
public List<ProcessProjectAssessTerm> getByModuleOwner(String assessmentId, String originUserId, String executionParentId) {
List<ProcessProjectAssessTerm> list = baseMapper.getByModuleOwner(assessmentId,originUserId,executionParentId);
return list;
}
public List<ProcessProjectAssessTerm> getByDesignEngineer(String assessmentId, String originUserId, String executionParentId) {
List<ProcessProjectAssessTerm> list = baseMapper.getByDesignEngineer(assessmentId,originUserId,executionParentId);
return list;
}
public List<ProcessProjectAssessTerm> getByStandardsEngineer(String assessmentId) {
LambdaQueryWrapper<ProcessProjectAssessTerm> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ProcessProjectAssessTerm::getAssessmentId,assessmentId);
wrapper.eq(ProcessProjectAssessTerm::getCanAssignFlag, YesOrNoEnum.NO.getInteger());
List<ProcessProjectAssessTerm> list = this.list(wrapper);
return list;
}
}