From 657698fd2fb32794932474648dbaee9e284e38c8 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 12 十月 2026 18:31:20 +0800
Subject: [PATCH] feat(bpm): 添加全局免审批功能支持

---
 yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java |   13 +++++++++++++
 1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java
index 14a16fd..9bc4d83 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/energy/EnergyRecordMapper.java
@@ -13,6 +13,19 @@
 
 @Mapper
 public interface EnergyRecordMapper extends BaseMapperX<EnergyRecordDO> {
+    @Select("""
+        <script>
+        SELECT COALESCE(SUM(<choose><when test="rule.metric == 'AMOUNT' or rule.metric == 'MONTH_AMOUNT'">amount</when><otherwise>quantity</otherwise></choose>),0)
+        FROM mes_energy_record WHERE deleted=0 AND energy_type=#{rule.energyType}
+        <choose><when test="rule.metric == 'MONTH_QUANTITY' or rule.metric == 'MONTH_AMOUNT'">
+        AND record_date &gt;= #{date} AND record_date &lt; DATE_ADD(#{date}, INTERVAL 1 MONTH)
+        </when><otherwise>AND record_date=#{date}</otherwise></choose>
+        <if test="rule.usageArea != null and rule.usageArea != ''">AND usage_area=#{rule.usageArea}</if>
+        <if test="rule.productCategory != null and rule.productCategory != ''">AND product_category=#{rule.productCategory}</if>
+        </script>
+        """)
+    BigDecimal selectDailyValue(@Param("date") java.time.LocalDate date,
+            @Param("rule") cn.iocoder.yudao.module.mes.dal.dataobject.energy.EnergyAlertRuleDO rule);
     default PageResult<EnergyRecordDO> selectPage(EnergyRecordPageReqVO req) {
         return selectPage(req, new LambdaQueryWrapperX<EnergyRecordDO>()
                 .geIfPresent(EnergyRecordDO::getRecordDate, req.getStartDate())

--
Gitblit v1.9.3