From a061540bf4c2bdb81edc3898cd27f4ba18512846 Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期四, 22 四月 2021 11:47:43 +0800
Subject: [PATCH] 实验室库存导出
---
src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java | 2
src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml | 73 ++++++++++++++++++++++++
src/main/java/com/nanometer/smartlab/controller/LaboratoryStockMngController.java | 13 ++++
src/main/webapp/laboratory_stock_mng.xhtml | 5 +
src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java | 43 ++++++++++++++
src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java | 5 +
6 files changed, 140 insertions(+), 1 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/controller/LaboratoryStockMngController.java b/src/main/java/com/nanometer/smartlab/controller/LaboratoryStockMngController.java
index 8fd719b..f0cd689 100644
--- a/src/main/java/com/nanometer/smartlab/controller/LaboratoryStockMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/LaboratoryStockMngController.java
@@ -165,6 +165,19 @@
return reagentStoreDataModel;
}
+
+ public void exportLabStock() {
+ try {
+ List<Map> list = opeReagentStatusService.selectExportList(reagentId, null,
+ ArrivalStatus.LABORATORY.getKey(), reagentCode, getUserId());
+ opeReagentStatusService.exportLabStock2Excel(list);
+ FacesUtils.info("导出成功");
+ }catch (Exception e){
+ e.printStackTrace();
+ FacesUtils.warn("导出失败");
+ }
+ }
+
public int getAction() {
return action;
}
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java
index af8b446..eb44d68 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.java
@@ -57,4 +57,6 @@
int countReagentByArticleAndWarehouse(Map params);
void updateArticleNumberByRCode(String code, String articleNumber);
+
+ List<Map> selectExportList(Map params);
}
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
index 52a4829..ca34508 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeReagentStatusDao.xml
@@ -557,4 +557,77 @@
and house_id = #{warehouseId}
</if>
</select>
+ <select id="selectExportList" resultType="java.util.Map">
+ select oa.article_number articleNumber,
+ oa.reagent_code reagentCode,
+ oa.remainder,
+ bm1.meta_value productHome,
+ bm2.meta_value reagentFomart,
+ sr.name reagentName,
+ sr.cas cas,
+ <if test="status != null">
+ <choose>
+ <when test="status == 1 or status == 2">
+ swc.container_code as containerCode,
+ sw.name as houseName,
+ </when>
+ </choose>
+ </if>
+ ss.name as supplierName
+ from ope_reagent_status as oa
+ left join sys_reagent sr on oa.reagent_id = sr.id
+ left join base_meta bm1 on bm1.id = sr.product_home
+ left join base_meta bm2 on bm2.id = sr.reagent_format
+ left join sys_supplier as ss on sr.supplier_id = ss.id
+ left join sys_user as su on oa.user_id = su.id
+ <if test="status != null">
+ <choose>
+ <when test="status == 1">
+ left join sys_warehouse as sw on sw.id = oa.house_id
+ left join sys_warehouse_container as swc on swc.id = oa.container_id
+ </when>
+ <when test="status == 2">
+ left join sys_laboratory as sw on sw.id = oa.house_id
+ left join sys_laboratory_container as swc on swc.id = oa.container_id
+ </when>
+ </choose>
+ </if>
+ where oa.valid_flag = 1
+ <if test="reagentId != null and reagentId != ''">
+ and oa.reagent_id = #{reagentId}
+ </if>
+ <if test="userId != null and userId != ''">
+ and oa.user_id = #{userId}
+ </if>
+ <if test="department != null and department != ''">
+ and sw.department = #{department}
+ </if>
+ <if test="departmentUserIds != null">
+ and oa.user_id in
+ <foreach collection="departmentUserIds" item="item" index="index" open="(" separator="," close=")">
+ #{item}
+ </foreach>
+ </if>
+ <if test="articleNumber != null and articleNumber != ''">
+ and oa.article_number = #{articleNumber}
+ </if>
+ <if test="editId != null and editId != ''">
+ and oa.id != #{editId}
+ </if>
+ <if test="reagentCode != null and reagentCode != ''">
+ and oa.reagent_code like concat("%",#{reagentCode},"%")
+ </if>
+ <if test="status != null">
+ and oa.status = #{status}
+ </if>
+ <if test="name != null and name != ''">
+ and sr.name like concat("%",#{name},"%")
+ </if>
+ <choose>
+ <when test="status == 2 and project != null and project != ''">
+ and sw.project like concat("%",#{project},"%")
+ </when>
+ </choose>
+ order by oa.reagent_code asc
+ </select>
</mapper>
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
index 700b8c3..3b30d16 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusService.java
@@ -7,6 +7,7 @@
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.List;
+import java.util.Map;
/**
* Created by maweiqing on 17/12/12.
@@ -107,4 +108,8 @@
int getReagentNumInWarehouse(String id, String articleNumber, String warehouseId);
+ List<Map> selectExportList(String name, String articleNumber, Integer status,
+ String reagentCode, String userId);
+
+ void exportLabStock2Excel(List<Map> list) throws Exception;
}
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
index 8b14efa..b2245e9 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeReagentStatusServiceImpl.java
@@ -11,6 +11,7 @@
import com.nanometer.smartlab.entity.*;
import com.nanometer.smartlab.entity.dto.PersonUseDetail;
import com.nanometer.smartlab.entity.enumtype.ValidFlag;
+import com.nanometer.smartlab.util.ExcelUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import org.springframework.context.annotation.Lazy;
@@ -1084,4 +1085,46 @@
}
+ /**
+ * @Description: 导出
+ * @date 2021/4/22 10:33
+ */
+ @Override
+ public List<Map> selectExportList(String name, String articleNumber, Integer status, String reagentCode, String userId) {
+
+ Map<String, Object> params = new HashMap<>();
+ params.put("name", name);
+ params.put("articleNumber", articleNumber);
+ params.put("status", status);
+ if (StringUtils.isNotBlank(userId)) {
+ SysUser sysUser = sysUserService.getSysUser(userId);
+ BaseRole baseRole = baseRoleService.getBaseRole(sysUser.getRoleId());
+ //不是系统管理员 根据用户的课题组判断可视(用户所在课题组是否 在实验室的课题组下)
+ if (!"系统管理员".equals(baseRole.getName())) {
+ if (StringUtils.isBlank(sysUser.getProject())) {
+ return null;
+ }
+ params.put("project", sysUser.getProject());
+ }
+ }
+ params.put("reagentCode", reagentCode);
+ return opeReagentStatusDao.selectExportList(params);
+ }
+
+ @Override
+ public void exportLabStock2Excel(List<Map> list) throws Exception {
+ Map<String, String> map = new LinkedHashMap<>();
+ map.put("houseName", "实验室名称");
+ map.put("containerCode", "临时存储库条码");
+ map.put("reagentName", "试剂名称");
+ map.put("reagentCode", "试剂条形码");
+ map.put("articleNumber", "批号");
+ map.put("cas", "cas");
+ map.put("productHome", "厂家");
+ map.put("supplierName", "供应商");
+ map.put("remainder", "残存量");
+ ExcelUtils.export2Excel(list,"实验室库存",map);
+ }
+
+
}
diff --git a/src/main/webapp/laboratory_stock_mng.xhtml b/src/main/webapp/laboratory_stock_mng.xhtml
index c85d79c..18e57d6 100644
--- a/src/main/webapp/laboratory_stock_mng.xhtml
+++ b/src/main/webapp/laboratory_stock_mng.xhtml
@@ -15,7 +15,7 @@
<p:panel styleClass="center-header">
<p:outputLabel styleClass="title" value="实验室库存管理"></p:outputLabel>
<p:panel styleClass="center-header">
- <p:panelGrid styleClass="filter" columns="7">
+ <p:panelGrid styleClass="filter" columns="8">
<p:outputLabel value="试剂名称:"></p:outputLabel>
<p:inputText value="#{laboratoryStockMngController.reagentId}"></p:inputText>
@@ -32,6 +32,9 @@
<p:commandLink styleClass="search" process="@form" update="@form"></p:commandLink>
+ <p:commandButton value="导出" styleClass="store-btn" ajax="false" actionListener="#{laboratoryStockMngController.exportLabStock}"
+ update=":centerRootPanel"></p:commandButton>
+
<p:commandButton value="临时存放" styleClass="store-btn" process="@form" actionListener="#{laboratoryStockMngController.onStoreBtnClick}"
update=":centerRootPanel"></p:commandButton>
</p:panelGrid>
--
Gitblit v1.9.2