From b4de49622a64e15d673f2716f126734e339e5977 Mon Sep 17 00:00:00 2001
From: chengf <cgf12138@163.com>
Date: 星期三, 20 八月 2025 14:23:46 +0800
Subject: [PATCH] 暂存0820

---
 service-fee/src/main/java/com/java110/fee/cmd/fee/ReportFeeCmd.java |  189 +++++++++++++++++++++++++++++++----------------
 1 files changed, 125 insertions(+), 64 deletions(-)

diff --git a/service-fee/src/main/java/com/java110/fee/cmd/fee/ReportFeeCmd.java b/service-fee/src/main/java/com/java110/fee/cmd/fee/ReportFeeCmd.java
index a1c4c89..7deda69 100644
--- a/service-fee/src/main/java/com/java110/fee/cmd/fee/ReportFeeCmd.java
+++ b/service-fee/src/main/java/com/java110/fee/cmd/fee/ReportFeeCmd.java
@@ -55,7 +55,6 @@
         int endYear = feeQueryParams.getEndYear();
 
         List<Map> result = reportFeeInnerServiceSMOImpl.repostPaidInFee(feeQueryParams);
-        List<Map> resultTwo =  reportFeeInnerServiceSMOImpl.repostPaidInFeeTwo(feeQueryParams);
         DictDto dictDto = new DictDto();
         dictDto.setTableName("pay_fee_config");
         dictDto.setTableColumns("fee_type_cd");
@@ -67,77 +66,139 @@
         reportFeeDtoLists.add(new LinkedList<FeeDto>());
         reportFeeDtoLists.add(new LinkedList<FeeDto>());
         int ind = 1;
-        for (DictDto dictDto1 : dictDtos) {//绫诲瀷
-            List<FeeDto> reportFeeDtos = new LinkedList<>();
-            FeeDto feeDto = new FeeDto();
-            LinkedList<FeeDto> feeDtos = new LinkedList<>();
-            reportFeeDtoLists.add(feeDtos);
-            for (int i = startYear; i <= endYear; i++) {//骞翠唤
-                double[] doubles = new double[doYear+12+1+5];
-                feeDto = new FeeDto();
-                //0~5
-                if(resultTwo != null){
-                    for (Map map : resultTwo) {
-                        if(map.isEmpty()){
-                            break;
-                        }
-                        else if (map.get("缁熻鍛ㄦ湡")!=null&&map.get("缁熻鍛ㄦ湡").equals(i)&&map.get("璐圭敤绫诲瀷缂栫爜").equals(dictDto1.getStatusCd())){
-                            feeDto.setCurYear((i)+"");
-                            feeDto.setFeeTypeCdName(map.get("璐圭敤绫诲瀷")+"");
-                            doubles[0] = map.get("褰撳勾搴旂即鎬婚噾棰�") == null ? 0 : (double) map.get("褰撳勾搴旂即鎬婚噾棰�");
-                            doubles[1] = map.get("姣忔湀璐圭敤锛堝悎璁�/鏈堜唤鏁帮級") == null ? 0 : (double) map.get("姣忔湀璐圭敤锛堝悎璁�/鏈堜唤鏁帮級");
-                            doubles[2] = map.get("姣忔湀璐圭敤鏈堜唤鏁�") == null ? 0 : ((Long) map.get("姣忔湀璐圭敤鏈堜唤鏁�")).intValue();
-                        }
-                    }
-                }
 
-                if(result != null){
-                    for (Map map : result) {//绫诲瀷+骞翠唤
-                        if(map.isEmpty()){
-                            break;
-                        }
-                        //5 ~ 25
-                        else if (map.get("缁熻鍛ㄦ湡")!=null&&map.get("缁熻鍛ㄦ湡").equals(i)&&map.get("璐圭敤绫诲瀷缂栫爜").equals(dictDto1.getStatusCd())){
-
-                            for (int j = startYear ; j <= endYear ; j++) {// 5~(endYear - startYear + 5) = 5 ~ 13
-                                if(map.get((j)+"骞存敹璐归噾棰�(鍏�)")!=null){
-                                    feeDto.setCurYear((i)+"");
-                                    feeDto.setFeeTypeCdName(map.get("璐圭敤绫诲瀷鍚嶇О") == null ? null : map.get("璐圭敤绫诲瀷鍚嶇О")+"");
-                                    doubles[j-startYear+5] = ((BigDecimal)map.get((j)+"骞存敹璐归噾棰�(鍏�)")).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                                }
-                                for (int x = 1 ;x <= 12 ;x++ ){// (endYear - startYear + 6) ~ (endYear - startYear + 6 + 12) = 13 ~ 25
-                                    if (map.get((currentYear)+"骞�"+x+"鏈堟敹璐归噾棰�(鍏�)")!=null){
-                                        feeDto.setCurYear((i)+"");
-                                        feeDto.setFeeTypeCdName(map.get("璐圭敤绫诲瀷鍚嶇О") == null ? null : map.get("璐圭敤绫诲瀷鍚嶇О")+"");
-                                        doubles[endYear - startYear + x +5] = ((BigDecimal)map.get((currentYear)+"骞�"+x+"鏈堟敹璐归噾棰�(鍏�)")).setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
-                                    }
-                                }
-                            }
-                        }
-                    }
-                }
-                if(feeDto.getCurYear() != null){
-                    feeDto.setReport(doubles);
-                    reportFeeDtos.add(feeDto);
-                }
-            }
-            if (ind == 3 || ind == 7){
-                reportFeeDtoLists.add(new LinkedList<>());
-            }
-            reportFeeDtoLists.add(reportFeeDtos);
-            if(ind == 1 || ind == 2){
-                reportFeeDtoLists.add(new LinkedList<>());
-            }
-            ind ++;
-        }
         int[] arr = new int[endYear - startYear + 1];
         for (int i = startYear; i <= endYear; i++) {
             arr[i-startYear] = i;
         }
