From 3236619fb2d922eeddbd8594d1c22f3dce039b4a Mon Sep 17 00:00:00 2001
From: cl <1442464845@qq.com>
Date: 星期日, 12 四月 2026 09:26:58 +0800
Subject: [PATCH] 24小时折线图

---
 src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java  |    7 +++
 src/main/java/com/zy/asrs/controller/OpenController.java |   60 ++++++++++++++++++++++++++++++
 2 files changed, 67 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OpenController.java b/src/main/java/com/zy/asrs/controller/OpenController.java
index d48f641..0578025 100644
--- a/src/main/java/com/zy/asrs/controller/OpenController.java
+++ b/src/main/java/com/zy/asrs/controller/OpenController.java
@@ -666,6 +666,66 @@
     }
 
     /**
+     * 杩�24灏忔椂鍏ュ嚭搴撴姌绾匡紙妯酱灏忔椂锛夛紝涓庢寜鏃� {@link #locIoLineCharts()} 鏁版嵁鍙e緞涓嶅悓锛屼緵鐢佃鏈恒�屼綔涓氭晥鐜囥�嶄娇鐢�
+     */
+    @GetMapping("/line/charts/hourly")
+    public R locIoLineChartsHourly() {
+        Map<String, Object> map = new HashMap<>();
+        List<AxisBean> list = new ArrayList<>();
+
+        List<WorkChartAxis> listChart = reportQueryMapper.getChartAxisHourly();
+        if (listChart == null) {
+            listChart = Collections.emptyList();
+        }
+
+        ArrayList<Integer> data1 = new ArrayList<>();
+        ArrayList<Integer> data2 = new ArrayList<>();
+        List<String> categories = new ArrayList<>();
+
+        SimpleDateFormat sfKey = new SimpleDateFormat("yyyy-MM-dd HH");
+        SimpleDateFormat sfLabel = new SimpleDateFormat("HH:00");
+        Calendar calendar = Calendar.getInstance();
+        calendar.set(Calendar.MINUTE, 0);
+        calendar.set(Calendar.SECOND, 0);
+        calendar.set(Calendar.MILLISECOND, 0);
+        calendar.add(Calendar.HOUR_OF_DAY, -23);
+
+        for (int i = 0; i < 24; i++) {
+            String key = sfKey.format(calendar.getTime());
+            categories.add(sfLabel.format(calendar.getTime()));
+
+            int inV = 0;
+            int outV = 0;
+            for (WorkChartAxis w : listChart) {
+                if (w.getYmd() != null && key.equals(w.getYmd().trim())) {
+                    inV = w.getInqty();
+                    outV = w.getOutqty();
+                    break;
+                }
+            }
+            data1.add(inV);
+            data2.add(outV);
+            calendar.add(Calendar.HOUR_OF_DAY, 1);
+        }
+
+        AxisBean inqty = new AxisBean();
+        inqty.setName("鍏ュ簱鏁伴噺");
+        Integer[] array1 = new Integer[data1.size()];
+        inqty.setData(data1.toArray(array1));
+        list.add(inqty);
+
+        AxisBean outqty = new AxisBean();
+        outqty.setName("鍑哄簱鏁伴噺");
+        Integer[] array2 = new Integer[data2.size()];
+        outqty.setData(data2.toArray(array2));
+        list.add(outqty);
+
+        map.put("categories", categories);
+        map.put("rows", list);
+        return R.ok(map);
+    }
+
+    /**
      * 搴撳瓨淇℃伅鏌ヨ鎺ュ彛
      */
     @GetMapping("/queryLoc")
diff --git a/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java b/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
index 6a804db..641086b 100644
--- a/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/ReportQueryMapper.java
@@ -69,6 +69,13 @@
 			+ "where ymd>CONVERT(char(10), DATEADD(DAY,-12,GETDATE()), 120) group by ymd order by ymd")
 	public List<WorkChartAxis> getChartAxis();
 
+	@Select("SELECT CONVERT(char(13), wrk_date, 120) AS ymd, "
+			+ "CAST(COUNT(CASE WHEN io_type IN (1,53,57) THEN 1 END) AS INT) AS inqty, "
+			+ "CAST(COUNT(CASE WHEN io_type IN (101,103,107) THEN 1 END) AS INT) AS outqty "
+			+ "FROM asr_wrk_mast WHERE wrk_date >= DATEADD(HOUR, -24, GETDATE()) "
+			+ "GROUP BY CONVERT(char(13), wrk_date, 120) ORDER BY ymd")
+	List<WorkChartAxis> getChartAxisHourly();
+
 	List<ViewWorkCountInView> selectWorkCountIn(@Param("curr") Integer curr, @Param("limit") Integer limit, @Param("matnr")String matnr, @Param("start") String startTime, @Param("end") String endTime);
 
 	Integer selectWorkCountInTotal(String matnr, @Param("start") String startTime, @Param("end") String endTime);

--
Gitblit v1.9.1