From 2b3cbd3f1275cd997202f05d31211ca3ed42e493 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期一, 11 一月 2021 10:50:02 +0800
Subject: [PATCH] 模块:实验室临时存储库管理 修改:多选课题组 提出:秦老师

---
 src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java |    7 +--
 src/main/webapp/laboratory_container_mng.xhtml                                        |   13 +++---
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml                |   10 ++--
 src/main/java/com/nanometer/smartlab/entity/SysLaboratoryContainer.java               |   34 ++++++++++++++---
 4 files changed, 42 insertions(+), 22 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
index b555f0a..977f2bc 100644
--- a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
@@ -138,10 +138,6 @@
 	public void onSaveBtnClick() {
 		try {
 
-			if (!StringUtils.isNotBlank(sysLaboratoryContainer.getProjectId())){
-				sysLaboratoryContainer.setProjectId(null);
-			}
-
 			// 新建
 			if (this.action == Constants.ACTION_ADD) {
 				if (this.sysLaboratoryContainer == null) {
@@ -215,6 +211,9 @@
 					return;
 				}
 
+				sysLaboratoryContainer.setProject(null);
+				sysLaboratoryContainer.getProject();
+
 				this.sysLaboratoryContainerService.updateSysLaboratoryContainer(sysLaboratoryContainer);
 
 				FacesUtils.info("修改成功。");
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
index dcf4488..d0724ec 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
@@ -30,7 +30,7 @@
   </select>
 
   <select id="getSysLaboratoryContainer" parameterType="java.lang.String"  resultMap="SysLaboratoryContainer" >
-    select su.*,ss.name as laboratoryName, ss.type as laboratoryType ,su.project_id projectId from sys_laboratory_container as su
+    select su.*,ss.name as laboratoryName, ss.type as laboratoryType ,su.project project from sys_laboratory_container as su
     left join sys_laboratory as ss on su.laboratory_id = ss.id
     where su.id = #{id} and su.valid_flag = 1
   </select>
@@ -52,7 +52,7 @@
   </select>
 
   <select id="getSysLaboratoryContainerList" parameterType="java.util.Map" resultMap="SysLaboratoryContainer">
-    select su.*,ss.name as laboratoryName, ss.type as laboratoryType,sc.controller_name as controllerName,su.project_id as projectId  from sys_laboratory_container as su
+    select su.*,ss.name as laboratoryName, ss.type as laboratoryType,sc.controller_name as controllerName,su.project as project  from sys_laboratory_container as su
     left join sys_laboratory as ss on su.laboratory_id = ss.id
     left join sys_controller sc on sc.controller_code=su.controller_code
     where su.valid_flag = 1
@@ -130,14 +130,14 @@
   </select>
 
   <insert id="insertSysLaboratoryContainer" parameterType="com.nanometer.smartlab.entity.SysLaboratoryContainer">
-    insert into sys_laboratory_container(id, laboratory_id, type, container_code, info_code, structure, name, valid_flag, character_left, character_right, create_time, update_time, controller_code,project_id)
-    values (#{id}, #{laboratoryId}, #{type}, #{containerCode}, #{infoCode}, #{structure}, #{name}, 1, #{characterLeft}, #{characterRight}, now(), now(), #{controllerCode},#{projectId})
+    insert into sys_laboratory_container(id, laboratory_id, type, container_code, info_code, structure, name, valid_flag, character_left, character_right, create_time, update_time, controller_code,project)
+    values (#{id}, #{laboratoryId}, #{type}, #{containerCode}, #{infoCode}, #{structure}, #{name}, 1, #{characterLeft}, #{characterRight}, now(), now(), #{controllerCode},#{project})
   </insert>
 
   <update id="updateSysLaboratoryContainer" parameterType="com.nanometer.smartlab.entity.SysLaboratoryContainer">
     update sys_laboratory_container set laboratory_id=#{laboratoryId}, type=#{type}, container_code=#{containerCode}, info_code=#{infoCode},
     structure=#{structure}, name=#{name}, character_left=#{characterLeft}, character_right=#{characterRight},controller_code=#{controllerCode},
-    update_time=now(),project_id = #{projectId}
+    update_time=now(),project = #{project}
     where id=#{id}
   </update>
 
diff --git a/src/main/java/com/nanometer/smartlab/entity/SysLaboratoryContainer.java b/src/main/java/com/nanometer/smartlab/entity/SysLaboratoryContainer.java
index 69a2b6d..881ce2d 100644
--- a/src/main/java/com/nanometer/smartlab/entity/SysLaboratoryContainer.java
+++ b/src/main/java/com/nanometer/smartlab/entity/SysLaboratoryContainer.java
@@ -4,6 +4,7 @@
 
 import java.io.Serializable;
 import java.sql.Timestamp;
+import java.util.*;
 
 /**
  * Created by johnny on 17/11/23.
@@ -27,8 +28,8 @@
     private String characterRight;
     private String controllerCode;
     private String controllerName;
-    private String projectId;
-
+    private List<String> projects;
+    private String project;
     public String getControllerName() {
         return controllerName;
     }
@@ -157,11 +158,32 @@
         this.controllerCode = controllerCode;
     }
 
-    public String getProjectId() {
-        return projectId;
+    public List<String> getProjects() {
+        if (projects == null && project != null){
+            this.projects = Arrays.asList(this.project.split(","));
+        }
+        return projects;
     }
 
-    public void setProjectId(String projectId) {
-        this.projectId = projectId;
+    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/webapp/laboratory_container_mng.xhtml b/src/main/webapp/laboratory_container_mng.xhtml
index e346ad3..b6ad4db 100644
--- a/src/main/webapp/laboratory_container_mng.xhtml
+++ b/src/main/webapp/laboratory_container_mng.xhtml
@@ -69,7 +69,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="主控名称">
@@ -182,12 +182,11 @@
 						var="item" itemLabel="#{item.metaValue}" itemValue="#{item.id}"></f:selectItems>
 				</p:selectOneMenu>
 
-				<p:outputLabel value="课题组"></p:outputLabel>
-				<p:selectOneMenu value="#{laboratoryContainerMngController.sysLaboratoryContainer.projectId}">
-					<f:selectItem itemLabel="不选择课题组"  />
-					<f:selectItems value="#{sysProjectServiceImpl.getAll()}"
-								   var="item" itemLabel="#{item.project}" itemValue="#{item.id}"></f:selectItems>
-				</p:selectOneMenu>
+				<p:outputLabel value="课题组" for="multiple"/>
+				<p:selectCheckboxMenu id="multiple" value="#{laboratoryContainerMngController.sysLaboratoryContainer.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">

--
Gitblit v1.9.2