From b9863f4bba1b11ebbaa51328abc7a7bd01fdf22a Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期三, 09 十二月 2020 09:45:30 +0800
Subject: [PATCH] 模块:实验室存储管理 新增:导出 提出:秦老师

---
 src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java |   11 +++++
 src/main/webapp/laboratory_container_mng.xhtml                                        |    2 +
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml                |   36 ++++++++++++++++++
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java               |    1 
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java       |    4 ++
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java   |   29 ++++++++++++--
 6 files changed, 79 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
index b509e77..005042c 100644
--- a/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/LaboratoryContainerMngController.java
@@ -219,6 +219,17 @@
 		}
 	}
 
+	public void export2Excel(){
+
+		try {
+			List<Map> list = sysLaboratoryContainerService.exportExcelList(laboratoryType, laboratoryName);
+			sysLaboratoryContainerService.export2Excel(list);
+		}catch (Exception e){
+			e.printStackTrace();
+			FacesUtils.warn("导出失败");
+		}
+	}
+
 	public void uploadFile(FileUploadEvent event) {
 		System.out.println("=========导入开始=====");
 		List<BaseMeta> typeList=baseMetaService.getBaseMetaList("container_type");
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
index 3dc280a..7be34a5 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.java
@@ -45,4 +45,5 @@
 
     void updateSysLabContainer(Map params);
 
+    List<Map> exportExcelList(Map params);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
index 9d61475..7397426 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryContainerDao.xml
@@ -56,6 +56,8 @@
     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
+    AND sc.valid_flag = 1
+    AND ss.valid_flag = 1
     <if test="laboratoryType != null and laboratoryType != ''">
       and ss.type = #{laboratoryType}
     </if>
@@ -71,11 +73,45 @@
     </if>
   </select>
 
+
+  <select id="exportExcelList" parameterType="java.util.Map" resultType="java.util.Map">
+    SELECT
+    bm2.meta_value labType,
+    sl.NAME labName,
+    sc.controller_name controlName,
+    slc.container_code containerCode,
+    bm1.meta_value containerType ,
+    slc.info_code infoCode ,
+    bm3.meta_value structure,
+    slc.`name` name
+    FROM
+    sys_laboratory_container slc
+    LEFT JOIN base_meta bm1 ON bm1.id = slc.type
+    LEFT JOIN sys_laboratory sl ON sl.id = slc.laboratory_id
+    LEFT JOIN base_meta bm2 ON bm2.id = sl.type
+    LEFT JOIN sys_controller sc ON slc.controller_code = sc.controller_code
+    LEFT JOIN base_meta bm3 on bm3.id = slc.structure
+    WHERE
+    slc.valid_flag = 1
+    AND sc.valid_flag = 1
+    AND sl.valid_flag = 1
+    <if test="type != null and type != ''">
+     and sl.type = #{type}
+    </if>
+    <if test="name != null and name != ''">
+      and sl.name like concat("%",#{name},"%")
+    </if>
+    order by sl.name ASC,sc.controller_name,slc.container_code,slc.name
+
+  </select>
+
   <select id="getSysLaboratoryContainerTotalCount" parameterType="java.util.Map" resultType="int">
     select count(1) 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
+    AND sc.valid_flag = 1
+    AND ss.valid_flag = 1
     <if test="laboratoryType != null and laboratoryType != ''">
       and ss.type = #{laboratoryType}
     </if>
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
index f56d677..63b881b 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerService.java
@@ -29,4 +29,8 @@
     List<Map> getContainerPersonInCharge(String containerCode);
 
     Map selectLocationByContainerCode(String containerCode);
+
+    List<Map> exportExcelList(String laboratoryType, String laboratoryName);
+
+    void export2Excel(List<Map> list) throws Exception;
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
index 00be2a7..d0fded3 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryContainerServiceImpl.java
@@ -1,15 +1,13 @@
 package com.nanometer.smartlab.service;
 
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 import javax.annotation.Resource;
 
 import com.google.common.collect.ImmutableBiMap;
 import com.nanometer.smartlab.entity.*;
 import com.nanometer.smartlab.entity.enumtype.ArrivalStatus;
+import com.nanometer.smartlab.util.ExcelUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
 import org.springframework.dao.DataAccessException;
@@ -259,4 +257,27 @@
 		}
 	}
 
+    @Override
+    public List<Map> exportExcelList(String laboratoryType, String laboratoryName) {
+		Map<String, String> params = new HashMap<>();
+		params.put("type", laboratoryType);
+		params.put("name", laboratoryName);
+		return sysLaboratoryContainerDao.exportExcelList(params);
+    }
+
+	@Override
+	public void export2Excel(List<Map> list) throws Exception {
+		Map<String, String> map = new LinkedHashMap<>();
+		map.put("labType", "实验室类型");
+		map.put("labName", "实验室名称");
+		map.put("controlName", "主控名称");
+		map.put("containerCode", "临时存储库条码");
+		map.put("containerType", "临时存储库类型");
+		map.put("infoCode", "临时存储库状态码");
+		map.put("structure", "临时存储库结构");
+		map.put("name", "临时存储库名称");
+		ExcelUtils.export2Excel(list,"实验室临时存储库管理",map);
+
+	}
+
 }
diff --git a/src/main/webapp/laboratory_container_mng.xhtml b/src/main/webapp/laboratory_container_mng.xhtml
index f00faa3..cedb6ed 100644
--- a/src/main/webapp/laboratory_container_mng.xhtml
+++ b/src/main/webapp/laboratory_container_mng.xhtml
@@ -42,6 +42,8 @@
 				</p:commandButton>
 				<p:commandButton value="导入" styleClass="import-btn" onclick="importCon()"
 				></p:commandButton>
+				<p:commandButton value="导出" styleClass="new-btn" ajax="false" actionListener="${laboratoryContainerMngController.export2Excel}"
+				/>
 				<script>
 					function importCon(){
 						$("#laboratoryContainerMngForm\\:importReagentBtn_input").click();

--
Gitblit v1.9.2