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