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