From 6543cd42661e2f55b28bdc354022a57885d549de Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期四, 04 三月 2021 09:19:49 +0800
Subject: [PATCH] 优化公摊问题
---
service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java | 73 +++++++++++++++++++++++++++++++++---
1 files changed, 66 insertions(+), 7 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 01fe56a..a406044 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
@@ -9,15 +9,12 @@
import com.java110.dto.fee.FeeConfigDto;
import com.java110.dto.fee.FeeDto;
import com.java110.dto.feeFormula.FeeFormulaDto;
+import com.java110.dto.owner.OwnerDto;
import com.java110.fee.bmo.importFee.IFeeSharingBMO;
import com.java110.intf.community.ICommunityInnerServiceSMO;
import com.java110.intf.community.IRoomInnerServiceSMO;
-import com.java110.intf.fee.IFeeAttrInnerServiceSMO;
-import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
-import com.java110.intf.fee.IFeeFormulaInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.fee.IImportFeeDetailInnerServiceSMO;
-import com.java110.intf.fee.IImportFeeInnerServiceSMO;
+import com.java110.intf.fee.*;
+import com.java110.intf.user.IOwnerInnerServiceSMO;
import com.java110.po.fee.FeeAttrPo;
import com.java110.po.fee.PayFeeConfigPo;
import com.java110.po.fee.PayFeePo;
@@ -26,6 +23,7 @@
import com.java110.utils.util.Assert;
import com.java110.utils.util.BeanConvertUtil;
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;
@@ -68,6 +66,9 @@
@Autowired
private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+ @Autowired
+ private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
/**
* 娣诲姞灏忓尯淇℃伅
*
@@ -90,7 +91,14 @@
String[] states = reqJson.getString("roomState").split(",");
roomDto.setStates(states);
} else {
- roomDto.setState(RoomDto.STATE_SELL); // 宸茬粡鍏ヤ綇
+ roomDto.setStates(new String[]{RoomDto.STATE_SELL, RoomDto.STATE_SHOP_SELL}); // 宸茬粡鍏ヤ綇
+ }
+ if (reqJson.containsKey("roomType")) {
+ roomDto.setRoomType(reqJson.getString("roomType"));
+ }
+ if (reqJson.containsKey("feeLayer") && !"鍏ㄩ儴".equals(reqJson.getString("feeLayer"))) {
+ String[] layers = reqJson.getString("feeLayer").split("#");
+ roomDto.setLayers(layers);
}
List<RoomDto> roomDtos = null;
if ("1001".equals(scope)) {//灏忓尯
@@ -108,6 +116,25 @@
if (roomDtos == null || roomDtos.size() < 1) {
throw new IllegalArgumentException("鏈壘鍒扮浉搴旀埧灞嬪叕鎽婅垂鐢�");
+ }
+
+ //鎴垮眿鍒峰叆涓氫富淇℃伅
+ List<String> roomIds = new ArrayList<>();
+ for (RoomDto tmpRoomDto : roomDtos) {
+ roomIds.add(tmpRoomDto.getRoomId());
+ }
+ OwnerDto ownerDto = new OwnerDto();
+ ownerDto.setCommunityId(roomDtos.get(0).getCommunityId());
+ ownerDto.setRoomIds(roomIds.toArray(new String[roomIds.size()]));
+ List<OwnerDto> ownerDtos = ownerInnerServiceSMOImpl.queryOwnersByRoom(ownerDto);
+ for (RoomDto tmpRoomDto : roomDtos) {
+ for (OwnerDto tmpOwnerDto : ownerDtos) {
+ if (tmpRoomDto.getRoomId().equals(tmpOwnerDto.getRoomId())) {
+ tmpRoomDto.setOwnerId(tmpOwnerDto.getOwnerId());
+ tmpRoomDto.setOwnerName(tmpOwnerDto.getName());
+ tmpRoomDto.setLink(tmpOwnerDto.getLink());
+ }
+ }
}
FeeConfigDto feeConfigDto = new FeeConfigDto();
@@ -252,6 +279,7 @@
BigDecimal priceObj = new BigDecimal(price);
priceObj = valueObj.multiply(priceObj).setScale(2, BigDecimal.ROUND_HALF_EVEN);
amount = priceObj.doubleValue();
+ value = valueObj.setScale(2, BigDecimal.ROUND_HALF_EVEN).doubleValue() + "";
} catch (Exception e) {
throw new IllegalArgumentException("鍏紡璁$畻寮傚父锛屽叕寮忎负銆�" + orgFormulaValue + "銆�,璁$畻 銆�" + formulaValue + "銆戝紓甯�");
}
@@ -301,10 +329,37 @@
feeAttrPo.setFeeId(payFeePo.getFeeId());
feeAttrPos.add(feeAttrPo);
+ if (!StringUtil.isEmpty(roomDto.getOwnerId())) {
+ feeAttrPo = new FeeAttrPo();
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_ID);
+ feeAttrPo.setValue(roomDto.getOwnerId());
+ feeAttrPo.setFeeId(payFeePo.getFeeId());
+ feeAttrPos.add(feeAttrPo);
+
+ feeAttrPo = new FeeAttrPo();
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_NAME);
+ feeAttrPo.setValue(roomDto.getOwnerName());
+ feeAttrPo.setFeeId(payFeePo.getFeeId());
+ feeAttrPos.add(feeAttrPo);
+
+ feeAttrPo = new FeeAttrPo();
+ feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+ feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+ feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_OWNER_LINK);
+ feeAttrPo.setValue(roomDto.getLink());
+ feeAttrPo.setFeeId(payFeePo.getFeeId());
+ feeAttrPos.add(feeAttrPo);
+ }
+
String formulaValueRemark = orgFormulaValue.replace("T", reqJson.getString("totalDegrees") + "<鎬荤敤閲�>")
.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 + "<鍗曚环>");
@@ -332,6 +387,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