From 48de12e1635b99d593048398af45d186c8f39234 Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期二, 29 七月 2025 11:10:42 +0800
Subject: [PATCH] 危化品简化版修改

---
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java |   36 +++++++++++-------
 hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml                           |   25 ++++++++++--
 hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java               |    7 +--
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java          |    3 +
 hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java  |   10 ++---
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java    |   14 +++++++
 6 files changed, 65 insertions(+), 30 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 7ab32e6..17a7d87 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
@@ -3,6 +3,7 @@
 
 import com.gkhy.hazmat.common.annotation.Anonymous;
 import com.gkhy.hazmat.common.api.CommonResult;
+import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO;
 import com.gkhy.hazmat.system.service.HzStatisticService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
@@ -94,14 +95,11 @@
     @ApiOperation(value = "危化品使用统计")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "query", name = "pageNum", dataType = "int", required = false, value = "当前页,默认1"),
-            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10"),
-            @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"),
-            @ApiImplicitParam(paramType = "query", name = "companyId", dataType = "long", required = false, value = "企业id")
+            @ApiImplicitParam(paramType = "query", name = "pageSize", dataType = "int", required = false, value = "每页数目,默认10")
     })
     @GetMapping("/hazmatUseStatistic")
-    public CommonResult hazmatUseStatistic(String startTime,String endTime,Long companyId) {
-        return CommonResult.success(statisticService.useStatic(startTime,endTime,companyId));
+    public CommonResult hazmatUseStatistic(HazmatUseStatisticDTO useStatisticDTO) {
+        return CommonResult.success(statisticService.useStatic(useStatisticDTO));
     }
 
     @ApiOperation(value = "危化品使用记录导出")
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java
new file mode 100644
index 0000000..76a25da
--- /dev/null
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/dto/HazmatUseStatisticDTO.java
@@ -0,0 +1,14 @@
+package com.gkhy.hazmat.system.domain.dto;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+@Data
+public class HazmatUseStatisticDTO implements Serializable {
+    private String startTime;
+    private String endTime;
+    private Long companyId;
+    private Long userId;
+    private Long departId;
+}
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java
index 4e7d5d9..df27091 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java
@@ -2,6 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gkhy.hazmat.system.domain.HzHazmat;
+import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO;
 import com.gkhy.hazmat.system.domain.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
@@ -96,12 +97,10 @@
 
     /**
      * 危化品完全用完数量
-     * @param startTime
-     * @param endTime
-     * @param companyId
+     * @param useStatisticDTO
      * @return
      */
-    List<HzHazmatUseVO> useCountStatic(@Param("startTime")String startTime,@Param("endTime") String endTime,@Param("companyId") Long companyId);
+    List<HzHazmatUseVO> useCountStatic(HazmatUseStatisticDTO useStatisticDTO);
 
     List<HzEntryRecordVO> useCountHourlyStatic(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("companyId") Long companyId);
 
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 731a08e..c047a3c 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
@@ -2,6 +2,7 @@
 
 
 import com.gkhy.hazmat.common.api.CommonPage;
+import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO;
 import com.gkhy.hazmat.system.domain.vo.HzCompanyMessage;
 import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
 import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO;
@@ -45,7 +46,7 @@
      * @param endTime
      * @return
      */
-    CommonPage useStatic(String startTime, String endTime,Long companyId);
+    CommonPage useStatic(HazmatUseStatisticDTO useStatisticDTO);
 
     void importBaiscUse(HttpServletResponse response, String startTime, String endTime) throws IOException;
 
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 7353f7b..790e53d 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
@@ -19,6 +19,7 @@
 import com.gkhy.hazmat.common.utils.SecurityUtils;
 import com.gkhy.hazmat.common.utils.StringUtils;
 import com.gkhy.hazmat.system.domain.*;
+import com.gkhy.hazmat.system.domain.dto.HazmatUseStatisticDTO;
 import com.gkhy.hazmat.system.domain.vo.HzCompanyMessage;
 import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
 import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO;
@@ -196,31 +197,31 @@
 
 
     @Override
-    public CommonPage useStatic(String startTime, String endTime,Long companyId) {
+    public CommonPage useStatic(HazmatUseStatisticDTO useStatisticDTO) {
         SysUser currentUser= SecurityUtils.getLoginUser().getUser();
         checkUserAllowed(currentUser);
 
         String startDate="";
         String endDate="";
-        if(StringUtils.isBlank(startTime)&&StringUtils.isBlank(endTime)){
+        if(StringUtils.isBlank(useStatisticDTO.getStartTime())&&StringUtils.isBlank(useStatisticDTO.getEndTime())){
             Date currentDate=new Date();
             startDate= DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(currentDate), -6)), 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)), -6)), 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)), 6)), DatePattern.NORM_DATETIME_FORMAT);
