|
|
|
|
@ -4,52 +4,63 @@
|
|
|
|
|
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
|
|
<mapper namespace="com.aucma.report.mapper.Board5Mapper">
|
|
|
|
|
|
|
|
|
|
<!-- 查询工单统计(总数、已完成、停机,全量历史) -->
|
|
|
|
|
<!-- 数据来源:BASE_ORDERINFO -->
|
|
|
|
|
<!-- EXECUTION_STATUS: PENDING/RUNNING/COMPLETED/PAUSED -->
|
|
|
|
|
<!-- 查询工单统计(维修+保养+巡检工单总数、已完成、停机,全量历史) -->
|
|
|
|
|
<!-- 维修工单: DMS_BILLS_FAULT_INSTANCE, WHERE IS_FLAG = '1' -->
|
|
|
|
|
<!-- 保养工单: DMS_BILLS_MAINT_INSTANCE(无IS_FLAG字段,全量统计) -->
|
|
|
|
|
<!-- 巡检工单: DMS_BILLS_INSPECT_INSTANCE, WHERE IS_FLAG = '1' -->
|
|
|
|
|
<select id="selectOrderWorkStatistics" resultType="java.util.HashMap">
|
|
|
|
|
SELECT COUNT(*) AS TOTAL_COUNT,
|
|
|
|
|
SUM(CASE WHEN EXECUTION_STATUS = 'COMPLETED' THEN 1 ELSE 0 END) AS COMPLETE_COUNT,
|
|
|
|
|
SUM(CASE WHEN EXECUTION_STATUS = 'PAUSED' THEN 1 ELSE 0 END) AS STOP_COUNT
|
|
|
|
|
FROM BASE_ORDERINFO
|
|
|
|
|
WHERE IS_FLAG = 0
|
|
|
|
|
SELECT
|
|
|
|
|
-- 工单总数 = 维修工单 + 保养工单 + 巡检工单
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_FAULT_INSTANCE WHERE IS_FLAG = '1') +
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_MAINT_INSTANCE) +
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1') AS TOTAL_COUNT,
|
|
|
|
|
|
|
|
|
|
-- 已完成 = 维修完成(BILLS_STATUS='2') + 保养完成(MAINT_STATUS='3') + 巡检完成(INSPECT_STATUS='3')
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_FAULT_INSTANCE WHERE IS_FLAG = '1' AND BILLS_STATUS = '2') +
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_MAINT_INSTANCE WHERE MAINT_STATUS = '3') +
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1' AND INSPECT_STATUS = '3') AS COMPLETE_COUNT,
|
|
|
|
|
|
|
|
|
|
-- 停机工单 = 维修中(BILLS_STATUS='1')
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_FAULT_INSTANCE WHERE IS_FLAG = '1' AND BILLS_STATUS = '1') AS STOP_COUNT
|
|
|
|
|
FROM DUAL
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询维修时间统计(平均响应时间、平均维修时间,全量历史) -->
|
|
|
|
|
<!-- 平均响应时间 = (REAL_BEGIN_TIME - APPLY_TIME) 的平均值,单位分钟 -->
|
|
|
|
|
<!-- 平均维修时间 = (REAL_END_TIME - REAL_BEGIN_TIME) 的平均值,单位小时 -->
|
|
|
|
|
<!-- 数据来源:DMS_BILLS_FAULT_INSTANCE -->
|
|
|
|
|
<!-- BILLS_STATUS: 0=待维修, 1=维修中, 2=维修完成 -->
|
|
|
|
|
<select id="selectRepairTimeStatistics" resultType="java.util.HashMap">
|
|
|
|
|
SELECT ROUND(NVL(AVG((REAL_BEGIN_TIME - APPLY_TIME) * 24 * 60), 0), 2) AS AVG_RESPONSE_TIME,
|
|
|
|
|
ROUND(NVL(AVG((REAL_END_TIME - REAL_BEGIN_TIME) * 24), 0), 2) AS AVG_REPAIR_TIME
|
|
|
|
|
FROM DMS_BILLS_FAULT_INSTANCE
|
|
|
|
|
WHERE IS_FLAG = '1'
|
|
|
|
|
AND REAL_BEGIN_TIME IS NOT NULL
|
|
|
|
|
AND REAL_END_TIME IS NOT NULL -- 确保完成时间存在
|
|
|
|
|
AND BILLS_STATUS IN ('2', '5') -- 仅计算已完成工单
|
|
|
|
|
AND REAL_END_TIME IS NOT NULL
|
|
|
|
|
AND BILLS_STATUS = '2'
|
|
|
|
|
AND APPLY_TIME IS NOT NULL
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询保养执行情况统计(全量历史) -->
|
|
|
|
|
<!-- MAINT_STATUS: 1=待保养, 2=保养中, 3=已完成, 4=待验证 -->
|
|
|
|
|
<!-- 数据来源:DMS_PLAN_MAINT -->
|
|
|
|
|
<!-- MAINT_STATUS: 1=待保养, 2=保养中, 3=已完成 -->
|
|
|
|
|
<!-- 注意:此表没有 IS_FLAG 字段;MAINT_STATUS 是 CHAR(1) 类型 -->
|
|
|
|
|
<!-- 注意:工单表没有 MAINT_STATUS=4(待验证)状态,该字段返回0 -->
|
|
|
|
|
<select id="selectMaintStatistics" resultType="java.util.HashMap">
|
|
|
|
|
SELECT COUNT(*) AS PLAN_COUNT,
|
|
|
|
|
SUM(CASE WHEN MAINT_STATUS = 3 THEN 1 ELSE 0 END) AS COMPLETE_COUNT,
|
|
|
|
|
SUM(CASE WHEN MAINT_STATUS = 1 THEN 1 ELSE 0 END) AS WAITING_COUNT,
|
|
|
|
|
SUM(CASE WHEN MAINT_STATUS = 2 THEN 1 ELSE 0 END) AS DOING_COUNT,
|
|
|
|
|
SUM(CASE WHEN MAINT_STATUS = 4 THEN 1 ELSE 0 END) AS VERIFY_COUNT
|
|
|
|
|
FROM DMS_PLAN_MAINT
|
|
|
|
|
WHERE IS_FLAG = 1
|
|
|
|
|
SUM(CASE WHEN MAINT_STATUS = '3' THEN 1 ELSE 0 END) AS COMPLETE_COUNT,
|
|
|
|
|
SUM(CASE WHEN MAINT_STATUS = '1' THEN 1 ELSE 0 END) AS WAITING_COUNT,
|
|
|
|
|
SUM(CASE WHEN MAINT_STATUS = '2' THEN 1 ELSE 0 END) AS DOING_COUNT,
|
|
|
|
|
0 AS VERIFY_COUNT
|
|
|
|
|
FROM DMS_BILLS_MAINT_INSTANCE
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询巡检执行情况统计(全量历史) -->
|
|
|
|
|
<!-- 应检设备 = DMS_PLAN_INSPECT.DEVICE_AMOUNT 求和 -->
|
|
|
|
|
<!-- 已检设备 = DMS_BILLS_INSPECT_INSTANCE 中 INSPECT_STATUS=2(已完成) 的设备数量 -->
|
|
|
|
|
<!-- 已检设备 = DMS_BILLS_INSPECT_INSTANCE 中 INSPECT_STATUS='3'(已完成) 的设备数量 -->
|
|
|
|
|
<!-- 数据来源:DMS_PLAN_INSPECT, DMS_BILLS_INSPECT_INSTANCE -->
|
|
|
|
|
<select id="selectInspectStatistics" resultType="java.util.HashMap">
|
|
|
|
|
SELECT (SELECT NVL(SUM(DEVICE_AMOUNT), 0) FROM DMS_PLAN_INSPECT WHERE IS_FLAG = '1') AS DEVICE_COUNT,
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1' AND INSPECT_STATUS = '2') AS COMPLETE_COUNT
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1' AND INSPECT_STATUS = '3') AS COMPLETE_COUNT
|
|
|
|
|
FROM DUAL
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|