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 >= #{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