Explorar el Código

优化押金导出异常

Signed-off-by: java110 <928255095@qq.com>
java110 hace 11 meses
padre
commit
f81ebc5cb8

+ 114 - 0
service-job/src/main/java/com/java110/job/export/adapt/ReportPayFeeDepositAdapt.java

@@ -0,0 +1,114 @@
+package com.java110.job.export.adapt;
+
+import com.alibaba.fastjson.JSONObject;
+import com.java110.dto.data.ExportDataDto;
+import com.java110.dto.fee.FeeConfigDto;
+import com.java110.dto.fee.FeeDto;
+import com.java110.dto.report.ReportDeposit;
+import com.java110.intf.fee.IFeeConfigInnerServiceSMO;
+import com.java110.intf.report.IReportFeeMonthStatisticsInnerServiceSMO;
+import com.java110.job.export.IExportDataAdapt;
+import com.java110.utils.util.BeanConvertUtil;
+import com.java110.utils.util.ListUtil;
+import com.java110.utils.util.StringUtil;
+import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.xssf.streaming.SXSSFWorkbook;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.text.ParseException;
+import java.util.List;
+
+@Service("reportPayFeeDeposit")
+public class ReportPayFeeDepositAdapt implements IExportDataAdapt {
+
+    @Autowired
+    private IReportFeeMonthStatisticsInnerServiceSMO reportFeeMonthStatisticsInnerServiceSMOImpl;
+
+    @Autowired
+    private IFeeConfigInnerServiceSMO feeConfigInnerServiceSMOImpl;
+    @Override
+    public SXSSFWorkbook exportData(ExportDataDto exportDataDto) throws ParseException {
+
+        JSONObject reqJson = exportDataDto.getReqJson();
+        SXSSFWorkbook workbook = null;  //工作簿
+        //工作表
+        workbook = new SXSSFWorkbook();
+        workbook.setCompressTempFiles(false);
+        Sheet sheet = workbook.createSheet("押金报表");
+        Row row = sheet.createRow(0);
+        row.createCell(0).setCellValue("费用ID");
+        row.createCell(1).setCellValue("房号");
+        row.createCell(2).setCellValue("业主");
+        row.createCell(3).setCellValue("费用类型");
+        row.createCell(4).setCellValue("费用项");
+        row.createCell(5).setCellValue("费用开始时间");
+        row.createCell(6).setCellValue("费用结束时间");
+        row.createCell(7).setCellValue("创建时间");
+        row.createCell(8).setCellValue("付费对象类型");
+        row.createCell(9).setCellValue("付款方ID");
+        row.createCell(10).setCellValue("应收金额");
+        row.createCell(11).setCellValue("状态");
+        row.createCell(12).setCellValue("退费状态");
+
+        List<ReportDeposit> reportPayFeeDeposits = this.getReportPayFeeDeposit(reqJson);
+        if (ListUtil.isNull(reportPayFeeDeposits)) {
+            return workbook;
+        }
+        ReportDeposit dataObj = null;
+        for (int roomIndex = 0; roomIndex < reportPayFeeDeposits.size(); roomIndex++) {
+            row = sheet.createRow(roomIndex + 1);
+            dataObj = reportPayFeeDeposits.get(roomIndex);
+            row.createCell(0).setCellValue(dataObj.getFeeId());
+            if (!StringUtil.isEmpty(dataObj.getPayerObjType()) && dataObj.getPayerObjType().equals("3333")) { //房屋
+                row.createCell(1).setCellValue(dataObj.getFloorNum() + "-" + dataObj.getUnitNum() + "-" + dataObj.getRoomNum());
+            } else {
+                row.createCell(1).setCellValue(dataObj.getObjName());
+            }
+            row.createCell(2).setCellValue(dataObj.getOwnerName());
+            row.createCell(3).setCellValue(dataObj.getFeeTypeCdName());
+            row.createCell(4).setCellValue(dataObj.getFeeName());
+            row.createCell(5).setCellValue(dataObj.getStartTime());
+            row.createCell(6).setCellValue(dataObj.getDeadlineTime());
+            row.createCell(7).setCellValue(dataObj.getCreateTime());
+            row.createCell(8).setCellValue(dataObj.getPayerObjTypeName());
+            row.createCell(9).setCellValue(dataObj.getPayerObjId());
+            row.createCell(10).setCellValue(dataObj.getAdditionalAmount());
+            row.createCell(11).setCellValue(dataObj.getStateName());
+            if (dataObj.getState().equals("2009001")) {
+                row.createCell(12).setCellValue(dataObj.getDetailStateName());
+            } else {
+                row.createCell(12).setCellValue("未缴费");
+            }
+        }
+        return workbook;
+    }
+
+    private List<ReportDeposit> getReportPayFeeDeposit(JSONObject reqJson) {
+
+        ReportDeposit reportDeposit = BeanConvertUtil.covertBean(reqJson,ReportDeposit.class);
+        reportDeposit.setPage(1);
+        reportDeposit.setRow(10000);
+        List<ReportDeposit> reportDeposits = reportFeeMonthStatisticsInnerServiceSMOImpl.queryPayFeeDeposit(reportDeposit);
+        //查询押金费用项
+        FeeConfigDto feeConfigDto = new FeeConfigDto();
+        feeConfigDto.setCommunityId(reportDeposit.getCommunityId());
+        feeConfigDto.setFeeTypeCd("888800010006");
+        List<FeeConfigDto> feeConfigDtos = feeConfigInnerServiceSMOImpl.queryFeeConfigs(feeConfigDto);
+
+
+        for (ReportDeposit deposit : reportDeposits) {
+            deposit.setFeeConfigDtos(feeConfigDtos);
+            if (FeeDto.PAYER_OBJ_TYPE_ROOM.equals(deposit.getPayerObjType())) {
+                deposit.setObjName(deposit.getFloorNum()
+                        + "栋" + deposit.getUnitNum()
+                        + "单元" + deposit.getRoomNum() + "室");
+            } else if (FeeDto.PAYER_OBJ_TYPE_CAR.equals(deposit.getPayerObjType())) {
+                deposit.setObjName(deposit.getCarNum());
+            }
+        }
+
+        return reportDeposits;
+    }
+}