diff --git a/src/main/java/com/gaotao/modules/dashboard/dao/DashboardDao.java b/src/main/java/com/gaotao/modules/dashboard/dao/DashboardDao.java index d78fecd..e431036 100644 --- a/src/main/java/com/gaotao/modules/dashboard/dao/DashboardDao.java +++ b/src/main/java/com/gaotao/modules/dashboard/dao/DashboardDao.java @@ -56,83 +56,52 @@ public interface DashboardDao { */ Map queryWarehouseTaskStats(); - /** - * 查询立体仓库库位利用率数据 - * - *

数据说明:

- * - * - * @return 库位利用率数据 - */ - Map queryWarehouseStorageUtilization(); + + // ==================== 库存趋势统计 ==================== /** - * 查询立体仓库机器人状态数据 + * 查询原材料库存量趋势(当月每日数据) * - *

数据说明:

+ *

物料判断规则:料号不以3、7、8开头

+ * + *

返回数据结构:

* * - * @return 机器人状态列表 + * @return 原材料库存趋势列表 */ - List> queryWarehouseRobotStatus(); + List> queryRawMaterialInventoryTrend(); /** - * 查询立体仓库AGV状态数据 - * - *

注意:此方法已废弃!

- *

AGV状态数据不从数据库查询,而是从TUSK系统实时获取。

- *

请使用 DashboardPushTask.getAgvStatusFromTusk() 方法获取AGV状态。

+ * 查询规格料库存量趋势(当月每日数据) * - * @deprecated 使用 TuskClientService.getOnlineRobots() 代替 - * @return AGV状态列表(空列表) - */ - @Deprecated - List> queryWarehouseAgvStatus(); - - /** - * 查询立体仓库领料申请单统计 + *

物料判断规则:料号以3或7开头

* - *

数据说明:

+ *

返回数据结构:

*
    - *
  • total - 总数
  • - *
  • completed - 已完成数
  • - *
  • processing - 处理中数
  • - *
  • pending - 待处理数
  • - *
  • completionRate - 完成率百分比
  • + *
  • dayNum - 日期(1-31)
  • + *
  • quantity - 库存数量
  • *
* - * @return 领料申请单统计 + * @return 规格料库存趋势列表 */ - Map queryWarehouseMaterialRequestStats(); + List> querySpecifiedMaterialInventoryTrend(); /** - * 查询立体仓库发货统计 + * 查询产成品库存量趋势(当月每日数据) * - *

数据说明:

+ *

物料判断规则:料号以8开头

+ * + *

返回数据结构:

*
    - *
  • total - 总数
  • - *
  • completed - 已完成数
  • - *
  • processing - 处理中数
  • - *
  • pending - 待处理数
  • - *
  • completionRate - 完成率百分比
  • + *
  • dayNum - 日期(1-31)
  • + *
  • quantity - 库存数量
  • *
* - * @return 发货统计 + * @return 产成品库存趋势列表 */ - Map queryWarehouseShipmentStats(); + List> queryFinishedGoodsInventoryTrend(); } diff --git a/src/main/java/com/gaotao/modules/dashboard/task/DashboardPushTask.java b/src/main/java/com/gaotao/modules/dashboard/task/DashboardPushTask.java index 57c846d..b33c6ee 100644 --- a/src/main/java/com/gaotao/modules/dashboard/task/DashboardPushTask.java +++ b/src/main/java/com/gaotao/modules/dashboard/task/DashboardPushTask.java @@ -403,6 +403,16 @@ public class DashboardPushTask { Map shipmentStats = new HashMap<>(); log.debug("发货统计: {}", shipmentStats); + // 查询库存趋势数据 + List> rawMaterialTrend = dashboardDao.queryRawMaterialInventoryTrend(); + log.debug("查询到原材料库存趋势数据: {}条", rawMaterialTrend != null ? rawMaterialTrend.size() : 0); + + List> specifiedMaterialTrend = dashboardDao.querySpecifiedMaterialInventoryTrend(); + log.debug("查询到规格料库存趋势数据: {}条", specifiedMaterialTrend != null ? specifiedMaterialTrend.size() : 0); + + List> finishedGoodsTrend = dashboardDao.queryFinishedGoodsInventoryTrend(); + log.debug("查询到产成品库存趋势数据: {}条", finishedGoodsTrend != null ? finishedGoodsTrend.size() : 0); + // 构造返回数据 Map resultData = new HashMap<>(); resultData.put("taskData", taskStats != null ? taskStats : new HashMap<>()); @@ -411,6 +421,11 @@ public class DashboardPushTask { resultData.put("agvData", agvStatus != null ? agvStatus : new ArrayList<>()); resultData.put("materialRequestData", materialRequestStats != null ? materialRequestStats : new HashMap<>()); resultData.put("shipmentData", shipmentStats != null ? shipmentStats : new HashMap<>()); + + // 添加库存趋势数据 + resultData.put("rawMaterialTrend", rawMaterialTrend != null ? rawMaterialTrend : new ArrayList<>()); + resultData.put("specifiedMaterialTrend", specifiedMaterialTrend != null ? specifiedMaterialTrend : new ArrayList<>()); + resultData.put("finishedGoodsTrend", finishedGoodsTrend != null ? finishedGoodsTrend : new ArrayList<>()); log.debug("智能立体仓库看板数据组装完成"); return resultData; diff --git a/src/main/resources/mapper/dashboard/DashboardDao.xml b/src/main/resources/mapper/dashboard/DashboardDao.xml index 2a95104..6167540 100644 --- a/src/main/resources/mapper/dashboard/DashboardDao.xml +++ b/src/main/resources/mapper/dashboard/DashboardDao.xml @@ -34,243 +34,30 @@ -- 说明:从 wms_order_task 表统计任务数据 -- 只统计已完成的任务(status='已完成') -- source_type 包含"入库"两个字的是入库任务,其他都是出库任务 - SELECT - -- 累计任务总数(历史所有已完成任务) - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - ) AS totalTasks, - - -- 月度作业总数(当月已完成任务数) - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) AS monthlyTasks, - - -- 当日作业总数(当日已完成任务数) - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE created_time >= DATEADD(DAY, -5, GETDATE())) AS todayTasks, - - -- 出库作业数(当月已完成,source_type不包含"入库") - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE (source_type NOT LIKE '%入库%' OR source_type IS NULL) - AND MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) AS outboundTasks, - - -- 入库作业数(当月已完成,source_type包含"入库") - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE source_type LIKE '%入库%' - AND MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) AS inboundTasks, - - -- 出库占比(百分比) - CASE - WHEN (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) > 0 - THEN CAST( - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE (source_type NOT LIKE '%入库%' OR source_type IS NULL) - AND MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) * 100.0 / - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) - AS INT) - ELSE 0 - END AS outboundPercent, - - -- 入库占比(百分比) - CASE - WHEN (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) > 0 - THEN CAST( - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE source_type LIKE '%入库%' - AND MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) * 100.0 / - (SELECT COUNT(DISTINCT task_no) - FROM wms_order_task - WHERE MONTH(created_time) = MONTH(GETDATE()) - AND YEAR(created_time) = YEAR(GETDATE())) - AS INT) - ELSE 0 - END AS inboundPercent + select * from view_board_master_task; - - + -- 说明:统计原材料(料号不以3、7、8开头)的当月每日库存数量 + -- 原材料判断:料号不以 3、7、8 开头 view_board_master_task + select * from view_board_master_raw - - + -- 说明:统计规格料(料号以3或7开头)的当月每日库存数量 + -- 规格料判断:料号以 3 或 7 开头 + select * from view_board_master_specified - - - - - - - - - + -- 说明:统计产成品(料号以8开头)的当月每日库存数量 + -- 产成品判断:料号以 8 开头 + select * from view_board_master_finish