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/service/energy/EnergyRecordService.java |   17 +++++++++++++++--
 1 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java
index a5940dd..f9c6e16 100644
--- a/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java
+++ b/yudao-module-mes/src/main/java/cn/iocoder/yudao/module/mes/service/energy/EnergyRecordService.java
@@ -8,6 +8,10 @@
 import cn.iocoder.yudao.module.mes.dal.mysql.energy.EnergyRecordMapper;
 import jakarta.annotation.Resource;
 import org.springframework.stereotype.Service;
+import org.springframework.context.ApplicationEventPublisher;
+import org.springframework.transaction.annotation.Transactional;
+import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder;
+import java.util.Set;
 import java.math.RoundingMode;
 import java.util.LinkedHashMap;
 import java.util.List;
@@ -20,29 +24,38 @@
     private static final ErrorCode ID_REQUIRED = new ErrorCode(1_040_950_001, "淇敼鑳借�楄褰曞繀椤绘彁渚涚紪鍙�");
     @Resource
     private EnergyRecordMapper recordMapper;
+    @Resource private ApplicationEventPublisher applicationEventPublisher;
 
+    @Transactional(rollbackFor = Exception.class)
     public Long create(EnergyRecordSaveReqVO req) {
         EnergyRecordDO record = toRecord(req);
         record.setId(null);
         recordMapper.insert(record);
+        applicationEventPublisher.publishEvent(new EnergyRecordChangedEvent(TenantContextHolder.getTenantId(), Set.of(record.getRecordDate())));
         return record.getId();
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public void update(EnergyRecordSaveReqVO req) {
         if (req.getId() == null) {
             throw exception(ID_REQUIRED);
         }
-        get(req.getId());
+        EnergyRecordDO old = get(req.getId());
         if (recordMapper.updateById(toRecord(req)) == 0) {
             throw exception(NOT_EXISTS);
         }
+        var dates = new java.util.HashSet<>(Set.of(old.getRecordDate()));
+        dates.add(req.getRecordDate());
+        applicationEventPublisher.publishEvent(new EnergyRecordChangedEvent(TenantContextHolder.getTenantId(), Set.copyOf(dates)));
     }
 
+    @Transactional(rollbackFor = Exception.class)
     public void delete(Long id) {
-        get(id);
+        EnergyRecordDO old = get(id);
         if (recordMapper.deleteById(id) == 0) {
             throw exception(NOT_EXISTS);
         }
+        applicationEventPublisher.publishEvent(new EnergyRecordChangedEvent(TenantContextHolder.getTenantId(), Set.of(old.getRecordDate())));
     }
 
     public EnergyRecordDO get(Long id) {

--
Gitblit v1.9.3