From 295d8ff09a5fbf9dc757c2bdb408f860a11b85d1 Mon Sep 17 00:00:00 2001 From: lyfO_o <764716047@qq.com> Date: 星期四, 31 三月 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