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