瀏覽代碼

进度统计管线施工统计

hs 2 年之前
父節點
當前提交
0794623783

+ 41 - 9
sxgk-projet/sxgk/src/main/java/com/tofly/sxgk/custom/service/impl/CustomPeronWorkBenchServiceImpl.java

@@ -215,17 +215,33 @@ public class CustomPeronWorkBenchServiceImpl implements CustomPeronWorkBenchServ
         List<Map<String, Object>> monthScanLength = customBigScreenMapper.findMonthScanLength(bigScreenQueryEntity);
         Map<String,Object> monthScan=new HashMap<>();
         List<Map<String,Object>> monthScanData=new ArrayList<>();
-        List<String> dateData=new ArrayList<>();
+//        List<String> dateData=new ArrayList<>();
         List<BigDecimal> sgData=new ArrayList<>();
         List<BigDecimal> jlData=new ArrayList<>();
-        monthScanLength.forEach(d->{
-            BigDecimal totalConPipeLength = (BigDecimal)d.get("totalConPipeLength");
-            BigDecimal totalSpvPipeLength = (BigDecimal)d.get("totalSpvPipeLength");
-            String tfDate = (String) d.get("tfDate");
-            dateData.add(tfDate);
-            sgData.add(totalConPipeLength);
-            jlData.add(totalSpvPipeLength);
+        List<String> monthDataByNum = getMonthDataByNum(6);
+        Map<String, List<Map<String, Object>>> tfDate1 = monthScanLength.stream().collect(Collectors.groupingBy(d -> (String) d.get("tfDate")));
+        monthDataByNum.forEach(d->{
+            List<Map<String, Object>> maps = tfDate1.get(d);
+            if(maps!=null && maps.size()>0){
+                Map<String, Object> map1 = maps.get(0);
+                BigDecimal totalConPipeLength = (BigDecimal)map1.get("totalConPipeLength");
+                BigDecimal totalSpvPipeLength = (BigDecimal)map1.get("totalSpvPipeLength");
+                sgData.add(totalConPipeLength);
+                jlData.add(totalSpvPipeLength);
+            }else{
+                sgData.add(new BigDecimal(0));
+                jlData.add(new BigDecimal(0));
+            }
         });
+//        monthScanLength.forEach(d->{
+//            BigDecimal totalConPipeLength = (BigDecimal)d.get("totalConPipeLength");
+//            BigDecimal totalSpvPipeLength = (BigDecimal)d.get("totalSpvPipeLength");
+//            String tfDate = (String) d.get("tfDate");
+//
+////            dateData.add(tfDate);
+//            sgData.add(totalConPipeLength);
+//            jlData.add(totalSpvPipeLength);
+//        });
         Map<String,Object> sgMap=new HashMap<>();
         sgMap.put("name","施工");
         sgMap.put("data",sgData);
@@ -236,7 +252,7 @@ public class CustomPeronWorkBenchServiceImpl implements CustomPeronWorkBenchServ
         monthScanData.add(jlMap);
         String titles[]={"施工","监理"};
         monthScan.put("legend",titles);
-        monthScan.put("xAxis",dateData);
+        monthScan.put("xAxis",monthDataByNum);
         monthScan.put("series",monthScanData);
         map.put("monthCountEcharts",monthScan);
         //近期工程情况
@@ -251,6 +267,22 @@ public class CustomPeronWorkBenchServiceImpl implements CustomPeronWorkBenchServ
         return  map;
     }
 
+    //获取近N个月数据
+    public  List<String> getMonthDataByNum(int num) {
+        List<String> resultList = new ArrayList<String>();
+        Calendar cal = Calendar.getInstance();
+        //近六个月
+        cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) + 1); //要先+1,才能把本月的算进去
+        for (int i = 0; i < num; i++) {
+            cal.set(Calendar.MONTH, cal.get(Calendar.MONTH) - 1); //逐次往前推1个月
+            resultList.add(String.valueOf(cal.get(Calendar.YEAR))
+                    + (cal.get(Calendar.MONTH) + 1 < 10 ? "0" +
+                    (cal.get(Calendar.MONTH) + 1) : (cal.get(Calendar.MONTH) + 1)));
+        }
+        Collections.sort(resultList);
+        return resultList;
+    }
+
     @Override
     public List<Map<String, Object>> getMaterialSum(CustomWorkbenchQuery customWorkbenchQuery) {
         return  customPersonWorkBenchMapper.getDesignGroupByPrj(customWorkbenchQuery);