From da2c594ade5d69621dd11a13bb758477e2dc079e Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: 星期三, 07 五月 2025 15:57:51 +0800
Subject: [PATCH] 危化品新版修改

---
 hazmat-system/src/main/resources/mapper/system/HzTabooWarningMapper.xml                       |   14 ++
 hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml                        |   26 +++
 hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatFlowController.java   |    2 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzWarningService.java              |    5 
 hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatBasicController.java  |    6 
 hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzTabooWarningController.java |    9 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java                 |   10 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzTabooVo.java                   |   22 +++
 hazmat-system/src/main/resources/mapper/system/HzWarningMapper.xml                            |    9 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatBasicService.java          |    6 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatBasicMapper.java            |    4 
 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   |   63 +++++++++
 hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml                             |   69 +++++++++
 hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzTabooWarningMapper.java           |    2 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/TabooWarningService.java           |    3 
 hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzWarningController.java      |    8 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzWarningServiceImpl.java     |   56 +++++++
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzCompanyMessage.java            |   15 ++
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzEntryRecordVO.java             |    7 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzWarningMapper.java                |    3 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/TaBooWarningServiceImpl.java  |    7 +
 hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java            |    6 
 hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzBasicVo.java                   |   11 +
 hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java    |   21 +++
 25 files changed, 383 insertions(+), 7 deletions(-)

diff --git a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatBasicController.java b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatBasicController.java
index 105dd20..c004ed8 100644
--- a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatBasicController.java
+++ b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatBasicController.java
@@ -85,4 +85,10 @@
         return CommonResult.success(hazmatBasicService.importExcel(file));
     }
 
+    @ApiOperation(value = "大屏危化品特性分类统计")
+    @GetMapping("/basicCount")
+    public CommonResult BasicCount(){
+        return CommonResult.success(hazmatBasicService.basicCount());
+    }
+
 }
diff --git a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatFlowController.java b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatFlowController.java
index 849d0c6..b6dd8e0 100644
--- a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatFlowController.java
+++ b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatFlowController.java
@@ -74,7 +74,7 @@
     @PreAuthorize("hasAnyAuthority('hazmat:manage:company','hazmat:manage:common','hazmat:manage:system')")
     @ApiOperation(value = "根据条码code查询危化品所有流向")
     @GetMapping(value = { "/getHazmatFlowByCode" })
-    public CommonResult getAllHazmatFlowByCode(@RequestParam(required = true) String  code,@RequestParam("companyId") Long companyId){
+    public CommonResult getAllHazmatFlowByCode(@RequestParam(value = "code") String  code,@RequestParam("companyId") Long companyId){
         if(code.startsWith(CodePrexEnum.MATERIAL.getCode())){
             return CommonResult.success(hazmatFlowService.selectAllHazmatFlowByCode(code,companyId));
         }else if(code.startsWith(CodePrexEnum.GOOD.getCode())){
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 d47350f..7ab32e6 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
@@ -50,6 +50,27 @@
         return CommonResult.success(statisticService.useEverydayStatic(companyId));
     }
 
+
+    @ApiOperation(value = "大屏一天使用量统计")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query",name = "companyId",dataType = "long",required = false,value = "企业ID")
+    })
+    @GetMapping("/dayUseStatistic")
+    @Anonymous
+    public CommonResult dayUseStatistic(Long companyId){
+        return CommonResult.success(statisticService.dayUseStatistic(companyId));
+    }
+
+    @ApiOperation(value = "大屏企业统计")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query",name = "type",dataType = "long",required = false,value = "企业类型")
+    })
+    @GetMapping("/companyMessage")
+    public CommonResult companyMessage(Long type){
+        return CommonResult.success(statisticService.companyMessage(type));
+    }
+
+
     @ApiOperation(value = "一周使用频繁的危化品数量统计")
     @ApiImplicitParams({
             @ApiImplicitParam(paramType = "query",name = "companyId",dataType ="long",required = false,value = "公司id")
diff --git a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzTabooWarningController.java b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzTabooWarningController.java
index bcbea88..d2f6078 100644
--- a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzTabooWarningController.java
+++ b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzTabooWarningController.java
@@ -61,4 +61,13 @@
         return CommonResult.success();
     }
 
+    @ApiOperation(value = "相忌预警大屏统计")
+    @ApiImplicitParams({
+            @ApiImplicitParam(paramType = "query", name = "state", dataType = "int", required = true, value = "处理状态")
+    })
+    @GetMapping("/listCount")
+    public CommonResult selectCount(Integer state){
+        return CommonResult.success(tabooWarningService.listCount(state));
+    }
+
 }
