BI月台动态真实数据

This commit is contained in:
秦鸿展
2026-08-10 19:58:05 +08:00
parent 14a5aedf15
commit 8eb280f2b9
2 changed files with 39 additions and 36 deletions
@@ -5,30 +5,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<mapper namespace="com.mhd.bi.domain.biPlatformRealData.repository.mapper.BiPlatformRealDataMapper">
<!-- 作业车辆状态列表(vehicles):
plateNumber <- qms_main_business.CARNO
status <- qms_main_business.FLOWSTATUS
platformId <- qms_queue_list.WINDOWNAME按主业务的某个窗口关联键关联;此处用 businessNo = windowNo 关联,根据实际表调整
platformDuration <- qms_main_business.EXITTIME - ENTRYTIME(分钟)
appointmentTime <- qms_main_business.CREATE_TIME(创建时间)
workFloor <- qms_window_info.PLATFORMFLOOR(按 platformId 关联窗口号
注:列名按达梦默认大写规则;若实际为小写,请反馈调整 -->
plateNumber <- qms_main_business.CAR_NO
status <- qms_main_business.FLOW_STATUS
platformId <- qms_main_business.WINDOW_NAME叫号月台,主业务表直接有
platformDuration <- qms_main_business.EXIT_TIME - ENTRY_TIME(分钟)
appointmentTime <- qms_main_business.CREATE_TIME
workFloor <- qms_window_info.PLATFORM_FLOOR(按 WINDOW_NAME 关联
-->
<select id="queryVehicles" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformVehiclePO">
SELECT
mb.CARNO AS plateNumber,
mb.FLOWSTATUS AS status,
ql.WINDOWNAME AS platformId,
mb.CAR_NO AS plateNumber,
mb.FLOW_STATUS AS status,
mb.WINDOW_NAME AS platformId,
CASE
WHEN mb.EXITTIME IS NOT NULL AND mb.ENTRYTIME IS NOT NULL
THEN CAST((mb.EXITTIME - mb.ENTRYTIME) AS BIGINT)
WHEN mb.EXIT_TIME IS NOT NULL AND mb.ENTRY_TIME IS NOT NULL
THEN CAST(EXTRACT(MINUTE FROM (mb.EXIT_TIME - mb.ENTRY_TIME))
+ EXTRACT(HOUR FROM (mb.EXIT_TIME - mb.ENTRY_TIME)) * 60 AS BIGINT)
ELSE 0
END AS platformDuration,
TO_CHAR(mb.CREATE_TIME, 'YYYY-MM-DD HH24:MI:SS') AS appointmentTime,
wi.PLATFORMFLOOR AS workFloor
wi.PLATFORM_FLOOR AS workFloor
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS mb
LEFT JOIN NGWL_TEST_YMS.QMS_QUEUE_LIST ql ON ql.MAIN_BUSINESS_ID = mb.ID
LEFT JOIN NGWL_TEST_YMS.QMS_WINDOW_INFO wi ON wi.WINDOW_NO = ql.WINDOWNAME
WHERE 1=1
AND mb.DEL_FLAG = 1
LEFT JOIN NGWL_TEST_YMS.QMS_WINDOW_INFO wi
ON wi.WINDOW_NAME = mb.WINDOW_NAME
ORDER BY mb.CREATE_TIME DESC
LIMIT 50
</select>
@@ -37,49 +36,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="queryPlatformOverview" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealPlatformOverviewPO">
SELECT
COUNT(1) AS totalPlatforms,
SUM(CASE WHEN STATUS = 2 THEN 1 ELSE 0 END) AS operatingPlatforms
SUM(CASE WHEN JOB_STATUS = 2 THEN 1 ELSE 0 END) AS operatingPlatforms
FROM NGWL_TEST_YMS.QMS_WINDOW_INFO
WHERE DEL_FLAG = 1
</select>
<!-- 今日作业任务:实际进入时间是今日的 -->
<select id="countTodayTasks" resultType="java.lang.Long">
SELECT COUNT(1)
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
WHERE DEL_FLAG = 1
AND TRUNC(ENTRYTIME) = TRUNC(SYSDATE)
WHERE ENTRY_TIME IS NOT NULL
AND TRUNC(ENTRY_TIME) = TRUNC(SYSDATE)
</select>
<!-- 车辆状态统计:今日的统计(按预约申请时间 / 流程状态) -->
<!-- 车辆状态统计:今日的统计(按创建时间 / 流程状态) -->
<select id="queryVehicleStatusToday" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealVehicleStatusPO">
SELECT
SUM(CASE WHEN TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS todayReservedVehicles,
SUM(CASE WHEN FLOWSTATUS = '已预约' AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS notCheckedIn,
SUM(CASE WHEN FLOWSTATUS IN ('已进场','已称重','已装车','二次称重','已结算','已还卡') AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS operatingVehicles,
SUM(CASE WHEN FLOWSTATUS = '已出场' AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS completedVehicles
SUM(CASE WHEN FLOW_STATUS = '已预约' AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS notCheckedIn,
SUM(CASE WHEN FLOW_STATUS IN ('已进场','已称重','已装车','二次称重','已结算','已还卡') AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS operatingVehicles,
SUM(CASE WHEN FLOW_STATUS = '已出场' AND TRUNC(CREATE_TIME) = TRUNC(SYSDATE) THEN 1 ELSE 0 END) AS completedVehicles
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
WHERE DEL_FLAG = 1
</select>
<!-- 本月任务量:实际进入时间是本月的 -->
<select id="countMonthTasks" resultType="java.lang.Long">
SELECT COUNT(1)
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
WHERE DEL_FLAG = 1
AND ENTRYTIME IS NOT NULL
AND TO_CHAR(ENTRYTIME, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
WHERE ENTRY_TIME IS NOT NULL
AND TO_CHAR(ENTRY_TIME, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
</select>
<!-- 任务负荷(今日 24 小时时段):按 HOUR(ENTRYTIME) 统计 -->
<!-- 任务负荷(今日 24 小时时段):按 EXTRACT(HOUR FROM ENTRY_TIME) 统计 -->
<select id="queryTaskLoadToday" resultType="com.mhd.bi.domain.biPlatformRealData.repository.po.RealTaskLoadPO">
SELECT
HOUR(ENTRYTIME) AS hourOfDay,
EXTRACT(HOUR FROM ENTRY_TIME) AS hourOfDay,
COUNT(1) AS taskCount
FROM NGWL_TEST_YMS.QMS_MAIN_BUSINESS
WHERE DEL_FLAG = 1
AND ENTRYTIME IS NOT NULL
AND TRUNC(ENTRYTIME) = TRUNC(SYSDATE)
GROUP BY HOUR(ENTRYTIME)
ORDER BY HOUR(ENTRYTIME)
WHERE ENTRY_TIME IS NOT NULL
AND TRUNC(ENTRY_TIME) = TRUNC(SYSDATE)
GROUP BY EXTRACT(HOUR FROM ENTRY_TIME)
ORDER BY EXTRACT(HOUR FROM ENTRY_TIME)
</select>
</mapper>