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