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