From 273ad4e1356cae9c7eb82f1e3754058b46f98bcc Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 13 一月 2021 11:59:07 +0800
Subject: [PATCH] 优化公摊问题
---
service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java | 40 +++++++++++++++++++++++++++++++---------
1 files changed, 31 insertions(+), 9 deletions(-)
diff --git a/service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java b/service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java
index 15939d7..8513b23 100644
--- a/service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java
+++ b/service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java
@@ -4,12 +4,13 @@
import com.java110.core.annotation.Java110Transactional;
import com.java110.core.factory.GenerateCodeFactory;
import com.java110.dto.RoomDto;
+import com.java110.dto.community.CommunityDto;
import com.java110.dto.fee.FeeAttrDto;
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.feeFormula.FeeFormulaDto;
import com.java110.fee.bmo.importFee.IFeeSharingBMO;
-import com.java110.intf.IImportFeeDetailInnerServiceSMO;
+import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.IRoomInnerServiceSMO;
import com.java110.intf.fee.*;
import com.java110.po.fee.FeeAttrPo;
@@ -59,6 +60,9 @@
@Autowired
private IImportFeeDetailInnerServiceSMO importFeeDetailInnerServiceSMOImpl;
+ @Autowired
+ private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
/**
* 娣诲姞灏忓尯淇℃伅
*
@@ -69,13 +73,22 @@
public ResponseEntity<String> share(JSONObject reqJson) {
+ CommunityDto communityDto = new CommunityDto();
+ communityDto.setCommunityId(reqJson.getString("communityId"));
+ List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
+
+ Assert.listOnlyOne(communityDtos, "鏈壘鍒板皬鍖轰俊鎭�");
+
String scope = reqJson.getString("scope");
RoomDto roomDto = new RoomDto();
- if(reqJson.containsKey("roomState") && reqJson.getString("roomState").split(",").length > 0){
+ if (reqJson.containsKey("roomState") && reqJson.getString("roomState").split(",").length > 0) {
String[] states = reqJson.getString("roomState").split(",");
roomDto.setStates(states);
- }else{
- roomDto.setState(RoomDto.STATE_SELL); // 宸茬粡鍏ヤ綇
+ } else {
+ roomDto.setStates(new String[]{RoomDto.STATE_SELL, RoomDto.STATE_SHOP_SELL}); // 宸茬粡鍏ヤ綇
+ }
+ if (reqJson.containsKey("roomType")) {
+ roomDto.setRoomType(reqJson.getString("roomType"));
}
List<RoomDto> roomDtos = null;
if ("1001".equals(scope)) {//灏忓尯
@@ -120,7 +133,7 @@
String formulaValue = deakFormula(feeFormulaDtos.get(0));
//鍏憡璐圭敤鍒版埧灞�
- sharingFeeToRoom(formulaValue, Double.parseDouble(feeFormulaDtos.get(0).getPrice()), roomDtos, reqJson, feeConfigDto);
+ sharingFeeToRoom(formulaValue, Double.parseDouble(feeFormulaDtos.get(0).getPrice()), roomDtos, reqJson, feeConfigDto, communityDtos.get(0));
return ResultVo.success();
@@ -133,7 +146,7 @@
* @param roomDtos
*/
private void sharingFeeToRoom(String formulaValue, double price, List<RoomDto> roomDtos,
- JSONObject reqJson, FeeConfigDto feeConfigDto) {
+ JSONObject reqJson, FeeConfigDto feeConfigDto, CommunityDto communityDto) {
List<PayFeePo> payFeePos = new ArrayList<>();
@@ -143,7 +156,8 @@
Map<String, Integer> floorRooms = new HashMap();
Map<String, Integer> unitRooms = new HashMap();
for (RoomDto roomDto : roomDtos) {
- doSharingFeeToRoom(formulaValue, price, roomDto, reqJson, payFeePos, feeConfigDto, feeAttrPos, importFeeId, importFeeDetailPos, floorRooms, unitRooms);
+ doSharingFeeToRoom(formulaValue, price, roomDto, reqJson, payFeePos, feeConfigDto, feeAttrPos,
+ importFeeId, importFeeDetailPos, floorRooms, unitRooms, communityDto);
}
feeInnerServiceSMOImpl.saveFee(payFeePos);
@@ -190,7 +204,8 @@
List<FeeAttrPo> feeAttrPos, String importFeeId,
List<ImportFeeDetailPo> importFeeDetailPos,
Map<String, Integer> floorRooms,
- Map<String, Integer> unitRooms) {
+ Map<String, Integer> unitRooms,
+ CommunityDto communityDto) {
if (!floorRooms.containsKey(roomDto.getFloorId())) {
RoomDto tmpRoomDto = new RoomDto();
@@ -213,6 +228,7 @@
long floorRoomCount = floorRooms.get(roomDto.getFloorId());
long unitRoomCount = unitRooms.get(roomDto.getUnitId());
+
String orgFormulaValue = formulaValue;
formulaValue = formulaValue.replace("T", reqJson.getString("totalDegrees"))
.replace("F", roomDto.getFloorArea())
@@ -220,7 +236,8 @@
.replace("R", roomDto.getBuiltUpArea())
.replace("X", roomDto.getFeeCoefficient())
.replace("L", floorRoomCount + "")
- .replace("D", unitRoomCount + "");
+ .replace("D", unitRoomCount + "")
+ .replace("C", communityDto.getCommunityArea());
ScriptEngineManager manager = new ScriptEngineManager();
@@ -286,6 +303,7 @@
.replace("F", roomDto.getFloorArea() + "<" + roomDto.getFloorNum() + "鏍嬮潰绉�>")
.replace("U", roomDto.getUnitArea() + "<" + roomDto.getUnitNum() + "鍗曞厓闈㈢Н>")
.replace("R", roomDto.getBuiltUpArea() + "<" + roomDto.getRoomNum() + "瀹ら潰绉�>")
+ .replace("C", communityDto.getCommunityArea() + "<灏忓尯闈㈢Н>")
.replace("X", roomDto.getFeeCoefficient() + "<" + roomDto.getRoomNum() + "瀹ょ畻璐圭郴鏁�>");
formulaValueRemark += (" * " + price + "<鍗曚环>");
@@ -313,6 +331,10 @@
importFeeDetailPo.setState("1000");
importFeeDetailPo.setImportFeeId(importFeeId);
importFeeDetailPo.setRemark("鍏憡鐢ㄩ噺锛�" + value);
+ importFeeDetailPo.setObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+ importFeeDetailPo.setObjId(roomDto.getRoomId());
+ importFeeDetailPo.setObjName(RoomDto.ROOM_TYPE_ROOM.equals(roomDto.getRoomType()) ? roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + roomDto.getRoomNum() :
+ roomDto.getFloorNum() + "-" + roomDto.getRoomNum());
importFeeDetailPos.add(importFeeDetailPo);
}
--
Gitblit v1.8.0