From e63c532ea03fd05855a21744a559b25b0363453d Mon Sep 17 00:00:00 2001
From: Jay <csj123456>
Date: 星期四, 23 一月 2025 11:05:15 +0800
Subject: [PATCH] 修改查询和新增电价时段表的逻辑

---
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java |   34 ++++++++++++++++++++++++----------
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java          |    2 ++
 iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java                                        |    4 ++--
 iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java                                        |    5 +++--
 4 files changed, 31 insertions(+), 14 deletions(-)

diff --git a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
index b98dd72..108b0b1 100644
--- a/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
+++ b/iailab-module-model/iailab-module-model-api/src/main/java/com/iailab/module/model/api/mcs/McsApi.java
@@ -117,10 +117,10 @@
 
     @GetMapping(PREFIX + "/electricityPrice/list")
     @Operation(summary = "电价时段配置列表")
-    List<ElectricityPriceSegmentedDTO> getElectricityPriceList(@RequestParam String year);
+    List<ElectricityPriceSegmentedDTO> getElectricityPriceList(@RequestParam("year") String year);
 
     @PostMapping(PREFIX + "/electricityPrice/create")
     @Operation(summary = "添加电价时段配置列表")
-    Boolean createElectricityPrice(@RequestBody ElectricityPriceSegmentedDTO dto);
+    Boolean createElectricityPrice(@RequestBody List<ElectricityPriceSegmentedDTO> list);
 
 }
\ No newline at end of file
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
index 4f8e690..b862c7c 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/api/McsApiImpl.java
@@ -738,8 +738,9 @@
     }
 
     @Override
-    public Boolean createElectricityPrice(ElectricityPriceSegmentedDTO dto) {
-        electricityPriceSegmentedService.create(dto);
+    public Boolean createElectricityPrice(List<ElectricityPriceSegmentedDTO> list) {
+        electricityPriceSegmentedService.deleteByITimeId(list.get(0).getITimeId());
+        list.forEach(dto -> electricityPriceSegmentedService.create(dto));
         return true;
     }
 
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java
index beb8dd5..2efb6ce 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/ElectricityPriceSegmentedService.java
@@ -25,6 +25,8 @@
 
     void delete(String id);
 
+    void deleteByITimeId(String iTimeId);
+
     List<ElectricityPriceSegmentedDTO> getElectricityPriceList(String year);
 
     List<ElectricityPriceSegmentedDTO> getElectricityPriceListByTime(ElectricityPriceSegmentedDTO dto);
diff --git a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java
index a78ff63..d4fac7b 100644
--- a/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java
+++ b/iailab-module-model/iailab-module-model-biz/src/main/java/com/iailab/module/model/mpk/service/impl/ElectricityPriceSegmentedServiceImpl.java
@@ -38,13 +38,10 @@
 
     @Override
     public void create(ElectricityPriceSegmentedDTO dto) {
-        List<ElectricityPriceSegmentedDTO> list =  getElectricityPriceListByTime(dto);
-        if (CollectionUtils.isEmpty(list)){
-            ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
-            entity.setId(UUID.randomUUID().toString());
-            entity.setCreateTime(new Date());
-            baseDao.insert(entity);
-        }
+        ElectricityPriceSegmentedEntity entity = ConvertUtils.sourceToTarget(dto, ElectricityPriceSegmentedEntity.class);
+        entity.setId(UUID.randomUUID().toString());
+        entity.setCreateTime(new Date());
+        baseDao.insert(entity);
     }
 
     @Override
@@ -66,10 +63,27 @@
     }
 
     @Override
-    public List<ElectricityPriceSegmentedDTO> getElectricityPriceList(String year) {
+    public void deleteByITimeId(String iTimeId) {
         QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
-        wrapper.eq(StringUtils.isNotBlank(year), "year", year);
-        return ConvertUtils.sourceToTarget(baseDao.selectList(wrapper), ElectricityPriceSegmentedDTO.class);
+        wrapper.eq(StringUtils.isNotBlank(iTimeId), "i_time_id", iTimeId);
+        baseDao.delete(wrapper);
+    }
+
+    @Override
+    public List<ElectricityPriceSegmentedDTO> getElectricityPriceList(String year) {
+        List<ElectricityPriceSegmentedDTO> result = new ArrayList<>();
+        QueryWrapper<ElectricityPriceSegmentedEntity> wrapper = new QueryWrapper<>();
+        wrapper.eq(StringUtils.isNotBlank(year), "year", year)
+                .orderByDesc( "create_time");
+        List<ElectricityPriceSegmentedEntity> list = baseDao.selectList(wrapper);
+        if(CollectionUtils.isNotEmpty(list)){
+            String itimeId = list.get(0).getITimeId();
+            QueryWrapper<ElectricityPriceSegmentedEntity> wrapper1 = new QueryWrapper<>();
+            wrapper.eq(StringUtils.isNotBlank(itimeId), "i_time_id", itimeId)
+                    .orderByDesc( "create_time");
+            result = ConvertUtils.sourceToTarget(baseDao.selectList(wrapper1), ElectricityPriceSegmentedDTO.class);
+        }
+        return result;
     }
 
     @Override

--
Gitblit v1.9.3