Explorar o código

[CODE]: 首页柱状图每日入库数 为空赋值 0

maxianghua %!s(int64=4) %!d(string=hai) anos
pai
achega
f6273290be

+ 73 - 2
ruoyi-warehouse/src/main/java/com/ruoyi/reportManagement/service/impl/TWhgenlegServiceImpl.java

@@ -139,10 +139,81 @@ public class TWhgenlegServiceImpl implements ITWhgenlegService {
         String frontday = format.format(c.getTime());
         // 当前日期
         String nowadays=DateUtils.getDate();
-
         Map<String, Object> map = new HashMap<>();
         map.put("frontday", frontday);
         map.put("nowadays", nowadays);
-        return tWhgenlegMapper.selectDateFQtyblcListList(map);
+
+        List<Map<String, Object>>  list= tWhgenlegMapper.selectDateFQtyblcListList(map);
+        // 对比 日期 为空入库赋值0
+        ArrayList<String> pastDaysList=dayList(8);
+        for(String day:pastDaysList){
+            if(!day.equals(nowadays)){
+                Map<String, Object> map1 = new HashMap<String, Object>();
+                map1.put("fOriginalbilldate",day);
+                map1.put("fQtyblc",0);
+                list.add(map1);
+            }
+        }
+        List<Map<String,Object>> countList = combineMap("fOriginalbilldate", list);
+        return countList;
     }
+
+    /**
+     *
+     * @param combineField 根据该字段进行合并
+     * @param dataList 原始数据
+     * @return
+     */
+    public static List<Map<String, Object>> combineMap(String combineField, List<Map<String, Object>> dataList){
+        //用于存放最后的结果
+        List<Map<String, Object>> countList = new ArrayList<Map<String,Object>>();
+        for (int i = 0; i < dataList.size(); i++) {
+            String oldCombineField = String.valueOf(dataList.get(i).get(combineField));
+
+            int flag = 0;//0为新增数据,1为增加count
+            for (int j = 0; j < countList.size(); j++) {
+                String newCombineField = String.valueOf(countList.get(j).get(combineField));
+                if (oldCombineField.equals(newCombineField)) {
+                    //做累加的操作
+                    Integer afterSaleProfit = Integer.parseInt(String.valueOf(dataList.get(i).get("fQtyblc"))) + Integer.parseInt(String.valueOf(countList.get(j).get("fQtyblc")));
+                    countList.get(j).put("fQtyblc", afterSaleProfit);
+                    flag = 1;
+                    break;
+                }
+            }
+            if (flag == 0) {
+                countList.add(dataList.get(i));
+            }
+        }
+        return countList;
+    }
+
+
+    /**
+     * 获取过去 任意天内的日期数组
+     * @param intervals      intervals天内
+     * @return              日期数组
+     */
+    public static ArrayList<String> dayList(int intervals ) {
+        ArrayList<String> pastDaysList = new ArrayList<>();
+        for (int i = 0; i <intervals; i++) {
+            pastDaysList.add(getPastDate(i));
+        }
+        return pastDaysList;
+    }
+    /**
+     * 获取过去第几天的日期
+     *
+     * @param past
+     * @return
+     */
+    public static String getPastDate(int past) {
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) - past);
+        Date today = calendar.getTime();
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        String result = format.format(today);
+        return result;
+    }
+
 }

+ 5 - 5
ruoyi-warehouse/src/main/resources/mapper/reportManagement/TWhgenlegMapper.xml

@@ -389,16 +389,16 @@
     <select id="selectDateFQtyblcListList"  resultType="Map">
         SELECT
             t.f_originalbilldate AS fOriginalbilldate,
-            sum(t.f_qtyblc) AS fQtyblc AS fQtyblc
+            sum(t.f_qtyblc) AS fQtyblc
         FROM
             t_whgenleg t
         WHERE
-            f_originalbilldate &gt; #{map.frontday}
-            AND f_originalbilldate &lt; #{map.nowadays}
+            t.f_originalbilldate &gt; #{map.frontday}
+            AND t.f_originalbilldate &lt; #{map.nowadays}
         GROUP BY
-	        f_originalbilldate
+	        t.f_originalbilldate
         ORDER BY
-            f_originalbilldate
+            t.f_originalbilldate
     </select>
 
 </mapper>