java110
2021-03-04 0c51780582797cc003d59fe483c4e2754b2af577
service-fee/src/main/java/com/java110/fee/bmo/importFee/impl/FeeSharingBMOImpl.java
@@ -87,8 +87,9 @@
        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 +116,7 @@
        }
        if (roomDtos == null || roomDtos.size() < 1) {
            throw new IllegalArgumentException("未找到相应房屋公摊费用");
            throw new IllegalArgumentException("未找到相应房屋");
        }
        //房屋刷入业主信息
@@ -162,7 +163,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 +176,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 +187,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 +235,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 +261,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();