java110
2023-07-11 212aa4ae1f54fe4d3e51b9695224f9f86cd1bd22
service-report/src/main/java/com/java110/report/cmd/reportFeeMonthStatistics/QueryReportFloorFeeSummaryCmd.java
@@ -39,6 +39,9 @@
        queryStatisticsDto.setCommunityId(reqJson.getString("communityId"));
        queryStatisticsDto.setStartDate(reqJson.getString("startDate"));
        queryStatisticsDto.setEndDate(reqJson.getString("endDate"));
        if(reqJson.containsKey("endDate") && !reqJson.getString("endDate").contains(":")) {
            queryStatisticsDto.setEndDate(reqJson.getString("endDate") + " 23:59:59");
        }
        queryStatisticsDto.setFeeTypeCd(reqJson.getString("feeTypeCd"));
        if(reqJson.containsKey("configIds")){
            queryStatisticsDto.setConfigIds(reqJson.getString("configIds").split(","));
@@ -53,10 +56,8 @@
        BigDecimal feeRoomCountDec = null;
        BigDecimal oweRoomCountDec = null;
        BigDecimal feeRoomRate = null;
        BigDecimal hisOweFee = null;
        BigDecimal curReceivedFee = null;
        BigDecimal curReceivableFee = null;
        BigDecimal receivedFee = null;
        BigDecimal preReceivedFee = null;
        for(Map data:datas){
            //todo 计算 户收费率
            if(Double.parseDouble(data.get("feeRoomCount").toString())>0){
@@ -69,14 +70,11 @@
            }
            //todo 计算 收费率
            hisOweFee = new BigDecimal(Double.parseDouble(data.get("hisOweFee").toString()));
            curReceivedFee = new BigDecimal(Double.parseDouble(data.get("curReceivedFee").toString()));
            curReceivableFee = new BigDecimal(Double.parseDouble(data.get("curReceivableFee").toString()));
            hisOweFee = curReceivableFee.add(hisOweFee);
            if(hisOweFee.doubleValue()> 0){
                receivedFee = new BigDecimal(Double.parseDouble(data.get("receivedFee").toString()));
                preReceivedFee = new BigDecimal(Double.parseDouble(data.get("preReceivedFee").toString()));
                feeRoomRate = receivedFee.subtract(preReceivedFee).divide(hisOweFee,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP);
            if(curReceivableFee.doubleValue()> 0){
                feeRoomRate = curReceivedFee.divide(curReceivableFee,4,BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2,BigDecimal.ROUND_HALF_UP);
                data.put("feeRate",feeRoomRate.doubleValue());
            }else{
                data.put("feeRate",0.0);