From 0b04f664887c73e90bf684a4e69c0fdbfe26349d Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 29 三月 2023 13:35:20 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java |   93 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 75 insertions(+), 18 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
old mode 100644
new mode 100755
index a406044..e645c99
--- 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
@@ -10,16 +10,20 @@
 import com.java110.dto.fee.FeeDto;
 import com.java110.dto.feeFormula.FeeFormulaDto;
 import com.java110.dto.owner.OwnerDto;
+import com.java110.dto.payFeeBatch.PayFeeBatchDto;
+import com.java110.dto.user.UserDto;
 import com.java110.fee.bmo.importFee.IFeeSharingBMO;
 import com.java110.intf.community.ICommunityInnerServiceSMO;
 import com.java110.intf.community.IRoomInnerServiceSMO;
 import com.java110.intf.fee.*;
 import com.java110.intf.user.IOwnerInnerServiceSMO;
+import com.java110.intf.user.IUserInnerServiceSMO;
 import com.java110.po.fee.FeeAttrPo;
 import com.java110.po.fee.PayFeeConfigPo;
 import com.java110.po.fee.PayFeePo;
 import com.java110.po.importFee.ImportFeePo;
 import com.java110.po.importFeeDetail.ImportFeeDetailPo;
+import com.java110.po.payFeeBatch.PayFeeBatchPo;
 import com.java110.utils.util.Assert;
 import com.java110.utils.util.BeanConvertUtil;
 import com.java110.utils.util.DateUtil;
@@ -69,6 +73,12 @@
     @Autowired
     private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
 
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     /**
      * 娣诲姞灏忓尯淇℃伅
      *
@@ -85,10 +95,14 @@
 
         Assert.listOnlyOne(communityDtos, "鏈壘鍒板皬鍖轰俊鎭�");
 
+        //鐢熸垚鎵规
+        generatorBatch(reqJson);
+
         String scope = reqJson.getString("scope");
         RoomDto roomDto = new RoomDto();
+        String[] states = null;
         if (reqJson.containsKey("roomState") && reqJson.getString("roomState").split(",").length > 0) {
-            String[] states = reqJson.getString("roomState").split(",");
+            states = reqJson.getString("roomState").split(",");
             roomDto.setStates(states);
         } else {
             roomDto.setStates(new String[]{RoomDto.STATE_SELL, RoomDto.STATE_SHOP_SELL}); // 宸茬粡鍏ヤ綇
@@ -115,7 +129,7 @@
         }
 
         if (roomDtos == null || roomDtos.size() < 1) {
-            throw new IllegalArgumentException("鏈壘鍒扮浉搴旀埧灞嬪叕鎽婅垂鐢�");
+            throw new IllegalArgumentException("鏈壘鍒扮浉搴旀埧灞�");
         }
 
         //鎴垮眿鍒峰叆涓氫富淇℃伅
@@ -162,7 +176,7 @@
         String formulaValue = deakFormula(feeFormulaDtos.get(0));
 
         //鍏憡璐圭敤鍒版埧灞�
-        sharingFeeToRoom(formulaValue, Double.parseDouble(feeFormulaDtos.get(0).getPrice()), roomDtos, reqJson, feeConfigDto, communityDtos.get(0));
+        sharingFeeToRoom(formulaValue, Double.parseDouble(feeFormulaDtos.get(0).getPrice()), roomDtos, reqJson, feeConfigDto, communityDtos.get(0),states);
 
 
         return ResultVo.success();
@@ -175,7 +189,7 @@
      * @param roomDtos
      */
     private void sharingFeeToRoom(String formulaValue, double price, List<RoomDto> roomDtos,
-                                  JSONObject reqJson, FeeConfigDto feeConfigDto, CommunityDto communityDto) {
+                                  JSONObject reqJson, FeeConfigDto feeConfigDto, CommunityDto communityDto,String[] states) {
 
 
         List<PayFeePo> payFeePos = new ArrayList<>();
@@ -186,7 +200,7 @@
         Map<String, Integer> unitRooms = new HashMap();
         for (RoomDto roomDto : roomDtos) {
             doSharingFeeToRoom(formulaValue, price, roomDto, reqJson, payFeePos, feeConfigDto, feeAttrPos,
-                    importFeeId, importFeeDetailPos, floorRooms, unitRooms, communityDto);
+                    importFeeId, importFeeDetailPos, floorRooms, unitRooms, communityDto,states);
         }
 
         feeInnerServiceSMOImpl.saveFee(payFeePos);
@@ -234,22 +248,23 @@
                                     List<ImportFeeDetailPo> importFeeDetailPos,
                                     Map<String, Integer> floorRooms,
                                     Map<String, Integer> unitRooms,
