java110 hace 2 años
padre
commit
89e0b0e886

+ 34 - 17
service-job/src/main/java/com/java110/job/export/adapt/DataReportEarnedDetailStatisticsAdapt.java

@@ -89,14 +89,14 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
         queryStatisticsDto.setPage(reqJson.getInteger("page"));
         queryStatisticsDto.setRow(reqJson.getInteger("row"));
 
-        long roomCount = getRoomCount(queryStatisticsDto);
+        long roomCount = getReceivedRoomCount(queryStatisticsDto);
 
         roomCount = (int) Math.ceil((double) roomCount / (double) MAX_ROW);
 
         for (int page = 1; page <= roomCount; page++) {
             queryStatisticsDto.setPage(page);
             queryStatisticsDto.setRow(MAX_ROW);
-            List<RoomDto> rooms = getRoomInfo(queryStatisticsDto);
+            List<RoomDto> rooms = getReceivedRoomInfo(queryStatisticsDto);
             // todo 计算 房屋欠费实收数据
             JSONArray datas = computeRoomOweReceivedFee(rooms,queryStatisticsDto);
             appendData(datas, sheet, dictDtos,(page - 1) * MAX_ROW);
@@ -157,7 +157,7 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
      * @param queryStatisticsDto
      * @return
      */
-    public long getRoomCount(QueryStatisticsDto queryStatisticsDto) {
+    public long getReceivedRoomCount(QueryStatisticsDto queryStatisticsDto) {
 
         RoomDto roomDto = new RoomDto();
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
@@ -165,8 +165,10 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
         roomDto.setOwnerName(queryStatisticsDto.getOwnerName());
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
         roomDto.setLink(queryStatisticsDto.getLink());
+        roomDto.setStartDate(queryStatisticsDto.getStartDate());
+        roomDto.setEndDate(queryStatisticsDto.getEndDate());
         addRoomNumCondition(queryStatisticsDto, roomDto);
-        return baseDataStatisticsInnerServiceSMOImpl.getRoomCount(roomDto);
+        return baseDataStatisticsInnerServiceSMOImpl.getReceivedRoomCount(roomDto);
     }
 
     /**
@@ -175,7 +177,7 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
      * @param queryStatisticsDto
      * @return
      */
-    public List<RoomDto> getRoomInfo(QueryStatisticsDto queryStatisticsDto) {
+    public List<RoomDto> getReceivedRoomInfo(QueryStatisticsDto queryStatisticsDto) {
         RoomDto roomDto = new RoomDto();
         roomDto.setCommunityId(queryStatisticsDto.getCommunityId());
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
@@ -184,8 +186,10 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
         roomDto.setOwnerName(queryStatisticsDto.getOwnerName());
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
         roomDto.setLink(queryStatisticsDto.getLink());
+        roomDto.setStartDate(queryStatisticsDto.getStartDate());
+        roomDto.setEndDate(queryStatisticsDto.getEndDate());
         addRoomNumCondition(queryStatisticsDto, roomDto);
-        return baseDataStatisticsInnerServiceSMOImpl.getRoomInfo(roomDto);
+        return baseDataStatisticsInnerServiceSMOImpl.getReceivedRoomInfo(roomDto);
     }
 
 
@@ -219,7 +223,7 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
 
     }
 
-    private JSONArray computeRoomOweReceivedFee(List<RoomDto> rooms,QueryStatisticsDto queryStatisticsDto) {
+    private JSONArray computeRoomOweReceivedFee(List<RoomDto> rooms, QueryStatisticsDto queryStatisticsDto) {
         if (rooms == null || rooms.size() < 1) {
             return new JSONArray();
         }
@@ -231,11 +235,11 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
         for (RoomDto roomDto : rooms) {
             objIds.add(roomDto.getRoomId());
             data = new JSONObject();
-            data.put("roomId",roomDto.getRoomId());
-            data.put("roomName",roomDto.getFloorNum()+"-"+roomDto.getUnitNum()+"-"+roomDto.getRoomNum());
-            data.put("ownerName",roomDto.getOwnerName());
-            data.put("ownerId",roomDto.getOwnerId());
-            data.put("link",roomDto.getLink());
+            data.put("roomId", roomDto.getRoomId());
+            data.put("roomName", roomDto.getFloorNum() + "-" + roomDto.getUnitNum() + "-" + roomDto.getRoomNum());
+            data.put("ownerName", roomDto.getOwnerName());
+            data.put("ownerId", roomDto.getOwnerId());
+            data.put("link", roomDto.getLink());
             datas.add(data);
         }
 
@@ -253,30 +257,43 @@ public class DataReportEarnedDetailStatisticsAdapt implements IExportDataAdapt {
         // todo  nInfo.put(info.get("feeTypeCd").toString(), tmpInfos);
         infos = washInfos(infos);
 
-        BigDecimal receivedFee = new BigDecimal(0.00);
+        //System.out.printf("infos = " + JSONObject.toJSONString(infos));
+
+        BigDecimal receivedFee = null;
         List<Map> itemFees = null;
         String feeTypeCd = "";
         data.put("receivedFee", "0");
 
+        DictDto dictDto = new DictDto();
+        dictDto.setTableName("pay_fee_config");
+        dictDto.setTableColumns("fee_type_cd_show");
+        List<DictDto> dictDtos = dictV1InnerServiceSMOImpl.queryDicts(dictDto);
+
         // todo 根据房屋ID 和payerObjId 比较 合并数据,讲费用大类 横向 放入 data中,
         // todo 并且计算每个 房屋 费用大类的欠费 和房屋的总欠费
         for (int dataIndex = 0; dataIndex < datas.size(); dataIndex++) {
+            receivedFee = new BigDecimal(0.00);
             data = datas.getJSONObject(dataIndex);
             //todo 这里循环费用大类
             for (Map info : infos) {
                 if (!data.getString("roomId").equals(info.get("payerObjId"))) {
                     continue;
                 }
-                feeTypeCd = info.get("feeTypeCd").toString();
-                receivedFee = receivedFee.add(new BigDecimal(info.get(feeTypeCd + "receivedFee").toString()));
-                data.put("receivedFee" + feeTypeCd, info.get(feeTypeCd));
+                for (DictDto tDict : dictDtos) {
+                    //feeTypeCd = info.get("feeTypeCd").toString();
+                    feeTypeCd = tDict.getStatusCd();
+                    if (!info.containsKey(feeTypeCd)) {
+                        continue;
+                    }
+                    receivedFee = receivedFee.add(new BigDecimal(info.get(feeTypeCd + "receivedFee").toString()));
+                    data.put("receivedFee" + feeTypeCd, info.get(feeTypeCd));
+                }
             }
             data.put("receivedFee", receivedFee.doubleValue());
         }
 
         return datas;
     }
-
     /**
      * //todo 清洗数据 将数据转变成 map roomId feeTypeCd->array
      * // todo 讲 payerObjId, feeTypeCd,feeName,endTime,deadlineTime,amountOwed 转换为 按payerObjId 纵向转换

+ 2 - 1
service-job/src/main/java/com/java110/job/export/adapt/DataReportEarnedStatisticsAdapt.java

@@ -129,8 +129,9 @@ public class DataReportEarnedStatisticsAdapt implements IExportDataAdapt {
             return new ArrayList<>();
         }
 
-        BigDecimal receivedFee = new BigDecimal(0.00);
+        BigDecimal receivedFee = null;
         for (Map tmpData : tmpDatas) {
+            receivedFee = new BigDecimal(0.00);
             for (Map data : datas) {
                 if (!data.get("floorId").toString().equals(tmpData.get("floorId"))) {
                     continue;

+ 2 - 2
service-job/src/main/java/com/java110/job/export/adapt/DataReportFeeStatisticsAdapt.java

@@ -60,7 +60,7 @@ public class DataReportFeeStatisticsAdapt implements IExportDataAdapt {
         Row row = sheet.createRow(0);
         row.createCell(0).setCellValue("楼栋");
         row.createCell(1).setCellValue("户数");
-        row.createCell(2).setCellValue("空置户数");
+        row.createCell(2).setCellValue("收费户");
         row.createCell(3).setCellValue("历史欠费");
         row.createCell(4).setCellValue("总欠费");
         row.createCell(5).setCellValue("本日已交户数");
@@ -112,7 +112,7 @@ public class DataReportFeeStatisticsAdapt implements IExportDataAdapt {
 
         row.createCell(0).setCellValue(data.getString("floorNum"));
         row.createCell(1).setCellValue(data.getString("roomCount"));
-        row.createCell(2).setCellValue(data.getString("freeCount"));
+        row.createCell(2).setCellValue(data.getString("feeCount"));
         row.createCell(3).setCellValue(data.getString("hisMonthOweFee"));
         row.createCell(4).setCellValue(data.getString("oweFee"));
         row.createCell(5).setCellValue(data.getString("todayReceivedRoomCount"));

+ 35 - 11
service-job/src/main/java/com/java110/job/export/adapt/DataReportOweDetailStatisticsAdapt.java

@@ -87,14 +87,14 @@ public class DataReportOweDetailStatisticsAdapt implements IExportDataAdapt {
         queryStatisticsDto.setPage(reqJson.getInteger("page"));
         queryStatisticsDto.setRow(reqJson.getInteger("row"));
 
-        long roomCount = getRoomCount(queryStatisticsDto);
+        long roomCount = getOweRoomCount(queryStatisticsDto);
 
         roomCount = (int) Math.ceil((double) roomCount / (double) MAX_ROW);
 
         for (int page = 1; page <= roomCount; page++) {
             queryStatisticsDto.setPage(page);
             queryStatisticsDto.setRow(MAX_ROW);
-            List<RoomDto> rooms = getRoomInfo(queryStatisticsDto);
+            List<RoomDto> rooms = getOweRoomInfo(queryStatisticsDto);
             // todo 计算 房屋欠费实收数据
             JSONArray datas = computeRoomOweReceivedFee(rooms,queryStatisticsDto);
             appendData(datas, sheet, dictDtos,(page - 1) * MAX_ROW);
@@ -146,19 +146,20 @@ public class DataReportOweDetailStatisticsAdapt implements IExportDataAdapt {
 
     }
 
-    public long getRoomCount(QueryStatisticsDto queryStatisticsDto) {
-
+    public long getOweRoomCount(QueryStatisticsDto queryStatisticsDto) {
         RoomDto roomDto = new RoomDto();
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
         roomDto.setCommunityId(queryStatisticsDto.getCommunityId());
         roomDto.setOwnerName(queryStatisticsDto.getOwnerName());
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
         roomDto.setLink(queryStatisticsDto.getLink());
+        roomDto.setStartDate(queryStatisticsDto.getStartDate());
+        roomDto.setEndDate(queryStatisticsDto.getEndDate());
         addRoomNumCondition(queryStatisticsDto, roomDto);
-        return baseDataStatisticsInnerServiceSMOImpl.getRoomCount(roomDto);
+        return baseDataStatisticsInnerServiceSMOImpl.getOweRoomCount(roomDto);
     }
 
-    public List<RoomDto> getRoomInfo(QueryStatisticsDto queryStatisticsDto) {
+    public List<RoomDto> getOweRoomInfo(QueryStatisticsDto queryStatisticsDto) {
         RoomDto roomDto = new RoomDto();
         roomDto.setCommunityId(queryStatisticsDto.getCommunityId());
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
@@ -167,8 +168,10 @@ public class DataReportOweDetailStatisticsAdapt implements IExportDataAdapt {
         roomDto.setOwnerName(queryStatisticsDto.getOwnerName());
         roomDto.setFloorId(queryStatisticsDto.getFloorId());
         roomDto.setLink(queryStatisticsDto.getLink());
+        roomDto.setStartDate(queryStatisticsDto.getStartDate());
+        roomDto.setEndDate(queryStatisticsDto.getEndDate());
         addRoomNumCondition(queryStatisticsDto, roomDto);
-        return baseDataStatisticsInnerServiceSMOImpl.getRoomInfo(roomDto);
+        return baseDataStatisticsInnerServiceSMOImpl.getOweRoomInfo(roomDto);
     }
 
     /**
@@ -241,22 +244,37 @@ public class DataReportOweDetailStatisticsAdapt implements IExportDataAdapt {
         // todo  nInfo.put(info.get("feeTypeCd").toString(), tmpInfos);
         infos = washInfos(infos);
 
-        BigDecimal oweFee = new BigDecimal(0.00);
+        BigDecimal oweFee = null;
         List<Map> itemFees = null;
         String feeTypeCd = "";
 
+        DictDto dictDto = new DictDto();
+        dictDto.setTableName("pay_fee_config");
+        dictDto.setTableColumns("fee_type_cd_show");
+        List<DictDto> dictDtos = dictV1InnerServiceSMOImpl.queryDicts(dictDto);
+
         // todo 根据房屋ID 和payerObjId 比较 合并数据,讲费用大类 横向 放入 data中,
         // todo 并且计算每个 房屋 费用大类的欠费 和房屋的总欠费
         for (int dataIndex = 0; dataIndex < datas.size(); dataIndex++) {
+            oweFee = new BigDecimal(0.00);
             data = datas.getJSONObject(dataIndex);
             //todo 这里循环费用大类
             for (Map info : infos) {
                 if (!data.getString("roomId").equals(info.get("payerObjId"))) {
                     continue;
                 }
-                feeTypeCd = info.get("feeTypeCd").toString();
-                oweFee = oweFee.add(new BigDecimal(info.get(feeTypeCd + "oweFee").toString()));
-                data.put("oweFee" + feeTypeCd, info.get(feeTypeCd));
+//                if(!info.containsKey("feeTypeCd")){
+//                    continue;
+//                }
+                for (DictDto tDict : dictDtos) {
+                    //feeTypeCd = info.get("feeTypeCd").toString();
+                    feeTypeCd = tDict.getStatusCd();
+                    if (!info.containsKey(feeTypeCd)) {
+                        continue;
+                    }
+                    oweFee = oweFee.add(new BigDecimal(info.get(feeTypeCd + "oweFee").toString()));
+                    data.put("oweFee" + feeTypeCd, info.get(feeTypeCd));
+                }
             }
             data.put("oweFee", oweFee.doubleValue());
         }
@@ -286,6 +304,9 @@ public class DataReportOweDetailStatisticsAdapt implements IExportDataAdapt {
                     continue;
                 }
                 tmpInfos = getTmpInfos(nInfo, info);
+                if (tmpInfos == null) {
+                    continue;
+                }
                 //todo 深拷贝
                 dInfo = new HashMap();
                 dInfo.putAll(info);
@@ -321,6 +342,9 @@ public class DataReportOweDetailStatisticsAdapt implements IExportDataAdapt {
     }
 
     private List<Map> getTmpInfos(Map nInfo, Map info) {
+        if (!info.containsKey("feeTypeCd")) {
+            return null;
+        }
         String feeTypeCd = info.get("feeTypeCd").toString();
         if (nInfo.containsKey(feeTypeCd)) {
             return (List<Map>) nInfo.get(feeTypeCd);

+ 4 - 3
service-job/src/main/java/com/java110/job/export/adapt/DataReportOweStatisticsAdapt.java

@@ -131,17 +131,18 @@ public class DataReportOweStatisticsAdapt implements IExportDataAdapt {
             return new ArrayList<>();
         }
 
-        BigDecimal receivedFee = new BigDecimal(0.00);
+        BigDecimal oweFee = null;
         for (Map tmpData : tmpDatas) {
+            oweFee = new BigDecimal(0.00);
             for (Map data : datas) {
                 if (!data.get("floorId").toString().equals(tmpData.get("floorId"))) {
                     continue;
                 }
 
-                receivedFee = receivedFee.add(new BigDecimal(data.get("oweFee").toString()));
+                oweFee = oweFee.add(new BigDecimal(data.get("oweFee").toString()));
                 tmpData.put("oweFee" + data.get("feeTypeCd").toString(), data.get("oweFee"));
             }
-            tmpData.put("oweFee", receivedFee.doubleValue());
+            tmpData.put("oweFee", oweFee.doubleValue());
         }
 
         return tmpDatas;

+ 2 - 2
service-job/src/main/java/com/java110/job/export/adapt/ReportFeeSummaryAdapt.java

@@ -42,7 +42,7 @@ public class ReportFeeSummaryAdapt implements IExportDataAdapt {
         row.createCell(3).setCellValue("历史欠费+当期欠费=欠费");
         row.createCell(6).setCellValue("欠费追回+当期实收+预交=实收");
         row.createCell(10).setCellValue("已交户/收费户=户收费率");
-        row.createCell(11).setCellValue("(实收-预交)/(历史欠费+当期应收)=收费率");
+        row.createCell(11).setCellValue("(实收-预交)/(历史欠费+欠费追回+当期应收)=收费率");
 
         JSONObject reqJson = exportDataDto.getReqJson();
 
@@ -103,7 +103,7 @@ public class ReportFeeSummaryAdapt implements IExportDataAdapt {
         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);
+        curReceivableFee = hisOweFee.add(curReceivableFee).add(hisReceivedFee);
         roomFeeRate = new BigDecimal(0);
         if(curReceivableFee.doubleValue()> 0) {
             roomFeeRate = receivedFee.subtract(preReceivedFee).divide(curReceivableFee, 4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP);