From da2c594ade5d69621dd11a13bb758477e2dc079e Mon Sep 17 00:00:00 2001
From: “djh” <“3298565835@qq.com”>
Date: Wed, 07 May 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 >= #{startDate}
+ AND create_time < #{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 >= #{startDate} AND create_time < #{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