From 07a6e79342c381d4d8c98a92a216c41dc9502a09 Mon Sep 17 00:00:00 2001
From: heheng <475597332@qq.com>
Date: 星期四, 06 三月 2025 08:40:40 +0800
Subject: [PATCH] git

---
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatBasicServiceImpl.java  |    6 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java    |   95 ++++++++++++++++++
 hazmat-system/src/main/resources/mapper/system/HzProductBasicMapper.xml                        |    5 
 hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml                         |    4 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzProductBasic.java                  |    8 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzHazmatBasic.java                   |    9 +
 hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelData.java          |   41 ++++++++
 hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelDataListener.java  |   17 +++
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzSecientificVo.java              |    9 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java             |    4 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzProductBasicServiceImpl.java |    6 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java       |    3 
 hazmat-system/src/main/resources/mapper/system/HzSecientificMapper.xml                         |    2 
 hazmat-system/src/main/resources/mapper/system/HzEntryRecordMapper.xml                         |    6 +
 hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java     |   15 +++
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzSecientificServiceImpl.java  |   20 ++--
 hazmat-system/src/main/resources/mapper/system/HzProductEntryRecordMapper.xml                  |    6 +
 17 files changed, 240 insertions(+), 16 deletions(-)

diff --git a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java
index fd867a5..57bd491 100644
--- a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java
+++ b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java
@@ -1,6 +1,7 @@
 package com.gkhy.hazmat.admin.controller.web;
 
 
+import com.gkhy.hazmat.common.annotation.Anonymous;
 import com.gkhy.hazmat.common.api.CommonResult;
 import com.gkhy.hazmat.system.service.HzStatisticService;
 import io.swagger.annotations.Api;
@@ -9,8 +10,12 @@
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 
 /**
  * <p>
@@ -65,4 +70,14 @@
         return CommonResult.success(statisticService.useStatic(startTime,endTime));
     }
 
+    @ApiOperation(value = "危化品使用记录导出")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", name = "startTime", dataType = "string", required = false, value = "开始时间,格式xxxx-xx-xx 00:00:00"),
+            @ApiImplicitParam(paramType = "query", name = "endTime", dataType = "string", required = false, value = "结束时间,格式xxxx-xx-xx 23:59:59")
+    })
+    @GetMapping("/importBaiscUse")
+    public void ImportBasicUse(HttpServletResponse response, String startTime, String endTime) throws IOException {
+        statisticService.importBaiscUse(response,startTime,endTime);
+    }
+
 }
diff --git a/hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelData.java b/hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelData.java
new file mode 100644
index 0000000..c759d41
--- /dev/null
+++ b/hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelData.java
@@ -0,0 +1,41 @@
+package com.gkhy.hazmat.common.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.math.BigDecimal;
+
+@Getter
+@Setter
+public class HazmatBasicUseExcelData {
+    @ExcelProperty("序号")
+    private Integer index;
+
+    @ExcelProperty("名称")
+    private String name;
+
+    @ExcelProperty("CAS")
+    private String cas;
+
+    @ExcelProperty("试剂类型")
+    private String productType;
+
+    @ExcelProperty("危险性质")
+    private String productCharacter;
+
+    @ExcelProperty("供应商")
+    private String supplier;
+
+    @ExcelProperty("规格")
+    private String productFormat;
+
+    @ExcelProperty("最小包装类型")
+    private String minPackage;
+
+    @ExcelProperty("用量")
+    private Integer count;
+
+
+}
diff --git a/hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelDataListener.java b/hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelDataListener.java
new file mode 100644
index 0000000..341e31b
--- /dev/null
+++ b/hazmat-common/src/main/java/com/gkhy/hazmat/common/excel/HazmatBasicUseExcelDataListener.java
@@ -0,0 +1,17 @@
+package com.gkhy.hazmat.common.excel;
+
+import com.alibaba.excel.context.AnalysisContext;
+import com.alibaba.excel.event.AnalysisEventListener;
+
+public class HazmatBasicUseExcelDataListener extends AnalysisEventListener<HazmatBasicUseExcelData> {
+    @Override
+    public void invoke(HazmatBasicUseExcelData hazmatBasicUseExcelData, AnalysisContext analysisContext) {
+        System.out.println("invoke");
+    }
+
+    @Override
+    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
+        //所有数据解析完成后的操作
+        System.out.println("doAfterAllAnalysed");
+    }
+}
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzHazmatBasic.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzHazmatBasic.java
index 4ac234e..ae0d91c 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzHazmatBasic.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzHazmatBasic.java
@@ -165,5 +165,14 @@
     @TableField(exist = false)
     private String companyName;
 
+    @ApiModelProperty("危化品特性类别")
+    @TableField(exist = false)
+    private String riskType;
+
+    @ApiModelProperty("危化品分类信息id")
+    @TableField("secientific_id")
+    private Integer secientificId;
+
+
 
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzProductBasic.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzProductBasic.java
index 23a7514..bd4ed79 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzProductBasic.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/HzProductBasic.java
@@ -142,5 +142,13 @@
     @TableField(exist = false)
     private String companyName;
 
+    @ApiModelProperty("危化品特性类别")
+    @TableField(exist = false)
+    private String riskType;
+
+    @ApiModelProperty("危化品分类信息id")
+    @TableField("secientific_id")
+    private Integer secientificId;
+
 
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzSecientificVo.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzSecientificVo.java
index 9617cf7..b97ba5b 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzSecientificVo.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzSecientificVo.java
@@ -5,11 +5,16 @@
 import lombok.Getter;
 import lombok.Setter;
 
-@Getter
-@Setter
+
 public class HzSecientificVo extends HzSecientific {
 
     private String peculiarityType;
 
+    public String getPeculiarityType() {
+        return peculiarityType;
+    }
 
+    public void setPeculiarityType(String peculiarityType) {
+        this.peculiarityType = peculiarityType;
+    }
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java
index b967829..d63c27c 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java
@@ -6,6 +6,8 @@
 import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO;
 import com.gkhy.hazmat.system.domain.vo.HzHomeDataVO;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -43,4 +45,6 @@
      * @return
      */
     CommonPage useStatic(String startTime, String endTime);
