From 92fe9ab7c8a77b5d9ea34731619cdb7afb5d8bfc Mon Sep 17 00:00:00 2001 From: jiangs <373297395@qq.com> Date: Wed, 22 Apr 2026 10:00:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9F=B3=E9=A6=96=E9=97=AE=E9=A2=98=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=20=EF=BC=8C=E6=97=B6=E5=8C=BA=E9=97=AE=E9=A2=98?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../system/TransitPlatFormApplication.java | 1 + .../controller/RegStatController.java | 50 +++++++++++-- .../transitPF/mapper/RegStatMapper.java | 2 +- .../main/resources/mapper/RegStatMapper.xml | 73 ++++++++++--------- 4 files changed, 86 insertions(+), 40 deletions(-) diff --git a/pf_system/src/main/java/com/transitPlatForm/system/TransitPlatFormApplication.java b/pf_system/src/main/java/com/transitPlatForm/system/TransitPlatFormApplication.java index 28b9665..67eaf33 100644 --- a/pf_system/src/main/java/com/transitPlatForm/system/TransitPlatFormApplication.java +++ b/pf_system/src/main/java/com/transitPlatForm/system/TransitPlatFormApplication.java @@ -10,6 +10,7 @@ import org.springframework.context.annotation.ComponentScan; public class TransitPlatFormApplication { public static void main(String[] args) { // System.setProperty("spring.devtools.restart.enabled", "false"); + System.setProperty("user.timezone", "Etc/GMT-8"); SpringApplication.run(TransitPlatFormApplication.class, args); System.out.println("项目启动成功!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"); } diff --git a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/controller/RegStatController.java b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/controller/RegStatController.java index 7dac1cf..f278032 100644 --- a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/controller/RegStatController.java +++ b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/controller/RegStatController.java @@ -1,5 +1,7 @@ package com.transitPlatForm.transitPF.controller; +import cn.hutool.core.date.DateField; +import cn.hutool.core.date.DateUtil; import com.transitPlatForm.common.annotation.Anonymous; import com.transitPlatForm.common.core.domain.Result; import com.transitPlatForm.common.utils.DateUtils; @@ -45,11 +47,18 @@ public class RegStatController { String currentDateTime1 = currentDateTime.substring(0, 4) + "-" + monthStr + "-01 00:00:00"; Date et = DateUtils.parseDate(currentDateTime1); - Map map = new HashMap<>(); - Map regStatAll = regStatMapper.selectRegStatAll(); //概况 - map.put("regStatAll", regStatAll); + //当月累计 + Map regStatAllMonth = regStatMapper.selectRegStatAll(st,et); + map.put("regStatAllMonth", regStatAllMonth); + //当年累计 + Map stringObjectMap = transFormat(currentDateTime); + Date yearStart = DateUtil.parse(stringObjectMap.get("yearStart").toString(),"yyyy-MM-dd HH:mm:ss"); + Date yearEnd = DateUtil.parse(stringObjectMap.get("yearEnd").toString(),"yyyy-MM-dd HH:mm:ss"); + Map regStatAllYear = regStatMapper.selectRegStatAll(yearStart,yearEnd); + map.put("regStatAllYear", regStatAllYear); + List> regStatMonth = regStatMapper.selectRegStatMonth(st, et); List> regStatMonth0 = regStatMonth.stream() .sorted(Comparator.comparingInt(o -> (Integer) o.get("daynum"))).collect(Collectors.toList()); @@ -62,17 +71,28 @@ public class RegStatController { List> regStatHospMonth1 = setmapgroup(regStatHospMonth0); List> regStatHospMonth2 = regStatHospMonth1.stream() .sorted(Comparator.comparingInt((Map o) -> (Integer) o.get("groupsum")).reversed()).collect(Collectors.toList()); - map.put("regStatHospMonth", regStatHospMonth2); } List> regStatStatus = regStatMapper.selectRegStatStatus(st, et); + //送检样本状态占比 + long totalSl = regStatStatus.stream() + .filter(statusMap -> statusMap.get("sl") != null) + .mapToLong(statusMap -> Long.parseLong(statusMap.get("sl").toString())) + .sum(); + System.out.println("totalSl:"+totalSl); + DecimalFormat df = new DecimalFormat("0.00%"); + df.setRoundingMode(RoundingMode.HALF_UP); + for (Map objectMap : regStatStatus) { + int sl = (int) objectMap.get("sl"); + System.out.println("sl:"+sl); + objectMap.put("percent",df.format((double)sl / (double)totalSl) ); //百分比 + } List> regStatStatus0 = regStatStatus.stream() .sorted((o1, o2) -> { int val1 = (Integer) o1.get("sl"); int val2 = (Integer) o2.get("sl"); return Integer.compare(val2, val1); }).collect(Collectors.toList()); - //送检样本状态占比 map.put("regStatStatus", regStatStatus0); List> regStatSample = regStatMapper.selectRegStatSample(st, et); List> regStatSample0 = regStatSample.stream() @@ -154,4 +174,24 @@ public class RegStatController { } return mapref; } + + public Map transFormat(String currentDateTime){ + Date now = DateUtil.parse(currentDateTime, "yyyy-MM-dd HH:mm:ss"); + + // 2. 当年第一天 00:00:00(Hutool 直接提供 beginOfYear 方法) + java.util.Date firstDayOfYear = DateUtil.beginOfYear(now); + + // 3. 下一年第一天 00:00:00(在当年第一天基础上加 1 年,再取年初) + java.util.Date firstDayOfNextYear = DateUtil.beginOfYear( + DateUtil.offset(firstDayOfYear, DateField.YEAR, 1) + ); + + // 4. 转回你需要的字符串格式 + String yearStart = DateUtil.format(firstDayOfYear, "yyyy-MM-dd HH:mm:ss"); + String yearEnd = DateUtil.format(firstDayOfNextYear, "yyyy-MM-dd HH:mm:ss"); + Map map = new HashMap<>(); + map.put("yearStart",yearStart); + map.put("yearEnd",yearEnd); + return map; + } } diff --git a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegStatMapper.java b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegStatMapper.java index a4579a7..9cd4597 100644 --- a/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegStatMapper.java +++ b/pf_transitPF/src/main/java/com/transitPlatForm/transitPF/mapper/RegStatMapper.java @@ -7,7 +7,7 @@ import java.util.List; import java.util.Map; public interface RegStatMapper { - Map selectRegStatAll(); + Map selectRegStatAll(@Param("st") Date st, @Param("et")Date et); List> selectRegStatMonth(@Param("st") Date st, @Param("et")Date et); List> selectRegStatHospMonth(@Param("st") Date st, @Param("et")Date et); List> selectRegStatStatus(@Param("st") Date st, @Param("et")Date et); diff --git a/pf_transitPF/src/main/resources/mapper/RegStatMapper.xml b/pf_transitPF/src/main/resources/mapper/RegStatMapper.xml index 0d8a59f..16ee4de 100644 --- a/pf_transitPF/src/main/resources/mapper/RegStatMapper.xml +++ b/pf_transitPF/src/main/resources/mapper/RegStatMapper.xml @@ -5,58 +5,63 @@ \ No newline at end of file