From d7dca690cedd12e271f0ee0b9050679d73796f5c Mon Sep 17 00:00:00 2001
From: MrShi <1878285526@qq.com>
Date: 星期一, 06 一月 2025 09:28:10 +0800
Subject: [PATCH] 1

---
 server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java |   88 ++++++++++++++++++++++++++++++--------------
 1 files changed, 60 insertions(+), 28 deletions(-)

diff --git a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
index 32ce71d..87d1ec9 100644
--- a/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
+++ b/server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwRoomServiceImpl.java
@@ -8,15 +8,17 @@
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.YwBuildingMapper;
+import com.doumee.dao.business.YwContractRoomMapper;
 import com.doumee.dao.business.YwRoomMapper;
-import com.doumee.dao.business.model.YwBuilding;
-import com.doumee.dao.business.model.YwProject;
-import com.doumee.dao.business.model.YwRoom;
+import com.doumee.dao.business.YwWorkorderMapper;
+import com.doumee.dao.business.model.*;
 import com.doumee.service.business.YwRoomService;
 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.github.yulichang.wrapper.MPJLambdaWrapper;
+import org.checkerframework.checker.units.qual.A;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
@@ -36,6 +38,10 @@
     private YwRoomMapper ywRoomMapper;
     @Autowired
     private YwBuildingMapper ywBuildingMapper;