diff --git a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzWarningController.java b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzWarningController.java
index 493f1c7..4bc8a30 100644
--- a/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzWarningController.java
+++ b/hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzWarningController.java
@@ -1,6 +1,7 @@
 package com.gkhy.hazmat.admin.controller.web;
 
 
+import com.gkhy.hazmat.common.annotation.Anonymous;
 import com.gkhy.hazmat.common.annotation.RepeatSubmit;
 import com.gkhy.hazmat.common.api.CommonResult;
 import com.gkhy.hazmat.system.domain.HzWarning;
@@ -62,4 +63,11 @@
         return CommonResult.success(warningService.deleteWarningById(warningId));
     }
 
+
+    @ApiOperation(value = "大屏超期预警统计")
+    @GetMapping("/dailywarningCount")
+    public CommonResult dailywarningCount(){
+        return CommonResult.success(warningService.dailywarningCount());
+    }
+
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzBasicVo.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzBasicVo.java
new file mode 100644
index 0000000..665a8fb
--- /dev/null
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzBasicVo.java
@@ -0,0 +1,11 @@
+package com.gkhy.hazmat.system.domain.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class HzBasicVo {
+    private String hazmatCharacter;
+    private Integer count;
+}
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzCompanyMessage.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzCompanyMessage.java
new file mode 100644
index 0000000..fe2b3e2
--- /dev/null
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzCompanyMessage.java
@@ -0,0 +1,15 @@
+package com.gkhy.hazmat.system.domain.vo;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class HzCompanyMessage {
+    private Integer id;
+    private String companyName;
+    private String longitude;
+    private String latitude;
+    private Integer warehouseCount;
+    private Integer warningCount;
+}
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzEntryRecordVO.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzEntryRecordVO.java
index 2b7a48c..f43a36f 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzEntryRecordVO.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzEntryRecordVO.java
@@ -1,6 +1,7 @@
 package com.gkhy.hazmat.system.domain.vo;
 
 import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Getter;
 import lombok.Setter;
@@ -33,5 +34,11 @@
     @ApiModelProperty(value = "月")
     private String month;
 
+    @ApiModelProperty(value = "时")
+    private String hour;
+
+    @ApiModelProperty(value = "总数量")
+    private Integer totalCount;
+
 
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzTabooVo.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzTabooVo.java
new file mode 100644
index 0000000..9c3a278
--- /dev/null
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzTabooVo.java
@@ -0,0 +1,22 @@
+package com.gkhy.hazmat.system.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Getter;
+import lombok.Setter;
+
+
+import java.util.Map;
+
+import static com.fasterxml.jackson.annotation.JsonInclude.Include.NON_NULL;
+
+@Getter
+@Setter
+@JsonInclude(NON_NULL)
+public class HzTabooVo {
+    @ApiModelProperty(value = "公司企业")
+    private String companyName;
+    @ApiModelProperty(value = "报警数量")
+    private Integer count;
+
+}
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatBasicMapper.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatBasicMapper.java
index f833e13..903894d 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatBasicMapper.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatBasicMapper.java
@@ -2,6 +2,7 @@
 
 import com.gkhy.hazmat.system.domain.HzHazmatBasic;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.hazmat.system.domain.vo.HzBasicVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -43,4 +44,7 @@
      * @return
      */
     List<HzHazmatBasic> selectHazmatBasicListByIds(List<Long> basicIds);
