From 39d6fc5c2983a6afd757ed271301ebe65ac871b7 Mon Sep 17 00:00:00 2001
From: gdg <764716047@qq.com>
Date: 星期二, 08 十二月 2020 16:59:42 +0800
Subject: [PATCH] 模块:实验室管理 新增:导出 提出:秦老师

---
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java               |    2 +
 src/main/webapp/laboratory_mng.xhtml                                         |    4 +
 src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java |   11 +++++
 src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml                |   23 +++++++++++
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java       |    4 ++
 src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java   |   35 +++++++++++++++--
 6 files changed, 74 insertions(+), 5 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java b/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
index 756135a..4e1daf7 100644
--- a/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/LaboratoryMngController.java
@@ -82,6 +82,17 @@
 		RequestContext.getCurrentInstance().execute("PF('dialog').show()");
 	}
 
+	public void exportLab2Excel(){
+		try {
+			List<Map> list = sysLaboratoryService.exportLabList(type, name);
+			sysLaboratoryService.exportLab2Excel(list);
+			FacesUtils.info("导出成功");
+		}catch (Exception e){
+			e.printStackTrace();
+			FacesUtils.warn("导出失败");
+		}
+	}
+
 	public void uploadFile(FileUploadEvent event) {
 		System.out.println("=========导入开始=====");
 		List<BaseMeta> typeList=baseMetaService.getBaseMetaList("laboratory_type");
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
index 8a3e669..0ceead8 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.java
@@ -27,4 +27,6 @@
     public SysLaboratory getSysLaboratoryByBarCodeForExport(String barCode) throws DataAccessException;
 
     public  void updateLabExport(SysLaboratory sysLaboratory);
+
+    List<Map> exportLabList(Map params);
 }
diff --git a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
index 4405799..a375e93 100644
--- a/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/SysLaboratoryDao.xml
@@ -48,6 +48,29 @@
     </if>
   </select>
 
+  <select id="exportLabList" parameterType="java.util.Map" resultType="java.util.Map">
+    SELECT bm1.meta_value type ,sl.name,sl.info_code infoCode,sl.bar_code barCode,
+    CASE
+    WHEN (ISNULL(location1)=1) || (LENGTH(trim(location1))=0)
+    THEN
+    CONCAT(location1,location2)
+    ELSE
+    CONCAT(location1,'-',location2)
+    END
+    location,
+    bm2.meta_value department
+    from sys_laboratory as sl
+    LEFT JOIN base_meta bm1 on bm1.id = sl.type
+    left JOIN base_meta bm2 on bm2.id = sl.department
+    where sl .valid_flag = 1
+    <if test="name != null and name != ''">
+      and sl.name like concat("%",#{name},"%")
+    </if>
+    <if test="type != null and type != ''">
+      and sl.type = #{type};
+    </if>
+  </select>
+
   <select id="getSysLaboratoryTotalCount" parameterType="java.util.Map" resultType="int">
     select count(1) from sys_laboratory as su
     where su.valid_flag = 1
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
index 96fd330..f8789fc 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryService.java
@@ -3,6 +3,7 @@
 import com.nanometer.smartlab.entity.SysLaboratory;
 
 import java.util.List;
+import java.util.Map;
 
 /**
  * Created by cmower on 17/11/20.
@@ -31,4 +32,7 @@
 
 	void insertSysReagentList(List<SysLaboratory> sysLaboratoryList);
 
+    void exportLab2Excel(List<Map> list) throws  Exception;
+
+	List<Map> exportLabList(String type, String name);
 }
diff --git a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
index 2e19650..e4c01c7 100644
--- a/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/SysLaboratoryServiceImpl.java
@@ -6,10 +6,12 @@
 import com.nanometer.smartlab.exception.AlarmException;
 import com.nanometer.smartlab.exception.BusinessException;
 import com.nanometer.smartlab.exception.ExceptionEnumCode;
+import com.nanometer.smartlab.util.ExcelUtils;
 import com.nanometer.smartlab.util.IDUtils;
 import com.nanometer.smartlab.util.MessageUtil;
 import org.apache.commons.lang.StringUtils;
 import org.apache.log4j.Logger;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
 import org.springframework.dao.DataAccessException;
 import org.springframework.dao.DataIntegrityViolationException;
 import org.springframework.dao.DuplicateKeyException;
@@ -18,10 +20,12 @@
 import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import javax.faces.context.FacesContext;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.*;
 
 /**
  * Created by cmower on 17/11/20.
@@ -224,6 +228,29 @@
 		}
 	}
 
+    @Override
+    public void exportLab2Excel(List<Map> list) throws Exception {
+
+		Map<String, String> map = new LinkedHashMap<>();
+		map.put("type", "类型");
+		map.put("name", "名称");
+		map.put("infoCode", "状态码");
+		map.put("barCode", "地址码");
+		map.put("location", "地址");
+		map.put("department", "部门");
+		ExcelUtils.export2Excel(list,"实验室信息",map);
+
+
+	}
+
+	@Override
+	public List<Map> exportLabList(String type, String name) {
+		Map<String,String> params = new HashMap<>();
+		params.put("type", type);
+		params.put("name", name);
+		return sysLaboratoryDao.exportLabList(params);
+	}
+
 	@Override
 	@Transactional(propagation = Propagation.REQUIRED)
 	public List<SysLaboratory> getSysLaboratoryListByDep(String depId) {
diff --git a/src/main/webapp/laboratory_mng.xhtml b/src/main/webapp/laboratory_mng.xhtml
index 55fe43a..2624312 100644
--- a/src/main/webapp/laboratory_mng.xhtml
+++ b/src/main/webapp/laboratory_mng.xhtml
@@ -28,7 +28,7 @@
 			</p:panelGrid>
 		</p:panel>
 		<p:panel styleClass="center-body">
-			<p:panelGrid columns="5" styleClass="btn">
+			<p:panelGrid columns="6" styleClass="btn">
 				<p:commandButton value="新建" styleClass="new-btn" process="@this"
 					actionListener="#{laboratoryMngController.onNewBtnClick}"
 					oncomplete="PF('dialog').show();" update=":dialog,:dialogForm"></p:commandButton>
@@ -41,6 +41,8 @@
 				</p:commandButton>
 				<p:commandButton value="导入" styleClass="import-btn" onclick="importLab()"
 				></p:commandButton>
+				<p:commandButton value="导出" styleClass="new-btn" ajax="false"  actionListener="#{laboratoryMngController.exportLab2Excel}"
+				/>
 				<a href="resources/template/实验室导入模板.xlsx" style="display: inline-block;"><img src="resources/images/xlsx.png" width="30px;" alt=""/></a>
 				<script>
 					function importLab(){

--
Gitblit v1.9.2