Quellcode durchsuchen

优化根据车位查询 审核费用

java110 vor 5 Jahren
Ursprung
Commit
e1a9bbffcb

+ 75 - 0
service-fee/src/main/java/com/java110/fee/bmo/payFeeAudit/impl/GetPayFeeAuditBMOImpl.java

@@ -1,13 +1,17 @@
 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.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;
@@ -31,12 +35,28 @@ public class GetPayFeeAuditBMOImpl implements IGetPayFeeAuditBMO {
     @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);
 
@@ -56,6 +76,61 @@ public class GetPayFeeAuditBMOImpl implements IGetPayFeeAuditBMO {
         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) {