|
|
|
|
@ -19,7 +19,8 @@
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询日累计产量(当天工艺参数) -->
|
|
|
|
|
<!-- 使用BASE_DEVICE_PARAM_VAL表,PARAM_CODE='19'表示实际产出数量 -->
|
|
|
|
|
<!-- 使用BASE_DEVICE_PARAM_VAL表,通过PARAM_NAME='机台状态-实际产出数量'定位参数 -->
|
|
|
|
|
<!-- 注意:PARAM_CODE可能因设备不同而变化,但PARAM_NAME是固定的 -->
|
|
|
|
|
<!-- 取每台设备当天最新的一条记录的实际产出数量进行汇总 -->
|
|
|
|
|
<select id="selectDayProductionTotal" resultType="java.lang.Long">
|
|
|
|
|
SELECT NVL(SUM(TO_NUMBER(PARAM_VALUE)), 0)
|
|
|
|
|
@ -27,7 +28,7 @@
|
|
|
|
|
SELECT DEVICE_CODE, PARAM_VALUE,
|
|
|
|
|
ROW_NUMBER() OVER (PARTITION BY DEVICE_CODE ORDER BY COLLECT_TIME DESC) AS RN
|
|
|
|
|
FROM BASE_DEVICE_PARAM_VAL
|
|
|
|
|
WHERE PARAM_CODE = '19'
|
|
|
|
|
WHERE PARAM_NAME = '机台状态-实际产出数量'
|
|
|
|
|
AND TO_CHAR(COLLECT_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD')
|
|
|
|
|
)
|
|
|
|
|
WHERE RN = 1
|
|
|
|
|
@ -56,14 +57,15 @@
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询设备状态统计 -->
|
|
|
|
|
<!-- DEVICE_STATUS: 0-使用/正常, 1-停用/告警, 2-报废/停机 -->
|
|
|
|
|
<!-- DEVICE_STATUS: NUMBER(1,0)类型,0=使用/正常, 1=停用/告警, 2=报废/停机 -->
|
|
|
|
|
<!-- IS_FLAG: NUMBER(1,0)类型,0=有效 -->
|
|
|
|
|
<select id="selectDeviceStatusStatistics" resultType="java.util.HashMap">
|
|
|
|
|
SELECT COUNT(*) AS TOTAL_COUNT,
|
|
|
|
|
SUM(CASE WHEN DEVICE_STATUS = '0' THEN 1 ELSE 0 END) AS NORMAL_COUNT,
|
|
|
|
|
SUM(CASE WHEN DEVICE_STATUS = '1' THEN 1 ELSE 0 END) AS ALARM_COUNT,
|
|
|
|
|
SUM(CASE WHEN DEVICE_STATUS = '2' THEN 1 ELSE 0 END) AS STOP_COUNT
|
|
|
|
|
SUM(CASE WHEN DEVICE_STATUS = 0 THEN 1 ELSE 0 END) AS NORMAL_COUNT,
|
|
|
|
|
SUM(CASE WHEN DEVICE_STATUS = 1 THEN 1 ELSE 0 END) AS ALARM_COUNT,
|
|
|
|
|
SUM(CASE WHEN DEVICE_STATUS = 2 THEN 1 ELSE 0 END) AS STOP_COUNT
|
|
|
|
|
FROM BASE_DEVICELEDGER
|
|
|
|
|
WHERE IS_FLAG = '0'
|
|
|
|
|
WHERE IS_FLAG = 0
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询总维修次数 -->
|
|
|
|
|
@ -74,28 +76,30 @@
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询最新报警信息 -->
|
|
|
|
|
<!-- 设备表使用 BASE_DEVICELEDGER,主键是 OBJ_ID -->
|
|
|
|
|
<select id="selectLatestAlarmInfo" resultType="java.util.HashMap">
|
|
|
|
|
SELECT * FROM (
|
|
|
|
|
SELECT d.DEVICE_NAME AS DEVICE_NAME,
|
|
|
|
|
a.ALARM_CONTENT AS ALARM_REASON,
|
|
|
|
|
TO_CHAR(a.ALARM_TIME, 'HH24:MI:SS') AS ALARM_TIME
|
|
|
|
|
FROM DMS_RECORD_ALARM_INFO a
|
|
|
|
|
LEFT JOIN DMS_BASE_DEVICE_LEDGER d ON a.DEVICE_ID = d.DEVICE_ID
|
|
|
|
|
LEFT JOIN BASE_DEVICELEDGER d ON a.DEVICE_ID = d.OBJ_ID
|
|
|
|
|
ORDER BY a.ALARM_TIME DESC
|
|
|
|
|
) WHERE ROWNUM = 1
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
<!-- 查询维修分析列表(按设备聚合) -->
|
|
|
|
|
<!-- 设备表使用 BASE_DEVICELEDGER,主键是 OBJ_ID -->
|
|
|
|
|
<select id="selectRepairAnalysisByDevice" resultType="com.aucma.report.domain.vo.Board4RepairAnalysisVo">
|
|
|
|
|
SELECT * FROM (
|
|
|
|
|
SELECT d.DEVICE_NAME AS deviceName,
|
|
|
|
|
COUNT(*) AS repairCount,
|
|
|
|
|
ROUND(COUNT(*) * 100.0 / NULLIF((SELECT COUNT(*) FROM DMS_BILLS_FAULT_INSTANCE WHERE IS_FLAG = '1'), 0), 0) AS percent
|
|
|
|
|
FROM DMS_BILLS_FAULT_INSTANCE f
|
|
|
|
|
LEFT JOIN DMS_BASE_DEVICE_LEDGER d ON f.DEVICE_ID = d.DEVICE_ID
|
|
|
|
|
LEFT JOIN BASE_DEVICELEDGER d ON f.DEVICE_ID = d.OBJ_ID
|
|
|
|
|
WHERE f.IS_FLAG = '1'
|
|
|
|
|
AND f.DEVICE_ID IS NOT NULL
|
|
|
|
|
GROUP BY d.DEVICE_ID, d.DEVICE_NAME
|
|
|
|
|
GROUP BY d.OBJ_ID, d.DEVICE_NAME
|
|
|
|
|
ORDER BY repairCount DESC
|
|
|
|
|
) WHERE ROWNUM <= 10
|
|
|
|
|
</select>
|
|
|
|
|
@ -136,6 +140,8 @@
|
|
|
|
|
|
|
|
|
|
<!-- 查询设备分析列表(各设备机台实际产量) -->
|
|
|
|
|
<!-- 从BASE_DEVICE_PARAM_VAL获取当天每台设备的最新实际产出数量 -->
|
|
|
|
|
<!-- 注意:通过PARAM_NAME='机台状态-实际产出数量'定位参数,而非PARAM_CODE -->
|
|
|
|
|
<!-- 因为PARAM_CODE可能因设备不同而变化,但PARAM_NAME是固定的 -->
|
|
|
|
|
<select id="selectDeviceProductionAnalysis" resultType="com.aucma.report.domain.vo.Board4DeviceProductionVo">
|
|
|
|
|
SELECT d.DEVICE_NAME AS deviceName,
|
|
|
|
|
NVL(TO_NUMBER(p.PARAM_VALUE), 0) AS production
|
|
|
|
|
@ -146,12 +152,12 @@
|
|
|
|
|
SELECT DEVICE_CODE, PARAM_VALUE,
|
|
|
|
|
ROW_NUMBER() OVER (PARTITION BY DEVICE_CODE ORDER BY COLLECT_TIME DESC) AS RN
|
|
|
|
|
FROM BASE_DEVICE_PARAM_VAL
|
|
|
|
|
WHERE PARAM_CODE = '19'
|
|
|
|
|
WHERE PARAM_NAME = '机台状态-实际产出数量'
|
|
|
|
|
AND TO_CHAR(COLLECT_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD')
|
|
|
|
|
)
|
|
|
|
|
WHERE RN = 1
|
|
|
|
|
) p ON d.DEVICE_CODE = p.DEVICE_CODE
|
|
|
|
|
WHERE d.IS_FLAG = '0'
|
|
|
|
|
WHERE d.IS_FLAG = 0
|
|
|
|
|
AND d.DEVICE_TYPE = '1'
|
|
|
|
|
ORDER BY production DESC
|
|
|
|
|
</select>
|
|
|
|
|
|