From 1e90eceefceef5ea5c637785235bc587cf41e4c9 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期四, 21 十月 2021 09:40:50 +0800 Subject: [PATCH] 模块:api接口 修改:发送实验室负责人改为实验室下课题组下的所有实验室负责人 提:秦老师 --- src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java | 2 ++ src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java | 17 ++++++++++++++++- src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml | 10 ++++++++++ src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java | 1 + src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java | 14 ++++++++++++++ 5 files changed, 43 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java index e9465fb..b70d6bb 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java +++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java @@ -35,4 +35,6 @@ List<LaboratoryVo.Laboratory> getLaboratoryByProject(@Param("project") String project); SysLaboratory getSysLaboratoryByName(String name); + + List<Map> getPersonInCharge(String project); } diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml index 9480b33..ff69a1b 100644 --- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml +++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml @@ -13,6 +13,7 @@ <result property="validFlag" column="valid_flag" typeHandler="com.nanometer.smartlab.entity.handler.ValidFlagHandler"></result> <result property="createTime" column="create_time"></result> <result property="updateTime" column="update_time"></result> + <result property="project" column="project"></result> </resultMap> <sql id="queryWhereSql"> @@ -135,6 +136,15 @@ where name = #{0} and valid_flag = 1 </select> + <select id="getPersonInCharge" resultType="java.util.Map"> + select su.phone + from sys_user as su + left join base_role as br on br.role_id = br.id + where su.project like concat("%",#{project},"%") + and su.valid_flag = 1 + and br.`name` = '实验负责人' + + </select> <update id="updateLabExport" parameterType="com.nanometer.smartlab.entity.SysLaboratory"> update sys_laboratory set type=#{type}, diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java index c041ebf..0d496f9 100644 --- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java @@ -82,6 +82,8 @@ @Resource SysLaboratoryContainerService sysLaboratoryContainer; + @Resource + SysLaboratoryService sysLaboratoryService; @Value("${message.url}") String url; @@ -1489,7 +1491,20 @@ } if(enable && "2".equals(warningId) ) { - List<Map> personsInCharge = sysLaboratoryContainer.getContainerPersonInCharge(containerCode); + //1.根据containerCode获取lab + SysLaboratoryContainer container = sysLaboratoryContainer.getSysLaboratoryContainerByContainerCode(containerCode); + SysLaboratory sysLaboratory = sysLaboratoryService.getSysLaboratory(container.getLaboratoryId()); + String project = sysLaboratory.getProject(); + //2.根据Lab的课题组判断人员 + List<Map> personsInCharge = null; + if (StringUtils.isBlank(project)) { + //没有课题组就是实验室部门下的负责人 + personsInCharge = sysLaboratoryContainer.getContainerPersonInCharge(containerCode); + } else { + //有课题组就是 所有课题组下的人员负责人 + personsInCharge = sysLaboratoryService.getPersonInChargeByProjects(project); + } + Map param = new HashMap(); param.put("groupId", "securityManager"); List<BaseMeta> managers = baseMetaDao.getBaseMetaList(param); diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java index 6861643..2689105 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java +++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java @@ -42,4 +42,5 @@ List<SysLaboratory> getSysLaboratoryListByUserId(String userId); + List<Map> getPersonInChargeByProjects(String project); } diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java index e39a5fd..065b099 100644 --- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java +++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java @@ -285,6 +285,20 @@ } @Override + public List<Map> getPersonInChargeByProjects(String projectStr) { + List<Map> result = new ArrayList<>(); + String[] projectSplit = projectStr.split(","); + for (int i = 0; i < projectSplit.length; i++) { + String project = projectSplit[i]; + if (StringUtils.isBlank(project)) continue; + + List<Map> tail = sysLaboratoryDao.getPersonInCharge(project); + result.addAll(tail); + } + return result; + } + + @Override @Transactional(propagation = Propagation.REQUIRED) public List<SysLaboratory> getSysLaboratoryListByDep(String depId) { try { -- Gitblit v1.9.2