| | |
| | | package com.ruoyi.system.service.impl; |
| | | |
| | | import cn.hutool.core.date.DateUnit; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.alibaba.fastjson2.JSONArray; |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.system.mapper.ProjectInfoMapper; |
| | | import com.ruoyi.system.model.Project; |
| | | import com.ruoyi.system.model.ProjectInfo; |
| | | import com.ruoyi.system.mapper.ProjectInfoMapper; |
| | | import com.ruoyi.system.model.Record; |
| | | import com.ruoyi.system.query.ProjectDangerousTrendQuery; |
| | | import com.ruoyi.system.query.ProjectHiddenDangerTrendListQuery; |
| | | import com.ruoyi.system.service.ProjectCategoryCalculator; |
| | | import com.ruoyi.system.service.ProjectInfoService; |
| | | import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
| | | import com.ruoyi.system.service.ProjectService; |
| | | import com.ruoyi.system.service.RecordService; |
| | | import com.ruoyi.system.vo.ProjectDangerousTrendVo; |
| | | import com.ruoyi.system.vo.ProjectHiddenDangerList; |
| | | import com.ruoyi.system.vo.ProjectHiddenDangerNextList; |
| | |
| | | import java.time.YearMonth; |
| | | import java.time.temporal.ChronoUnit; |
| | | import java.time.temporal.TemporalAdjusters; |
| | | import java.util.*; |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | import static java.util.stream.Collectors.groupingBy; |
| | | |
| | |
| | | |
| | | |
| | | } |
| | | |
| | | LocalDate thisMonth = LocalDate.now().minusMonths(0).with(TemporalAdjusters.firstDayOfMonth()); |
| | | Map<String, List<Record>> map = list.stream().collect(groupingBy(Record::getHierarchyName)); |
| | | List<ProjectHiddenDangerTrendVo> resultList = map.entrySet().stream().map(entry -> { |
| | | List<ProjectHiddenDangerTrendVo> resultList = new ArrayList<>(); |
| | | for (Map.Entry<String, List<Record>> entry : map.entrySet()) { |
| | | ProjectHiddenDangerTrendVo vo = new ProjectHiddenDangerTrendVo(); |
| | | vo.setName(entry.getKey()); |
| | | List<Record> value = entry.getValue(); |
| | |
| | | }else { |
| | | vo.setRate(0.00d); |
| | | } |
| | | return vo; |
| | | }).toList(); |
| | | resultList.add(vo) ; |
| | | } |
| | | |
| | | |
| | | return resultList; |
| | |
| | | // 如果没有则沿用上次的 |
| | | if(vo.getLevel()!=null){ |
| | | temp=vo.getLevel(); |
| | | vo.setStatus(2); |
| | | }else { |
| | | vo.setLevel(temp); |
| | | } |
| | |
| | | |
| | | // 计算月份差 + 1(包含结束月份) |
| | | return (int) ChronoUnit.MONTHS.between(start, end) + 1; |
| | | } |
| | | public static void main(String[] args) { |
| | | LocalDate monthBoundaries = getMonthBoundaries("2025-03", true); |
| | | System.out.println(monthBoundaries); |
| | | System.out.println(getMonthBoundaries("2025-02",false)); |
| | | |
| | | System.out.println(calculateMonthsBetween("2025-03", "2026-01")); |
| | | |
| | | for (int count = 0; count < 11; count++) { |
| | | // 根据2025-03 根据循环获取下一个月的时间 |
| | | LocalDate monthBoundaries1 = getMonthBoundaries("2025-03", true).plusMonths(count); |
| | | System.out.println(monthBoundaries1.toString().substring(0,7)); |
| | | } |
| | | } |
| | | } |