From 0d639a8f891065c0733081b83bc0b94dc5410049 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期一, 11 一月 2021 17:15:59 +0800
Subject: [PATCH] 模块:用户管理 修改:用户课题搜索单选和存入字符,更改获取课题下用户的接口 提出:秦老师

---
 src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java              |   12 +++++-
 src/main/webapp/user_mng.xhtml                                                      |    8 ++--
 src/main/java/com/nanometer/smartlab/controller/UserMngController.java              |    4 +-
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml              |    7 +++
 src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml                             |   33 +++++++---------
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java             |    2 +
 src/main/java/com/nanometer/smartlab/entity/SysUser.java                            |    9 ----
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java     |    3 +
 src/main/java/com/nanometer/smartlab/dao/SysUserDao.java                            |    2 
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java |    9 ++++
 10 files changed, 52 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
index eccbef6..d8b0f9a 100644
--- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
@@ -373,8 +373,8 @@
                     FacesUtils.warn("ID卡号已存在。");
                     return;
                 }
-                if(!org.apache.commons.lang.StringUtils.isNotBlank(sysUser.getProjectId())){
-                    sysUser.setProjectId(null);
+                if(!org.apache.commons.lang.StringUtils.isNotBlank(sysUser.getProject())){
+                    sysUser.setProject(null);
                 }
 
                 String PW_PATTERN = "(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[~!@#$%^&*_.]).{8,}";
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
index 7be34a5..934aae4 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
@@ -46,4 +46,6 @@
     void updateSysLabContainer(Map params);
 
     List<Map> exportExcelList(Map params);
+
+    String selectProjectsByContainerCode(String containerCode);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
index d0724ec..85327fe 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
@@ -213,4 +213,11 @@
   and slc.valid_flag = 1
   </select>
 
+    <select id="selectProjectsByContainerCode" resultType="java.lang.String">
+        select project
+        from sys_laboratory_container
+        where container_code = #{0}
+        and valid_flag = 1
+    </select>
+
 </mapper>
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
index 14685de..7cd4783 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.java
@@ -42,7 +42,7 @@
     int selectUserFavor(Map params);
 
 
-    List<SysUser> getUserListByContainerCodeNew(String containerCode, String startTime, String endTime);
+    List<SysUser> getUserListByProject(String project, String startTime, String endTime);
 
     List<SysUserDto> selectUserInfo();
 
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
index dffdfb3..fb8a108 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysUserDao.xml
@@ -22,7 +22,7 @@
     <result property="updateTime" column="update_time"></result>
     <result property="roleName" column="roleName"></result>
     <result property="containerCodeList" column="containerCodeList"></result>
-    <result property="projectId" column="project_id"></result>
+    <result property="project" column="project"></result>
   </resultMap>
 
     <resultMap id="SysUserDto" type="com.nanometer.smartlab.entity.dto.SysUserDto">
@@ -155,13 +155,13 @@
   </select>
 
   <insert id="insertSysUser" parameterType="com.nanometer.smartlab.entity.SysUser">
-    insert into sys_user(id, arp, account, password, company, department, name, phone, email, memo, id_card, approver_flag, see_flag, role_id, valid_flag, create_time, update_time,project_id)
-    values (#{id}, #{arp}, #{account}, #{password}, #{company}, #{department}, #{name}, #{phone}, #{email}, #{memo}, #{idCard}, #{approverFlag}, #{seeFlag}, #{roleId}, 1, now(), now(),#{projectId})
+    insert into sys_user(id, arp, account, password, company, department, name, phone, email, memo, id_card, approver_flag, see_flag, role_id, valid_flag, create_time, update_time,project)
+    values (#{id}, #{arp}, #{account}, #{password}, #{company}, #{department}, #{name}, #{phone}, #{email}, #{memo}, #{idCard}, #{approverFlag}, #{seeFlag}, #{roleId}, 1, now(), now(),#{project})
   </insert>
 
   <update id="updateSysUser" parameterType="com.nanometer.smartlab.entity.SysUser">
     update sys_user set arp=#{arp}, account=#{account}, password=#{password}, company=#{company}, department=#{department}, name=#{name}, phone=#{phone},
-    email=#{email}, memo=#{memo}, id_card=#{idCard}, approver_flag=#{approverFlag}, see_flag=#{seeFlag}, role_id=#{roleId}, point=#{point},update_time=now(),project_id=#{projectId}
+    email=#{email}, memo=#{memo}, id_card=#{idCard}, approver_flag=#{approverFlag}, see_flag=#{seeFlag}, role_id=#{roleId}, point=#{point},update_time=now(),project=#{project}
     where id=#{id}
   </update>
 
@@ -191,21 +191,6 @@
 	and u.update_time >= #{1} and #{2} > u.update_time
   </select>
 
-
-    <select id="getUserListByContainerCodeNew" parameterType="java.util.Map" resultMap="SysUser">
-		SELECT u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,bm2.meta_value department,bm1.meta_value company,u.arp,u.point,sp.project
-	from sys_user u
-	left join base_meta bm1 on bm1.id = u.company
-	left join base_meta bm2 on bm2.id = u.department
-	LEFT JOIn sys_project sp on sp.id = u.project_id
-	where u.project_id = (
-	SELECT project_id from sys_laboratory_container
-	WHERE container_code =  #{0}
-	and  valid_flag = 1)
-	AND u.valid_flag = 1
-	and sp.valid_flag = 1
-	and u.update_time >= #{1} and #{2} > u.update_time
-  </select>
 
   <select id="selectByAccount" parameterType="com.nanometer.smartlab.entity.SysUser" resultMap="SysUser">
     select * from sys_user where valid_flag=1 and account=#{account}
@@ -242,6 +227,16 @@
     where su.valid_flag = 1
     and su.account = #{account}
     </select>
+    <select id="getUserListByProject" parameterType="java.util.Map" resultMap="SysUser">
+        SELECT u.name,u.see_flag,u.role_id,u.valid_flag,u.id_card,bm2.meta_value department,bm1.meta_value company,u.arp,u.point,u.project
+        from sys_user u
+        left join base_meta bm1 on bm1.id = u.company
+        left join base_meta bm2 on bm2.id = u.department
+        where
+        u.project = #{0}
+        and u.valid_flag = 1
+        and u.update_time >= #{1} and #{2} > u.update_time
+    </select>
 
     <update id="updateUserPointBySelective" parameterType="java.util.Map">
         update sys_user set point=#{point}
diff --git a/src/main/java/com/nanometer/smartlab/entity/SysUser.java b/src/main/java/com/nanometer/smartlab/entity/SysUser.java
index 3e27027..9c29553 100644
--- a/src/main/java/com/nanometer/smartlab/entity/SysUser.java
+++ b/src/main/java/com/nanometer/smartlab/entity/SysUser.java
@@ -32,7 +32,6 @@
     private Timestamp updateTime;
     private String containerCodeList;
     private String roleName;
-    private String projectId;
     private String project;
 
     public String getId() {
@@ -193,14 +192,6 @@
 
     public void setContainerCodeList(String containerCodeList) {
         this.containerCodeList = containerCodeList;
-    }
-
-    public String getProjectId() {
-        return projectId;
-    }
-
-    public void setProjectId(String projectId) {
-        this.projectId = projectId;
     }
 
     public String getProject() {
diff --git a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
index bd23c72..ddf7301 100644
--- a/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/InterfaceServiceImpl.java
@@ -1030,8 +1030,16 @@
         if (containerCode==null||containerCode.isEmpty()) {
             throw new ApiException(ApiStatus.PARAM_NO_EXIST, ApiStatus.PARAM_NO_EXIST.getRetMsg() + "[containerCode]");
         }
-
-        return sysUserDao.getUserListByContainerCodeNew(containerCode, startTime, endTime);
+        List<String> projects = sysLaboratoryContainer.selectProjectsByContainerCode(containerCode);
+        List<SysUser> userList = null;
+        if (projects != null) {
+            userList = new ArrayList<>();
+            for (String project : projects) {
+                List<SysUser> dataList = sysUserDao.getUserListByProject(project, startTime, endTime);
+                userList.addAll(dataList);
+            }
+        }
+        return userList;
     }
 
 
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
index 63b881b..f70dfed 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
@@ -33,4 +33,7 @@
     List<Map> exportExcelList(String laboratoryType, String laboratoryName);
 
     void export2Excel(List<Map> list) throws Exception;
+
+    List<String> selectProjectsByContainerCode(String containerCode);
+
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
index d0fded3..be5eac7 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
@@ -280,4 +280,13 @@
 
 	}
 
+    @Override
+    public List<String> selectProjectsByContainerCode(String containerCode) {
+		String projects = sysLaboratoryContainerDao.selectProjectsByContainerCode(containerCode);
+		if (projects != null){
+			return Arrays.asList(projects.split(","));
+		}
+		return null;
+    }
+
 }
diff --git a/src/main/webapp/user_mng.xhtml b/src/main/webapp/user_mng.xhtml
index 2bf9136..54f3911 100644
--- a/src/main/webapp/user_mng.xhtml
+++ b/src/main/webapp/user_mng.xhtml
@@ -85,7 +85,7 @@
                 </p:column>
 
                 <p:column headerText="课题组">
-                    <h:outputText value="#{sysProjectServiceImpl.getSysProject(row.projectId).project}"></h:outputText>
+                    <h:outputText value="#{row.project}"></h:outputText>
                 </p:column>
 
                 <p:column headerText="ARP">
@@ -166,10 +166,10 @@
                              required="true" requiredMessage="请输入ARP号"></p:inputText>
 
                 <p:outputLabel value="课题组"></p:outputLabel>
-                <p:selectOneMenu value="#{userMngController.sysUser.projectId}">
-                    <f:selectItem itemLabel="不选择课题组"  />
+                <p:selectOneMenu value="#{userMngController.sysUser.project}" filter="true" filterMatchMode="startsWith">
+                    <f:selectItem itemLabel="不选择课题组" />
                     <f:selectItems value="#{sysProjectServiceImpl.getAll()}"
-                                   var="item" itemLabel="#{item.project}"  itemValue="#{item.id}"></f:selectItems>
+                                   var="item" itemLabel="#{item.project}"  itemValue="#{item.project}"></f:selectItems>
                 </p:selectOneMenu>
 
                 <p:outputLabel value="姓名"></p:outputLabel>

--
Gitblit v1.9.2