+
+        for (DictDto dictDto1 : dictDtos) {//绫诲瀷
+            List<FeeDto> reportFeeDtos = new LinkedList<>();//璇ョ被鍨嬬殑鏁扮粍
+            FeeDto feeDto = new FeeDto();
+            LinkedList<FeeDto> feeDtos = new LinkedList<>();//鎬荤殑
+            int kg = 0;
+            for (Map map : result){
+                if(map.get("璐圭敤鎵�灞炲勾浠�").equals("绫诲瀷鎬昏") && map.get("fee_type_cd").equals(dictDto1.getStatusCd())){
+                    double[] doubles = new double[doYear - 1 + 20];
+                    doubles[0] = ((BigDecimal) map.get("璇ュ勾搴旂即鎬婚")).doubleValue();
+                    doubles[1] = ((BigDecimal) map.get("姣忔湀璐圭敤")).doubleValue();
+                    doubles[2] = ((Long) map.get("搴旀敹鏈堜唤鏁�")).doubleValue();
+                    doubles[3] = ((BigDecimal) map.get("褰撳勾鏀剁即鐜�(%)")).doubleValue();
+                    doubles[4] = ((BigDecimal) map.get("鎶樻墸閲戦")).doubleValue();
+                    int inde = 0;
+                    for (int i : arr){
+                        if(i < currentYear){
+                            inde++;
+                            doubles[i - startYear + 5] = ((BigDecimal) map.get(i + "骞村疄缂�")).doubleValue();
+                        }
+                    }
+                    doubles[inde + 5] =((BigDecimal) map.get("褰撳勾棰勭畻")).doubleValue();
+                    doubles[inde + 6] =((BigDecimal) map.get(currentYear + "骞村疄缂�")).doubleValue();
+                    doubles[inde + 7] =((BigDecimal) map.get("褰撳勾鎶樻墸鎬婚")).doubleValue();
+                    doubles[inde + 8] =((BigDecimal) map.get("褰撳勾娆犳")).doubleValue();
+
+                    for (int i = 1 ; i <= 12 ; i++){
+                        doubles[inde + 8 + i] =((BigDecimal) map.get("褰撳勾"+i+"鏈堝疄缂�")).doubleValue();
+                    }
+                    feeDto.setCurYear(dictDto1.getName()+"鎬昏");
+                    feeDto.setReport(doubles);
+                    feeDto.setCount(ind);
+
+                }
+            }
+            if (feeDto.getCurYear() == null){
+                feeDto.setCurYear("绫诲瀷鎬昏");
+            }
+            if (feeDto.getReport() == null){
+                feeDto.setReport(new double[doYear - 1 + 20]);
+            }
+            if(feeDto.getFeeTypeCdName() == null) {
+                feeDto.setFeeTypeCdName(dictDto1.getName());
+            }
+            LinkedList<FeeDto> feeDtos1 = new LinkedList<>();
+            feeDtos1.add(feeDto);
+            reportFeeDtoLists.add(feeDtos1);//娣诲姞鎬婚噾棰濈殑
+            feeDtos1 = new LinkedList<>();
+            feeDto = new FeeDto();
+            LinkedList<FeeDto> feeDtos2 = new LinkedList<>();
+            for (int i = startYear; i <= endYear; i++) {//骞翠唤
+                kg = 0;
+                for (Map map : result){
+                    if(map.get("璐圭敤鎵�灞炲勾浠�").equals(i+"") && map.get("fee_type_cd").equals(dictDto1.getStatusCd())){
+                        double[] doubles = new double[doYear - 1 + 20];
+                        doubles[0] = ((BigDecimal) map.get("璇ュ勾搴旂即鎬婚")).doubleValue();
+                        doubles[1] = ((BigDecimal) map.get("姣忔湀璐圭敤")).doubleValue();
+                        doubles[2] = ((Long) map.get("搴旀敹鏈堜唤鏁�")).doubleValue();
+                        doubles[3] = ((BigDecimal) map.get("褰撳勾鏀剁即鐜�(%)")).doubleValue();
+                        doubles[4] = ((BigDecimal) map.get("鎶樻墸閲戦")).doubleValue();
+                        int inde = 0;
+                        for (int in : arr){
+                            if(in < currentYear){
+                                inde++;
+                                doubles[in - startYear + 5] = ((BigDecimal) map.get(i + "骞村疄缂�")).doubleValue();
+                            }
+                        }
+                        doubles[inde + 5] =((BigDecimal) map.get("褰撳勾棰勭畻")).doubleValue();
+                        doubles[inde + 6] =((BigDecimal) map.get(currentYear + "骞村疄缂�")).doubleValue();
+                        doubles[inde + 7] =((BigDecimal) map.get("褰撳勾鎶樻墸鎬婚")).doubleValue();
+                        doubles[inde + 8] =((BigDecimal) map.get("褰撳勾娆犳")).doubleValue();
+
+                        for (int in = 1 ; in <= 12 ; in++){
+                            doubles[inde + 8 + in] =((BigDecimal) map.get("褰撳勾"+in+"鏈堝疄缂�")).doubleValue();
+                        }
+                        feeDto = new FeeDto();
+                        feeDto.setFeeTypeCdName(dictDto1.getName());
+                        feeDto.setCurYear(String.valueOf(i));
+                        feeDto.setReport(doubles);
+                        feeDto.setCount(ind);
+                        feeDtos2.add(feeDto);
+                        kg = 1;
+                    }
+                }
+                if(kg == 0){
+                    feeDto = new FeeDto();
+                    feeDto.setFeeTypeCdName(dictDto1.getName());
+                    feeDto.setCurYear(String.valueOf(i));
+                    feeDto.setReport(new double[doYear - 1 + 20]);
+                    feeDto.setCount(ind);
+                    feeDtos2.add(feeDto);
+                }
+            }
+            reportFeeDtoLists.add(feeDtos2);
+            if (ind == 1){
+                LinkedList linkedList = new LinkedList();
+                FeeDto feeDto1 = new FeeDto();
+                feeDto1.setCurYear("浣忓畢鐗╀笟璐逛唬鏀跺悎璁�");
+                linkedList.add(feeDto1);
+                reportFeeDtoLists.add(linkedList);
+            }
+            if (ind == 2){
+                LinkedList linkedList = new LinkedList();
+                FeeDto feeDto1 = new FeeDto();
+                feeDto1.setCurYear("鍟嗛摵鐗╀笟璐逛唬鏀跺悎璁�");
+                linkedList.add(feeDto1);
+                reportFeeDtoLists.add(linkedList);
+            }
+            if (ind == 3){
+                LinkedList linkedList = new LinkedList();
+                FeeDto feeDto1 = new FeeDto();
+                feeDto1.setCurYear("鍋滆溅璐瑰悎璁★紙3+...+7锛�");
+                linkedList.add(feeDto1);
+                reportFeeDtoLists.add(linkedList);
+            }
+            if (ind == 8){
+                LinkedList linkedList = new LinkedList();
+                FeeDto feeDto1 = new FeeDto();
+                feeDto1.setCurYear("鍏朵粬绫诲悎璁★紙8+...+22锛�");
+                linkedList.add(feeDto1);
+                reportFeeDtoLists.add(linkedList);
+            }
+            ind ++;
+        }
         FeeDto feeDto = new FeeDto();
         feeDto.setRepostList(reportFeeDtoLists);
         feeDto.setYearArr(arr);
-
+        feeDto.setLength(String.valueOf(doYear+12+1+5+4));
 
         ResultVo resultVo = new ResultVo(feeDto);
 

--
Gitblit v1.8.0