From cab3425bb92d01f3494eb25c1f299038dc634c65 Mon Sep 17 00:00:00 2001
From: Your Name <you@example.com>
Date: 星期三, 15 三月 2023 23:43:48 +0800
Subject: [PATCH] 优化保养转单功能

---
 service-user/src/main/java/com/java110/user/bmo/rentingAppointment/impl/GetRentingAppointmentBMOImpl.java |  112 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 111 insertions(+), 1 deletions(-)

diff --git a/service-user/src/main/java/com/java110/user/bmo/rentingAppointment/impl/GetRentingAppointmentBMOImpl.java b/service-user/src/main/java/com/java110/user/bmo/rentingAppointment/impl/GetRentingAppointmentBMOImpl.java
old mode 100644
new mode 100755
index 0b6b4b0..1ed8cc9
--- a/service-user/src/main/java/com/java110/user/bmo/rentingAppointment/impl/GetRentingAppointmentBMOImpl.java
+++ b/service-user/src/main/java/com/java110/user/bmo/rentingAppointment/impl/GetRentingAppointmentBMOImpl.java
@@ -1,22 +1,31 @@
 package com.java110.user.bmo.rentingAppointment.impl;
 
+import com.java110.dto.RoomDto;
 import com.java110.dto.rentingAppointment.RentingAppointmentDto;
-import com.java110.intf.IRentingAppointmentInnerServiceSMO;
+import com.java110.intf.user.IRentingAppointmentInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.user.bmo.rentingAppointment.IGetRentingAppointmentBMO;
 import com.java110.vo.ResultVo;
+import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Service;
 
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service("getRentingAppointmentBMOImpl")
 public class GetRentingAppointmentBMOImpl implements IGetRentingAppointmentBMO {
 
     @Autowired
     private IRentingAppointmentInnerServiceSMO rentingAppointmentInnerServiceSMOImpl;
+
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
 
     /**
      * @param rentingAppointmentDto
@@ -30,6 +39,8 @@
         List<RentingAppointmentDto> rentingAppointmentDtos = null;
         if (count > 0) {
             rentingAppointmentDtos = rentingAppointmentInnerServiceSMOImpl.queryRentingAppointments(rentingAppointmentDto);
+
+            refreshEveryRoom(rentingAppointmentDtos);
         } else {
             rentingAppointmentDtos = new ArrayList<>();
         }
@@ -41,4 +52,103 @@
         return responseEntity;
     }
 
+    private void refreshRoom(List<RentingAppointmentDto> rentingAppointmentDtos) {
+
+        List<String> roomIds = new ArrayList<>();
+
+        for (RentingAppointmentDto rentingAppointmentDto : rentingAppointmentDtos) {
+            if (!StringUtils.isEmpty(rentingAppointmentDto.getAppointmentRoomId())) {
+                roomIds.add(rentingAppointmentDto.getAppointmentRoomId());
+            }
+
+            if (!StringUtils.isEmpty(rentingAppointmentDto.getRoomId())) {
+                roomIds.add(rentingAppointmentDto.getAppointmentRoomId());
+            }
+        }
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+
+        for (RoomDto tmpRoomDto : roomDtos) {
+            for (RentingAppointmentDto rentingAppointmentDto : rentingAppointmentDtos) {
+                if (tmpRoomDto.getRoomId().equals(rentingAppointmentDto.getAppointmentRoomId())) {
+                    rentingAppointmentDto.setAppointmentRoomName(tmpRoomDto.getFloorNum() + "鏍�" + tmpRoomDto.getUnitNum() + "鍗曞厓" + tmpRoomDto.getRoomNum() + "瀹�");
+                }
+
+                if (tmpRoomDto.getRoomId().equals(rentingAppointmentDto.getRoomId())) {
+                    rentingAppointmentDto.setRoomName(tmpRoomDto.getFloorNum() + "鏍�" + tmpRoomDto.getUnitNum() + "鍗曞厓" + tmpRoomDto.getRoomNum() + "瀹�");
+                }
+            }
+        }
+
+    }
+
+    private void refreshEveryRoom(List<RentingAppointmentDto> rentingAppointmentDtos) {
+
+        List<Map> roomInfos = new ArrayList<>();
+
+        Map room = null;
+        for (RentingAppointmentDto rentingAppointmentDto : rentingAppointmentDtos) {
+            if (!StringUtils.isEmpty(rentingAppointmentDto.getAppointmentRoomId()) && !StringUtils.isEmpty(rentingAppointmentDto.getAppointmentCommunityId())) {
+                room = new HashMap();
+                room.put("roomId", rentingAppointmentDto.getAppointmentRoomId());
+                room.put("communityId", rentingAppointmentDto.getAppointmentCommunityId());
+                roomInfos.add(room);
+            }
+            if (!StringUtils.isEmpty(rentingAppointmentDto.getRoomId())&&!StringUtils.isEmpty(rentingAppointmentDto.getCommunityId())) {
+                room = new HashMap();
+                room.put("roomId", rentingAppointmentDto.getRoomId());
+                room.put("communityId", rentingAppointmentDto.getCommunityId());
+                roomInfos.add(room);
+            }
+        }
+
+        if (roomInfos.size() < 1) {
+            return;
+        }
+        List<Map> newRoomInfos = new ArrayList<>();
+        Boolean hasRoom = false;
+        for (Map roomMap : roomInfos) {
+            hasRoom = false;
+            for (Map newRoomInfo : newRoomInfos) {
+                if (roomMap.get("roomId").equals(newRoomInfo.get("roomId"))) {
+                    hasRoom = true;
+                    break;
+                }
+            }
+            if (!hasRoom) {
+                newRoomInfos.add(roomMap);
+            }
+        }
+        RoomDto roomDto = new RoomDto();
+        for (Map newRoomInfo : newRoomInfos) {
+            roomDto.setRoomId(newRoomInfo.get("roomId").toString());
+            roomDto.setCommunityId(newRoomInfo.get("communityId").toString());
+            List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+            if (roomDtos == null || roomDtos.size() < 1) {
+                continue;
+            }
+            RoomDto tmpRoomDto = roomDtos.get(0);
+            newRoomInfo.put("roomName", tmpRoomDto.getFloorNum() + "鏍�" + tmpRoomDto.getUnitNum() + "鍗曞厓" + tmpRoomDto.getRoomNum() + "瀹�");
+        }
+
+
+
+        for (Map newRoomInfo : newRoomInfos) {
+            for (RentingAppointmentDto rentingAppointmentDto : rentingAppointmentDtos) {
+                if (newRoomInfo.get("roomId").equals(rentingAppointmentDto.getAppointmentRoomId())) {
+                    rentingAppointmentDto.setAppointmentRoomName(newRoomInfo.get("roomName").toString());
+                }
+
+                if (newRoomInfo.get("roomId").equals(rentingAppointmentDto.getRoomId())) {
+                    rentingAppointmentDto.setRoomName(newRoomInfo.get("roomName").toString());
+                }
+            }
+        }
+
+    }
+
 }

--
Gitblit v1.8.0