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 |  382 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 352 insertions(+), 30 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 7b65ec1..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
@@ -4,15 +4,30 @@
 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.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.IFeeFormulaInnerServiceSMO;
-import com.java110.intf.fee.IFeeInnerServiceSMO;
-import com.java110.intf.fee.IImportFeeInnerServiceSMO;
+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;
+import com.java110.utils.util.StringUtil;
 import com.java110.vo.ResultVo;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.ResponseEntity;
@@ -20,11 +35,16 @@
 
 import javax.script.ScriptEngine;
 import javax.script.ScriptEngineManager;
+import java.math.BigDecimal;
 import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 @Service("feeSharingBMOImpl")
 public class FeeSharingBMOImpl implements IFeeSharingBMO {
+
+    private static final String IMPORT_FEE_NAME = "瀵煎叆璐圭敤";
 
     @Autowired
     private IImportFeeInnerServiceSMO importFeeInnerServiceSMOImpl;
@@ -38,6 +58,27 @@
     @Autowired
     private IFeeInnerServiceSMO feeInnerServiceSMOImpl;
 
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeAttrInnerServiceSMO feeAttrInnerServiceSMOImpl;
+
+    @Autowired
+    private IImportFeeDetailInnerServiceSMO importFeeDetailInnerServiceSMOImpl;
+
+    @Autowired
+    private ICommunityInnerServiceSMO communityInnerServiceSMOImpl;
+
+    @Autowired
+    private IOwnerInnerServiceSMO ownerInnerServiceSMOImpl;
+
+    @Autowired
+    private IPayFeeBatchV1InnerServiceSMO payFeeBatchV1InnerServiceSMOImpl;
+
+    @Autowired
+    private IUserInnerServiceSMO userInnerServiceSMOImpl;
+
     /**
      * 娣诲姞灏忓尯淇℃伅
      *
@@ -48,9 +89,31 @@
     public ResponseEntity<String> share(JSONObject reqJson) {
 
 
+        CommunityDto communityDto = new CommunityDto();
+        communityDto.setCommunityId(reqJson.getString("communityId"));
+        List<CommunityDto> communityDtos = communityInnerServiceSMOImpl.queryCommunitys(communityDto);
+
+        Assert.listOnlyOne(communityDtos, "鏈壘鍒板皬鍖轰俊鎭�");
+
+        //鐢熸垚鎵规
+        generatorBatch(reqJson);
+
         String scope = reqJson.getString("scope");
         RoomDto roomDto = new RoomDto();
-        roomDto.setState(RoomDto.STATE_SELL); // 宸插敭鎴垮眿
+        String[] states = null;
+        if (reqJson.containsKey("roomState") && reqJson.getString("roomState").split(",").length > 0) {
+            states = reqJson.getString("roomState").split(",");
+            roomDto.setStates(states);
+        } else {
+            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)) {//灏忓尯
             roomDto.setCommunityId(reqJson.getString("objId"));
@@ -66,7 +129,40 @@
         }
 
         if (roomDtos == null || roomDtos.size() < 1) {
-            throw new IllegalArgumentException("鏈壘鍒扮浉搴旀埧灞嬪叕鎽婅垂鐢�");
+            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();
+        feeConfigDto.setFeeTypeCd(reqJson.getString("feeTypeCd"));
+        feeConfigDto.setFeeName(IMPORT_FEE_NAME);
+        feeConfigDto.setCommunityId(reqJson.getString("communityId"));
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+        // 鏍规嵁璐圭敤澶х被 鍒ゆ柇鏄惁鏈夊瓨鍦� 璐圭敤瀵煎叆鏀跺叆椤�
+        if (feeConfigDtos == null || feeConfigDtos.size() < 1) {
+            //鐢熸垚瀵煎叆璐�
+            feeConfigDto.setConfigId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_configId));
+            saveFeeConfig(feeConfigDto);
+        } else {
+            feeConfigDto.setConfigId(feeConfigDtos.get(0).getConfigId());
         }
 
         FeeFormulaDto feeFormulaDto = new FeeFormulaDto();
@@ -80,10 +176,10 @@
         String formulaValue = deakFormula(feeFormulaDtos.get(0));
 
         //鍏憡璐圭敤鍒版埧灞�
-        sharingFeeToRoom(formulaValue, roomDtos, reqJson);
+        sharingFeeToRoom(formulaValue, Double.parseDouble(feeFormulaDtos.get(0).getPrice()), roomDtos, reqJson, feeConfigDto, communityDtos.get(0),states);
 
 
-        return ResultVo.createResponseEntity(ResultVo.CODE_ERROR, "淇濆瓨澶辫触");
+        return ResultVo.success();
     }
 
     /**
@@ -92,13 +188,45 @@
      * @param formulaValue
      * @param roomDtos
      */
-    private void sharingFeeToRoom(String formulaValue, List<RoomDto> roomDtos, JSONObject reqJson) {
+    private void sharingFeeToRoom(String formulaValue, double price, List<RoomDto> roomDtos,
+                                  JSONObject reqJson, FeeConfigDto feeConfigDto, CommunityDto communityDto,String[] states) {
 
 
         List<PayFeePo> payFeePos = new ArrayList<>();
+        List<FeeAttrPo> feeAttrPos = new ArrayList<>();
+        List<ImportFeeDetailPo> importFeeDetailPos = new ArrayList<>();
+        String importFeeId = GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId);
+        Map<String, Integer> floorRooms = new HashMap();
+        Map<String, Integer> unitRooms = new HashMap();
         for (RoomDto roomDto : roomDtos) {
-            doSharingFeeToRoom(formulaValue, roomDto, reqJson, payFeePos);
+            doSharingFeeToRoom(formulaValue, price, roomDto, reqJson, payFeePos, feeConfigDto, feeAttrPos,
+                    importFeeId, importFeeDetailPos, floorRooms, unitRooms, communityDto,states);
         }
+
+        feeInnerServiceSMOImpl.saveFee(payFeePos);
+
+        feeAttrInnerServiceSMOImpl.saveFeeAttrs(feeAttrPos);
+
+        //淇濆瓨鏃ュ織
+        ImportFeePo importFeePo = new ImportFeePo();
+        importFeePo.setCommunityId(reqJson.getString("communityId"));
+        importFeePo.setFeeTypeCd(reqJson.getString("feeTypeCd"));
+        importFeePo.setImportFeeId(importFeeId);
+        String scope = reqJson.getString("scope");
+        String scopeName = "";
+        if ("1001".equals(scope)) {//灏忓尯
+            scopeName = "鏁翠釜灏忓尯";
+        } else if ("2002".equals(scope)) {//妤兼爧
+            scopeName = roomDtos.get(0).getFloorNum() + "鏍�";
+        } else {//鍗曞厓
+            scopeName = roomDtos.get(0).getFloorNum() + "鏍�" + roomDtos.get(0).getUnitNum() + "鍗曞厓";
+        }
+        importFeePo.setRemark("鎬讳娇鐢ㄩ噺锛�" + reqJson.getString("totalDegrees")
+                + ";鍏紡锛�" + formulaValue + ";鍏憡鑼冨洿锛�" + scopeName);
+        importFeeInnerServiceSMOImpl.saveImportFee(importFeePo);
+
+        importFeeDetailInnerServiceSMOImpl.saveImportFeeDetails(importFeeDetailPos);
+
     }
 
     /**
@@ -114,46 +242,181 @@
      * @param formulaValue
      * @param roomDto
      */
-    private void doSharingFeeToRoom(String formulaValue, RoomDto roomDto, JSONObject reqJson, List<PayFeePo> payFeePos) {
-        Assert.hasKeyAndValue(reqJson, "communityId", "鏈寘鍚皬鍖篒D");
-        Assert.hasKeyAndValue(reqJson, "totalDegrees", "鏈寘鍚娇鐢ㄩ噺");
-        Assert.hasKeyAndValue(reqJson, "scope", "鏈寘鍚叕鎽婅寖鍥�");
-        Assert.hasKeyAndValue(reqJson, "formulaId", "鏈寘鍚叕鎽婂叕寮�");
-        Assert.hasKeyAndValue(reqJson, "feeName", "鏈寘鍚垂鐢ㄥ悕绉�");
-        Assert.hasKeyAndValue(reqJson, "startTime", "鏈寘鍚紑濮嬫椂闂�");
-        Assert.hasKeyAndValue(reqJson, "endTime", "鏈寘鍚粨鏉熸椂闂�");
-        Assert.hasKeyAndValue(reqJson, "objId", "鏈寘鍚叕鎽婂璞�");
-        Assert.hasKeyAndValue(reqJson, "feeTypeCd", "鏈寘鍚垂鐢ㄧ被鍨�");
+    private void doSharingFeeToRoom(String formulaValue, double price, RoomDto roomDto, JSONObject reqJson,
+                                    List<PayFeePo> payFeePos, FeeConfigDto feeConfigDto,
+                                    List<FeeAttrPo> feeAttrPos, String importFeeId,
+                                    List<ImportFeeDetailPo> importFeeDetailPos,
+                                    Map<String, Integer> floorRooms,
+                                    Map<String, Integer> unitRooms,
+                                    CommunityDto communityDto,
+                                    String[] states) {
+
+        if (!floorRooms.containsKey(roomDto.getFloorId())) {
+            RoomDto tmpRoomDto = new RoomDto();
+            tmpRoomDto.setCommunityId(communityDto.getCommunityId());
+            tmpRoomDto.setFloorId(roomDto.getFloorId());
+            tmpRoomDto.setStates(states);
+            int roomCount = roomInnerServiceSMOImpl.queryRoomsCount(tmpRoomDto);
+            floorRooms.put(roomDto.getFloorId(), roomCount);
+        }
+
+        if (!unitRooms.containsKey(roomDto.getUnitId())) {
+            RoomDto tmpRoomDto = new RoomDto();
+            tmpRoomDto.setCommunityId(communityDto.getCommunityId());
+            tmpRoomDto.setUnitId(roomDto.getUnitId());
+            tmpRoomDto.setStates(states);
+            int roomCount = roomInnerServiceSMOImpl.queryRoomsCount(tmpRoomDto);
+            unitRooms.put(roomDto.getUnitId(), roomCount);
+        }
+
+        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())
-                .replace("U", roomDto.getUnitArea())
-                .replace("R", roomDto.getBuiltUpArea())
-                .replace("X", roomDto.getFeeCoefficient());
+        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();
         ScriptEngine engine = manager.getEngineByName("JavaScript");
         String value = "";
+        double amount = 0.0;
         try {
             value = engine.eval(formulaValue).toString();
-            value = engine.eval(value + ".toFixed(2)").toString();
+            BigDecimal valueObj = new BigDecimal(Double.parseDouble(value));
+            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 + "銆戝紓甯�");
         }
 
         PayFeePo payFeePo = new PayFeePo();
-        payFeePo.setEndTime(reqJson.getString("endTime"));
-        payFeePo.setUserId(reqJson.getString("userId"));
-        payFeePo.setPayerObjId(roomDto.getRoomId());
-        payFeePo.setCommunityId(reqJson.getString("communityId"));
         payFeePo.setFeeId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+        payFeePo.setEndTime(reqJson.getString("startTime"));
         payFeePo.setState(FeeDto.STATE_DOING);
+        payFeePo.setCommunityId(reqJson.getString("communityId"));
+        payFeePo.setConfigId(feeConfigDto.getConfigId());
+        payFeePo.setPayerObjId(roomDto.getRoomId());
+        payFeePo.setPayerObjType(FeeDto.PAYER_OBJ_TYPE_ROOM);
+        payFeePo.setUserId(reqJson.getString("userId"));
         payFeePo.setIncomeObjId(reqJson.getString("storeId"));
-        //payFeePo.setFeeFlag();
+        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));
+
+        payFeePos.add(payFeePo);
+
+        // 瀵煎叆璐圭敤鍚嶇О
+        FeeAttrPo feeAttrPo = new FeeAttrPo();
+        feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+        feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+        feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_IMPORT_FEE_NAME);
+        feeAttrPo.setValue(reqJson.getString("feeName"));
+        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_SHARE_DEGREES);
+        feeAttrPo.setValue(value);
+        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_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);
+
+        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 + "<鍗曚环>");
+        // 鍏憡鍏紡
+        feeAttrPo = new FeeAttrPo();
+        feeAttrPo.setCommunityId(reqJson.getString("communityId"));
+        feeAttrPo.setAttrId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_attrId));
+        feeAttrPo.setSpecCd(FeeAttrDto.SPEC_CD_SHARE_FORMULA);
+        feeAttrPo.setValue(formulaValueRemark);
+        feeAttrPo.setFeeId(payFeePo.getFeeId());
+        feeAttrPos.add(feeAttrPo);
+
+        ImportFeeDetailPo importFeeDetailPo = new ImportFeeDetailPo();
+        importFeeDetailPo.setAmount(amount + "");
+        importFeeDetailPo.setCommunityId(reqJson.getString("communityId"));
+        importFeeDetailPo.setEndTime(reqJson.getString("endTime"));
+        importFeeDetailPo.setFeeId(payFeePo.getFeeId());
+        importFeeDetailPo.setFeeName(reqJson.getString("feeName"));
+        importFeeDetailPo.setFloorNum(roomDto.getFloorNum());
+        importFeeDetailPo.setUnitNum(roomDto.getUnitNum());
+        importFeeDetailPo.setRoomNum(roomDto.getRoomNum());
+        importFeeDetailPo.setRoomId(roomDto.getRoomId());
+        importFeeDetailPo.setStartTime(reqJson.getString("startTime"));
+        importFeeDetailPo.setIfdId(GenerateCodeFactory.getGeneratorId(GenerateCodeFactory.CODE_PREFIX_feeId));
+        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);
     }
 
     private String deakFormula(FeeFormulaDto feeFormulaDto) {
@@ -166,4 +429,63 @@
         return value;
     }
 
+
+    /**
+     * 淇濆瓨淇濆瓨瀵煎叆璐圭敤閰嶇疆
+     *
+     * @param feeConfigDto
+     */
+    private void saveFeeConfig(FeeConfigDto feeConfigDto) {
+
+        PayFeeConfigPo payFeeConfigPo = BeanConvertUtil.covertBean(feeConfigDto, PayFeeConfigPo.class);
+        payFeeConfigPo.setAdditionalAmount("0");
+        payFeeConfigPo.setBillType(FeeConfigDto.BILL_TYPE_MONTH);
+        payFeeConfigPo.setComputingFormula("4004");
+        payFeeConfigPo.setEndTime(DateUtil.getLastTime());
+        payFeeConfigPo.setFeeFlag("2006012");
+        payFeeConfigPo.setIsDefault("T");
+        payFeeConfigPo.setPaymentCd("2100");
+        payFeeConfigPo.setFeeName(IMPORT_FEE_NAME);
+        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) {
+            throw new IllegalArgumentException("鍒涘缓瀵煎叆璐圭敤澶辫触");
+        }
+    }
+
+    /**
+     * 鐢熸垚鎵规鍙�
+     *
+     * @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