危化品全生命周期管理后端
“djh”
2025-05-07 da2c594ade5d69621dd11a13bb758477e2dc079e
危化品新版修改
已修改22个文件
已添加3个文件
390 ■■■■■ 文件已修改
hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatBasicController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzHazmatFlowController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzStatisticController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzTabooWarningController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-admin/src/main/java/com/gkhy/hazmat/admin/controller/web/HzWarningController.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzBasicVo.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzCompanyMessage.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzEntryRecordVO.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/domain/vo/HzTabooVo.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatBasicMapper.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzHazmatMapper.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzTabooWarningMapper.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/mapper/HzWarningMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzHazmatBasicService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzStatisticService.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/HzWarningService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/TabooWarningService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzHazmatBasicServiceImpl.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzStatisticServiceImpl.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/HzWarningServiceImpl.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/java/com/gkhy/hazmat/system/service/impl/TaBooWarningServiceImpl.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/resources/mapper/system/HzHazmatBasicMapper.xml 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/resources/mapper/system/HzHazmatMapper.xml 69 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/resources/mapper/system/HzTabooWarningMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
hazmat-system/src/main/resources/mapper/system/HzWarningMapper.xml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
    }
}
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())){
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")
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));
    }
}
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());
    }
}
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;
}
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;
}
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;
}
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;
}
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();
}
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);
}
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);
}
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);
}
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();
}
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);
}
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();
}
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);
}
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())){
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");
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;
    }
}
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("管理员不能操作");
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>
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>
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>
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>