-                                    CommunityDto communityDto) {
+                                    CommunityDto communityDto,
+                                    String[] states) {
 
         if (!floorRooms.containsKey(roomDto.getFloorId())) {
             RoomDto tmpRoomDto = new RoomDto();
-            tmpRoomDto.setCommunityId(roomDto.getCommunityId());
+            tmpRoomDto.setCommunityId(communityDto.getCommunityId());
             tmpRoomDto.setFloorId(roomDto.getFloorId());
-            tmpRoomDto.setState(RoomDto.STATE_SELL);
+            tmpRoomDto.setStates(states);
             int roomCount = roomInnerServiceSMOImpl.queryRoomsCount(tmpRoomDto);
             floorRooms.put(roomDto.getFloorId(), roomCount);
         }
 
         if (!unitRooms.containsKey(roomDto.getUnitId())) {
             RoomDto tmpRoomDto = new RoomDto();
-            tmpRoomDto.setCommunityId(roomDto.getCommunityId());
+            tmpRoomDto.setCommunityId(communityDto.getCommunityId());
             tmpRoomDto.setUnitId(roomDto.getUnitId());
-            tmpRoomDto.setState(RoomDto.STATE_SELL);
+            tmpRoomDto.setStates(states);
             int roomCount = roomInnerServiceSMOImpl.queryRoomsCount(tmpRoomDto);
             unitRooms.put(roomDto.getUnitId(), roomCount);
         }
@@ -259,14 +274,14 @@
 
 
         String orgFormulaValue = formulaValue;
-        formulaValue = formulaValue.replace("T", reqJson.getString("totalDegrees"))
-                .replace("F", roomDto.getFloorArea())
-                .replace("U", roomDto.getUnitArea())
-                .replace("R", roomDto.getBuiltUpArea())
-                .replace("X", roomDto.getFeeCoefficient())
-                .replace("L", floorRoomCount + "")
-                .replace("D", unitRoomCount + "")
-                .replace("C", communityDto.getCommunityArea());
+        formulaValue = formulaValue.replaceAll("T", reqJson.getString("totalDegrees"))
+                .replaceAll("F", roomDto.getFloorArea())
+                .replaceAll("U", roomDto.getUnitArea())
+                .replaceAll("R", roomDto.getBuiltUpArea())
+                .replaceAll("X", roomDto.getFeeCoefficient())
+                .replaceAll("L", floorRoomCount + "")
+                .replaceAll("D", unitRoomCount + "")
+                .replaceAll("C", communityDto.getCommunityArea());
 
 
         ScriptEngineManager manager = new ScriptEngineManager();
@@ -297,6 +312,7 @@
         payFeePo.setFeeTypeCd(reqJson.getString("feeTypeCd"));
         payFeePo.setFeeFlag(FeeDto.FEE_FLAG_ONCE);
         payFeePo.setAmount(amount + "");
+        payFeePo.setBatchId(reqJson.getString("batchId"));
         //payFeePo.setStartTime(importRoomFee.getStartTime());
         payFeePo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
 
@@ -326,6 +342,15 @@
         feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
         feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_TOTAL_DEGREES);
         feeAttrPo.setValue(reqJson.getString("totalDegrees"));
+        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_ONCE_FEE_DEADLINE_TIME);
+        feeAttrPo.setValue(reqJson.getString("endTime"));
         feeAttrPo.setFeeId(payFeePo.getFeeId());
         feeAttrPos.add(feeAttrPo);
 
@@ -424,6 +449,11 @@
         payFeeConfigPo.setSquarePrice("0");
         payFeeConfigPo.setPaymentCycle("1");
         payFeeConfigPo.setStartTime(DateUtil.getNow(DateUtil.DATE_FORMATE_STRING_A));
+        payFeeConfigPo.setDeductFrom(FeeConfigDto.DEDUCT_FROM_N);
+        payFeeConfigPo.setDecimalPlace("2");
+        payFeeConfigPo.setScale("1");
+        payFeeConfigPo.setUnits("鍏�");
+        payFeeConfigPo.setPayOnline("Y");
         int saveFlag = feeConfigInnerServiceSMOImpl.saveFeeConfig(payFeeConfigPo);
 
         if (saveFlag < 1) {
@@ -431,4 +461,31 @@
         }
     }
 
+    /**
+     * 鐢熸垚鎵规鍙�
+     *
+     * @param reqJson
+     */
+    private void generatorBatch(JSONObject reqJson) {
+        PayFeeBatchPo payFeeBatchPo = new PayFeeBatchPo();
+        payFeeBatchPo.setBatchId(GenerateCodeFactory.getGeneratorId("12"));
+        payFeeBatchPo.setCommunityId(reqJson.getString("communityId"));
+        payFeeBatchPo.setCreateUserId(reqJson.getString("userId"));
+        UserDto userDto = new UserDto();
+        userDto.setUserId(reqJson.getString("userId"));
+        List<UserDto> userDtos = userInnerServiceSMOImpl.getUsers(userDto);
+
+        Assert.listOnlyOne(userDtos, "鐢ㄦ埛涓嶅瓨鍦�");
+        payFeeBatchPo.setCreateUserName(userDtos.get(0).getUserName());
+        payFeeBatchPo.setState(PayFeeBatchDto.STATE_NORMAL);
+        payFeeBatchPo.setMsg("姝e父");
+        int flag = payFeeBatchV1InnerServiceSMOImpl.savePayFeeBatch(payFeeBatchPo);
+
+        if (flag < 1) {
+            throw new IllegalArgumentException("鐢熸垚鎵规澶辫触");
+        }
+
+        reqJson.put("batchId", payFeeBatchPo.getBatchId());
+    }
+
 }

--
Gitblit v1.8.0