From 59d9ea33f503e363f2e2941c7c00cc9dd9d9d1c7 Mon Sep 17 00:00:00 2001
From: kongzy <kongzy>
Date: 星期二, 28 十一月 2023 11:00:42 +0800
Subject: [PATCH] 修改课题管理bug

---
 src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java |  161 +++++++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 143 insertions(+), 18 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
index b0a143e..8cc100f 100644
--- a/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
+++ b/src/main/java/com/nanometer/smartlab/service/OpeUseFlowServiceImpl.java
@@ -8,10 +8,13 @@
 
 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.OpeUseFlowQueryDto;
 import com.nanometer.smartlab.entity.dto.PersonUseDetail;
 import com.nanometer.smartlab.entity.enumtype.OperateStatus;
+import com.nanometer.smartlab.model.CommonPage;
 import com.nanometer.smartlab.util.Constants;
 import com.nanometer.smartlab.util.ExcelUtils;
 import org.apache.commons.lang.StringUtils;
@@ -186,6 +189,50 @@
             throw new BusinessException(ExceptionEnumCode.DB_ERR,
                     MessageUtil.getMessageByCode(ExceptionEnumCode.DB_ERR.getCode()), e);
         }
+    }
+
+    public CommonPage<OpeUseFlow> getOpeUseFlowSimpleInfoList(Integer pageNum, Integer pageSize, OpeUseFlowQueryDto opeUseFlowQueryDto) {
+        CommonPage commonPage=new CommonPage();
+        Map<String, Object> params = new HashMap<String, Object>();
+        if(pageNum==null||pageNum<1){
+            pageNum=1;
+        }
+        if(pageSize==null||pageSize<1){
+            pageSize=10;
+        }
+        if(pageSize>50){
+            pageSize=50;//每页最多查询50条记录
+        }
+        commonPage.setPageNum(pageNum);
+        commonPage.setPageSize(pageSize);
+
+        params.put("reagentName", opeUseFlowQueryDto.getReagentName());
+        if (StringUtils.isNotBlank(opeUseFlowQueryDto.getReagentCode())) {
+            params.put("reagentCode", "%" + opeUseFlowQueryDto.getReagentCode() + "%");
+        }
+        SimpleDateFormat sdfstart = new SimpleDateFormat("yyyy-MM-dd 00:00:00");
+        SimpleDateFormat sdfend = new SimpleDateFormat("yyyy-MM-dd 23:59:59");
+        Date now = new Date();
+        Calendar cal = Calendar.getInstance();
+        cal.setTime(now);
+        cal.add(Calendar.DATE, -7);
+        Date startTime = cal.getTime();
+        params.put("startDate",opeUseFlowQueryDto.getStartDate()!=null?opeUseFlowQueryDto.getStartDate():sdfstart.format(startTime));
+        params.put("endDate",opeUseFlowQueryDto.getEndDate()!=null?opeUseFlowQueryDto.getEndDate():sdfend.format(now));
+
+        params.put("houseName", opeUseFlowQueryDto.getHouseName());
+        params.put("operatestate", opeUseFlowQueryDto.getOperatestate());
+        params.put("containerCode", opeUseFlowQueryDto.getContainerCode());
+
+        params.put("first", (pageNum-1)*pageSize);
+        params.put("pageSize", pageSize);
+
+        Long total= new Long(this.opeUseFlowDao.getOpeUseFlowTotalCount(params));
+        commonPage.setTotalPage(CommonPage.getTotalPage(total,pageSize));
+        commonPage.setTotal(total);
+        List<OpeUseFlow> opeUseFlows= this.opeUseFlowDao.getOpeUseFlowSimpleInfoList(params);
+        commonPage.setList(opeUseFlows);
+        return commonPage;
     }
 
     @Transactional(propagation = Propagation.REQUIRED)
@@ -374,12 +421,12 @@
     }
 
     @Override