+    @Autowired
+    private YwContractRoomMapper ywContractRoomMapper;
+    @Autowired
+    private YwWorkorderMapper ywWorkorderMapper;
 
     @Override
     public Integer create(YwRoom model) {
@@ -59,6 +65,16 @@
 
     @Override
     public void deleteById(Integer id, LoginUserInfo user) {
+        if(ywContractRoomMapper.selectCount(new QueryWrapper<YwContractRoom>()
+                .lambda().eq(YwContractRoom::getIsdeleted,Constants.ZERO)
+                .eq(YwContractRoom::getRoomId,id))>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎴块棿淇℃伅宸蹭娇鐢�,鏃犳硶杩涜鍒犻櫎!");
+        };
+        if(ywWorkorderMapper.selectCount(new QueryWrapper<YwWorkorder>()
+                .lambda().eq(YwWorkorder::getIsdeleted,Constants.ZERO)
+                .eq(YwWorkorder::getRoomId,id))>Constants.ZERO){
+            throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎴块棿淇℃伅宸蹭娇鐢�,鏃犳硶杩涜鍒犻櫎!");
+        };
         YwRoom model = new YwRoom();
         model.setId(id);
         model.setEditDate(new Date());
@@ -129,73 +145,89 @@
     @Override
     public PageData<YwRoom> findPage(PageWrap<YwRoom> pageWrap) {
         IPage<YwRoom> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<YwRoom> queryWrapper = new QueryWrapper<>();
+         MPJLambdaWrapper<YwRoom> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(YwRoom.class )
+                .selectAs(YwProject::getName,YwRoom::getProjectName)
+                .selectAs(YwFloor::getName,YwRoom::getFloorName)
+                .selectAs(YwBuilding::getName,YwRoom::getBuildingName)
+                .select(" ifnull( ( select case when y1.status = 3 then now() BETWEEN y1.START_DATE and y1.BT_DATE else now() BETWEEN y1.START_DATE and y1.END_DATE END  " +
+                        "from yw_contract y1 left join yw_contract_room y2 on y1.id = y2.CONTRACT_ID and y2.TYPE = 0  " +
+                        "where y1.`STATUS` <> 4  and y2.room_id = t.id order by y1.create_date desc  limit 1  ) ,0) ",YwRoom::getLeaseStatus)
+                .leftJoin(YwProject.class,YwProject::getId,YwRoom::getProjectId)
+                .leftJoin(YwBuilding.class,YwBuilding::getId,YwRoom::getBuildingId)
+                .leftJoin(YwFloor.class,YwFloor::getId,YwRoom::getFloor);
         pageWrap.getModel().setIsdeleted(Constants.ZERO);
         Utils.MP.blankToNull(pageWrap.getModel());
         if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(YwRoom::getId, pageWrap.getModel().getId());
+            queryWrapper.eq(YwRoom::getId, pageWrap.getModel().getId());
         }
         if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(YwRoom::getCreator, pageWrap.getModel().getCreator());
+            queryWrapper.eq(YwRoom::getCreator, pageWrap.getModel().getCreator());
         }
         if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(YwRoom::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(YwRoom::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
+            queryWrapper.ge(YwRoom::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
+            queryWrapper.le(YwRoom::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
         }
         if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(YwRoom::getEditor, pageWrap.getModel().getEditor());
+            queryWrapper.eq(YwRoom::getEditor, pageWrap.getModel().getEditor());
         }
         if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(YwRoom::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(YwRoom::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
+            queryWrapper.ge(YwRoom::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
+            queryWrapper.le(YwRoom::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
         }
         if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(YwRoom::getIsdeleted, pageWrap.getModel().getIsdeleted());
+            queryWrapper.eq(YwRoom::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getName() != null) {
-            queryWrapper.lambda().eq(YwRoom::getName, pageWrap.getModel().getName());
+            queryWrapper.eq(YwRoom::getName, pageWrap.getModel().getName());
         }
         if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(YwRoom::getRemark, pageWrap.getModel().getRemark());
+            queryWrapper.eq(YwRoom::getRemark, pageWrap.getModel().getRemark());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(YwRoom::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(YwRoom::getStatus, pageWrap.getModel().getStatus());
         }
         if (pageWrap.getModel().getSortnum() != null) {
-            queryWrapper.lambda().eq(YwRoom::getSortnum, pageWrap.getModel().getSortnum());
+            queryWrapper.eq(YwRoom::getSortnum, pageWrap.getModel().getSortnum());
         }
         if (pageWrap.getModel().getImgurl() != null) {
-            queryWrapper.lambda().eq(YwRoom::getImgurl, pageWrap.getModel().getImgurl());
+            queryWrapper.eq(YwRoom::getImgurl, pageWrap.getModel().getImgurl());
         }
         if (pageWrap.getModel().getCode() != null) {
-            queryWrapper.lambda().eq(YwRoom::getCode, pageWrap.getModel().getCode());
+            queryWrapper.eq(YwRoom::getCode, pageWrap.getModel().getCode());
         }
         if (pageWrap.getModel().getRoomNum() != null) {
-            queryWrapper.lambda().eq(YwRoom::getRoomNum, pageWrap.getModel().getRoomNum());
+            queryWrapper.eq(YwRoom::getRoomNum, pageWrap.getModel().getRoomNum());
         }
         if (pageWrap.getModel().getIsInvestment() != null) {
-            queryWrapper.lambda().eq(YwRoom::getIsInvestment, pageWrap.getModel().getIsInvestment());
+            queryWrapper.eq(YwRoom::getIsInvestment, pageWrap.getModel().getIsInvestment());
         }
         if (pageWrap.getModel().getArea() != null) {
-            queryWrapper.lambda().eq(YwRoom::getArea, pageWrap.getModel().getArea());
+            queryWrapper.eq(YwRoom::getArea, pageWrap.getModel().getArea());
         }
         if (pageWrap.getModel().getFeeArea() != null) {
-            queryWrapper.lambda().eq(YwRoom::getFeeArea, pageWrap.getModel().getFeeArea());
+            queryWrapper.eq(YwRoom::getFeeArea, pageWrap.getModel().getFeeArea());
         }
         if (pageWrap.getModel().getRentArea() != null) {
-            queryWrapper.lambda().eq(YwRoom::getRentArea, pageWrap.getModel().getRentArea());
+            queryWrapper.eq(YwRoom::getRentArea, pageWrap.getModel().getRentArea());
         }
         if (pageWrap.getModel().getFloor() != null) {
-            queryWrapper.lambda().eq(YwRoom::getFloor, pageWrap.getModel().getFloor());
+            queryWrapper.eq(YwRoom::getFloor, pageWrap.getModel().getFloor());
         }
         if (pageWrap.getModel().getProjectId() != null) {
-            queryWrapper.lambda().eq(YwRoom::getProjectId, pageWrap.getModel().getProjectId());
+            queryWrapper.eq(YwRoom::getProjectId, pageWrap.getModel().getProjectId());
         }
         if (pageWrap.getModel().getBuildingId() != null) {
-            queryWrapper.lambda().eq(YwRoom::getBuildingId, pageWrap.getModel().getBuildingId());
+            queryWrapper.eq(YwRoom::getBuildingId, pageWrap.getModel().getBuildingId());
         }
-        queryWrapper.lambda().orderByAsc(YwRoom::getRoomNum);
-        return PageData.from(ywRoomMapper.selectPage(page, queryWrapper));
+        queryWrapper.orderByAsc(YwRoom::getRoomNum);
+        IPage<YwRoom> iPage = ywRoomMapper.selectJoinPage(page,YwRoom.class, queryWrapper);
+        for (YwRoom ywRoom:iPage.getRecords()) {
+            if(Constants.equalsInteger(ywRoom.getIsInvestment(),Constants.ZERO)){
+                ywRoom.setLeaseStatus(Constants.TWO);
+            }
+        }
+        return PageData.from(iPage);
     }
 
     @Override

--
Gitblit v1.9.3