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