+
+    void importBaiscUse(HttpServletResponse response, String startTime, String endTime) throws IOException;
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatBasicServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatBasicServiceImpl.java
index 5a41154..6ff2ff0 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatBasicServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatBasicServiceImpl.java
@@ -83,6 +83,7 @@
         HzSecientificVo hzSecientificVo = secientificMapper.selectBySecientificName(hazmatBasic.getName());
         hazmatBasic.setPeculiarityType(hzSecientificVo!=null? hzSecientificVo.getPeculiarityType() : null);
         hazmatBasic.setPeculiarityNumber(hzSecientificVo!=null? hzSecientificVo.getPeculiarityNumber() : 0);
+        hazmatBasic.setSecientificId(hzSecientificVo!=null? hzSecientificVo.getId() : null);
 
         int row = baseMapper.insert(hazmatBasic);
         if (row < 1) {
@@ -99,6 +100,10 @@
         SysUser currentUser = SecurityUtils.getLoginUser().getUser();
         checkUserAllowed(hazmatBasic,currentUser);
         hazmatBasic.setUpdateBy(currentUser.getUsername());
+        HzSecientificVo hzSecientificVo = secientificMapper.selectBySecientificName(hazmatBasic.getName());
+        hazmatBasic.setPeculiarityType(hzSecientificVo!=null? hzSecientificVo.getPeculiarityType() : null);
+        hazmatBasic.setPeculiarityNumber(hzSecientificVo!=null? hzSecientificVo.getPeculiarityNumber() : 0);
+        hazmatBasic.setSecientificId(hzSecientificVo!=null? hzSecientificVo.getId() : null);
         int row=baseMapper.updateById(hazmatBasic);
         if(row<1){
             throw new ApiException("更新危化品基础信息失败");
@@ -170,6 +175,7 @@
             HzSecientificVo hzSecientificVo = secientificMapper.selectBySecientificName(hazmatBasic.getName());
             hazmatBasic.setPeculiarityType(hzSecientificVo!=null? hzSecientificVo.getPeculiarityType() : "");
             hazmatBasic.setPeculiarityNumber(hzSecientificVo!=null? hzSecientificVo.getPeculiarityNumber() : 0);
+            hazmatBasic.setSecientificId(hzSecientificVo!=null? hzSecientificVo.getId() : null);
 
             hazmatBasic.setKind(kind);
             hazmatBasic.setMinPackage(minPackage);
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java
index ebb6530..570676a 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatServiceImpl.java
@@ -195,6 +195,7 @@
         HzWarehouseRecord warehouseRecord = new HzWarehouseRecord()
                 .setWarehouseId(hazmat.getWarehouseId())
                 .setBasicId(hazmat.getBasicId())
+                .setCupboardId(hazmat.getCupboardId())
                 .setCreateId(currentUser.getId())
                 .setNum(-1)
                 .setState(OperateStatusEnum.USING.getCode())
@@ -249,6 +250,7 @@
         HzWarehouseRecord warehouseRecord = new HzWarehouseRecord()
                 .setWarehouseId(dbhazmat.getWarehouseId())
                 .setBasicId(dbhazmat.getBasicId())
+                .setCupboardId(hazmat.getCupboardId())
                 .setCreateId(currentUser.getId())
                 .setNum(1)
                 .setState(OperateStatusEnum.RETURN.getCode())
@@ -318,6 +320,7 @@
         HzWarehouseRecord warehouseRecord = new HzWarehouseRecord()
                 .setWarehouseId(hazmat.getWarehouseId())
                 .setBasicId(hazmat.getBasicId())
+                .setCupboardId(hazmat.getCupboardId())
                 .setCreateId(currentUser.getId())
                 .setNum(-1)
                 .setState(OperateStatusEnum.DISCARD.getCode())
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzProductBasicServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzProductBasicServiceImpl.java
index 877a54f..a759119 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzProductBasicServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzProductBasicServiceImpl.java
@@ -79,6 +79,7 @@
         HzSecientificVo hzSecientificVo = secientificMapper.selectBySecientificName(productBasic.getName());
         productBasic.setPeculiarityType(hzSecientificVo!=null? hzSecientificVo.getPeculiarityType() : null);
         productBasic.setPeculiarityNumber(hzSecientificVo!=null ? hzSecientificVo.getPeculiarityNumber() : 0);
+        productBasic.setSecientificId(hzSecientificVo!=null? hzSecientificVo.getId() : null);
 
         if (!checkProductSnUnique(productBasic)) {
             throw new ApiException("产品编号已存在");
@@ -99,6 +100,10 @@
         SysUser currentUser = SecurityUtils.getLoginUser().getUser();
         checkUserAllowed(productBasic,currentUser);
         productBasic.setUpdateBy(currentUser.getUsername());
+        HzSecientificVo hzSecientificVo = secientificMapper.selectBySecientificName(productBasic.getName());
+        productBasic.setPeculiarityType(hzSecientificVo!=null? hzSecientificVo.getPeculiarityType() : null);
+        productBasic.setPeculiarityNumber(hzSecientificVo!=null ? hzSecientificVo.getPeculiarityNumber() : 0);
+        productBasic.setSecientificId(hzSecientificVo!=null? hzSecientificVo.getId() : null);
         int row=baseMapper.updateById(productBasic);
         if(row<1){
             throw new ApiException("更新成品基础信息失败");
@@ -169,6 +174,7 @@
             HzSecientificVo hzSecientificVo = secientificMapper.selectBySecientificName(productBasic.getName());
             productBasic.setPeculiarityType(hzSecientificVo!=null? hzSecientificVo.getPeculiarityType() : null);
             productBasic.setPeculiarityNumber(hzSecientificVo!=null ? hzSecientificVo.getPeculiarityNumber() : 0);
+            productBasic.setSecientificId(hzSecientificVo!=null? hzSecientificVo.getId() : null);
             productBasic.setKind(kind);
             productBasic.setMinPackage(minPackage);
             productBasic.setCompanyId(currentUser.getCompanyId());
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzSecientificServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzSecientificServiceImpl.java
index cbcc175..1976121 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzSecientificServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzSecientificServiceImpl.java
@@ -113,16 +113,16 @@
 
     private void checkData(SecientificExcelData secientificExcelDatum) {
         if(StringUtils.isBlank(secientificExcelDatum.getSecientificName())){
-            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"品名为空");
+            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"品名为空"+"危险性类别:"+secientificExcelDatum.getRiskType());
         }
-        if(StringUtils.isBlank(secientificExcelDatum.getCas())){
-            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"CAS码为空");
-        }
-        if(StringUtils.isBlank(secientificExcelDatum.getRiskType())){
-            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"危险性类别为空");
-        }
-        if(secientificExcelDatum.getPeculiarityNumber() == null){
-            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"危化品特性编码为空");
-        }
+//        if(StringUtils.isBlank(secientificExcelDatum.getCas())){
+//            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"CAS码为空");
+//        }
+//        if(StringUtils.isBlank(secientificExcelDatum.getRiskType())){
+//            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"危险性类别为空");
+//        }
+//        if(secientificExcelDatum.getPeculiarityNumber() == null){
+//            throw new ApiException("序号"+secientificExcelDatum.getIndex()+"危化品特性编码为空");
+//        }
     }
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java
index 879787f..c23f010 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java
@@ -4,12 +4,16 @@
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.gkhy.hazmat.common.api.CommonPage;
 import com.gkhy.hazmat.common.config.IdTableNameHandler;
 import com.gkhy.hazmat.common.domain.entity.SysUser;
