From 2bac44b5f569357beec90e6ce60940802432c5e6 Mon Sep 17 00:00:00 2001
From: jinhai <9314122@qq.com>
Date: 星期日, 13 九月 2020 17:34:29 +0800
Subject: [PATCH] 新增预存费用功能
---
service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java | 81 +++++++++++++++++++++++++++++++++-------
1 files changed, 67 insertions(+), 14 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
index 3f31ee1..95ea105 100644
--- a/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/impl/QueryOweFeeImpl.java
@@ -1,5 +1,6 @@
package com.java110.fee.bmo.impl;
+import com.alibaba.fastjson.JSONArray;
import com.java110.dto.RoomDto;
import com.java110.dto.fee.BillDto;
import com.java110.dto.fee.BillOweFeeDto;
@@ -14,6 +15,7 @@
import com.java110.intf.fee.IFeeInnerServiceSMO;
import com.java110.intf.user.IOwnerInnerServiceSMO;
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;
@@ -75,12 +77,63 @@
@Override
public ResponseEntity<String> queryAllOwneFee(FeeDto feeDto) {
ResponseEntity<String> responseEntity = null;
+
+ if (!freshFeeDtoParam(feeDto)) {
+ return ResultVo.createResponseEntity(1, 0, new JSONArray());
+ }
+
if (FeeConfigDto.BILL_TYPE_EVERY.equals(feeDto.getBillType())) {
responseEntity = computeEveryOweFee(feeDto);
} else {
responseEntity = computeBillOweFee(feeDto);
}
return responseEntity;
+ }
+
+ private boolean freshFeeDtoParam(FeeDto feeDto) {
+
+ if (StringUtil.isEmpty(feeDto.getPayerObjId())) {
+ return true;
+ }
+
+ if (!feeDto.getPayerObjId().contains("#")) {
+ return false;
+ }
+ if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(feeDto.getPayerObjType())) {
+ String[] nums = feeDto.getPayerObjId().split("#");
+ if (nums.length != 3) {
+ return false;
+ }
+ RoomDto roomDto = new RoomDto();
+ roomDto.setFloorId(nums[0]);
+ roomDto.setUnitNum(nums[1]);
+ roomDto.setRoomNum(nums[2]);
+ roomDto.setCommunityId(feeDto.getCommunityId());
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+
+ if (roomDtos == null || roomDtos.size() < 1) {
+ return false;
+ }
+ feeDto.setPayerObjId(roomDtos.get(0).getRoomId());
+
+ } else {
+ String[] nums = feeDto.getPayerObjId().split("#");
+ if (nums.length != 2) {
+ return false;
+ }
+ ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
+ parkingSpaceDto.setAreaNum(nums[0]);
+ parkingSpaceDto.setNum(nums[1]);
+ parkingSpaceDto.setCommunityId(feeDto.getCommunityId());
+ List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
+
+ if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) {
+ return false;
+ }
+ feeDto.setPayerObjId(parkingSpaceDtos.get(0).getPsId());
+ }
+
+ return true;
}
/**
@@ -141,7 +194,7 @@
computeRoomFee(roomFees, roomIds);
}
- if (roomFees.size() > 0) {
+ if (psFees.size() > 0) {
computePsFee(psFees, psIds);
}
}
@@ -160,22 +213,16 @@
if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) { //鏁版嵁鏈夐棶棰�
return;
}
- List<String> ownerIds = new ArrayList<>();
for (ParkingSpaceDto tmpParkingSpaceDto : parkingSpaceDtos) {
for (FeeDto feeDto : psFees) {
dealFeePs(tmpParkingSpaceDto, feeDto);
}
- ownerIds.add(tmpParkingSpaceDto.getOwnerId());
- }
-
- if (ownerIds.size() < 1) {
- return;
}
OwnerDto ownerDto = new OwnerDto();
- ownerDto.setOwnerIds(ownerIds.toArray(new String[ownerIds.size()]));
+ ownerDto.setOwnerIds(psIds.toArray(new String[psIds.size()]));
ownerDto.setCommunityId(psFees.get(0).getCommunityId());
- List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwners(ownerDto);
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByParkingSpace(ownerDto);
for (OwnerDto tmpOwnerDto : ownerDtos) {
for (FeeDto feeDto : psFees) {
@@ -211,7 +258,7 @@
double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
BigDecimal price = new BigDecimal(feeDto.getFeePrice());
price = price.multiply(new BigDecimal(month));
- feeDto.setAmountOwed(price.doubleValue());
+ feeDto.setAmountOwed(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + "");
}
/**
@@ -255,7 +302,7 @@
}
feeDto.setOwnerName(tmpOwnerDto.getName());
- feeDto.setOwnerTel(feeDto.getOwnerTel());
+ feeDto.setOwnerTel(tmpOwnerDto.getLink());
}
private void dealFeeRoom(RoomDto tmpRoomDto, FeeDto feeDto) {
@@ -285,7 +332,7 @@
double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
BigDecimal price = new BigDecimal(feeDto.getFeePrice());
price = price.multiply(new BigDecimal(month));
- feeDto.setAmountOwed(price.doubleValue());
+ feeDto.setAmountOwed(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + "");
}
@@ -360,8 +407,11 @@
} else {
feePrice = 0.00;
}
-
feeDto.setFeePrice(feePrice);
+ double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
+ BigDecimal price = new BigDecimal(feeDto.getFeePrice());
+ price = price.multiply(new BigDecimal(month));
+ feeDto.setFeePrice(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
}
@@ -397,8 +447,11 @@
feePrice = 0.00;
}
-
feeDto.setFeePrice(feePrice);
+ double month = dayCompare(feeDto.getEndTime(), DateUtil.getCurrentDate());
+ BigDecimal price = new BigDecimal(feeDto.getFeePrice());
+ price = price.multiply(new BigDecimal(month));
+ feeDto.setFeePrice(price.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue());
}
--
Gitblit v1.8.0