From b2b5bdf6f42597e582da96aa56707e1f68d3936e Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期二, 10 五月 2022 11:41:44 +0800
Subject: [PATCH] 优化 费用

---
 service-fee/src/main/java/com/java110/fee/bmo/feeReceipt/impl/GetFeeReceiptBMOImpl.java |  114 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 113 insertions(+), 1 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/bmo/feeReceipt/impl/GetFeeReceiptBMOImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/feeReceipt/impl/GetFeeReceiptBMOImpl.java
old mode 100644
new mode 100755
index 580bf1c..363c1f1
--- a/service-fee/src/main/java/com/java110/fee/bmo/feeReceipt/impl/GetFeeReceiptBMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/feeReceipt/impl/GetFeeReceiptBMOImpl.java
@@ -1,8 +1,16 @@
 package com.java110.fee.bmo.feeReceipt.impl;
 
+import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeDto;
 import com.java110.dto.feeReceipt.FeeReceiptDto;
+import com.java110.dto.feeReceipt.FeeReceiptDtoNew;
+import com.java110.dto.owner.OwnerCarDto;
+import com.java110.dto.owner.OwnerRoomRelDto;
 import com.java110.fee.bmo.feeReceipt.IGetFeeReceiptBMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.IFeeReceiptInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.intf.user.IOwnerRoomRelInnerServiceSMO;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -18,6 +26,15 @@
     @Autowired
     private IFeeReceiptInnerServiceSMO feeReceiptInnerServiceSMOImpl;
 
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerRoomRelInnerServiceSMO ownerRoomRelInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
     /**
      * @param feeReceiptDto
      * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
@@ -28,8 +45,104 @@
         int count = feeReceiptInnerServiceSMOImpl.queryFeeReceiptsCount(feeReceiptDto);
 
         List<FeeReceiptDto> feeReceiptDtos = null;
+        List<FeeReceiptDto> feeReceiptList = new ArrayList<>();
         if (count > 0) {
             feeReceiptDtos = feeReceiptInnerServiceSMOImpl.queryFeeReceipts(feeReceiptDto);
+            for (FeeReceiptDto feeReceipt : feeReceiptDtos) {
+                feeReceipt.setStoreName(feeReceiptDto.getStoreName());
+                feeReceiptList.add(feeReceipt);
+            }
+            //杈撳叆鎴垮眿淇℃伅
+            freshRoomInfo(feeReceiptDtos);
+        } else {
+            feeReceiptDtos = new ArrayList<>();
+            feeReceiptList.addAll(feeReceiptDtos);
+        }
+
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) feeReceiptDto.getRow()), count, feeReceiptList);
+
+        ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
+
+        return responseEntity;
+    }
+
+    /**
+     * 鍒峰叆鎴垮眿淇℃伅
+     *
+     * @param feeReceiptDtos
+     */
+    private void freshRoomInfo(List<FeeReceiptDto> feeReceiptDtos) {
+
+        for (FeeReceiptDto feeReceiptDto : feeReceiptDtos) {
+            if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeReceiptDto.getObjType())) {
+                feeReceiptDto.setRoomName(feeReceiptDto.getObjName());
+                feeReceiptDto.setCarNum("-");
+                continue;
+            }
+
+            doFreshRoomInfo(feeReceiptDto);
+        }
+
+    }
+
+    /**
+     * 杞︿綅淇℃伅鍒峰叆鎴垮眿淇℃伅
+     *
+     * @param feeReceiptDto
+     */
+    private void doFreshRoomInfo(FeeReceiptDto feeReceiptDto) {
+        feeReceiptDto.setCarNum(feeReceiptDto.getObjName());
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setCarId(feeReceiptDto.getObjId());
+        ownerCarDto.setCommunityId(feeReceiptDto.getCommunityId());
+        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+        if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
+            feeReceiptDto.setRoomName("-");
+            return;
+        }
+        OwnerRoomRelDto ownerRoomRelDto = new OwnerRoomRelDto();
+        ownerRoomRelDto.setOwnerId(ownerCarDtos.get(0).getOwnerId());
+
+        List<OwnerRoomRelDto> ownerRoomRelDtos = ownerRoomRelInnerServiceSMOImpl.queryOwnerRoomRels(ownerRoomRelDto);
+        if (ownerRoomRelDtos == null || ownerRoomRelDtos.size() < 1) {
+            feeReceiptDto.setRoomName("-");
+            return;
+        }
+
+        List<String> roomIds = new ArrayList<>();
+        for (OwnerRoomRelDto tOwnerRoomRelDto : ownerRoomRelDtos) {
+            roomIds.add(tOwnerRoomRelDto.getRoomId());
+        }
+
+        RoomDto roomDto = new RoomDto();
+        roomDto.setCommunityId(feeReceiptDto.getCommunityId());
+        roomDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+        String roomName = "";
+        for (RoomDto tRoomDto : roomDtos) {
+            roomName += (tRoomDto.getFloorNum() + "鏍�" + tRoomDto.getUnitNum() + "鍗曞厓" + tRoomDto.getRoomNum() + "瀹�" + "/");
+        }
+
+        roomName = roomName.endsWith("/") ? roomName.substring(0, roomName.length() - 1) : roomName;
+        feeReceiptDto.setRoomName(roomName);
+    }
+
+
+    @Override
+    public ResponseEntity<String> gets(FeeReceiptDtoNew feeReceiptDtonew) {
+        FeeReceiptDto feeReceiptDto = new FeeReceiptDto();
+        feeReceiptDto.setPage(feeReceiptDtonew.getPage());
+        feeReceiptDto.setRow(feeReceiptDtonew.getRow());
+        feeReceiptDto.setCommunityId(feeReceiptDtonew.getCommunityId());
+        feeReceiptDto.setReceiptId(feeReceiptDtonew.getReceiptId());
+        feeReceiptDto.setObjType(feeReceiptDto.getObjType());
+        feeReceiptDto.setObjName(feeReceiptDto.getObjName());
+        int count = feeReceiptInnerServiceSMOImpl.queryFeeReceiptsCount(feeReceiptDto);
+
+        List<FeeReceiptDtoNew> feeReceiptDtos = null;
+        if (count > 0) {
+            feeReceiptDtos = feeReceiptInnerServiceSMOImpl.queryFeeReceiptsNew(feeReceiptDtonew);
         } else {
             feeReceiptDtos = new ArrayList<>();
         }
@@ -40,5 +153,4 @@
 
         return responseEntity;
     }
-
 }

--
Gitblit v1.8.0