+        } else if (StringUtils.isBlank(useStatisticDTO.getStartTime())&&StringUtils.isNotBlank(useStatisticDTO.getEndTime())) {
+            startDate= DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(useStatisticDTO.getEndTime())), -6)), DatePattern.NORM_DATETIME_FORMAT);
+            endDate=useStatisticDTO.getEndTime();
+        }else if (StringUtils.isNotBlank(useStatisticDTO.getStartTime())&&StringUtils.isBlank(useStatisticDTO.getEndTime())){
+            startDate=useStatisticDTO.getStartTime();
+            endDate=DateUtil.format(DateUtil.beginOfDay(DateUtil.offsetDay(DateUtil.endOfDay(new Date(useStatisticDTO.getEndTime())), 6)), DatePattern.NORM_DATETIME_FORMAT);
         }else{
-            startDate=startTime;
-            endDate=endTime;
-            if(DateUtil.between(DateUtil.parse(startDate),DateUtil.parse(startTime), DateUnit.DAY)>90){
+            startDate=useStatisticDTO.getStartTime();
+            endDate=useStatisticDTO.getEndTime();
+            if(DateUtil.between(DateUtil.parse(startDate),DateUtil.parse(useStatisticDTO.getStartTime()), DateUnit.DAY)>90){
                 throw new ApiException("只能查询90天以内数据");
             }
         }
         if (currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
-            IdTableNameHandler.setCurrentId(companyId);
+            IdTableNameHandler.setCurrentId(useStatisticDTO.getCompanyId());
 
         }else {
             //设置分表id
@@ -228,7 +229,10 @@
             IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
         }
         PageUtils.startPage();
-        List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(startDate, endDate,currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode()) ? companyId:currentUser.getCompanyId());
+        if (!currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())){
+            useStatisticDTO.setCompanyId(currentUser.getCompanyId());
+        }
+        List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(useStatisticDTO);
         IdTableNameHandler.removeCurrentId();
         if(!hazmatUseVOList.isEmpty()) {
             List<Long> basicIds = hazmatUseVOList.stream().map(HzHazmatUseVO::getBasicId).collect(Collectors.toList());
@@ -273,7 +277,11 @@
             //设置分表id
             IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
 //            PageUtils.startPage();
-            List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(startDate, endDate,currentUser.getCompanyId());
+            HazmatUseStatisticDTO hazmatUseStatisticDTO = new HazmatUseStatisticDTO();
+            hazmatUseStatisticDTO.setStartTime(startDate);
+            hazmatUseStatisticDTO.setEndTime(endDate);
+            hazmatUseStatisticDTO.setCompanyId(currentUser.getCompanyId());
+            List<HzHazmatUseVO> hazmatUseVOList= hazmatMapper.useCountStatic(hazmatUseStatisticDTO);
             IdTableNameHandler.removeCurrentId();
             List<HazmatBasicUseExcelData> hazmatBasicUseExcelDatas = new ArrayList<>();
             if(!hazmatUseVOList.isEmpty()) {
diff --git a/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml
index 1ba56ea..eb1576e 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml
@@ -149,13 +149,28 @@
     </select>
 
     <select id="useCountStatic" resultType="com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO">
-        select count(*) as count,basic_id from hz_hazmat
-        where create_time &gt;= #{startTime} and create_time &lt;= #{endTime} and state =3
+        SELECT
+        count(*) AS count,
+        hh2.basic_id
+        FROM
+        hz_hazmat hh2
+        LEFT JOIN hz_hazmat_flow hhf2 on hh2.id = hhf2.hazmat_id
+        LEFT JOIN sys_user sy on hhf2.create_id =  sy.id
+        LEFT JOIN sys_dept sd on sy.depart_id = sd.id
+        where hh2.create_time &gt;= #{startTime} and hh2.create_time &lt;= #{endTime} and hh2.state =3 and hhf2.state = 4
         <if test="companyId!=null">
-            and company_id=#{companyId}
+            and hh2.company_id=#{companyId}
         </if>
-        group by basic_id
-        order by count desc
+        <if test="userId!=null">
+            and hh2f.create_id = #{userId}
+        </if>
+        <if test="departId!=null">
+            and sd.id = #{departId}
+        </if>
+        GROUP BY
+        hh2.basic_id
+        ORDER BY
+        count DESC
     </select>
 
 

--
Gitblit v1.9.2