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

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwElectricalDataServiceImpl.java |  150 +++++++++++++++++++++++---------------------------
 1 files changed, 69 insertions(+), 81 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 69d376e..b05ad19 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
@@ -1,32 +1,38 @@
 package com.doumee.service.business.impl;
 
-import com.doumee.core.model.PageData;
-import com.doumee.core.model.PageWrap;
-import com.doumee.dao.business.model.YwElectricalData;
-import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.YwElectricalDataMapper;
-import com.doumee.service.business.YwElectricalDataService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.model.PageData;
+import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
+import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.YwElectricalDataMapper;
+import com.doumee.dao.business.model.YwElectrical;
+import com.doumee.dao.business.model.YwElectricalData;
+import com.doumee.dao.business.model.YwElectricalRoom;
+import com.doumee.service.business.YwElectricalBizService;
+import com.doumee.service.business.YwElectricalDataService;
+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 com.github.yulichang.wrapper.MPJLambdaWrapper;
-import com.doumee.core.model.LoginUserInfo;
+
 import java.util.List;
 
 /**
  * 鐢佃〃鎶勮〃鏁版嵁Service瀹炵幇
- * @author doumee
- * @date 2026-05-20 14:59:07
  */
 @Service
 public class YwElectricalDataServiceImpl implements YwElectricalDataService {
 
     @Autowired
     private YwElectricalDataMapper ywElectricalDataMapper;
+    @Autowired
+    private YwElectricalBizService ywElectricalBizService;
 
     @Override
     public Integer create(YwElectricalData ywElectricalData) {
@@ -38,34 +44,37 @@
     public void deleteById(Integer id) {
         ywElectricalDataMapper.deleteById(id);
     }
-  @Override
-    public void deleteByIdInBatch(List<Integer> ids ) {
+
+    @Override
+    public void deleteByIdInBatch(List<Integer> ids) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
-        for(Integer id :ids){
+        for (Integer id : ids) {
             deleteById(id);
         }
     }
+
     @Override
     public void deleteById(Integer id, LoginUserInfo user) {
         ywElectricalDataMapper.deleteById(id);
     }
-  @Override
+
+    @Override
     public void deleteByIdInBatch(List<Integer> ids, LoginUserInfo user) {
         if (CollectionUtils.isEmpty(ids)) {
             return;
         }
-       for(Integer id :ids){
-            deleteById(id,user);
+        for (Integer id : ids) {
+            deleteById(id, user);
         }
     }
+
     @Override
     public void delete(YwElectricalData ywElectricalData) {
         UpdateWrapper<YwElectricalData> deleteWrapper = new UpdateWrapper<>(ywElectricalData);
         ywElectricalDataMapper.delete(deleteWrapper);
     }
-
 
     @Override
     public void updateById(YwElectricalData ywElectricalData) {
@@ -77,7 +86,7 @@
         if (CollectionUtils.isEmpty(ywElectricalDatas)) {
             return;
         }
-        for (YwElectricalData ywElectricalData: ywElectricalDatas) {
+        for (YwElectricalData ywElectricalData : ywElectricalDatas) {
             this.updateById(ywElectricalData);
         }
     }
@@ -98,79 +107,58 @@
         QueryWrapper<YwElectricalData> wrapper = new QueryWrapper<>(ywElectricalData);
         return ywElectricalDataMapper.selectList(wrapper);
     }
-  
+
     @Override
     public PageData<YwElectricalData> findPage(PageWrap<YwElectricalData> pageWrap) {
         IPage<YwElectricalData> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
+        YwElectricalData model = pageWrap.getModel() == null ? new YwElectricalData() : pageWrap.getModel();
+        Utils.MP.blankToNull(model);
+
         MPJLambdaWrapper<YwElectricalData> queryWrapper = new MPJLambdaWrapper<>();
-        Utils.MP.blankToNull(pageWrap.getModel());
-        queryWrapper.eq(pageWrap.getModel().getId() != null,YwElectricalData::getId, pageWrap.getModel().getId());
-        queryWrapper.eq(pageWrap.getModel().getCreator() != null,YwElectricalData::getCreator, pageWrap.getModel().getCreator());
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.ge(YwElectricalData::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.le(YwElectricalData::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+        queryWrapper.selectAll(YwElectricalData.class)
+                .selectAs(YwElectrical::getName, YwElectricalData::getElectricalName)
+                .selectAs(YwElectrical::getId, YwElectricalData::getElectricalId)
+                .leftJoin(YwElectrical.class, on -> on
+                        .eq(YwElectrical::getAddress, YwElectricalData::getAddress)
+                        .eq(YwElectrical::getIsdeleted, Constants.ZERO))
+                .eq(YwElectricalData::getIsdeleted, Constants.ZERO);
+
+        if (StringUtils.isNotBlank(model.getMeterKeyword())) {
+            String kw = model.getMeterKeyword().trim();
+            queryWrapper.and(w -> w.like(YwElectricalData::getAddress, kw)
+                    .or().like(YwElectricalData::getName, kw)
+                    .or().like(YwElectrical::getName, kw));
         }
-        queryWrapper.eq(pageWrap.getModel().getEditor() != null,YwElectricalData::getEditor, pageWrap.getModel().getEditor());
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.ge(YwElectricalData::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.le(YwElectricalData::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+        if (model.getRoomId() != null) {
+            queryWrapper.innerJoin(YwElectricalRoom.class, on -> on
+                    .eq(YwElectricalRoom::getObjId, YwElectrical::getId)
+                    .eq(YwElectricalRoom::getType, Constants.ZERO)
+                    .eq(YwElectricalRoom::getIsdeleted, Constants.ZERO))
+                    .eq(YwElectricalRoom::getRoomId, model.getRoomId());
         }
-        queryWrapper.eq(pageWrap.getModel().getIsdeleted() != null,YwElectricalData::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        queryWrapper.eq(pageWrap.getModel().getRemark() != null,YwElectricalData::getRemark, pageWrap.getModel().getRemark());
-        queryWrapper.eq(pageWrap.getModel().getDeviceId() != null,YwElectricalData::getDeviceId, pageWrap.getModel().getDeviceId());
-        queryWrapper.eq(pageWrap.getModel().getAddTime() != null,YwElectricalData::getAddTime, pageWrap.getModel().getAddTime());
-        queryWrapper.eq(pageWrap.getModel().getJsfs() != null,YwElectricalData::getJsfs, pageWrap.getModel().getJsfs());
-        queryWrapper.eq(pageWrap.getModel().getFls() != null,YwElectricalData::getFls, pageWrap.getModel().getFls());
-        queryWrapper.eq(pageWrap.getModel().getXs() != null,YwElectricalData::getXs, pageWrap.getModel().getXs());
-        queryWrapper.eq(pageWrap.getModel().getZyje() != null,YwElectricalData::getZyje, pageWrap.getModel().getZyje());
-        queryWrapper.eq(pageWrap.getModel().getYe() != null,YwElectricalData::getYe, pageWrap.getModel().getYe());
-        queryWrapper.eq(pageWrap.getModel().getCountnum() != null,YwElectricalData::getCountnum, pageWrap.getModel().getCountnum());
-        queryWrapper.eq(pageWrap.getModel().getDqdj() != null,YwElectricalData::getDqdj, pageWrap.getModel().getDqdj());
-        queryWrapper.eq(pageWrap.getModel().getZhygzdl() != null,YwElectricalData::getZhygzdl, pageWrap.getModel().getZhygzdl());
-        queryWrapper.eq(pageWrap.getModel().getZqyl() != null,YwElectricalData::getZqyl, pageWrap.getModel().getZqyl());
-        queryWrapper.eq(pageWrap.getModel().getAxdl() != null,YwElectricalData::getAxdl, pageWrap.getModel().getAxdl());
-        queryWrapper.eq(pageWrap.getModel().getBxdl() != null,YwElectricalData::getBxdl, pageWrap.getModel().getBxdl());
-        queryWrapper.eq(pageWrap.getModel().getCxdl() != null,YwElectricalData::getCxdl, pageWrap.getModel().getCxdl());
-        queryWrapper.eq(pageWrap.getModel().getAxdy() != null,YwElectricalData::getAxdy, pageWrap.getModel().getAxdy());
-        queryWrapper.eq(pageWrap.getModel().getBxdy() != null,YwElectricalData::getBxdy, pageWrap.getModel().getBxdy());
-        queryWrapper.eq(pageWrap.getModel().getCxdy() != null,YwElectricalData::getCxdy, pageWrap.getModel().getCxdy());
-        queryWrapper.eq(pageWrap.getModel().getZyggl() != null,YwElectricalData::getZyggl, pageWrap.getModel().getZyggl());
-        queryWrapper.eq(pageWrap.getModel().getAxyggl() != null,YwElectricalData::getAxyggl, pageWrap.getModel().getAxyggl());
-        queryWrapper.eq(pageWrap.getModel().getBxyggl() != null,YwElectricalData::getBxyggl, pageWrap.getModel().getBxyggl());
-        queryWrapper.eq(pageWrap.getModel().getCxyggl() != null,YwElectricalData::getCxyggl, pageWrap.getModel().getCxyggl());
-        queryWrapper.eq(pageWrap.getModel().getZwggl() != null,YwElectricalData::getZwggl, pageWrap.getModel().getZwggl());
-        queryWrapper.eq(pageWrap.getModel().getAxwggl() != null,YwElectricalData::getAxwggl, pageWrap.getModel().getAxwggl());
-        queryWrapper.eq(pageWrap.getModel().getBxwggl() != null,YwElectricalData::getBxwggl, pageWrap.getModel().getBxwggl());
-        queryWrapper.eq(pageWrap.getModel().getCxwggl() != null,YwElectricalData::getCxwggl, pageWrap.getModel().getCxwggl());
-        queryWrapper.eq(pageWrap.getModel().getZszgl() != null,YwElectricalData::getZszgl, pageWrap.getModel().getZszgl());
-        queryWrapper.eq(pageWrap.getModel().getAxszgl() != null,YwElectricalData::getAxszgl, pageWrap.getModel().getAxszgl());
-        queryWrapper.eq(pageWrap.getModel().getBxszgl() != null,YwElectricalData::getBxszgl, pageWrap.getModel().getBxszgl());
-        queryWrapper.eq(pageWrap.getModel().getCxszgl() != null,YwElectricalData::getCxszgl, pageWrap.getModel().getCxszgl());
-        queryWrapper.eq(pageWrap.getModel().getZglys() != null,YwElectricalData::getZglys, pageWrap.getModel().getZglys());
-        queryWrapper.eq(pageWrap.getModel().getAxglys() != null,YwElectricalData::getAxglys, pageWrap.getModel().getAxglys());
-        queryWrapper.eq(pageWrap.getModel().getBxglys() != null,YwElectricalData::getBxglys, pageWrap.getModel().getBxglys());
-        queryWrapper.eq(pageWrap.getModel().getPl() != null,YwElectricalData::getPl, pageWrap.getModel().getPl());
-        queryWrapper.eq(pageWrap.getModel().getWd() != null,YwElectricalData::getWd, pageWrap.getModel().getWd());
-        queryWrapper.eq(pageWrap.getModel().getDdyy() != null,YwElectricalData::getDdyy, pageWrap.getModel().getDdyy());
-        queryWrapper.eq(pageWrap.getModel().getDbzt() != null,YwElectricalData::getDbzt, pageWrap.getModel().getDbzt());
-        queryWrapper.eq(pageWrap.getModel().getDataId() != null,YwElectricalData::getDataId, pageWrap.getModel().getDataId());
-        queryWrapper.eq(pageWrap.getModel().getConsume() != null,YwElectricalData::getConsume, pageWrap.getModel().getConsume());
-        queryWrapper.eq(pageWrap.getModel().getCid() != null,YwElectricalData::getCid, pageWrap.getModel().getCid());
-        queryWrapper.eq(pageWrap.getModel().getMid() != null,YwElectricalData::getMid, pageWrap.getModel().getMid());
-        queryWrapper.eq(pageWrap.getModel().getAddress() != null,YwElectricalData::getAddress, pageWrap.getModel().getAddress());
-        queryWrapper.eq(pageWrap.getModel().getUid() != null,YwElectricalData::getUid, pageWrap.getModel().getUid());
-        queryWrapper.eq(pageWrap.getModel().getName() != null,YwElectricalData::getName, pageWrap.getModel().getName());
-        queryWrapper.eq(pageWrap.getModel().getFid() != null,YwElectricalData::getFid, pageWrap.getModel().getFid());
-        queryWrapper.eq(pageWrap.getModel().getData() != null,YwElectricalData::getData, pageWrap.getModel().getData());
-        queryWrapper.eq(pageWrap.getModel().getDsp() != null,YwElectricalData::getDsp, pageWrap.getModel().getDsp());
-        queryWrapper.eq(pageWrap.getModel().getRadio() != null,YwElectricalData::getRadio, pageWrap.getModel().getRadio());
-         queryWrapper.orderByDesc(YwElectricalData::getId);
-         IPage<YwElectricalData> result = ywElectricalDataMapper.selectJoinPage(page, YwElectricalData.class,queryWrapper);
-         return PageData.from(result);
+        if (model.getReadTimeBegin() != null) {
+            queryWrapper.ge(YwElectricalData::getCreateDate, Utils.Date.getStart(model.getReadTimeBegin()));
+        }
+        if (model.getReadTimeEnd() != null) {
+            queryWrapper.le(YwElectricalData::getCreateDate, Utils.Date.getEnd(model.getReadTimeEnd()));
+        }
+
+        queryWrapper.orderByDesc(YwElectricalData::getCreateDate)
+                .orderByDesc(YwElectricalData::getId);
+        IPage<YwElectricalData> result = ywElectricalDataMapper.selectJoinPage(page, YwElectricalData.class, queryWrapper);
+        PageData<YwElectricalData> pageData = PageData.from(result);
+        ywElectricalBizService.enrichDataList(pageData.getRecords());
+        return pageData;
     }
+
     @Override
     public long count(YwElectricalData ywElectricalData) {
         QueryWrapper<YwElectricalData> wrapper = new QueryWrapper<>(ywElectricalData);
         return ywElectricalDataMapper.selectCount(wrapper);
     }
+
+    @Override
+    public String syncFromPlatform() {
+        return ywElectricalBizService.syncMeterDataFromPlatform();
+    }
 }

--
Gitblit v1.9.3