fix(report): 修复巡检统计数据查询逻辑

- 将应检设备计算方式从硬编码乘法改为关联DMS_PLAN_INSPECT表获取DEVICE_AMOUNT
- 更新数据来源说明,增加DMS_PLAN_INSPECT表关联
- 优化SQL查询逻辑,使用NVL函数处理空值情况
- 确保设备总数统计准确性,避免因计划数量变化导致的数据错误
master
zangch@mesnac.com 4 days ago
parent 4070af5e82
commit 9eec0b171c

@ -55,11 +55,18 @@
</select>
<!-- 查询巡检执行情况统计(全量历史) -->
<!-- 应检设备 = 从工单表统计不同计划ID数 × 18每计划18台设备 -->
<!-- 应检设备 = 关联 DMS_PLAN_INSPECT 表,汇总 DEVICE_AMOUNT设备总数 -->
<!-- 已检设备 = DMS_BILLS_INSPECT_INSTANCE 中 INSPECT_STATUS='3'(已完成) 的工单数量 -->
<!-- 数据来源DMS_BILLS_INSPECT_INSTANCE -->
<!-- 数据来源DMS_BILLS_INSPECT_INSTANCE + DMS_PLAN_INSPECT -->
<select id="selectInspectStatistics" resultType="java.util.HashMap">
SELECT (SELECT COUNT(DISTINCT PLAN_INSPECT_ID) * 18 FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1') AS DEVICE_COUNT,
SELECT (SELECT NVL(SUM(p.DEVICE_AMOUNT), 0)
FROM DMS_PLAN_INSPECT p
WHERE p.PLAN_INSPECT_ID IN (
SELECT DISTINCT PLAN_INSPECT_ID
FROM DMS_BILLS_INSPECT_INSTANCE
WHERE IS_FLAG = '1'
)
) AS DEVICE_COUNT,
(SELECT COUNT(*) FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1' AND INSPECT_STATUS = '3') AS COMPLETE_COUNT
FROM DUAL
</select>

Loading…
Cancel
Save