From 6c483ad6f53a8e8595e4fb4bbeb077a67e0601d3 Mon Sep 17 00:00:00 2001 From: JR <3573153686@qq.com> Date: Sun, 28 Sep 2025 23:51:47 +0800 Subject: [PATCH] =?UTF-8?q?feat(ems):=20=E6=96=B0=E5=A2=9E=E8=83=BD?= =?UTF-8?q?=E8=80=97=E7=BB=9F=E8=AE=A1=E4=B8=8E=E7=8E=AF=E6=AF=94=E5=88=86?= =?UTF-8?q?=E6=9E=90=E5=8A=9F=E8=83=BD-=20=E6=B7=BB=E5=8A=A0=E6=8C=89?= =?UTF-8?q?=E6=97=A5=E5=92=8C=E6=8C=89=E6=9C=88=E6=B1=87=E6=80=BB=E8=83=BD?= =?UTF-8?q?=E8=80=97=E6=95=B0=E6=8D=AE=E7=9A=84=E6=8E=A5=E5=8F=A3=E4=B8=8E?= =?UTF-8?q?=E5=AE=9E=E7=8E=B0=20-=20=E5=AE=9E=E7=8E=B0=E8=83=BD=E8=80=97?= =?UTF-8?q?=E7=8E=AF=E6=AF=94=E6=A6=82=E5=86=B5=E7=9A=84=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=BB=93=E6=9E=84=E4=B8=8E=E5=9F=BA=E7=A1=80=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E9=80=BB=E8=BE=91=20-=20=E5=BC=95=E5=85=A5=E6=96=B0=E7=9A=84?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E5=8F=82=E6=95=B0=E7=B1=BB=E5=92=8C=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=80=BC=E5=AF=B9=E8=B1=A1=E4=BB=A5=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E5=8A=9F=E8=83=BD=20-=20=E9=85=8D=E7=BD=AEMy?= =?UTF-8?q?Batis=20XML=E6=98=A0=E5=B0=84=E6=96=87=E4=BB=B6=E4=BB=A5?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E8=83=BD=E8=80=97=E7=BB=9F=E8=AE=A1=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=9F=A5=E8=AF=A2=20-=20=E6=8E=A7=E5=88=B6=E5=99=A8?= =?UTF-8?q?=E5=B1=82=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96=E8=83=BD=E8=80=97?= =?UTF-8?q?=E8=B6=8B=E5=8A=BF=E5=92=8C=E7=8E=AF=E6=AF=94=E4=BF=A1=E6=81=AF?= =?UTF-8?q?=E7=9A=84=E6=96=B0=E7=AB=AF=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EmsEnergyConsumptionController.java | 31 +++++++++++++++++ .../bo/EmsEnergyConsumptionQueryBo.java | 16 +++++++++ .../klp/ems/domain/vo/EnergyChainRatioVo.java | 16 +++++++++ .../com/klp/ems/domain/vo/SummaryDailyVo.java | 11 +++++++ .../klp/ems/domain/vo/SummaryMonthlyVo.java | 11 +++++++ .../mapper/EmsEnergyConsumptionMapper.java | 8 +++++ .../service/IEmsEnergyConsumptionService.java | 10 +++++- .../impl/EmsEnergyConsumptionServiceImpl.java | 33 +++++++++++++++++++ .../mapper/EmsEnergyConsumptionMapper.xml | 26 +++++++++++++++ 9 files changed, 161 insertions(+), 1 deletion(-) create mode 100644 klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyConsumptionQueryBo.java create mode 100644 klp-ems/src/main/java/com/klp/ems/domain/vo/EnergyChainRatioVo.java create mode 100644 klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryDailyVo.java create mode 100644 klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryMonthlyVo.java diff --git a/klp-ems/src/main/java/com/klp/ems/controller/EmsEnergyConsumptionController.java b/klp-ems/src/main/java/com/klp/ems/controller/EmsEnergyConsumptionController.java index 0a4630bf..739fd0fc 100644 --- a/klp-ems/src/main/java/com/klp/ems/controller/EmsEnergyConsumptionController.java +++ b/klp-ems/src/main/java/com/klp/ems/controller/EmsEnergyConsumptionController.java @@ -3,9 +3,15 @@ package com.klp.ems.controller; import java.util.List; import java.util.Arrays; +import com.klp.ems.domain.bo.EmsEnergyConsumptionQueryBo; +import com.klp.ems.domain.vo.EnergyChainRatioVo; +import com.klp.ems.domain.vo.SummaryDailyVo; +import com.klp.ems.domain.vo.SummaryMonthlyVo; import lombok.RequiredArgsConstructor; import javax.servlet.http.HttpServletResponse; import javax.validation.constraints.*; + +import org.flywaydb.core.internal.util.StringUtils; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import com.klp.common.annotation.RepeatSubmit; @@ -36,6 +42,31 @@ public class EmsEnergyConsumptionController extends BaseController { private final IEmsEnergyConsumptionService iEmsEnergyConsumptionService; + /** + * 近期能耗趋势(测过了) + */ + @GetMapping("/getEnergySummary") + public R getEnergySummary(EmsEnergyConsumptionQueryBo queryBo){ + if (StringUtils.hasText(queryBo.getMonth())) { + List data = iEmsEnergyConsumptionService.getEnergySummaryDaily(queryBo.getMonth()); + return R.ok(data); + }else if (StringUtils.hasText(queryBo.getYear())) { + List data = iEmsEnergyConsumptionService.getEnergySummaryMonthly(queryBo.getYear()); + return R.ok(data); + } else { + return R.fail("year 或 month 必须提供一个"); + } + } + + /** + * 获取能耗环比概况(没写完) + */ + @GetMapping("/getEnergyChainRatio") + public R getEnergyChainRatio() { + EnergyChainRatioVo energyChainRatioVo = iEmsEnergyConsumptionService.getEnergyChainRatio(); + return R.ok(energyChainRatioVo); + } + /** * 查询能耗记录列表 */ diff --git a/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyConsumptionQueryBo.java b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyConsumptionQueryBo.java new file mode 100644 index 00000000..fce4c7fa --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyConsumptionQueryBo.java @@ -0,0 +1,16 @@ +package com.klp.ems.domain.bo; + +import lombok.Data; + +@Data +public class EmsEnergyConsumptionQueryBo { + /** + * 年份,用于按月汇总(格式:yyyy) + */ + private String year; + + /** + * 月份,用于按天汇总(格式:yyyy-MM) + */ + private String month; +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/EnergyChainRatioVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/EnergyChainRatioVo.java new file mode 100644 index 00000000..5f1c321d --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/EnergyChainRatioVo.java @@ -0,0 +1,16 @@ +package com.klp.ems.domain.vo; + +/** + * 环比概况 + */ +public class EnergyChainRatioVo { + private Double todayUsage; // 今日用能 + private Double yesterdayUsage; // 昨日同期 + private Double thisMonthUsage; // 当月累计 + private Double lastMonthUsage; // 上月同期 + private Double lastYearUsage; // 去年同期 + + private Double dailyChainRate; // 日环比 (%) + private Double monthlyChainRate; // 月环比 (%) + private Double yearOnYearRate; // 年同比 (%) +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryDailyVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryDailyVo.java new file mode 100644 index 00000000..45fe4935 --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryDailyVo.java @@ -0,0 +1,11 @@ +package com.klp.ems.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class SummaryDailyVo { + private String day; // 日期,如 "2025-09-01" + private BigDecimal totalConsumption; // 当日总能耗 +} diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryMonthlyVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryMonthlyVo.java new file mode 100644 index 00000000..c163efbf --- /dev/null +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/SummaryMonthlyVo.java @@ -0,0 +1,11 @@ +package com.klp.ems.domain.vo; + +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class SummaryMonthlyVo { + private String month; // 月份,如 "2025-09" + private BigDecimal totalConsumption; // 当月总能耗 +} diff --git a/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyConsumptionMapper.java b/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyConsumptionMapper.java index a57139ec..ebcee756 100644 --- a/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyConsumptionMapper.java +++ b/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyConsumptionMapper.java @@ -3,6 +3,11 @@ package com.klp.ems.mapper; import com.klp.ems.domain.EmsEnergyConsumption; import com.klp.ems.domain.vo.EmsEnergyConsumptionVo; import com.klp.common.core.mapper.BaseMapperPlus; +import com.klp.ems.domain.vo.SummaryDailyVo; +import com.klp.ems.domain.vo.SummaryMonthlyVo; +import org.apache.ibatis.annotations.Param; + +import java.util.List; /** * 能耗记录Mapper接口 @@ -12,4 +17,7 @@ import com.klp.common.core.mapper.BaseMapperPlus; */ public interface EmsEnergyConsumptionMapper extends BaseMapperPlus { + List selectDailySummary(@Param("startDate") String startDate, @Param("endDate") String endDate); + + List selectMonthlySummary(@Param("year") String year); } diff --git a/klp-ems/src/main/java/com/klp/ems/service/IEmsEnergyConsumptionService.java b/klp-ems/src/main/java/com/klp/ems/service/IEmsEnergyConsumptionService.java index 998d5b1a..84f318cc 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/IEmsEnergyConsumptionService.java +++ b/klp-ems/src/main/java/com/klp/ems/service/IEmsEnergyConsumptionService.java @@ -1,10 +1,12 @@ package com.klp.ems.service; -import com.klp.ems.domain.EmsEnergyConsumption; import com.klp.ems.domain.vo.EmsEnergyConsumptionVo; import com.klp.ems.domain.bo.EmsEnergyConsumptionBo; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; +import com.klp.ems.domain.vo.EnergyChainRatioVo; +import com.klp.ems.domain.vo.SummaryDailyVo; +import com.klp.ems.domain.vo.SummaryMonthlyVo; import java.util.Collection; import java.util.List; @@ -46,4 +48,10 @@ public interface IEmsEnergyConsumptionService { * 校验并批量删除能耗记录信息 */ Boolean deleteWithValidByIds(Collection ids, Boolean isValid); + + EnergyChainRatioVo getEnergyChainRatio(); + + List getEnergySummaryDaily(String month); + + List getEnergySummaryMonthly(String year); } diff --git a/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyConsumptionServiceImpl.java b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyConsumptionServiceImpl.java index 2f9d7bc9..b01fe52c 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyConsumptionServiceImpl.java +++ b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyConsumptionServiceImpl.java @@ -6,6 +6,10 @@ import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.ems.domain.bo.EmsEnergyConsumptionQueryBo; +import com.klp.ems.domain.vo.EnergyChainRatioVo; +import com.klp.ems.domain.vo.SummaryDailyVo; +import com.klp.ems.domain.vo.SummaryMonthlyVo; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.ems.domain.bo.EmsEnergyConsumptionBo; @@ -14,6 +18,9 @@ import com.klp.ems.domain.EmsEnergyConsumption; import com.klp.ems.mapper.EmsEnergyConsumptionMapper; import com.klp.ems.service.IEmsEnergyConsumptionService; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; import java.util.List; import java.util.Map; import java.util.Collection; @@ -111,4 +118,30 @@ public class EmsEnergyConsumptionServiceImpl implements IEmsEnergyConsumptionSer } return baseMapper.deleteBatchIds(ids) > 0; } + + @Override + public EnergyChainRatioVo getEnergyChainRatio() { + EnergyChainRatioVo energyChainRatioVo = new EnergyChainRatioVo(); + LocalDateTime now = LocalDateTime.now(); + + + + + + return null; + } + + @Override + public List getEnergySummaryDaily(String month) { + // 解析 month 为开始和结束时间 + LocalDate startDate = LocalDate.parse(month + "-01", DateTimeFormatter.ofPattern("yyyy-MM-dd")); + LocalDate endDate = startDate.withDayOfMonth(startDate.lengthOfMonth()); + + return baseMapper.selectDailySummary(month + "-01", endDate.toString()); + } + + @Override + public List getEnergySummaryMonthly(String year) { + return baseMapper.selectMonthlySummary(year); + } } diff --git a/klp-ems/src/main/resources/mapper/EmsEnergyConsumptionMapper.xml b/klp-ems/src/main/resources/mapper/EmsEnergyConsumptionMapper.xml index 8d7b128d..2aaacad3 100644 --- a/klp-ems/src/main/resources/mapper/EmsEnergyConsumptionMapper.xml +++ b/klp-ems/src/main/resources/mapper/EmsEnergyConsumptionMapper.xml @@ -21,5 +21,31 @@ + +