| | |
| | | package com.java110.job.export.adapt; |
| | | |
| | | import com.alibaba.fastjson.JSONObject; |
| | | import com.java110.dto.FloorDto; |
| | | import com.java110.dto.floor.FloorDto; |
| | | import com.java110.dto.data.ExportDataDto; |
| | | import com.java110.dto.report.QueryStatisticsDto; |
| | | import com.java110.intf.community.IFloorV1InnerServiceSMO; |
| | |
| | | row.createCell(1).setCellValue("收费户"); |
| | | row.createCell(2).setCellValue("欠费户"); |
| | | row.createCell(3).setCellValue("历史欠费+当期欠费=欠费"); |
| | | row.createCell(6).setCellValue("欠费追回+当期实收+预交=实收"); |
| | | row.createCell(10).setCellValue("已交户/收费户=户收费率"); |
| | | row.createCell(11).setCellValue("(实收-预交)/(历史欠费+当期应收)=收费率"); |
| | | row.createCell(6).setCellValue("欠费追回+当期部分+预交=实缴"); |
| | | row.createCell(10).setCellValue("当期应收"); |
| | | row.createCell(11).setCellValue("当期实收"); |
| | | row.createCell(12).setCellValue("已交户/收费户=户收费率"); |
| | | row.createCell(13).setCellValue("当期实收/当期应收=收费率"); |
| | | row.createCell(14).setCellValue("欠费追回/(欠费追回+历史欠费)=清缴率"); |
| | | |
| | | JSONObject reqJson = exportDataDto.getReqJson(); |
| | | |
| | |
| | | doReportFeeSummary(sheet, reqJson); |
| | | |
| | | //todo 合并 3 4 5 |
| | | CellRangeAddress region = new CellRangeAddress(1, 1, 3, 5); |
| | | sheet.addMergedRegion(region); |
| | | CellRangeAddress region1 = new CellRangeAddress(1, 1, 6, 9); |
| | | sheet.addMergedRegion(region1); |
| | | sheet.addMergedRegion(new CellRangeAddress(0, 0, 3, 5)); |
| | | sheet.addMergedRegion(new CellRangeAddress(0, 0, 6, 9)); |
| | | return workbook; |
| | | |
| | | } |
| | |
| | | private void appendData(JSONObject dataObj, Sheet sheet, int step, FloorDto floorDto) { |
| | | |
| | | Row row = null; |
| | | row = sheet.createRow(step + 1); |
| | | row = sheet.createRow(step); |
| | | row.createCell(0).setCellValue(floorDto.getFloorName()); |
| | | row.createCell(1).setCellValue(dataObj.getString("feeRoomCount")); |
| | | row.createCell(2).setCellValue(dataObj.getString("oweRoomCount")); |
| | | row.createCell(3).setCellValue(dataObj.getString("hisOweFee")); |
| | | row.createCell(4).setCellValue(dataObj.getString("curOweFee")); |
| | | row.createCell(1).setCellValue(dataObj.getIntValue("feeRoomCount")); |
| | | row.createCell(2).setCellValue(dataObj.getIntValue("oweRoomCount")); |
| | | row.createCell(3).setCellValue(dataObj.getDouble("hisOweFee")); |
| | | row.createCell(4).setCellValue(dataObj.getDouble("curOweFee")); |
| | | |
| | | BigDecimal curOweFee = new BigDecimal(dataObj.getDouble("curOweFee")); |
| | | BigDecimal hisOweFee = new BigDecimal(dataObj.getDouble("hisOweFee")); |
| | | row.createCell(5).setCellValue(curOweFee.add(hisOweFee).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
| | | row.createCell(6).setCellValue(dataObj.getString("hisReceivedFee")); |
| | | |
| | | row.createCell(6).setCellValue(dataObj.getDouble("hisReceivedFee")); |
| | | //(fee.receivedFee-fee.hisReceivedFee-fee.preReceivedFee) |
| | | BigDecimal receivedFee = new BigDecimal(dataObj.getDouble("receivedFee")); |
| | | BigDecimal hisReceivedFee = new BigDecimal(dataObj.getDouble("hisReceivedFee")); |
| | | BigDecimal preReceivedFee = new BigDecimal(dataObj.getDouble("preReceivedFee")); |
| | | row.createCell(7).setCellValue(receivedFee.subtract(hisReceivedFee).subtract(preReceivedFee).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue()); |
| | | row.createCell(8).setCellValue(dataObj.getString("preReceivedFee")); |
| | | row.createCell(9).setCellValue(dataObj.getString("receivedFee")); |
| | | row.createCell(8).setCellValue(dataObj.getDouble("preReceivedFee")); |
| | | row.createCell(9).setCellValue(dataObj.getDouble("receivedFee")); |
| | | //((fee.feeRoomCount-fee.oweRoomCount)/fee.feeRoomCount*100).toFixed(2) |
| | | row.createCell(10).setCellValue(dataObj.getDouble("curReceivableFee")); |
| | | BigDecimal curReceivableFee = new BigDecimal(dataObj.getDouble("curReceivableFee")); |
| | | BigDecimal curReceivedFee = curReceivableFee.subtract(curOweFee); |
| | | row.createCell(11).setCellValue(curReceivedFee.doubleValue()); |
| | | |
| | | //todo 计算户收费率 |
| | | BigDecimal feeRoomCount = new BigDecimal(dataObj.getDouble("feeRoomCount")); |
| | | BigDecimal oweRoomCount = new BigDecimal(dataObj.getDouble("oweRoomCount")); |
| | | BigDecimal roomFeeRate = feeRoomCount.subtract(oweRoomCount).divide(feeRoomCount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | row.createCell(10).setCellValue(roomFeeRate.doubleValue() + "%"); |
| | | //((fee.receivedFee-fee.preReceivedFee)/(fee.hisOweFee+fee.curReceivableFee)*100).toFixed(2) |
| | | BigDecimal curReceivableFee = new BigDecimal(dataObj.getDouble("curReceivableFee")); |
| | | curReceivableFee = hisOweFee.add(curReceivableFee); |
| | | roomFeeRate = receivedFee.subtract(preReceivedFee).divide(curReceivableFee, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | row.createCell(11).setCellValue(roomFeeRate.doubleValue() + "%"); |
| | | BigDecimal roomFeeRate = new BigDecimal(0); |
| | | if (feeRoomCount.doubleValue() > 0) { |
| | | roomFeeRate = feeRoomCount.subtract(oweRoomCount).divide(feeRoomCount, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | row.createCell(12).setCellValue(roomFeeRate.doubleValue() + "%"); |
| | | |
| | | //todo 计算收费率 当期实收/当期应收=收费率 |
| | | roomFeeRate = new BigDecimal(0); |
| | | if (curReceivableFee.doubleValue() > 0) { |
| | | roomFeeRate = curReceivedFee.divide(curReceivableFee, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | //todo 计算清缴率 欠费追回/(欠费追回+历史欠费)=清缴率 |
| | | row.createCell(13).setCellValue(roomFeeRate.doubleValue() + "%"); |
| | | hisReceivedFee = hisReceivedFee.add(hisOweFee); |
| | | roomFeeRate = new BigDecimal(0); |
| | | if (hisReceivedFee.doubleValue() > 0) { |
| | | roomFeeRate = hisReceivedFee.divide(hisReceivedFee, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | row.createCell(14).setCellValue(roomFeeRate.doubleValue() + "%"); |
| | | } |
| | | |
| | | /** |
| | |
| | | queryStatisticsDto.setStartDate(reqJson.getString("startDate")); |
| | | queryStatisticsDto.setEndDate(reqJson.getString("endDate")); |
| | | queryStatisticsDto.setConfigId(reqJson.getString("configId")); |
| | | queryStatisticsDto.setFloorId(reqJson.getString("floorId")); |
| | | queryStatisticsDto.setFloorId(floorDto.getFloorId()); |
| | | queryStatisticsDto.setObjName(reqJson.getString("objName")); |
| | | queryStatisticsDto.setFeeTypeCd(reqJson.getString("feeTypeCd")); |
| | | if (reqJson.containsKey("configIds")) { |