+
+    List<HzBasicVo> basicCount();
+
 }
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 26d1f42..4e7d5d9 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,10 +2,7 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.gkhy.hazmat.system.domain.HzHazmat;
-import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
-import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO;
-import com.gkhy.hazmat.system.domain.vo.HzHazmatWarehouseVO;
-import com.gkhy.hazmat.system.domain.vo.TabooDisVo;
+import com.gkhy.hazmat.system.domain.vo.*;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -106,4 +103,9 @@
      */
     List<HzHazmatUseVO> useCountStatic(@Param("startTime")String startTime,@Param("endTime") String endTime,@Param("companyId") Long companyId);
 
+    List<HzEntryRecordVO> useCountHourlyStatic(@Param("startDate") String startDate, @Param("endDate") String endDate, @Param("companyId") Long companyId);
+
+    List<HzCompanyMessage> companyMessage(Long type);
+
+    Integer countTotal(Long companyId);
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzTabooWarningMapper.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzTabooWarningMapper.java
index c5a35f7..a010b4f 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzTabooWarningMapper.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzTabooWarningMapper.java
@@ -4,6 +4,7 @@
 import com.gkhy.hazmat.system.domain.HzEntryRecord;
 import com.gkhy.hazmat.system.domain.HzTabooWarning;
 import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
+import com.gkhy.hazmat.system.domain.vo.HzTabooVo;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
@@ -26,4 +27,5 @@
      */
     List<HzTabooWarning> selectHzTabooWarningList(HzTabooWarning hzTabooWarning);
 
+    List<HzTabooVo> selectListCount(Integer state);
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzWarningMapper.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzWarningMapper.java
index c77d935..7ce62aa 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzWarningMapper.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzWarningMapper.java
@@ -2,7 +2,9 @@
 
 import com.gkhy.hazmat.system.domain.HzWarning;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -39,5 +41,6 @@
     Integer selectWarningCount(Long companyId);
 
 
+    List<HzEntryRecordVO> dailyWarningStatic(@Param("startDate") String startDate, @Param("endDate") String endDate);
 
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatBasicService.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatBasicService.java
index a6a0e2f..9aa5fa0 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatBasicService.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatBasicService.java
@@ -3,9 +3,11 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gkhy.hazmat.common.api.CommonPage;
 import com.gkhy.hazmat.system.domain.HzHazmatBasic;
+import com.gkhy.hazmat.system.domain.vo.HzBasicVo;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.io.IOException;
+import java.util.List;
 
 /**
  * <p>
@@ -73,4 +75,8 @@
      * @param file
      */
     Integer importExcel(MultipartFile file) throws IOException;
+
+    List<HzBasicVo> basicCount();
+
+
 }
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 13bf8fd..731a08e 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.vo.HzCompanyMessage;
 import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
 import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO;
 import com.gkhy.hazmat.system.domain.vo.HzHomeDataVO;
@@ -47,4 +48,9 @@
     CommonPage useStatic(String startTime, String endTime,Long companyId);
 
     void importBaiscUse(HttpServletResponse response, String startTime, String endTime) throws IOException;
+
+    List<HzEntryRecordVO> dayUseStatistic(Long companyId);
+
+    List<HzCompanyMessage> companyMessage(Long type);
+
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzWarningService.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzWarningService.java
index 678a750..4e49b2a 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzWarningService.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzWarningService.java
@@ -3,6 +3,9 @@
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.gkhy.hazmat.common.api.CommonPage;
 import com.gkhy.hazmat.system.domain.HzWarning;
+import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
+
+import java.util.List;
 
 /**
  * <p>
@@ -52,4 +55,6 @@
      * @return
      */
     Integer selectWarningCount(Long companyId);
+
+    List<HzEntryRecordVO> dailywarningCount();
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/TabooWarningService.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/TabooWarningService.java
index 951ed40..92eafba 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/TabooWarningService.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/TabooWarningService.java
@@ -6,6 +6,7 @@
 import com.gkhy.hazmat.common.api.CommonPage;
 import com.gkhy.hazmat.system.domain.HzTabooWarning;
 import com.gkhy.hazmat.system.domain.vo.HzEntryTransferVO;
