From 960df3661045f3fc0eab6ce523950625b1982a77 Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 23 九月 2020 12:39:08 +0800
Subject: [PATCH] 加入收据存表 逻辑
---
service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 49 insertions(+), 10 deletions(-)
diff --git a/service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java b/service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java
index 0d4f57e..160d290 100644
--- a/service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java
+++ b/service-api/src/main/java/com/java110/api/bmo/fee/impl/FeeBMOImpl.java
@@ -5,6 +5,7 @@
import com.java110.api.bmo.ApiBaseBMO;
import com.java110.api.bmo.fee.IFeeBMO;
import com.java110.core.context.DataFlowContext;
+import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.RoomDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
@@ -16,10 +17,13 @@
import com.java110.intf.community.IRoomInnerServiceSMO;
import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
import com.java110.intf.fee.IFeeInnerServiceSMO;
+import com.java110.intf.user.IOwnerCarInnerServiceSMO;
import com.java110.po.car.CarInoutPo;
import com.java110.po.fee.PayFeeConfigPo;
import com.java110.po.fee.PayFeeDetailPo;
import com.java110.po.fee.PayFeePo;
+import com.java110.po.feeReceipt.FeeReceiptPo;
+import com.java110.po.feeReceiptDetail.FeeReceiptDetailPo;
import com.java110.utils.constant.BusinessTypeConstant;
import com.java110.utils.constant.CommonConstant;
import com.java110.utils.constant.ResponseConstant;
@@ -60,6 +64,9 @@
@Autowired
private ICarInoutInnerServiceSMO carInoutInnerServiceSMOImpl;
+
+ @Autowired
+ private IOwnerCarInnerServiceSMO ownerCarInnerServiceSMOImpl;
@Autowired
private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
@@ -104,7 +111,7 @@
* @param dataFlowContext 鏁版嵁涓婁笅鏂�
* @return 璁㈠崟鏈嶅姟鑳藉鎺ュ彈鐨勬姤鏂�
*/
- public JSONObject addFeeDetail(JSONObject paramInJson, DataFlowContext dataFlowContext) {
+ public JSONObject addFeeDetail(JSONObject paramInJson, DataFlowContext dataFlowContext, FeeReceiptDetailPo feeReceiptDetailPo, FeeReceiptPo feeReceiptPo) {
JSONObject business = JSONObject.parseObject("{\"datas\":{}}");
@@ -154,20 +161,23 @@
if ("3333".equals(feeDto.getPayerObjType())) { //鎴垮眿鐩稿叧
String computingFormula = feeDto.getComputingFormula();
+ RoomDto roomDto = new RoomDto();
+ roomDto.setRoomId(feeDto.getPayerObjId());
+ roomDto.setCommunityId(feeDto.getCommunityId());
+ List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
+ if (roomDtos == null || roomDtos.size() != 1) {
+ throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "鏈煡鍒版埧灞嬩俊鎭紝鏌ヨ澶氭潯鏁版嵁");
+ }
+ roomDto = roomDtos.get(0);
+ feeReceiptPo.setObjName(roomDto.getFloorNum() + "鏍�" + roomDto.getUnitNum() + "鍗曞厓" + roomDto.getRoomNum());
+
if ("1001".equals(computingFormula)) { //闈㈢Н*鍗曚环+闄勫姞璐�
- RoomDto roomDto = new RoomDto();
- roomDto.setRoomId(feeDto.getPayerObjId());
- roomDto.setCommunityId(feeDto.getCommunityId());
- List<RoomDto> roomDtos = roomInnerServiceSMOImpl.queryRooms(roomDto);
- if (roomDtos == null || roomDtos.size() != 1) {
- throw new ListenerExecuteException(ResponseConstant.RESULT_CODE_ERROR, "鏈煡鍒版埧灞嬩俊鎭紝鏌ヨ澶氭潯鏁版嵁");
- }
- roomDto = roomDtos.get(0);
//feePrice = Double.parseDouble(feeDto.getSquarePrice()) * Double.parseDouble(roomDtos.get(0).getBuiltUpArea()) + Double.parseDouble(feeDto.getAdditionalAmount());
BigDecimal squarePrice = new BigDecimal(Double.parseDouble(feeDto.getSquarePrice()));
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(roomDtos.get(0).getBuiltUpArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+ feeReceiptDetailPo.setArea(roomDtos.get(0).getBuiltUpArea());
} else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
@@ -186,16 +196,27 @@
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
.setScale(2, BigDecimal.ROUND_HALF_EVEN);
+ feeReceiptDetailPo.setArea(sub.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + "");
+
}
} else {
throw new IllegalArgumentException("鏆備笉鏀寔璇ョ被鍏紡");
}
} else if ("6666".equals(feeDto.getPayerObjType())) {//杞︿綅鐩稿叧
String computingFormula = feeDto.getComputingFormula();
+
+ OwnerCarDto ownerCarDto = new OwnerCarDto();
+ ownerCarDto.setCommunityId(feeDto.getCommunityId());
+ ownerCarDto.setCarId(feeDto.getPayerObjId());
+ List<OwnerCarDto> ownerCarDtos = ownerCarInnerServiceSMOImpl.queryOwnerCars(ownerCarDto);
+
+ if (ownerCarDtos != null && ownerCarDtos.size() > 0) {
+ feeReceiptPo.setObjName(ownerCarDtos.get(0).getCarNum());
+ }
if ("1001".equals(computingFormula)) { //闈㈢Н*鍗曚环+闄勫姞璐�
ParkingSpaceDto parkingSpaceDto = new ParkingSpaceDto();
parkingSpaceDto.setCommunityId(feeDto.getCommunityId());
- parkingSpaceDto.setPsId(feeDto.getPayerObjId());
+ parkingSpaceDto.setPsId(ownerCarDtos.get(0).getPsId());
List<ParkingSpaceDto> parkingSpaceDtos = parkingSpaceInnerServiceSMOImpl.queryParkingSpaces(parkingSpaceDto);
if (parkingSpaceDtos == null || parkingSpaceDtos.size() < 1) { //鏁版嵁鏈夐棶棰�
@@ -206,6 +227,8 @@
BigDecimal builtUpArea = new BigDecimal(Double.parseDouble(parkingSpaceDtos.get(0).getArea()));
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
feePrice = squarePrice.multiply(builtUpArea).add(additionalAmount).setScale(2, BigDecimal.ROUND_HALF_EVEN);
+ feeReceiptDetailPo.setArea(parkingSpaceDtos.get(0).getArea());
+
} else if ("2002".equals(computingFormula)) { // 鍥哄畾璐圭敤
//feePrice = Double.parseDouble(feeDto.getAdditionalAmount());
BigDecimal additionalAmount = new BigDecimal(Double.parseDouble(feeDto.getAdditionalAmount()));
@@ -224,6 +247,7 @@
feePrice = sub.multiply(squarePrice)
.add(additionalAmount)
.setScale(2, BigDecimal.ROUND_HALF_EVEN);
+ feeReceiptDetailPo.setArea(sub.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + "");
}
} else {
throw new IllegalArgumentException("鏆備笉鏀寔璇ョ被鍏紡");
@@ -245,6 +269,20 @@
business.getJSONObject(CommonConstant.HTTP_BUSINESS_DATAS).put(PayFeeDetailPo.class.getSimpleName(), businessFeeDetail);
+ feeReceiptDetailPo.setAmount(businessFeeDetail.getString("receivableAmount"));
+ feeReceiptDetailPo.setCommunityId(feeDto.getCommunityId());
+ feeReceiptDetailPo.setCycle(businessFeeDetail.getString("cycles"));
+ feeReceiptDetailPo.setDetailId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_detailId));
+ feeReceiptDetailPo.setEndTime(businessFeeDetail.getString("endTime"));
+ feeReceiptDetailPo.setFeeId(feeDto.getFeeId());
+ feeReceiptDetailPo.setFeeName(StringUtil.isEmpty(feeDto.getImportFeeName()) ? feeDto.getFeeName() : feeDto.getImportFeeName());
+ feeReceiptDetailPo.setStartTime(businessFeeDetail.getString("startTime"));
+ feeReceiptDetailPo.setReceiptId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_receiptId));
+ feeReceiptPo.setAmount(feeReceiptDetailPo.getAmount());
+ feeReceiptPo.setCommunityId(feeReceiptDetailPo.getCommunityId());
+ feeReceiptPo.setReceiptId(feeReceiptDetailPo.getReceiptId());
+ feeReceiptPo.setObjType(feeDto.getPayerObjType());
+ feeReceiptPo.setObjId(feeDto.getPayerObjId());
return business;
}
@@ -310,6 +348,7 @@
paramInJson.put("carPayerObjType", feeInfo.getPayerObjType());
paramInJson.put("carPayerObjId", feeInfo.getPayerObjId());
+
return business;
}
--
Gitblit v1.8.0