-    public void updateReceiptNumber(String code, String receiptNumber) {
-        opeUseFlowDao.updateReceiptNumber(code, receiptNumber);
+    public void updateReceiptNumber(String code, String receiptNumber,String note) {
+        opeUseFlowDao.updateReceiptNumber(code, receiptNumber,note);
     }
 
     @Transactional
-    public void updateReceiptNumberByCode(List<OpeApplyReserve> selectedTmpOrderList,String receiptNumber) {
+    public void updateReceiptNumberByCode(List<OpeApplyReserve> selectedTmpOrderList,String receiptNumber,String note) {
 
         for (OpeApplyReserve oar : selectedTmpOrderList) {
             if (oar.getFlag() == 1) {
@@ -387,14 +434,14 @@
                 for (String statusId : oar.getReagentCode()) {
                     String code = opeReagentStatusService.getOpeReagentStatus(statusId).getReagentCode();
                     //此时状态为领用待入库
-                    this.updateReceiptNumber(code, receiptNumber);
+                    this.updateReceiptNumber(code, receiptNumber,note);
                 }
             }else{
                 //根据id或者试剂的条码直接查找 状态表单 查询订单所有的流向
                 List<String> codeTmp = opeReagentStatusService
                         .generateReagentCode(oar.getStartReagentCode2(), oar.getEndReagentCode2());
                 for (String code : codeTmp) {
-                    this.updateReceiptNumber(code, receiptNumber);
+                    this.updateReceiptNumber(code, receiptNumber,note);
                 }
             }
 
@@ -432,21 +479,21 @@
     }
 
     @Override
-    public void updateReceiptNumberByCode2(List<OpeWarehouseReserve> selectTmpList, String receiptNumber) {
+    public void updateReceiptNumberByCode2(List<OpeWarehouseReserve> selectTmpList, String receiptNumber,String note) {
         for (OpeWarehouseReserve owr : selectTmpList) {
             if (owr.getFlag() == 1) {
                 //库中领取 code存的是 试剂状态的id
                 for (String statusId : owr.getReagentCodes()) {
                     String code = opeReagentStatusService.getOpeReagentStatus(statusId).getReagentCode();
                     //此时状态为领用待入库
-                    this.updateReceiptNumber(code, receiptNumber);
+                    this.updateReceiptNumber(code, receiptNumber,note);
                 }
             }else{
                 //根据id或者试剂的条码直接查找 状态表单 查询订单所有的流向
                 List<String> codeTmp = opeReagentStatusService
                         .generateReagentCode(owr.getStartReagentCode2(), owr.getEndReagentCode2());
                 for (String code : codeTmp) {
-                    this.updateReceiptNumber(code, receiptNumber);
+                    this.updateReceiptNumber(code, receiptNumber,note);
                 }
             }
 
@@ -469,25 +516,24 @@
 
         if (null != startDate){
             try {
-                params.put("startDate",sdfstart.format(startDate));
+                params.put("startTime",sdfstart.format(startDate));
             }catch (Exception e){
                 e.printStackTrace();
             }
         }else {
-            params.put("startDate",sdfstart.format(startTime));
+            params.put("startTime",sdfstart.format(startTime));
         }
 
         if (null != endDate){
             try {
-                params.put("endDate",sdfend.format(endDate));
+                params.put("endTime",sdfend.format(endDate));
             }catch (Exception e){
                 e.printStackTrace();
             }
         }else {
-            params.put("endDate",sdfend.format(now));
+            params.put("endTime",sdfend.format(now));
         }
 
-        params.put("userId", userId);
         params.put("receiptNumber", receiptNumber);
         params.put("department", department);
         params.put("project", project);
@@ -504,6 +550,10 @@
         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.countPersonalUseInfo(params);
@@ -522,23 +572,22 @@
         Date startTime = cal.getTime();
         if (null != startDate){
             try {
-                params.put("startDate",sdfstart.format(startDate));
+                params.put("startTime",sdfstart.format(startDate));
             }catch (Exception e){
                 e.printStackTrace();
             }
         }else {
-            params.put("startDate",sdfstart.format(startTime));
+            params.put("startTime",sdfstart.format(startTime));
         }
         if (null != endDate){
             try {
-                params.put("endDate",sdfend.format(endDate));
+                params.put("endTime",sdfend.format(endDate));
             }catch (Exception e){
                 e.printStackTrace();
             }
         }else {
-            params.put("endDate",sdfend.format(now));
+            params.put("endTime",sdfend.format(now));
         }
-        params.put("userId", userId);
         params.put("receiptNumber", receiptNumber);
         params.put("department", department);
         params.put("project", project);
@@ -551,6 +600,11 @@
         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());
+
         params.put("first", first);
         params.put("pageSize", pageSize);
 
@@ -566,6 +620,11 @@
         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());
+
         params.put("receiptNumber", receiptNumber);
 
         return  opeUseFlowDao.getApplyInfo(params);
@@ -581,6 +640,11 @@
         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());
+
         params.put("receiptNumber", receiptNumber);
 
         return  opeUseFlowDao.getApplyInfoSize(params);
@@ -647,6 +711,10 @@
         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.selectByReceiptNumber(params);
@@ -713,4 +781,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;
+    }
+
 }

--
Gitblit v1.9.2