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