+import com.gkhy.hazmat.system.domain.vo.HzTabooVo;
 
 import java.util.List;
 
@@ -30,5 +31,5 @@
     public void doTransfer(HzEntryTransferVO entryTransferVO);
 
 
-
+    List<HzTabooVo> listCount(Integer state);
 }
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 e1a62de..2c829f3 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
@@ -16,6 +16,7 @@
 import com.gkhy.hazmat.common.utils.SecurityUtils;
 import com.gkhy.hazmat.common.utils.StringUtils;
 import com.gkhy.hazmat.system.domain.HzHazmatBasic;
+import com.gkhy.hazmat.system.domain.vo.HzBasicVo;
 import com.gkhy.hazmat.system.domain.vo.HzSecientificVo;
 import com.gkhy.hazmat.system.mapper.HzHazmatBasicMapper;
 import com.gkhy.hazmat.system.mapper.HzSecientificMapper;
@@ -204,6 +205,11 @@
         return hazmatBasicList.size();
     }
 
+    @Override
+    public List<HzBasicVo> basicCount() {
+        return baseMapper.basicCount();
+    }
+
 
     public void validateData(HazmatBasicExcelData hazmatBasicExcelData){
         if(StringUtils.isBlank(hazmatBasicExcelData.getName())){
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 ebdd109..7353f7b 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.vo.HzCompanyMessage;
 import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
 import com.gkhy.hazmat.system.domain.vo.HzHazmatUseVO;
 import com.gkhy.hazmat.system.domain.vo.HzHomeDataVO;
@@ -315,6 +316,68 @@
 
     }
 
+
+    @Override
+    public List<HzEntryRecordVO> dayUseStatistic(Long companyId) {
+        SysUser currentUser = SecurityUtils.getLoginUser().getUser();
+        checkUserAllowed(currentUser);
+        Date currentDate = new Date();
+
+        // 设置当天的8点作为开始时间,20点作为结束时间
+        DateTime beginOfDay = DateUtil.beginOfDay(currentDate); // 当天零点
+
+        // 从零点偏移8小时得到8点,偏移20小时得到20点
+        DateTime startTime = DateUtil.offsetHour(beginOfDay, 8); // 08:00:00
+        DateTime endTime = DateUtil.offsetHour(beginOfDay, 21); // 20:00:00
+
+        String startDate = DateUtil.format(startTime, DatePattern.NORM_DATETIME_FORMAT);
+        String endDate = DateUtil.format(endTime, DatePattern.NORM_DATETIME_FORMAT);
+
+        // 设置分表ID逻辑
+        if (currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode())) {
+        IdTableNameHandler.setCurrentId(companyId);
+        } else {
+            IdTableNameHandler.setCurrentId(currentUser.getCompanyId());
+        }
+
+        // 生成每小时的统计列表,初始count为0
+        List<HzEntryRecordVO> hourEntryList = new ArrayList<>();
+        DateTime currentHour = startTime;
+        Integer i = hazmatMapper.countTotal(currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode()) ? companyId:currentUser.getCompanyId());
+        while (currentHour.isBefore(endTime)) { // 从8点开始到20点前,共12个小时
+            String hour = DateUtil.format(currentHour, "HH"); // 两位小时格式,如08,09,...,19
+            HzEntryRecordVO entryRecordVO = new HzEntryRecordVO();
+            entryRecordVO.setHour(hour);
+            entryRecordVO.setCount(0);
+            entryRecordVO.setTotalCount(i);
+            hourEntryList.add(entryRecordVO);
+            currentHour = DateUtil.offsetHour(currentHour, 1); // 增加一小时
+        }
+        // 查询数据库,按小时统计使用量
+        List<HzEntryRecordVO> entryRecordVOList = hazmatMapper.useCountHourlyStatic(startDate, endDate, currentUser.getUserType().equals(UserTypeEnum.CHECK_USER.getCode()) ? companyId:currentUser.getCompanyId()
+        );
+        hourEntryList.get(0).setTotalCount(i);
+        IdTableNameHandler.removeCurrentId();
+        // 将查询结果合并到初始化的每小时列表中
+        if (!entryRecordVOList.isEmpty()) {
+            Map<String, HzEntryRecordVO> resMap = entryRecordVOList.stream()
+                    .collect(Collectors.toMap(HzEntryRecordVO::getHour, item -> item));
+            for (HzEntryRecordVO hourEntry : hourEntryList) {
+                HzEntryRecordVO matched = resMap.get(hourEntry.getHour());
+                if (matched != null) {
+                    hourEntry.setCount(matched.getCount());
+                }
+            }
+        }
+        return hourEntryList;
+    }
+
+    @Override
+    public List<HzCompanyMessage> companyMessage(Long type) {
+        return hazmatMapper.companyMessage(type);
+    }
+
+
     private void setExcelResponseProp(HttpServletResponse response, String rawFileName) throws UnsupportedEncodingException {
         //设置内容类型
         response.setContentType("application/vnd.vnd.ms-excel");
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzWarningServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzWarningServiceImpl.java
index 61ac3e0..329aaa4 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzWarningServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzWarningServiceImpl.java
@@ -1,19 +1,26 @@
 package com.gkhy.hazmat.system.service.impl;
 
+import cn.hutool.core.date.DateField;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 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.UserTypeEnum;
 import com.gkhy.hazmat.common.exception.ApiException;
 import com.gkhy.hazmat.common.utils.PageUtils;
 import com.gkhy.hazmat.common.utils.SecurityUtils;
 import com.gkhy.hazmat.system.domain.HzWarning;
+import com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO;
 import com.gkhy.hazmat.system.mapper.HzWarningMapper;
 import com.gkhy.hazmat.system.service.HzWarningService;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
-import java.util.List;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -95,4 +102,51 @@
         }
         return baseMapper.selectWarningCount(currentUser.getCompanyId());
     }