+import com.gkhy.hazmat.common.enums.HazmatPackageEnum;
 import com.gkhy.hazmat.common.enums.HazmatStatusEnum;
 import com.gkhy.hazmat.common.enums.UserTypeEnum;
+import com.gkhy.hazmat.common.excel.HazmatBasicUseExcelData;
 import com.gkhy.hazmat.common.exception.ApiException;
 import com.gkhy.hazmat.common.utils.PageUtils;
 import com.gkhy.hazmat.common.utils.SecurityUtils;
@@ -20,9 +24,16 @@
 import com.gkhy.hazmat.system.domain.vo.HzHomeDataVO;
 import com.gkhy.hazmat.system.mapper.*;
 import com.gkhy.hazmat.system.service.HzStatisticService;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import javax.servlet.ServletOutputStream;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -186,7 +197,7 @@
         }else{
             startDate=startTime;
             endDate=endTime;
-            if(DateUtil.between(new Date(endDate),new Date(startTime), DateUnit.DAY)>90){
+            if(DateUtil.between(DateUtil.parse(startDate),DateUtil.parse(startTime), DateUnit.DAY)>90){
                 throw new ApiException("只能查询90天以内数据");
             }
         }
@@ -210,6 +221,88 @@
         return CommonPage.restPage(hazmatUseVOList);
     }
 
