From 372bf14fe202aa6bc0cabc85e9842318315f372c Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期日, 23 四月 2023 23:58:42 +0800
Subject: [PATCH] 优化 缴费审核 批量审核功能

---
 service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 51 insertions(+), 3 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java b/service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java
index 8b0ffd3..fcea01a 100755
--- a/service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java
+++ b/service-store/src/main/java/com/java110/store/bmo/contract/impl/UpdateContractBMOImpl.java
@@ -40,12 +40,14 @@
 import com.java110.utils.constant.StatusConstant;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
+import java.util.Date;
 import java.util.List;
 
 @Service("updateContractBMOImpl")
@@ -212,9 +214,14 @@
             ContractPo contractPo = BeanConvertUtil.covertBean(contractChangePlanDetailDtos.get(0), ContractPo.class);
 
             contractInnerServiceSMOImpl.updateContract(contractPo);
-            //瑙e喅鍚堝悓bug 鍙湁 璧勪骇鍙樻洿鏃� 鎿嶄綔 鍚堝悓鎴垮眿
+            //todo 瑙e喅鍚堝悓bug 鍙湁 璧勪骇鍙樻洿鏃� 鎿嶄綔 鍚堝悓鎴垮眿
             if (ContractChangePlanDto.PLAN_TYPE_CHANGE_ROOM.equals(contractChangePlanDtos.get(0).getPlanType())) {
                 dealContractChangePlanRoom(contractChangePlanDto, contractDtos.get(0));
+            }
+
+            //todo 濡傛灉鏄鏈熷彉鏇存椂 灏嗘埧灞嬬殑鏃堕棿淇敼涓哄彉鏇村悗鐨勬椂闂�
+            if (ContractChangePlanDto.PLAN_TYPE_CHANGE_RENT_DATE.equals(contractChangePlanDtos.get(0).getPlanType())) {
+                changeRoomEndTime(contractChangePlanDto, contractDtos.get(0));
             }
 
         } else { //淇敼涓哄鏍镐腑
@@ -225,6 +232,49 @@
             contractChangePlanInnerServiceSMOImpl.updateContractChangePlan(contractChangePlanPo);
         }
         return ResultVo.success();
+    }
+
+    /**
+     * 淇敼鎴垮眿鐨勭鏈�
+     *
+     * @param contractChangePlanDto
+     * @param contractDto
+     */
+    private void changeRoomEndTime(ContractChangePlanDto contractChangePlanDto, ContractDto contractDto) {
+
+        //鏌ヨ鍚堝悓鎴垮眿
+        ContractRoomDto contractRoomDto = new ContractRoomDto();
+        contractRoomDto.setStoreId(contractChangePlanDto.getStoreId());
+        contractRoomDto.setContractId(contractDto.getContractId());
+        List<ContractRoomDto> oldContractRoomDtos = contractRoomInnerServiceSMOImpl.queryContractRooms(contractRoomDto);
+        if (oldContractRoomDtos == null || oldContractRoomDtos.size() < 1) {
+            return;
+        }
+        Date contractEndDate = DateUtil.getDateFromStringA(contractDto.getEndTime());
+        for (ContractRoomDto oldContractRoomDto : oldContractRoomDtos) {
+            OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+            ownerRoomRelDto.setRoomId(oldContractRoomDto.getRoomId());
+            ownerRoomRelDto.setOwnerId(contractDto.getObjId());
+            List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+
+            if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) { // 璇存槑涓氫富娌℃湁鍙戠敓鍙樺寲锛屽悗缁伐浣滀笉鍋氬鐞�
+                continue;
+            }
+
+            // todo 濡傛灉鍚堝悓鐨勫皬浜庢埧灞嬬殑鍒� 涓嶄慨鏀�
+            // todo 杩欏潡鍙互鏍规嵁瀹為檯鐨勪竴涓娇鐢ㄦ儏鍐电湅鐪嬭涓嶈闄愬埗
+            Date roomEndDate = ownerRoomRelDtos.get(0).getEndTime();
+            if(contractEndDate.getTime() < roomEndDate.getTime()){
+                continue;
+            }
+
+            //todo 淇敼鏃堕棿
+            OwnerRoomRelPo ownerRoomRelPo = new OwnerRoomRelPo();
+            ownerRoomRelPo.setEndTime(contractDto.getEndTime());
+            ownerRoomRelPo.setStartTime(contractDto.getStartTime());
+            ownerRoomRelPo.setRelId(ownerRoomRelDtos.get(0).getRelId());
+            ownerRoomRelInnerServiceSMOImpl.updateOwnerRoomRels(ownerRoomRelPo);
+        }
     }
 
     private void dealContractChangePlanRoom(ContractChangePlanDto contractChangePlanDto, ContractDto contractDto) {
@@ -253,8 +303,6 @@
         doDelOldRoomRel(contractChangePlanRoomDtos, oldContractRoomDtos);
         //澧炲姞
         doAddRoomRel(contractDto, oldContractRoomDtos, contractChangePlanRoomDtos);
-
-
 
 
     }

--
Gitblit v1.8.0