diff --git a/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java b/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java index 15128d80..3313f039 100644 --- a/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java +++ b/laws-base/laws-base-api/jero-system-local-api/src/main/java/com/jero/common/system/api/ISysBaseAPI.java @@ -131,6 +131,8 @@ public interface ISysBaseAPI extends CommonAPI { */ public List queryAllUserBackCombo(); + List getAllUser(); + /** * 19分页查询用户 返回JSONObject * @return diff --git a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java index 670de308..cf05517e 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/service/impl/SysBaseApiImpl.java @@ -583,6 +583,18 @@ public class SysBaseApiImpl implements ISysBaseAPI { return list; } + @Override + public List getAllUser() { + List loginUsers = new ArrayList<>(); + List userList = userMapper.selectList(new QueryWrapper().eq(STATUS,1).eq(DEL_FLAG,0)); + for (SysUser user:userList) { + LoginUser loginUser=new LoginUser(); + BeanUtils.copyProperties(user, loginUser); + loginUsers.add(loginUser); + } + return loginUsers; + } + @Override public JSONObject queryAllUser(String userIds, Integer pageNo, Integer pageSize) { JSONObject json = new JSONObject(); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java index 269a2c1f..d703eabc 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTerm.java @@ -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 = "条款关联用户") diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java index 45d6840c..93e18195 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/entity/ProcessProjectAssessTermUser.java @@ -77,7 +77,7 @@ public class ProcessProjectAssessTermUser { * 关联条款表id */ @ApiModelProperty(value = "关联条款表id") - private String tremId; + private String termId; /** * 责任单位id diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java index fc61fd18..05ea3018 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/ProcessProjectAssessTermMapper.java @@ -12,4 +12,9 @@ import java.util.List; */ public interface ProcessProjectAssessTermMapper extends BaseMapper { List getByResponsibleUnitLeader(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId); + + List getByModuleOwner(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId); + + List getByDesignEngineer(@Param("assessmentId") String assessmentId, @Param("originUserId") String originUserId, @Param("executionParentId") String executionParentId); + } \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml index ef6fd994..1caf26c4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermMapper.xml @@ -25,17 +25,41 @@ term_number, term_name, term_text, split_info_id, can_assign_flag - - + + + + + \ No newline at end of file diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermUserMapper.xml b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermUserMapper.xml index 1077912a..f4b0c0d4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermUserMapper.xml +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/mapper/xml/ProcessProjectAssessTermUserMapper.xml @@ -12,7 +12,7 @@ - + diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java index ce138279..718bead4 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/process/projectassess/service/ProcessProjectAssessService.java @@ -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 processProjectAssessTermUserList = new ArrayList<>(); List processProjectAssessTermList = new ArrayList<>(); + //获取所有用户信息 + List userList = sysBaseAPI.getAllUser(); + Map userNameMap = new HashMap<>(); + for (LoginUser loginUser : userList) { + userNameMap.put(loginUser.getId(),loginUser.calcNameWorkNo()); + } + //上一节点处理人 + Map previousNodeHandlerMap = new HashMap<>(); LambdaQueryWrapper 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 splitInfoIdMap = processProjectAssessTermService.getSplitInfoIdMap(assessmentId); - if (!processProjectAssessTermUserList.isEmpty()){ + //给条款中保存关联的信息 + if (!processProjectAssessTermUserList.isEmpty()){ + Map> termIdListMap = CollStreamUtil.groupByKey(processProjectAssessTermUserList, ProcessProjectAssessTermUser::getTermId); for (ProcessProjectAssessTerm term : processProjectAssessTermList) { String termId = term.getId(); - + List termUsers = termIdListMap.get(termId); + term.setProcessProjectAssessTermUserList(termUsers); + String previousNodeHandler = previousNodeHandlerMap.get(termId); + term.setPreviousNodeHandler(previousNodeHandler); } } //拼接分类法规标题 - List AllProjectAssesTermList = new ArrayList<>(); + Map splitInfoIdMap = processProjectAssessTermService.getSplitInfoIdMap(assessmentId); + List allProjectAssesTermList = new ArrayList<>(); List usedSplitInfoId = new ArrayList<>(); for (ProcessProjectAssessTerm term : processProjectAssessTermList) { String splitInfoId = term.getSplitInfoId(); @@ -125,12 +199,12 @@ public class ProcessProjectAssessService extends ServiceImpl removeWrapper = new LambdaQueryWrapper<>(); removeWrapper.eq(ProcessProjectAssessTermUser::getAssessmentId, businessId); @@ -251,9 +327,9 @@ public class ProcessProjectAssessService extends ServiceImpl stringProcessProjectAssessTermMap = CollStreamUtil.toIdentityMap(list, ProcessProjectAssessTerm::getSplitInfoId); return stringProcessProjectAssessTermMap; } + + public List getByModuleOwner(String assessmentId, String originUserId, String executionParentId) { + List list = baseMapper.getByModuleOwner(assessmentId,originUserId,executionParentId); + return list; + } + + public List getByDesignEngineer(String assessmentId, String originUserId, String executionParentId) { + List list = baseMapper.getByDesignEngineer(assessmentId,originUserId,executionParentId); + return list; + } + + public List getByStandardsEngineer(String assessmentId) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(ProcessProjectAssessTerm::getAssessmentId,assessmentId); + wrapper.eq(ProcessProjectAssessTerm::getCanAssignFlag, YesOrNoEnum.NO.getInteger()); + List list = this.list(wrapper); + return list; + } }