+
+    @Override
+    public List<HzEntryRecordVO> dailywarningCount() {
+        // 获取当前时间并清零时分秒
+        DateTime now = DateUtil.date().setField(Calendar.HOUR_OF_DAY, 0)
+                .setField(Calendar.MINUTE, 0)
+                .setField(Calendar.SECOND, 0)
+                .setField(Calendar.MILLISECOND, 0);
+
+        // 设置时间范围:30天前00:00:00 到 昨天23:59:59
+        DateTime startTime = DateUtil.offsetDay(now, -30);
+        DateTime endTime = DateUtil.endOfDay(DateUtil.offsetDay(now, -1));
+
+        // 格式化成数据库参数
+        String startDate = DateUtil.format(startTime, DatePattern.NORM_DATETIME_FORMAT);
+        String endDate = DateUtil.format(endTime, DatePattern.NORM_DATETIME_FORMAT);
+
+        // 生成30天的日期列表(格式:dd)
+        List<HzEntryRecordVO> dailyEntryList = new ArrayList<>();
+        DateTime currentDay = startTime;
+        while (!currentDay.isAfter(endTime)) {
+            String dayStr = DateUtil.format(currentDay, "MM-dd"); // 两位天数
+            HzEntryRecordVO vo = new HzEntryRecordVO();
+            vo.setDay(dayStr);
+            vo.setCount(0);
+            dailyEntryList.add(vo);
+            currentDay = DateUtil.offsetDay(currentDay, 1);
+        }
+
+        // 查询数据库按天统计(需SQL返回dd格式)
+        List<HzEntryRecordVO> dbResults = baseMapper.dailyWarningStatic(startDate, endDate);
+        IdTableNameHandler.removeCurrentId();
+
+        // 合并结果到初始化列表
+        if (!dbResults.isEmpty()) {
+            Map<String, HzEntryRecordVO> resultMap = dbResults.stream()
+                    .collect(Collectors.toMap(HzEntryRecordVO::getDay, item -> item));
+            for (HzEntryRecordVO dailyVO : dailyEntryList) {
+                HzEntryRecordVO matched = resultMap.get(dailyVO.getDay());
+                if (matched != null) {
+                    dailyVO.setCount(matched.getCount());
+                }
+            }
+        }
+
+        return dailyEntryList;
+    }
 }
