|
|
|
@ -31,70 +31,73 @@ |
|
|
|
|
|
|
|
<!-- 查询立体仓库任务统计数据 --> |
|
|
|
<select id="queryWarehouseTaskStats" resultType="map"> |
|
|
|
-- 说明:根据实际数据库表结构调整SQL |
|
|
|
-- 这里提供示例结构,需要根据实际的任务表(如wms_task、agv_task等)调整 |
|
|
|
-- 说明:从 wms_order_task 表统计任务数据 |
|
|
|
-- 只统计已完成的任务(status='已完成') |
|
|
|
-- source_type 包含"入库"两个字的是入库任务,其他都是出库任务 |
|
|
|
SELECT |
|
|
|
-- 累计任务总数(从任务历史表统计) |
|
|
|
(SELECT COUNT(*) FROM wms_task WHERE is_deleted = '0') AS totalTasks, |
|
|
|
|
|
|
|
-- 月度作业总数(当月任务数) |
|
|
|
(SELECT COUNT(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) AS monthlyTasks, |
|
|
|
|
|
|
|
-- 出库作业数(当月) |
|
|
|
(SELECT COUNT(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND task_type = 'OUTBOUND' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) AS outboundTasks, |
|
|
|
|
|
|
|
-- 入库作业数(当月) |
|
|
|
(SELECT COUNT(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND task_type = 'INBOUND' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) AS inboundTasks, |
|
|
|
|
|
|
|
-- 累计任务总数(历史所有已完成任务) |
|
|
|
(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, |
|
|
|
|
|
|
|
-- 出库作业数(当月已完成,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(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) > 0 |
|
|
|
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(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND task_type = 'OUTBOUND' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) * 100.0 / |
|
|
|
(SELECT COUNT(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) |
|
|
|
(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 |
|
|
|
ELSE 0 |
|
|
|
END AS outboundPercent, |
|
|
|
|
|
|
|
|
|
|
|
-- 入库占比(百分比) |
|
|
|
CASE |
|
|
|
WHEN (SELECT COUNT(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) > 0 |
|
|
|
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(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND task_type = 'INBOUND' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) * 100.0 / |
|
|
|
(SELECT COUNT(*) FROM wms_task |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND MONTH(created_date) = MONTH(GETDATE()) |
|
|
|
AND YEAR(created_date) = YEAR(GETDATE())) |
|
|
|
(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 |
|
|
|
ELSE 0 |
|
|
|
END AS inboundPercent |
|
|
|
</select> |
|
|
|
|
|
|
|
@ -104,32 +107,32 @@ |
|
|
|
SELECT |
|
|
|
-- 总库位数 |
|
|
|
(SELECT COUNT(*) FROM location WHERE is_deleted = '0' AND warehouse = 'WAREHOUSE_3D') AS totalSlots, |
|
|
|
|
|
|
|
|
|
|
|
-- 已使用库位数(有库存的库位) |
|
|
|
(SELECT COUNT(DISTINCT location_code) FROM inventory_stock |
|
|
|
(SELECT COUNT(DISTINCT location_code) FROM inventory_stock |
|
|
|
WHERE is_deleted = '0' AND in_stock_flag = 'Y') AS usedSlots, |
|
|
|
|
|
|
|
|
|
|
|
-- 利用率(百分比,保留1位小数) |
|
|
|
CASE |
|
|
|
CASE |
|
|
|
WHEN (SELECT COUNT(*) FROM location WHERE is_deleted = '0' AND warehouse = 'WAREHOUSE_3D') > 0 |
|
|
|
THEN CAST( |
|
|
|
(SELECT COUNT(DISTINCT location_code) FROM inventory_stock |
|
|
|
WHERE is_deleted = '0' AND in_stock_flag = 'Y') * 100.0 / |
|
|
|
(SELECT COUNT(DISTINCT location_code) FROM inventory_stock |
|
|
|
WHERE is_deleted = '0' AND in_stock_flag = 'Y') * 100.0 / |
|
|
|
(SELECT COUNT(*) FROM location WHERE is_deleted = '0' AND warehouse = 'WAREHOUSE_3D') |
|
|
|
AS DECIMAL(5,1)) |
|
|
|
ELSE 0 |
|
|
|
ELSE 0 |
|
|
|
END AS utilizationRate, |
|
|
|
|
|
|
|
|
|
|
|
-- 钢制托盘数量(根据pallet_type字段统计) |
|
|
|
(SELECT COUNT(*) FROM pallet |
|
|
|
(SELECT COUNT(*) FROM pallet |
|
|
|
WHERE is_deleted = '0' AND pallet_type = 'STEEL') AS steelPallet, |
|
|
|
|
|
|
|
|
|
|
|
-- 护边托盘数量 |
|
|
|
(SELECT COUNT(*) FROM pallet |
|
|
|
(SELECT COUNT(*) FROM pallet |
|
|
|
WHERE is_deleted = '0' AND pallet_type = 'GUARD') AS guardPallet, |
|
|
|
|
|
|
|
|
|
|
|
-- 平托盘数量 |
|
|
|
(SELECT COUNT(*) FROM pallet |
|
|
|
(SELECT COUNT(*) FROM pallet |
|
|
|
WHERE is_deleted = '0' AND pallet_type = 'FLAT') AS flatPallet |
|
|
|
</select> |
|
|
|
|
|
|
|
@ -150,22 +153,22 @@ |
|
|
|
efficiency, |
|
|
|
current_tasks AS tasks |
|
|
|
FROM equipment_device |
|
|
|
WHERE is_deleted = '0' |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND device_type = 'ROBOT' |
|
|
|
AND warehouse = 'WAREHOUSE_3D' |
|
|
|
ORDER BY id ASC |
|
|
|
</select> |
|
|
|
|
|
|
|
<!-- 查询立体仓库AGV状态数据(已废弃) --> |
|
|
|
<!-- |
|
|
|
<!-- |
|
|
|
注意:AGV状态数据不从数据库查询,而是从TUSK系统实时获取 |
|
|
|
queryWarehouseAgvStatus 方法已在 DashboardPushTask.getAgvStatusFromTusk() 中实现 |
|
|
|
通过调用 TuskClientService.getOnlineRobots() 获取实时AGV状态 |
|
|
|
|
|
|
|
|
|
|
|
此查询保留空实现仅为避免MyBatis映射错误,实际不应被调用 |
|
|
|
--> |
|
|
|
<select id="queryWarehouseAgvStatus" resultType="map"> |
|
|
|
SELECT |
|
|
|
SELECT |
|
|
|
NULL AS id, |
|
|
|
NULL AS name, |
|
|
|
NULL AS status, |
|
|
|
@ -180,43 +183,43 @@ |
|
|
|
-- 说明:根据实际领料申请单表(如material_request、picking_order等)调整SQL |
|
|
|
SELECT |
|
|
|
-- 总数 |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS total, |
|
|
|
|
|
|
|
|
|
|
|
-- 已完成数 |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'COMPLETED' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS completed, |
|
|
|
|
|
|
|
|
|
|
|
-- 处理中数 |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'PROCESSING' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS processing, |
|
|
|
|
|
|
|
|
|
|
|
-- 待处理数 |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'PENDING' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS pending, |
|
|
|
|
|
|
|
|
|
|
|
-- 完成率(百分比) |
|
|
|
CASE |
|
|
|
WHEN (SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
CASE |
|
|
|
WHEN (SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) > 0 |
|
|
|
THEN CAST( |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'COMPLETED' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) * 100.0 / |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) * 100.0 / |
|
|
|
(SELECT COUNT(*) FROM material_request |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) |
|
|
|
AS INT) |
|
|
|
ELSE 0 |
|
|
|
ELSE 0 |
|
|
|
END AS completionRate |
|
|
|
</select> |
|
|
|
|
|
|
|
@ -225,43 +228,43 @@ |
|
|
|
-- 说明:根据实际发货单表(如shipment_order、delivery_order等)调整SQL |
|
|
|
SELECT |
|
|
|
-- 总数 |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS total, |
|
|
|
|
|
|
|
|
|
|
|
-- 已完成数 |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'COMPLETED' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS completed, |
|
|
|
|
|
|
|
|
|
|
|
-- 处理中数 |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'PROCESSING' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS processing, |
|
|
|
|
|
|
|
|
|
|
|
-- 待处理数 |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'PENDING' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS pending, |
|
|
|
|
|
|
|
|
|
|
|
-- 完成率(百分比) |
|
|
|
CASE |
|
|
|
WHEN (SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
CASE |
|
|
|
WHEN (SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) > 0 |
|
|
|
THEN CAST( |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND status = 'COMPLETED' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) * 100.0 / |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) * 100.0 / |
|
|
|
(SELECT COUNT(*) FROM shipment_order |
|
|
|
WHERE is_deleted = '0' |
|
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) |
|
|
|
AS INT) |
|
|
|
ELSE 0 |
|
|
|
ELSE 0 |
|
|
|
END AS completionRate |
|
|
|
</select> |
|
|
|
|
|
|
|
|