From b9ac0013ae07e41813ef9bc22aedc3d93cbc7e59 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期一, 11 一月 2021 09:53:50 +0800
Subject: [PATCH] 模块:实验室管理 新增:实验室课题组多选 提出:秦老师

---
 src/main/webapp/laboratory_mng.xhtml                                         |   11 +++++
 src/main/java/com/nanometer/smartlab/entity/SysLaboratory.java               |   47 ++++++++++++++++++++---
 src/main/java/com/nanometer/smartlab/dao/SysProjectDao.java                  |    3 +
 src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java |    3 +
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml                |    6 +-
 src/main/java/com/nanometer/smartlab/service/SysProjectServiceImpl.java      |    2 
 src/main/java/com/nanometer/smartlab/dao/SysProjectDao.xml                   |   11 +++++
 7 files changed, 73 insertions(+), 10 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java b/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
index 4e1daf7..5153a26 100644
--- a/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
@@ -226,6 +226,9 @@
 					return;
 				}
 
+				//实体类重新获取项目组信息
+				sysLaboratory.setProject(null);
+				sysLaboratory.getProject();
 				this.sysLaboratoryService.updateSysLaboratory(sysLaboratory);
 
 				FacesUtils.info("修改成功。");
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
index a375e93..49434e3 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
@@ -84,13 +84,13 @@
   </select>
 
   <insert id="insertSysLaboratory" parameterType="com.nanometer.smartlab.entity.SysLaboratory">
-    insert into sys_laboratory(id, type, name, info_code, bar_code, location1, location2, valid_flag,department, create_time, update_time)
-    values (#{id}, #{type}, #{name}, #{infoCode}, #{barCode}, #{location1}, #{location2}, 1,#{department}, now(), now())
+    insert into sys_laboratory(id, type, name, info_code, bar_code, location1, location2, valid_flag,department, create_time, update_time,project)
+    values (#{id}, #{type}, #{name}, #{infoCode}, #{barCode}, #{location1}, #{location2}, 1,#{department}, now(), now(),#{project})
   </insert>
 
   <update id="updateSysLaboratory" parameterType="com.nanometer.smartlab.entity.SysLaboratory">
     update sys_laboratory set type=#{type}, name=#{name}, info_code=#{infoCode}, bar_code=#{barCode}, location1=#{location1}, location2=#{location2},department=#{department},
-    update_time=now()
+    update_time=now(),project = #{project}
     where id=#{id}
   </update>
 
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.java b/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.java
index 3e71308..a907dae 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.java
@@ -23,4 +23,7 @@
     public List<SysProject> getSysProjectListByProjectId(Map params) throws DataAccessException;
 
     void insertBatch(List<?> list);
+
+    //获取不重复的课题组名
+    List<SysProject> selectDistinctProjects();
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.xml
index c3e5311..5ad09c8 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysProjectDao.xml
@@ -49,6 +49,17 @@
     </if>
   </select>
 
+  <select id="selectDistinctProjects" parameterType="java.util.Map" resultMap="SysProject">
+      SELECT
+          sp.*
+      FROM
+          sys_project sp
+          WHERE sp.valid_flag = 1
+          AND sp.project is not null
+      GROUP BY
+          sp.project
+  </select>
+
 
   <insert id="insertBatch" parameterType="java.util.List">
     insert into sys_project
diff --git a/src/main/java/com/nanometer/smartlab/entity/SysLaboratory.java b/src/main/java/com/nanometer/smartlab/entity/SysLaboratory.java
index 7f37c85..7eb89f5 100644
--- a/src/main/java/com/nanometer/smartlab/entity/SysLaboratory.java
+++ b/src/main/java/com/nanometer/smartlab/entity/SysLaboratory.java
@@ -4,6 +4,8 @@
 
 import java.io.Serializable;
 import java.sql.Timestamp;
+import java.util.Arrays;
+import java.util.List;
 
 /**
  * Created by johnny on 17/11/23.
@@ -22,6 +24,10 @@
     private Timestamp createTime;
     private Timestamp updateTime;
     private ValidFlag validFlag;
+    //显示
+    private List<String> projects;
+    //存放
+    private String project;
 
     public String getId() {
         return id;
@@ -103,11 +109,40 @@
         this.validFlag = validFlag;
     }
 
-	public String getDepartment() {
-		return department;
-	}
+    public String getDepartment() {
+        return department;
+    }
 
-	public void setDepartment(String department) {
-		this.department = department;
-	}
+    public void setDepartment(String department) {
+        this.department = department;
+    }
+
+    public List<String> getProjects() {
+        if (projects == null && project != null){
+            this.projects = Arrays.asList(this.project.split(","));
+        }
+        return projects;
+    }
+
+    public void setProjects(List<String> projects) {
+        this.projects = projects;
+    }
+
+    public String getProject() {
+        if (this.project == null){
+            this.project = "";
+            if (projects != null && projects.size() > 0) {
+                projects.forEach(pro->{
+                    this.project += ",";
+                    this.project += pro;
+                });
+                this.project = this.project.substring(1);
+            }
+        }
+        return project;
+    }
+
+    public void setProject(String project) {
+        this.project = project;
+    }
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysProjectServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysProjectServiceImpl.java
index 1cc83ee..033e838 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysProjectServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysProjectServiceImpl.java
@@ -241,7 +241,7 @@
 
     @Override
     public List<SysProject> getAll() {
-         return sysProjectDao.getSysProjectList(null).stream().filter(project->project.getProject()!=null).collect(Collectors.toList());
+         return sysProjectDao.selectDistinctProjects();
     }
 
     @Override
diff --git a/src/main/webapp/laboratory_mng.xhtml b/src/main/webapp/laboratory_mng.xhtml
index 2624312..601dedb 100644
--- a/src/main/webapp/laboratory_mng.xhtml
+++ b/src/main/webapp/laboratory_mng.xhtml
@@ -67,6 +67,10 @@
 					<h:outputText value="#{row.name}"></h:outputText>
 				</p:column>
 
+				<p:column headerText="所属项目组">
+					<h:outputText value="#{row.project}"></h:outputText>
+				</p:column>
+
 				<p:column headerText="状态码">
 					<h:outputText value="#{row.infoCode}"></h:outputText>
 				</p:column>
@@ -131,6 +135,13 @@
                     <f:selectItems value="#{baseMetaService.getBaseMetaList(constants.BASE_META_GROUP_USER_DEPARTMENT)}"
                                    var="item" itemLabel="#{item.metaValue}" itemValue="#{item.id}"></f:selectItems>
                 </p:selectOneMenu>
+
+
+				<p:outputLabel value="所属课题组"  for="multiple"/>
+				<p:selectCheckboxMenu id="multiple" value="#{laboratoryMngController.sysLaboratory.projects}" label="Cities" multiple="true"
+									  filter="true" filterMatchMode="startsWith" panelStyle="width:250px">
+					<f:selectItems value="#{sysProjectServiceImpl.getAll()}" var="item" itemValue="#{item.project}" itemLabel="#{item.project}"/>
+				</p:selectCheckboxMenu>
 			</p:panelGrid>
 			<p:panel styleClass="btn">
 				<p:commandButton value="保存"

--
Gitblit v1.9.2