diff --git a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/TaBooWarningServiceImpl.java b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/TaBooWarningServiceImpl.java
index 9475862..4fc996b 100644
--- a/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/TaBooWarningServiceImpl.java
+++ b/hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/TaBooWarningServiceImpl.java
@@ -17,6 +17,7 @@
 import com.gkhy.hazmat.common.utils.SecurityUtils;
 import com.gkhy.hazmat.system.domain.*;
 import com.gkhy.hazmat.system.domain.vo.HzEntryTransferVO;
+import com.gkhy.hazmat.system.domain.vo.HzTabooVo;
 import com.gkhy.hazmat.system.domain.vo.TabooDisVo;
 import com.gkhy.hazmat.system.mapper.*;
 import com.gkhy.hazmat.system.service.HzEntryRecordService;
@@ -190,6 +191,12 @@
                  .setId(entryTransferVO.getId()));
 
     }
+
+    @Override
+    public List<HzTabooVo> listCount(Integer state) {
+        return baseMapper.selectListCount(state);
+    }
+
     public void checkUserAllowed(HzEntryRecord entryRecord,SysUser user) {
         if (user.getUserType().equals(UserTypeEnum.SYSTEM_USER.getCode())) {
             throw new ApiException("管理员不能操作");
diff --git a/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml
index 863ce60..bfb143a 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml
@@ -84,4 +84,30 @@
             #{basicId}
         </foreach>
     </select>
+    <select id="basicCount" resultType="com.gkhy.hazmat.system.domain.vo.HzBasicVo">
+        SELECT
+            '易燃品' AS hazmat_character,
+            SUM(FIND_IN_SET('易燃品', hazmat_character) > 0) AS count
+        FROM hz_hazmat_basic WHERE del_flag =0
+        UNION ALL
+        SELECT
+            '有毒品' AS hazmat_character,
+            SUM(FIND_IN_SET('有毒品', hazmat_character) > 0) AS count
+        FROM hz_hazmat_basic WHERE del_flag =0
+        UNION ALL
+        SELECT
+            '氧化品' AS hazmat_character,
+            SUM(FIND_IN_SET('氧化品', hazmat_character) > 0) AS count
+        FROM hz_hazmat_basic WHERE del_flag =0
+        UNION ALL
+        SELECT
+            '腐蚀品' AS hazmat_character,
+            SUM(FIND_IN_SET('腐蚀品', hazmat_character) > 0) AS count
+        FROM hz_hazmat_basic WHERE del_flag =0
+        UNION ALL
+        SELECT
+            '非易燃品' AS hazmat_character,
+            SUM(FIND_IN_SET('非易燃品', hazmat_character) > 0) AS count
+        FROM hz_hazmat_basic WHERE del_flag =0
+    </select>
 </mapper>
diff --git a/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml
index 784fde8..1ba56ea 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml
@@ -169,4 +169,73 @@
         order by a.id
         limit #{startIndex},#{pageSize}
     </select>
+    <select id="useCountHourlyStatic" resultType="com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO">
+        SELECT
+        DATE_FORMAT(create_time, '%H') AS hour,
+        COUNT(*) AS count
+        FROM hz_hazmat
+        WHERE create_time &gt;= #{startDate}
+        AND create_time &lt; #{endDate}
+        AND state IN (2, 3)
+        <if test="companyId != null">
+            AND company_id = #{companyId}
+        </if>
+        GROUP BY hour
+        ORDER BY hour ASC
+    </select>
+
+
+
+    <select id="companyMessage" resultType="com.gkhy.hazmat.system.domain.vo.HzCompanyMessage">
+        SELECT
+            sc.id,
+            sc.name as company_name,
+            scf.longitude,
+            scf.latitude,
+            COALESCE(hw.warehouse_count, 0) AS warehouse_count,
+            COALESCE(htw.warning_count, 0) AS warning_count,
+            htw.latest_warning_time
+        FROM sys_company sc
+                 LEFT JOIN (
+            SELECT company_id, COUNT(*) AS warehouse_count
+            FROM hz_warehouse
+            WHERE del_flag = 0
+            GROUP BY company_id
+        ) hw ON sc.id = hw.company_id
+                 LEFT JOIN (
+            SELECT
+                company_id,
+                COUNT(*) AS warning_count,
+                MAX(create_time) AS latest_warning_time
+            FROM hz_taboo_warning
+            WHERE del_flag = 0
+            GROUP BY company_id
+        ) htw ON sc.id = htw.company_id
+        LEFT JOIN sys_config scf on sc.id = scf.company_id
+        <where>
+            sc.del_flag = 0
+            <if test="type!=null">
+                and sc.type = #{type}
+            </if>
+        </where>
+        ORDER BY htw.latest_warning_time DESC;
+    </select>
+    <select id="countTotal" resultType="java.lang.Integer">
+        SELECT
+        COUNT(*) AS total_count
+        FROM hz_hazmat
+        WHERE state IN (2, 3)
+        <if test="companyId != null">
+            AND company_id = #{companyId}
+        </if>
+    </select>
+    <!--    SELECT COUNT(*) AS count, DATE_FORMAT(create_time, '%H') AS hour-->
+<!--    FROM hz_hazmat-->
+<!--    WHERE create_time &gt;= #{startDate} AND create_time &lt;  #{endDate}-->
+<!--    AND state IN (2, 3)-->
+<!--    <if test="companyId != null">-->
+<!--        AND company_id = #{companyId}-->
+<!--    </if>-->
+<!--    GROUP BY hour-->
+<!--    ORDER BY hour ASC-->
 </mapper>
diff --git a/hazmat-system/src/main/resources/mapper/system/HzTabooWarningMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzTabooWarningMapper.xml
index 76b8a28..a647f02 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzTabooWarningMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzTabooWarningMapper.xml
@@ -62,6 +62,20 @@
         </where>
         order by aa.state asc,aa.warning_type asc,aa.create_time desc
     </select>
+    <select id="selectListCount" resultType="com.gkhy.hazmat.system.domain.vo.HzTabooVo">
+        SELECT
+            sc.`name` AS company_name,
+            COUNT( htw.company_id ) AS count
+        FROM
+            hz_taboo_warning htw
+            LEFT JOIN sys_company sc ON htw.company_id = sc.id
+        WHERE
+            htw.state = #{state}
+        GROUP BY
+            htw.company_id
+        ORDER BY
+            count DESC
+    </select>
 
 
 </mapper>
diff --git a/hazmat-system/src/main/resources/mapper/system/HzWarningMapper.xml b/hazmat-system/src/main/resources/mapper/system/HzWarningMapper.xml
index 0ad1055..766f4cd 100644
--- a/hazmat-system/src/main/resources/mapper/system/HzWarningMapper.xml
+++ b/hazmat-system/src/main/resources/mapper/system/HzWarningMapper.xml
@@ -68,6 +68,15 @@
             and company_id=#{companyId}
         </if>
     </select>
+    <select id="dailyWarningStatic" resultType="com.gkhy.hazmat.system.domain.vo.HzEntryRecordVO">
+        SELECT
+            DATE_FORMAT(create_time, '%m-%d') AS day,
+            COUNT(*) AS count
+        FROM hz_warning
+        WHERE create_time BETWEEN #{startDate} AND #{endDate}
+        GROUP BY day
+        ORDER BY day
+    </select>
 
 
 </mapper>

--
Gitblit v1.9.2