+    @Override
+    public void importBaiscUse(HttpServletResponse response, String startTime, String endTime) throws IOException {
+        SysUser currentUser= SecurityUtils.getLoginUser().getUser();
+        checkUserAllowed(currentUser);
+        OutputStream outputStream = response.getOutputStream();
+        try {
+            String startDate="";
+            String endDate="";
+            if(StringUtils.isBlank(startTime)&&StringUtils.isBlank(endTime)){
+                Date currentDate=new Date();
+                startDate= DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(currentDate), -29)), DatePattern.NORM_DATETIME_FORMAT);
+                endDate=DateUtil.format(DateUtil.endOfDay(currentDate),DatePattern.NORM_DATETIME_FORMAT);
+            } else if (StringUtils.isBlank(startTime)&&StringUtils.isNotBlank(endTime)) {
+                startDate= DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(endTime)), -29)), DatePattern.NORM_DATETIME_FORMAT);
+                endDate=endTime;
+            }else if (StringUtils.isNotBlank(startTime)&&StringUtils.isBlank(endTime)){
+                startDate=startTime;
+                endDate=DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(endTime)), 29)), DatePattern.NORM_DATETIME_FORMAT);
+            }else{
+                startDate=startTime;
+                endDate=endTime;
+                if(DateUtil.between(DateUtil.parse(startDate),DateUtil.parse(startTime), DateUnit.DAY)>90){
+                    throw new ApiException("只能查询90天以内数据");
+                }
+            }
+            //设置分表id
+            IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
+//            PageUtils.startPage();
+            List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(startDate, endDate,currentUser.getCompanyId());
+            IdTableNameHandler.removeCurrentId();
+            List<HazmatBasicUseExcelData> hazmatBasicUseExcelDatas = new ArrayList<>();
+            if(!hazmatUseVOList.isEmpty()) {
+                List<Long> basicIds = hazmatUseVOList.stream().map(HzHazmatUseVO::getBasicId).collect(Collectors.toList());
+                List<HzHazmatBasic> hzHazmatBasicList = hazmatBasicMapper.selectHazmatBasicListByIds(basicIds);
+                Map<Long, HzHazmatBasic> hazmatBasicMap = hzHazmatBasicList.stream().collect(Collectors.toMap(HzHazmatBasic::getId, item -> item));
+                Integer index=1;
+                for (HzHazmatUseVO hu : hazmatUseVOList) {
+                    HazmatBasicUseExcelData hazmatBasicUseExcelData = new HazmatBasicUseExcelData();
+                    hazmatBasicUseExcelData.setCount(hu.getCount());
+                    HzHazmatBasic hazmatBasic = hazmatBasicMap.get(hu.getBasicId());
+                    if (hazmatBasic != null) {
+                        BeanUtils.copyProperties(hazmatBasic,hazmatBasicUseExcelData);
+                        hazmatBasicUseExcelData.setIndex(index);
+                        hazmatBasicUseExcelData.setProductType(hazmatBasic.getHazmatType());
+                        hazmatBasicUseExcelData.setProductCharacter(hazmatBasic.getHazmatCharacter());
+                        hazmatBasicUseExcelData.setProductFormat(hazmatBasic.getHazmatFormat());
+                        hazmatBasicUseExcelData.setMinPackage(HazmatPackageEnum.getInfoByCode(hazmatBasic.getMinPackage()));
+                    }
+                    index++;
+                    hazmatBasicUseExcelDatas.add(hazmatBasicUseExcelData);
+                }
+            }
+            Date date = new Date();
+            long time = date.getTime();
+            String fileName = "危化品用量统计_"+time;
+            this.setExcelResponseProp(response,fileName);
+
+            //使用 EasyExcel 导出数据
+            EasyExcel.write(response.getOutputStream(), HazmatBasicUseExcelData.class)
+                    .excelType(ExcelTypeEnum.XLSX)
+                    .sheet("危化品使用记录统计表") // 设置 Sheet 名称
+                    .doWrite(hazmatBasicUseExcelDatas); // 写入数据
+
+        } catch (IOException e) {
+            throw new RuntimeException(e);
+        }
+
+
+
+    }
+
+    private void setExcelResponseProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException {
+        //设置内容类型
+        response.setContentType("application/vnd.vnd.ms-excel");
+        //设置编码格式
+        response.setCharacterEncoding("utf-8");
+        //设置导出文件名称(避免乱码)
+        String fileName = URLEncoder.encode(rawFileName.concat(".xlsx"), "UTF-8");
+        // 设置响应头
+        response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName);
+    }
+
     public void checkUserAllowed(SysUser user) {
         if (user.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())) {
             throw new ApiException("管理员不能操作");
diff --git a/hazmat-system/src/main/resources/mapper/system/HzEntryRecordMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzEntryRecordMapper.xml
index 58c19e9..fb410f4 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzEntryRecordMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzEntryRecordMapper.xml
@@ -79,6 +79,12 @@
             <if test="state != null">
                 AND a.state= #{state}
             </if>
+            <if test="params.warehouseId !=null">
+                and a.warehouse_id = #{params.warehouseId}
+            </if>
+            <if test="params.cupboardId !=null">
+                and a.cupboard_id = #{params.cupboardId}
+            </if>
         </where>
         order by a.id desc
     </select>
diff --git a/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml
index eb0373a..863ce60 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml
@@ -31,14 +31,16 @@
         <result property="remark"         column="remark"          />
         <result property="maxEntry"         column="max_entry"          />
         <result property="companyName"         column="company_name"          />
+        <result property="riskType" column="risk_type"/>
     </resultMap>
 
     <sql id="selectHazmatBasicVo">
         select a.id, a.name, a.cas, a.hazmat_type,a.min_package, a.kind,a.hazmat_character,a.supplier,a.manufacturer,a.hazmat_format,a.metering,
                a.unit,a.price,a.per_box,a.safe_num,a.threshold,a.product_sn,a.company_id,a.version,a.peculiarity_type,a.peculiarity_number, a.create_by, a.create_time,
-               a.update_by, a.update_time, a.remark,a.max_entry,b.name as company_name
+               a.update_by, a.update_time, a.remark,a.max_entry,b.name as company_name,hs.risk_type
         from hz_hazmat_basic a
         left join sys_company b on b.id=a.company_id
+        LEFT JOIN hz_secientific hs ON a.secientific_id = hs.id
     </sql>
 
     <update id="deleteHazmatBasicById" parameterType="java.lang.Long">
diff --git a/hazmat-system/src/main/resources/mapper/system/HzProductBasicMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzProductBasicMapper.xml
index 45150fd..940e82a 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzProductBasicMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzProductBasicMapper.xml
@@ -29,13 +29,16 @@
         <result property="remark"         column="remark"          />
         <result property="maxEntry"         column="max_entry"          />
         <result property="companyName"         column="company_name"          />
+        <result property="riskType" column="risk_type"/>
     </resultMap>
 
     <sql id="selectProductBasicVo">
         select a.id, a.name, a.cas, a.product_type, a.min_package,a.kind,a.product_character,a.supplier,a.manufacturer,a.product_format,a.metering,
-               a.unit,a.price,a.per_box,a.product_sn,a.company_id,a.version,a.peculiarity_type,a.peculiarity_number, a.create_by, a.create_time, a.update_by, a.update_time, a.remark,a.max_entry,b.name as company_name
+               a.unit,a.price,a.per_box,a.product_sn,a.company_id,a.version,a.peculiarity_type,a.peculiarity_number,
+               a.create_by, a.create_time, a.update_by, a.update_time, a.remark,a.max_entry,b.name as company_name,hs.risk_type
         from hz_product_basic a
         left join sys_company b on b.id=a.company_id
+        LEFT JOIN hz_secientific hs ON a.secientific_id = hs.id
     </sql>
 
     <update id="deleteProductBasicById" parameterType="java.lang.Long">
diff --git a/hazmat-system/src/main/resources/mapper/system/HzProductEntryRecordMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzProductEntryRecordMapper.xml
index 5a3048b..0fd3ff1 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzProductEntryRecordMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzProductEntryRecordMapper.xml
@@ -70,6 +70,12 @@
             <if test="companyId != null">
                 AND a.company_id =#{companyId}
             </if>
+            <if test="params.warehouseId !=null">
+                and a.warehouse_id =#{params.warehouseId}
+            </if>
+            <if test="params.cupboardId !=null">
+                and a.cupboard_id = #{params.cupboardId}
+            </if>
         </where>
         order by a.id desc
     </select>
diff --git a/hazmat-system/src/main/resources/mapper/system/HzSecientificMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzSecientificMapper.xml
index 893e518..78738e2 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzSecientificMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzSecientificMapper.xml
@@ -22,7 +22,7 @@
                 LEFT JOIN hz_peculiarity hp ON hs.peculiarity_number = hp.peculiarity_number
         <where>
             <if test="secientificName!=null and secientificName!=''">
-                and secientific_name =#{secientificName}
+                and hs.secientific_name like  concat('%',#{secientificName},'%')
             </if>
             and hs.del_flag = 0
         </where>

--
Gitblit v1.9.2