From 93de43267e1663031fe5dc2f5ae40d128a182a76 Mon Sep 17 00:00:00 2001
From: doum <doum>
Date: 星期四, 18 六月 2026 17:24:51 +0800
Subject: [PATCH] 新增智能电表、空调管理

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

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
index 383ca4c..b1d2cb3 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -19,6 +19,7 @@
 import com.doumee.dao.system.model.Multifile;
 import com.doumee.dao.system.model.SystemUser;
 import com.doumee.service.business.YwContractService;
+import com.doumee.service.business.YwCustomerDeviceAutoBindService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -73,6 +74,8 @@
 
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
+    @Autowired
+    private YwCustomerDeviceAutoBindService ywCustomerDeviceAutoBindService;
     @Override
     @Transactional(rollbackFor = {BusinessException.class,Exception.class})
     public Integer create(YwContract model) {
@@ -94,6 +97,9 @@
         dealDetailListBiz(model,false);//澶勭悊鏉℃淇℃伅
         dealMultifileBiz(model);//澶勭悊闄勪欢淇℃伅
         dealRoomsForContract(model);//澶勭悊鎴挎簮鍏宠仈琛�
+        if (Constants.equalsInteger(model.getStatus(), Constants.ONE) && model.getRenterId() != null) {
+            ywCustomerDeviceAutoBindService.syncByContractId(model.getId(), model.getLoginUserInfo());
+        }
         dealLogBiz(model,Constants.YwLogType.CONTRACT_CREATE,model.getLoginUserInfo().getRealname(),"銆�"+model.getRemark().replace("鍚堝悓鎽樿锛�","")+"銆�");//璁板綍鏂板缓鏃ュ織
         return model.getId();
     }
@@ -377,6 +383,9 @@
         update.setBtRemark(getbackRentRemarkByParam(param));
         ywContractMapper.updateById(update);
         dealLogBiz(param,Constants.YwLogType.CONTRACT_BACK, param.getLoginUserInfo().getRealname(),getbackRentLogByParam(param));
+        if (model.getRenterId() != null) {
+            ywCustomerDeviceAutoBindService.refreshCustomerDevices(model.getRenterId(), param.getLoginUserInfo());
+        }
         //濡傛灉閫�绉熸棩鏈熷皬浜庡綋鍓嶆棩鏈� 鍒欑洿鎺ラ噴鏀炬埧婧愪俊鎭� 鏈璧�
         if(Utils.Date.getEnd(param.getBtDate()).getTime()<System.currentTimeMillis()){
             List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda()
@@ -416,6 +425,14 @@
                 roomMapper.update(new UpdateWrapper<YwRoom>().lambda().set(YwRoom::getLeaseNowStatus,Constants.ONE)
                         .in(YwRoom::getId,contractRoomList.stream().map(i->i.getRoomId()).collect(Collectors.toList()))
                 );
+            }
+            LoginUserInfo timerUser = new LoginUserInfo();
+            timerUser.setId(1);
+            timerUser.setRealname("timer");
+            for (YwContract c : listA) {
+                if (c.getRenterId() != null) {
+                    ywCustomerDeviceAutoBindService.syncByContractId(c.getId(), timerUser);
+                }
             }
         }
 
@@ -1631,7 +1648,7 @@
             queryWrapper.eq(YwContract::getType, pageWrap.getModel().getType());
         }
         if (pageWrap.getModel().getCode() != null) {
-            queryWrapper.eq(YwContract::getCode, pageWrap.getModel().getCode());
+            queryWrapper.like(YwContract::getCode, pageWrap.getModel().getCode());
         }
         if (pageWrap.getModel().getUserId() != null) {
             queryWrapper.eq(YwContract::getUserId, pageWrap.getModel().getUserId());
@@ -1702,6 +1719,9 @@
         if (pageWrap.getModel().getCompanyName() != null) {
             queryWrapper.like(Company::getName, pageWrap.getModel().getCompanyName());
         }
+        if (pageWrap.getModel().getRenterName() != null) {
+            queryWrapper.like(YwCustomer::getName, pageWrap.getModel().getRenterName());
+        }
         if (pageWrap.getModel().getRoomId() != null) {
             queryWrapper.apply(" t.id in ( select ycr.CONTRACT_ID from yw_contract_room ycr where ycr.type = 0 and  ycr.ROOM_ID = "+pageWrap.getModel().getRoomId()+" )  ");
         }
@@ -1771,6 +1791,14 @@
                     .in(YwContract::getId,ywContractList.stream().map(i->i.getId()).collect(Collectors.toList()))
             );
 
+            LoginUserInfo timerUser = new LoginUserInfo();
+            timerUser.setId(1);
+            timerUser.setRealname("timer");
+            for (YwContract c : ywContractList) {
+                if (c.getRenterId() != null) {
+                    ywCustomerDeviceAutoBindService.refreshCustomerDevices(c.getRenterId(), timerUser);
+                }
+            }
 
             List<YwContractRoom> contractRoomList = ywContractRoomMapper.selectList(new QueryWrapper<YwContractRoom>().lambda().in(YwContractRoom::getContractId,
                     ywContractList.stream().map(i->i.getId()).collect(Collectors.toList())));

--
Gitblit v1.9.3