|
|
<?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>
|