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/java/com/gkhy/hazmat/system/service/impl/HzWarningServiceImpl.java | 56 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 55 insertions(+), 1 deletions(-) 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; + } } -- Gitblit v1.9.2