From 0b04f664887c73e90bf684a4e69c0fdbfe26349d Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 29 三月 2023 13:35:20 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-fee/src/main/java/com/java110/fee/bmo/payFeeAudit/impl/GetPayFeeAuditBMOImpl.java |  137 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 130 insertions(+), 7 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/bmo/payFeeAudit/impl/GetPayFeeAuditBMOImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/payFeeAudit/impl/GetPayFeeAuditBMOImpl.java
old mode 100644
new mode 100755
index 5970a95..73c76f8
--- a/service-fee/src/main/java/com/java110/fee/bmo/payFeeAudit/impl/GetPayFeeAuditBMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/payFeeAudit/impl/GetPayFeeAuditBMOImpl.java
@@ -1,8 +1,19 @@
 package com.java110.fee.bmo.payFeeAudit.impl;
 
+import com.java110.core.smo.IComputeFeeSMO;
+import com.java110.dto.RoomDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.order.BusinessDto;
+import com.java110.dto.order.OrderDto;
+import com.java110.dto.owner.OwnerCarDto;
 import com.java110.dto.payFeeAudit.PayFeeAuditDto;
 import com.java110.fee.bmo.payFeeAudit.IGetPayFeeAuditBMO;
-import com.java110.intf.IPayFeeAuditInnerServiceSMO;
+import com.java110.intf.fee.IPayFeeAuditInnerServiceSMO;
+import com.java110.intf.community.IRoomInnerServiceSMO;
+import com.java110.intf.order.IOrderInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -18,27 +29,139 @@
     @Autowired
     private IPayFeeAuditInnerServiceSMO payFeeAuditInnerServiceSMOImpl;
 
+    @Autowired
+    private IComputeFeeSMO computeFeeSMOImpl;
+
+    @Autowired
+    private IOrderInnerServiceSMO orderInnerServiceSMOImpl;
+
+    @Autowired
+    private IRoomInnerServiceSMO roomInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
+
     /**
      * @param payFeeAuditDto
      * @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
      */
     public ResponseEntity<String> get(PayFeeAuditDto payFeeAuditDto) {
-
-
+        if (!refreshRoomPayObjId(payFeeAuditDto)) {
+            ResponseEntity<String> responseEntity = new ResponseEntity<String>("[]", HttpStatus.OK);
+            return responseEntity;
+        }
+        if (!refreshCarPayObjId(payFeeAuditDto)) {
+            ResponseEntity<String> responseEntity = new ResponseEntity<String>("[]", HttpStatus.OK);
+            return responseEntity;
+        }
         int count = payFeeAuditInnerServiceSMOImpl.queryPayFeeAuditsCount(payFeeAuditDto);
-
         List<PayFeeAuditDto> payFeeAuditDtos = null;
         if (count > 0) {
             payFeeAuditDtos = payFeeAuditInnerServiceSMOImpl.queryPayFeeAudits(payFeeAuditDto);
+            frashRoomAndStaff(payFeeAuditDtos);
         } else {
             payFeeAuditDtos = new ArrayList<>();
         }
-
         ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) payFeeAuditDto.getRow()), count, payFeeAuditDtos);
-
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
-
         return responseEntity;
     }
 
+    private boolean refreshCarPayObjId(PayFeeAuditDto payFeeAuditDto) {
+        String payObjId = payFeeAuditDto.getPayerObjId();
+        if (StringUtil.isEmpty(payObjId)) {
+            return true;
+        }
+
+        if (!FeeDto.PAYER_OBJ_TYPE_CAR.equals(payFeeAuditDto.getPayerObjId())) {
+            return true;
+        }
+
+        OwnerCarDto ownerCarDto = new OwnerCarDto();
+        ownerCarDto.setCarNum(payObjId);
+        ownerCarDto.setCommunityId(payFeeAuditDto.getCommunityId());
+        List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+        if (ownerCarDtos == null || ownerCarDtos.size() < 1) {
+            return false;
+        }
+
+        payFeeAuditDto.setPayerObjId(ownerCarDtos.get(0).getCarId());
+        return true;
+    }
+
+    private boolean refreshRoomPayObjId(PayFeeAuditDto payFeeAuditDto) {
+        String payObjId = payFeeAuditDto.getPayerObjId();
+        if (StringUtil.isEmpty(payObjId)) {
+            return true;
+        }
+
+        if (!payObjId.contains("-")) {
+            return true;
+        }
+
+        String[] payObjIds = payObjId.split("-");
+
+        if (payObjIds.length < 3) {
+            throw new IllegalArgumentException("鎴垮眿缂栧彿鏍煎紡閿欒锛屽簲璇ヤ负 妤兼爧-鍗曞厓-鎴垮眿");
+        }
+        RoomDto roomDto = new RoomDto();
+        roomDto.setCommunityId(payFeeAuditDto.getCommunityId());
+        roomDto.setFloorNum(payObjIds[0]);
+        roomDto.setUnitNum(payObjIds[1]);
+        roomDto.setRoomNum(payObjIds[2]);
+        List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+        if (roomDtos == null || roomDtos.size() < 1) {
+            return false;
+        }
+
+        payFeeAuditDto.setPayerObjId(roomDtos.get(0).getRoomId());
+        return true;
+
+
+    }
+
+    private void frashRoomAndStaff(List<PayFeeAuditDto> payFeeAuditDtos) {
+
+        if (payFeeAuditDtos == null || payFeeAuditDtos.size() < 1) {
+            return;
+        }
+
+        List<FeeDto> feeDtos = BeanConvertUtil.covertBeanList(payFeeAuditDtos, FeeDto.class);
+        computeFeeSMOImpl.freshFeeObjName(feeDtos);
+        List<String> bIds = new ArrayList<>();
+        for (PayFeeAuditDto payFeeAuditDto : payFeeAuditDtos) {
+            for (FeeDto feeDto : feeDtos) {
+                if (payFeeAuditDto.getFeeId().equals(feeDto.getFeeId())) {
+                    payFeeAuditDto.setPayerObjName(feeDto.getPayerObjName());
+                }
+            }
+
+            if (StringUtil.isEmpty(payFeeAuditDto.getbId()) || payFeeAuditDto.getbId().startsWith("-")) {
+                continue;
+            }
+
+            bIds.add(payFeeAuditDto.getbId());
+        }
+        if (bIds.size() < 1) {
+            return;
+        }
+        BusinessDto businessDto = new BusinessDto();
+        businessDto.setbIds(bIds.toArray(new String[bIds.size()]));
+        List<OrderDto> orderDtos = orderInnerServiceSMOImpl.queryOrderByBId(businessDto);
+
+        for (PayFeeAuditDto payFeeAuditDto : payFeeAuditDtos) {
+            for (OrderDto orderDto : orderDtos) {
+                if (StringUtil.isEmpty(payFeeAuditDto.getbId())) {
+                    continue;
+                }
+                if (payFeeAuditDto.getbId().equals(orderDto.getbId())) {
+                    payFeeAuditDto.setUserId(orderDto.getUserId());
+                    payFeeAuditDto.setUserName(orderDto.getUserName());
+                }
+            }
+        }
+    }
+
 }

--
Gitblit v1.8.0