You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
269 lines
11 KiB
269 lines
11 KiB
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
|
<mapper namespace="com.gaotao.modules.dashboard.dao.DashboardDao">
|
|
|
|
<!-- 查询分切区助力臂数据 -->
|
|
<select id="querySlittingAssistArmData" resultType="map">
|
|
SELECT
|
|
storage_location AS storageLocation,
|
|
pallet_code AS palletCode,
|
|
picking_location AS pickingLocation,
|
|
material_name AS materialName,
|
|
quantity,
|
|
status
|
|
FROM view_board_slitting_assist_arm
|
|
ORDER BY picking_location ASC
|
|
</select>
|
|
|
|
<!-- 查询分切区入库数据 -->
|
|
<select id="querySlittingInboundData" resultType="map">
|
|
SELECT
|
|
storage_location AS storageLocation,
|
|
pallet_code AS palletCode,
|
|
task_type AS taskType,
|
|
status
|
|
FROM view_board_slitting_inbound
|
|
ORDER BY storage_location ASC
|
|
</select>
|
|
|
|
<!-- ==================== 智能立体仓库看板查询 ==================== -->
|
|
|
|
<!-- 查询立体仓库任务统计数据 -->
|
|
<select id="queryWarehouseTaskStats" resultType="map">
|
|
-- 说明:根据实际数据库表结构调整SQL
|
|
-- 这里提供示例结构,需要根据实际的任务表(如wms_task、agv_task等)调整
|
|
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,
|
|
|
|
-- 出库占比(百分比)
|
|
CASE
|
|
WHEN (SELECT COUNT(*) FROM wms_task
|
|
WHERE is_deleted = '0'
|
|
AND MONTH(created_date) = MONTH(GETDATE())
|
|
AND YEAR(created_date) = 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()))
|
|
AS INT)
|
|
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
|
|
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()))
|
|
AS INT)
|
|
ELSE 0
|
|
END AS inboundPercent
|
|
</select>
|
|
|
|
<!-- 查询立体仓库库位利用率数据 -->
|
|
<select id="queryWarehouseStorageUtilization" resultType="map">
|
|
-- 说明:根据实际库位表(如location、storage_location等)调整SQL
|
|
SELECT
|
|
-- 总库位数
|
|
(SELECT COUNT(*) FROM location WHERE is_deleted = '0' AND warehouse = 'WAREHOUSE_3D') AS totalSlots,
|
|
|
|
-- 已使用库位数(有库存的库位)
|
|
(SELECT COUNT(DISTINCT location_code) FROM inventory_stock
|
|
WHERE is_deleted = '0' AND in_stock_flag = 'Y') AS usedSlots,
|
|
|
|
-- 利用率(百分比,保留1位小数)
|
|
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(*) FROM location WHERE is_deleted = '0' AND warehouse = 'WAREHOUSE_3D')
|
|
AS DECIMAL(5,1))
|
|
ELSE 0
|
|
END AS utilizationRate,
|
|
|
|
-- 钢制托盘数量(根据pallet_type字段统计)
|
|
(SELECT COUNT(*) FROM pallet
|
|
WHERE is_deleted = '0' AND pallet_type = 'STEEL') AS steelPallet,
|
|
|
|
-- 护边托盘数量
|
|
(SELECT COUNT(*) FROM pallet
|
|
WHERE is_deleted = '0' AND pallet_type = 'GUARD') AS guardPallet,
|
|
|
|
-- 平托盘数量
|
|
(SELECT COUNT(*) FROM pallet
|
|
WHERE is_deleted = '0' AND pallet_type = 'FLAT') AS flatPallet
|
|
</select>
|
|
|
|
<!-- 查询立体仓库机器人状态数据 -->
|
|
<select id="queryWarehouseRobotStatus" resultType="map">
|
|
-- 说明:根据实际设备表(如equipment、robot_device等)调整SQL
|
|
SELECT
|
|
id,
|
|
device_name AS name,
|
|
device_status AS status,
|
|
CASE device_status
|
|
WHEN 'WORKING' THEN '工作中'
|
|
WHEN 'IDLE' THEN '空闲'
|
|
WHEN 'CHARGING' THEN '充电中'
|
|
WHEN 'ERROR' THEN '故障'
|
|
ELSE '未知'
|
|
END AS statusText,
|
|
efficiency,
|
|
current_tasks AS tasks
|
|
FROM equipment_device
|
|
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
|
|
NULL AS id,
|
|
NULL AS name,
|
|
NULL AS status,
|
|
NULL AS statusText,
|
|
NULL AS battery,
|
|
NULL AS tasks
|
|
WHERE 1=0
|
|
</select>
|
|
|
|
<!-- 查询立体仓库领料申请单统计 -->
|
|
<select id="queryWarehouseMaterialRequestStats" resultType="map">
|
|
-- 说明:根据实际领料申请单表(如material_request、picking_order等)调整SQL
|
|
SELECT
|
|
-- 总数
|
|
(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'
|
|
AND status = 'COMPLETED'
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS completed,
|
|
|
|
-- 处理中数
|
|
(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'
|
|
AND status = 'PENDING'
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS pending,
|
|
|
|
-- 完成率(百分比)
|
|
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'
|
|
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))
|
|
AS INT)
|
|
ELSE 0
|
|
END AS completionRate
|
|
</select>
|
|
|
|
<!-- 查询立体仓库发货统计 -->
|
|
<select id="queryWarehouseShipmentStats" resultType="map">
|
|
-- 说明:根据实际发货单表(如shipment_order、delivery_order等)调整SQL
|
|
SELECT
|
|
-- 总数
|
|
(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'
|
|
AND status = 'COMPLETED'
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS completed,
|
|
|
|
-- 处理中数
|
|
(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'
|
|
AND status = 'PENDING'
|
|
AND DATE(created_date) = CAST(GETDATE() AS DATE)) AS pending,
|
|
|
|
-- 完成率(百分比)
|
|
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'
|
|
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))
|
|
AS INT)
|
|
ELSE 0
|
|
END AS completionRate
|
|
</select>
|
|
|
|
</mapper>
|
|
|