From 295d8ff09a5fbf9dc757c2bdb408f860a11b85d1 Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: Thu, 31 Mar 2022 16:05:15 +0800
Subject: [PATCH] 个人领用导出
---
src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml | 61 ++++++++++++++++++++
src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java | 17 +++++
src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java | 4 +
src/main/webapp/personal_use_info.xhtml | 6 ++
src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java | 3 +
src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java | 58 +++++++++++++++++++
6 files changed, 149 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
index 0a591e5..8e06384 100644
--- a/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/PersonalUseInfoController.java
@@ -219,6 +219,23 @@
}
+ /**
+ * @Description: 导出详情
+ */
+ public void exportDetail() throws Exception {
+ try {
+ if (startTime == null || endTime == null){ FacesUtils.warn("请选择日期范围");return;}
+
+ List<Map> list = opeUseFlowService.selectExportDetail(reagentCode, getUserId(), startTime, endTime, receiptNumber, department, project, applyPerson, reagentName);
+ if (list == null || list.size() < 1) {FacesUtils.warn("没有数据导出");return;}
+ opeUseFlowService.export22Excel(list);
+ } catch (Exception e) {
+ e.printStackTrace();
+ FacesUtils.warn("导出失败");
+ }
+
+ }
+
@SuppressWarnings("serial")
public LazyDataModel<OpeReagentStatus> getDataModel() {
if (this.dataModel == null) {
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java
index ac0ee12..ba5c1f8 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.java
@@ -52,4 +52,7 @@
OpeUseFlow selectByReceiptNumber(Map params);
List<Map> selectAll(Map params);
+
+ List<Map> selectDetail(Map<String, Object> params);
+
}
diff --git a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
index 0290112..b3cb481 100644
--- a/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
+++ b/src/main/java/com/nanometer/smartlab/dao/OpeUseFlowDao.xml
@@ -400,6 +400,67 @@
<include refid="queryWhereSql"/>
order by oa.create_time desc
</select>
+
+ <select id="selectDetail" resultType="java.util.Map">
+
+ SELECT
+ sr.product_sn productSn,
+ sr.NAME reagentName,
+ ouf.reagent_code reagentCode,
+ bm3.meta_value controlProducts,
+ bm.meta_value reagentFormat,
+ CONCAT(sr.main_metering,bm1.meta_value) perInfo,
+ bm2.meta_value productHome,
+ ors.article_number articleNumber,
+ su.name username,
+ su.project,
+ bm4.meta_value department,
+ sl.name location,
+ date_format(ouf.create_time,'%Y-%m-%d %H:%i') createTime
+ from `ope_use_flow` ouf
+ LEFT JOIN ope_reagent_status ors ON ors.reagent_code = ouf.reagent_code
+ LEFT join sys_reagent sr ON ors.reagent_id = sr.id
+ LEFT JOIN base_meta bm ON bm.id = sr.reagent_format
+ LEFT JOIN base_meta bm1 on bm1.id = sr.reagent_unit
+ LEFT JOIN base_meta bm2 on bm2.id = sr.product_home
+ LEFT JOIN base_meta bm3 on bm3.id = sr.control_products
+ LEFT JOIN sys_user as su on su.id = ouf.user_id
+ left join base_meta bm4 on bm4.id = su.department
+ LEFT JOIN sys_laboratory sl on sl.id = ouf.house_id
+ WHERE
+ (ouf.operatestate = #{operatestate}
+ or ouf.operatestate = #{operatestate1})
+ and ouf.valid_flag = 1
+ and LENGTH(trim(ouf.receipt_number))>0
+ <if test="userId !=null and userId != ''">
+ and ouf.user_id = #{userId}
+ </if>
+ <if test="reagentCode !=null and reagentCode != ''">
+ and ouf.reagent_code like concat("%",#{reagentCode},"%")
+ </if>
+ <if test="startTime !=null and startTime != ''">
+ and ouf.create_time >#{startTime}
+ </if>
+ <if test="endTime !=null and endTime != ''">
+ and ouf.create_time <#{endTime}
+ </if>
+ <if test="project !=null and project != ''">
+ and su.project like concat("%",#{project},"%")
+ </if>
+ <if test="department !=null and department != ''">
+ and su.bm1.meta_value like concat("%",#{department},"%")
+ </if>
+ <if test="receiptNumber !=null and receiptNumber != ''">
+ and ouf.receipt_number like concat("%",#{receiptNumber},"%")
+ </if>
+ <if test="reagentName !=null and reagentName != ''">
+ and sr.name like concat("%",#{reagentName},"%")
+ </if>
+ <if test="applyPerson !=null and applyPerson != ''">
+ and su.name like concat("%",#{applyPerson},"%")
+ </if>
+ </select>
+
<insert id="insertOpeUseFlow" parameterType="com.nanometer.smartlab.entity.OpeUseFlow">
insert into ope_use_flow(id, reagent_code, status, house_id, container_id, user_id, remainder, place, store_type, valid_flag, create_time, realstatus, operatestate
<if test="receiptNumber != null">
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java
index aeca979..a543c22 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowService.java
@@ -67,4 +67,8 @@
List<Map> selectAll(String houseName, String reagentId, String reagentCode, String containerCode, String userId, Date startDate, Date endDate);
boolean export2Excel(List<Map> list) throws Exception;
+
+ List<Map> selectExportDetail(String reagentCode, String userId, Date startTime, Date endTime, String receiptNumber, String department, String project, String applyPerson, String reagentName);
+
+ boolean export22Excel(List<Map> list) throws Exception;
}
diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
index 64e78c3..8dae14b 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
@@ -8,6 +8,7 @@
import javax.annotation.Resource;
+import com.hazelcast.core.IFunction;
import com.nanometer.smartlab.dao.*;
import com.nanometer.smartlab.entity.*;
import com.nanometer.smartlab.entity.dto.PersonUseDetail;
@@ -734,4 +735,61 @@
return true;
}
+
+ /**
+ * @Description: 查询导出
+ */
+ @Override
+ public List<Map> selectExportDetail(String reagentCode, String userId, Date startTime, Date endTime, String receiptNumber, String department, String project, String applyPerson, String reagentName) {
+ Map<String, Object> params = new HashMap<>();
+ Map<String, String> metaMap2 = new HashMap<>();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ if (startTime != null) {
+ params.put("startTime", sdf.format(startTime) +" 00:00:00");
+ }
+
+ if (endTime != null) {
+ params.put("endTime", sdf.format(endTime) + " 23:59:59");
+ }
+
+ params.put("reagentCode", reagentCode);
+
+ params.put("endTime", endTime);
+ params.put("receiptNumber", receiptNumber);
+ params.put("department", department);
+ params.put("project", project);
+ params.put("applyPerson", applyPerson);
+ params.put("reagentName", reagentName);
+ params.put("groupId", "operate_status");
+ metaMap2.put("metaKey", String.valueOf(OperateStatus.WAREHOUSEOUT.getKey()));
+ List<BaseMeta> baseMetas = baseMetaDao.getBaseMetaList(metaMap2);
+ params.put("operatestate", baseMetas.get(0).getId());
+
+ metaMap2.put("metaKey", String.valueOf(OperateStatus.TRANSFER.getKey()));
+ List<BaseMeta> baseMetas1 = baseMetaDao.getBaseMetaList(metaMap2);
+ params.put("operatestate1", baseMetas1.get(0).getId());
+ addParamByUserId(userId, params);
+ return opeUseFlowDao.selectDetail(params);
+ }
+
+ @Override
+ public boolean export22Excel(List<Map> list) throws Exception {
+ Map<String,String> map = new LinkedHashMap<>();
+ map.put("productSn", "产品编号");
+ map.put("reagentName", "试剂名称");
+ map.put("reagentCode", "试剂条形码");
+ map.put("controlProducts", "管制品");
+ map.put("reagentFormat", "规格型号");
+ map.put("perInfo", "包装");
+ map.put("productHome", "厂家");
+ map.put("articleNumber", "批号");
+ map.put("username", "申领人");
+ map.put("project", "课题组");
+ map.put("department", "部门");
+ map.put("location", "地点");
+ map.put("createTime", "领用时间");
+ ExcelUtils.export2Excel(list,"试剂领用记录表",map);
+ return true;
+ }
+
}
diff --git a/src/main/webapp/personal_use_info.xhtml b/src/main/webapp/personal_use_info.xhtml
index 756b085..9f9d4a7 100644
--- a/src/main/webapp/personal_use_info.xhtml
+++ b/src/main/webapp/personal_use_info.xhtml
@@ -93,6 +93,12 @@
oncomplete="PF('dialog').show()"/>
+ <p:commandButton value="导出"
+ styleClass="store-btn"
+ ajax="false"
+ actionListener="#{personalUseInfoController.exportDetail}" />
+
+
</p:panelGrid>
</p:panel>
</p:panel>
--
Gitblit v1.9.2