From e46bfa3ff94a8a1b4daf37c7fcb79c2fab22a72c Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期五, 29 五月 2026 17:10:00 +0800
Subject: [PATCH] 新增智能电表、空调管理

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java
index b05ad19..0f265b1 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java
@@ -15,12 +15,14 @@
 import com.doumee.dao.business.model.YwElectricalRoom;
 import com.doumee.service.business.YwElectricalBizService;
 import com.doumee.service.business.YwElectricalDataService;
+import com.doumee.service.business.YwWorkDeskEnergyService;
 import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
+import java.text.SimpleDateFormat;
 import java.util.List;
 
 /**
@@ -33,6 +35,8 @@
     private YwElectricalDataMapper ywElectricalDataMapper;
     @Autowired
     private YwElectricalBizService ywElectricalBizService;
+    @Autowired
+    private YwWorkDeskEnergyService ywWorkDeskEnergyService;
 
     @Override
     public Integer create(YwElectricalData ywElectricalData) {
@@ -137,13 +141,28 @@
                     .eq(YwElectricalRoom::getRoomId, model.getRoomId());
         }
         if (model.getReadTimeBegin() != null) {
-            queryWrapper.ge(YwElectricalData::getCreateDate, Utils.Date.getStart(model.getReadTimeBegin()));
+            String begin = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+                    .format(Utils.Date.getStart(model.getReadTimeBegin()));
+            queryWrapper.and(w -> w.and(w1 -> w1.isNotNull(YwElectricalData::getAddTime)
+                            .ne(YwElectricalData::getAddTime, "")
+                            .ge(YwElectricalData::getAddTime, begin))
+                    .or(w2 -> w2.and(w3 -> w3.isNull(YwElectricalData::getAddTime)
+                                    .or().eq(YwElectricalData::getAddTime, ""))
+                            .ge(YwElectricalData::getCreateDate, Utils.Date.getStart(model.getReadTimeBegin()))));
         }
         if (model.getReadTimeEnd() != null) {
-            queryWrapper.le(YwElectricalData::getCreateDate, Utils.Date.getEnd(model.getReadTimeEnd()));
+            String end = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")
+                    .format(Utils.Date.getEnd(model.getReadTimeEnd()));
+            queryWrapper.and(w -> w.and(w1 -> w1.isNotNull(YwElectricalData::getAddTime)
+                            .ne(YwElectricalData::getAddTime, "")
+                            .le(YwElectricalData::getAddTime, end))
+                    .or(w2 -> w2.and(w3 -> w3.isNull(YwElectricalData::getAddTime)
+                                    .or().eq(YwElectricalData::getAddTime, ""))
+                            .le(YwElectricalData::getCreateDate, Utils.Date.getEnd(model.getReadTimeEnd()))));
         }
 
-        queryWrapper.orderByDesc(YwElectricalData::getCreateDate)
+        queryWrapper.orderByDesc(YwElectricalData::getAddTime)
+                .orderByDesc(YwElectricalData::getCreateDate)
                 .orderByDesc(YwElectricalData::getId);
         IPage<YwElectricalData> result = ywElectricalDataMapper.selectJoinPage(page, YwElectricalData.class, queryWrapper);
         PageData<YwElectricalData> pageData = PageData.from(result);
@@ -161,4 +180,11 @@
     public String syncFromPlatform() {
         return ywElectricalBizService.syncMeterDataFromPlatform();
     }
+
+    @Override
+    public String syncFromPlatform(String readTimeBegin, String readTimeEnd) {
+        String syncMsg = ywElectricalBizService.syncMeterDataFromPlatform(readTimeBegin, readTimeEnd);
+        String statsMsg = ywWorkDeskEnergyService.refreshElectricalDailyStatsForRange(readTimeBegin, readTimeEnd);
+        return syncMsg + "锛�" + statsMsg;
+    }
 }

--
Gitblit v1.9.3