@ -16,11 +16,13 @@
<select id= "resourceRunParamData" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "resourceRunParamData" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
WITH TPARAM AS(
WITH TPARAM AS(
SELECT
SELECT
ZRSR.RESRCE, R.DESCRIPTION RESOURCE_DESCRIPTION,
ZRSR.RESRCE,
CF.VALUE, CF.VALUE || '/' || R.DESCRIPTION NAME,
R.DESCRIPTION RESOURCE_DESCRIPTION,
CF.VALUE,
CF.VALUE || '/' || R.DESCRIPTION NAME,
CASE
CASE
WHEN ZRSR.STATUS = 'RUN' THEN '#7FB80E'
WHEN ZRSR.STATUS = 'RUN' THEN '#7FB80E' --'#1afa29'
WHEN ZRSR.STATUS = 'DOW' THEN '#F5A15B'
WHEN ZRSR.STATUS = 'DOW' THEN '#F5A15B' --'#EF4136'
ELSE '#dbdbdb'
ELSE '#dbdbdb'
END STATUS_COLOR,
END STATUS_COLOR,
CASE
CASE
@ -28,50 +30,106 @@
WHEN ZRSR.STATUS = 'DOW' THEN '停机'
WHEN ZRSR.STATUS = 'DOW' THEN '停机'
ELSE '空闲'
ELSE '空闲'
END STATUS_NAME,
END STATUS_NAME,
ZEDR.S1 FEED_RATE, ZEDR.S2 FEED_VALUE, ZEDR.S3 SPINDLE_LOAD, ZEDR.S4 SPINDLE_SPEED
ZEDR.S1 FEED_RATE,
ZEDR.S2 FEED_VALUE,
ZEDR.S3 SPINDLE_LOAD,
ZEDR.S4 SPINDLE_SPEED
FROM
FROM
Z_RESOURCE_STATUS_RECEIVE ZRSR
Z_RESOURCE_STATUS_RECEIVE ZRSR
LEFT JOIN RESRCE R ON R.RESRCE = ZRSR.RESRCE AND R.SITE = '1000'
LEFT JOIN RESRCE R ON
LEFT JOIN Z_EDC_DATA_RESOURCE ZEDR ON ZEDR.RESRCE = ZRSR.RESRCE
R.RESRCE = ZRSR.RESRCE
LEFT JOIN CUSTOM_FIELDS cf ON CF.HANDLE = R.HANDLE AND CF."ATTRIBUTE" = 'RESOURCE_LOCATION'
AND R.SITE = '1000'
LEFT JOIN Z_EDC_DATA_RESOURCE ZEDR ON
ZEDR.RESRCE = ZRSR.RESRCE
LEFT JOIN CUSTOM_FIELDS cf ON
CF.HANDLE = R.HANDLE
AND CF."ATTRIBUTE" = 'RESOURCE_LOCATION'
),
),
TEMP AS(
TEMP AS(
SELECT
SELECT
ZSD.RESRCE, ZSD.DISPATCH_STATUS, i.ITEM, it.DESCRIPTION, ZSD.ACTUAL_START_DATE,
ZSD.RESRCE,
ZSD.PROD_HOURS, ZSD.DISPATCH_QTY, ZSD.STEP_ID, ZSD.ACTUAL_PROD_HOURS
ZSD.DISPATCH_STATUS,
i.ITEM,
it.DESCRIPTION,
ZSD.ACTUAL_START_DATE,
ZSD.PROD_HOURS,
ZSD.DISPATCH_QTY,
ZSD.STEP_ID,
ZSD.ACTUAL_PROD_HOURS
FROM
FROM
Z_SFC_DISPATCH zsd
Z_SFC_DISPATCH zsd
INNER JOIN Z_RESOURCE_STATUS_RECEIVE ZRSR ON ZRSR.RESRCE = ZSD.RESRCE
INNER JOIN Z_RESOURCE_STATUS_RECEIVE ZRSR ON
INNER JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZSD.SHOP_ORDER
ZRSR.RESRCE = ZSD.RESRCE
INNER JOIN ITEM i ON I.HANDLE = SO.ITEM_BO
INNER JOIN SHOP_ORDER SO ON
INNER JOIN ITEM_T IT ON IT.ITEM_BO = I.HANDLE AND IT.LOCALE = 'zh'
SO.SHOP_ORDER = ZSD.SHOP_ORDER
WHERE ZSD.SITE = '1000' AND ZSD.DISPATCH_STATUS IN( 'COMPLETE', 'START' )
INNER JOIN ITEM i ON
I.HANDLE = SO.ITEM_BO
INNER JOIN ITEM_T IT ON
IT.ITEM_BO = I.HANDLE
AND IT.LOCALE = 'zh'
WHERE
ZSD.SITE = '1000'
AND ZSD.DISPATCH_STATUS IN(
'COMPLETE',
'START'
)
),
),
MN AS(
MN AS(
SELECT * FROM SELECT (
SELECT
*
FROM
(
SELECT
SELECT
ROW_NUMBER() OVER(
ROW_NUMBER() OVER(
PARTITION BY RESRCE
PARTITION BY RESRCE
ORDER BY
ORDER BY
DISPATCH_STATUS DESC, ACTUAL_START_DATE DESC, STEP_ID DESC
DISPATCH_STATUS DESC,
ACTUAL_START_DATE DESC,
STEP_ID DESC
) rn,
) rn,
RESRCE, DISPATCH_STATUS, ITEM, DESCRIPTION, DISPATCH_QTY, PROD_HOURS, ACTUAL_START_DATE, STEP_ID, ACTUAL_PROD_HOURS,
RESRCE,
DISPATCH_STATUS,
ITEM,
DESCRIPTION,
DISPATCH_QTY,
PROD_HOURS,
ACTUAL_START_DATE,
STEP_ID,
ACTUAL_PROD_HOURS,
CASE
CASE
WHEN DISPATCH_STATUS = 'START' THEN( SYSDATE -( ACTUAL_START_DATE + 8 / 24 ) )* 24
WHEN DISPATCH_STATUS = 'START' THEN(
SYSDATE -(
ACTUAL_START_DATE + 8 / 24
)
)* 24
ELSE NVL( 10000, ACTUAL_PROD_HOURS )
ELSE NVL( 10000, ACTUAL_PROD_HOURS )
END WORK_HOUR
END WORK_HOUR
FROM
FROM
TEMP
TEMP
)
)
WHERE rn = 1
WHERE
rn = 1
) SELECT
) SELECT
A.*, B.ITEM, B.DESCRIPTION ITEM_DESCRIPTION, B.DISPATCH_QTY,
A.*,
CASE WHEN B.PROD_HOURS > B.WORK_HOUR THEN ROUND( WORK_HOUR / PROD_HOURS, 2 )
B.ITEM,
ELSE( CASE WHEN B.DISPATCH_STATUS = 'START' THEN 90 ELSE 100 END )
B.DESCRIPTION ITEM_DESCRIPTION,
B.DISPATCH_QTY,
CASE
WHEN B.PROD_HOURS > B.WORK_HOUR THEN ROUND( WORK_HOUR / PROD_HOURS, 2 )
ELSE(
CASE
WHEN B.DISPATCH_STATUS = 'START' THEN 90
ELSE 100
END
)
END PROGRESS
END PROGRESS
FROM TPARAM A
FROM
LEFT JOIN MN B ON B.RESRCE = A.RESRCE
TPARAM A
ORDER BY A.VALUE, B.ITEM
LEFT JOIN MN B ON
B.RESRCE = A.RESRCE
ORDER BY
A.VALUE,
B.ITEM
</select>
</select>
<select id= "resourceFaultDescription" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "resourceFaultDescription" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
@ -127,7 +185,9 @@
<!-- 合格率 -->
<!-- 合格率 -->
<select id= "percentOfPass" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "percentOfPass" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT 10 "min", 100 "max", ROUND(SUM(CASE WHEN RESULT = 'OK' THEN QTY ELSE 0 END)/SUM(QTY)*100,2) "value", '%' "unit"
SELECT 10 "min", 100 "max",
CASE WHEN SUM(QTY) = 0 THEN 0
ELSE NVL(ROUND(SUM(CASE WHEN RESULT = 'OK' THEN QTY ELSE 0 END)/SUM(QTY)*100,2),0) END "value", '%' "unit"
FROM (
FROM (
SELECT ZT.SITE, ZT.SFC, ZT.RESULT, SC.QTY, RANK() OVER(PARTITION BY ZT.SITE, ZT.SFC ORDER BY ZT.CREATED_DATE_TIME DESC) AS ROW_ID
SELECT ZT.SITE, ZT.SFC, ZT.RESULT, SC.QTY, RANK() OVER(PARTITION BY ZT.SITE, ZT.SFC ORDER BY ZT.CREATED_DATE_TIME DESC) AS ROW_ID
FROM Z_INSPECTION_TASK ZT
FROM Z_INSPECTION_TASK ZT
@ -135,7 +195,7 @@
WHERE ZT.SITE = #{site} AND ZT.CATEGORY = 'P' AND STATUS = 'COMPLETE'
WHERE ZT.SITE = #{site} AND ZT.CATEGORY = 'P' AND STATUS = 'COMPLETE'
AND TO_CHAR(ZT.CREATED_DATE_TIME + 8/24,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
AND TO_CHAR(ZT.CREATED_DATE_TIME + 8/24,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
<if test= "workCenter != null and workCenter != ''" >
<if test= "workCenter != null and workCenter != ''" >
AND ZSD .WORK_CENTER = #{workCenter}
AND ZT .WORK_CENTER = #{workCenter}
</if>
</if>
) WHERE ROW_ID = 1
) WHERE ROW_ID = 1
GROUP BY SITE
GROUP BY SITE
@ -181,7 +241,7 @@
INNER JOIN SFC SC ON ZT.SITE = SC.SITE AND SC.SFC = ZT.SFC
INNER JOIN SFC SC ON ZT.SITE = SC.SITE AND SC.SFC = ZT.SFC
WHERE ZT.SITE = #{site} AND ZT.CATEGORY = 'P' AND ZT.STATUS = 'COMPLETE'
WHERE ZT.SITE = #{site} AND ZT.CATEGORY = 'P' AND ZT.STATUS = 'COMPLETE'
<if test= "workCenter != null and workCenter != ''" >
<if test= "workCenter != null and workCenter != ''" >
AND ZSD .WORK_CENTER = #{workCenter}
AND ZT .WORK_CENTER = #{workCenter}
</if>
</if>
) WHERE SEQ = 1
) WHERE SEQ = 1
GROUP BY TASK_MONTH
GROUP BY TASK_MONTH
@ -191,10 +251,6 @@
<!-- 完工进度 -->
<!-- 完工进度 -->
<select id= "scheduleOfCompletion" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "scheduleOfCompletion" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT K.* ,
CASE WHEN K.RATE_NUM = 0 THEN (K.RATE_NUM + 67) || '%'
ELSE K.RATE_NUM || '%' END COMP_RATE
FROM (
SELECT
SELECT
T.ITEM_NUMBER,
T.ITEM_NUMBER,
T.ITEM_DESC,
T.ITEM_DESC,
@ -202,9 +258,9 @@
T.PLANNED_COMP_DATE,
T.PLANNED_COMP_DATE,
T.PLANNED_START_DATE,
T.PLANNED_START_DATE,
CASE
CASE
WHEN SUM( T.CNT_HOURS)= 0 THEN 0
WHEN SUM( T.CNT_HOURS )= 0 THEN ' 0%'
ELSE ROUND( SUM( T.CNT_HOURS)/ SUM( T.PROD_HOURS),2)* 100
ELSE ROUND( SUM( T.CNT_HOURS )/ SUM( T.PROD_HOURS ), 2 )* 100 || '%'
END RATE_NUM
END COMP_ RATE
FROM
FROM
(
(
SELECT
SELECT
@ -239,15 +295,17 @@
SO.HANDLE = CF1.HANDLE
SO.HANDLE = CF1.HANDLE
AND CF1.ATTRIBUTE = 'FACTORY'
AND CF1.ATTRIBUTE = 'FACTORY'
WHERE
WHERE
ZSD.SITE = #{site} AND CF1.VALUE = '6106 '
ZSD.SITE = '1000 '
AND ZSD.DISPATCH_STATUS != 'CANCEL' AND TO_CHAR( SO.PLANNED_COMP_DATE + 8 / 24,'YYYY-MM')= TO_CHAR( SYSDATE,'YYYY-MM')
AND CF1.VALUE = '6106'
<if test= "workCenter != null and workCenter != ''" >
<if test= "workCenter != null and workCenter != ''" >
AND ZSD.WORK_CENTER = #{workCenter}
AND ZSD.WORK_CENTER = #{workCenter}
</if>
</if>
AND ZSD.DISPATCH_STATUS != 'CANCEL'
AND TO_CHAR( SO.PLANNED_COMP_DATE + 8 / 24, 'YYYY-MM' )= TO_CHAR( SYSDATE, 'YYYY-MM' )
ORDER BY
ORDER BY
ZSD.SHOP_ORDER,
ZSD.SHOP_ORDER,
ZSD.SFC
ZSD.SFC
) T
) T
GROUP BY
GROUP BY
T.ITEM_NUMBER,
T.ITEM_NUMBER,
T.ITEM_DESC,
T.ITEM_DESC,
@ -256,26 +314,25 @@
T.PLANNED_START_DATE
T.PLANNED_START_DATE
ORDER BY
ORDER BY
T.PLANNED_COMP_DATE
T.PLANNED_COMP_DATE
) K
</select>
</select>
<!-- 异常待解决\异常已解决\异常正在处理 -->
<!-- 异常待解决\异常已解决\异常正在处理 -->
<select id= "abnormal Un Resolve" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "abnormal ResolveData " resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT COUNT(1) "value" FROM Z_ABNORMAL_BILL ZB
SELECT COUNT(1) "value" FROM Z_ABNORMAL_BILL ZB
WHERE SITE = #{site} AND TO_CHAR(ZB.CREATED_DATE_TIME + 8/24,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
WHERE SITE = #{site} AND TO_CHAR(ZB.CREATED_DATE_TIME + 8/24,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
<if test= "workCenter != null and workCenter != ''" >
<if test= "workCenter != null and workCenter != ''" >
AND ZSD .WORK_CENTER = #{workCenter}
AND ZB .WORK_CENTER = #{workCenter}
</if>
</if>
<if test= "status != null and status != ''" >
<if test= "status != null and status != ''" >
<choose >
<choose >
<when test= "status.contains('unResolve')" >
<when test= "status.contains('unResolve')" >
AND STATUS = 'N'
AND ZB. STATUS = 'N'
</when>
</when>
<when test= "status.contains('resolve')" >
<when test= "status.contains('resolve')" >
AND STATUS = 'G'
AND ZB. STATUS = 'G'
</when>
</when>
<when test= "status.contains('dealing')" >
<when test= "status.contains('dealing')" >
AND STATUS NOT IN ('N', 'G', 'Q')
AND ZB. STATUS NOT IN ('N', 'G', 'Q')
</when>
</when>
</choose>
</choose>
</if>
</if>
@ -290,13 +347,13 @@
WHERE ZB.SITE = '1000' AND ZB.STATUS = 'N'
WHERE ZB.SITE = '1000' AND ZB.STATUS = 'N'
AND TO_CHAR(ZB.CREATED_DATE_TIME + 8/24, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
AND TO_CHAR(ZB.CREATED_DATE_TIME + 8/24, 'YYYY-MM') = TO_CHAR(SYSDATE, 'YYYY-MM')
<if test= "workCenter != null and workCenter != ''" >
<if test= "workCenter != null and workCenter != ''" >
AND ZSD .WORK_CENTER = #{workCenter}
AND ZB .WORK_CENTER = #{workCenter}
</if>
</if>
ORDER BY ZB.CREATED_DATE_TIME DESC
ORDER BY ZB.CREATED_DATE_TIME DESC
) WHERE ROWNUM < = 30
) WHERE ROWNUM < = 30
</select>
</select>
<!-- 焊接车间 -->
<!-- 焊接车间 计划数 -->
<select id= "planDataFSW" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "planDataFSW" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT SUM(ZSD.DISPATCH_QTY) "value" FROM Z_SFC_DISPATCH zsd
SELECT SUM(ZSD.DISPATCH_QTY) "value" FROM Z_SFC_DISPATCH zsd
INNER JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION
INNER JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION
@ -312,6 +369,7 @@
</otherwise>
</otherwise>
</choose>
</choose>
</select>
</select>
<!-- 焊接车间完成数 -->
<select id= "completeDataFSW" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "completeDataFSW" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT SUM(ZSD.DISPATCH_QTY) "value" FROM Z_SFC_DISPATCH zsd
SELECT SUM(ZSD.DISPATCH_QTY) "value" FROM Z_SFC_DISPATCH zsd
INNER JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION
INNER JOIN OPERATION O ON O.OPERATION = ZSD.OPERATION
@ -331,7 +389,7 @@
SELECT SHOP_ORDER FROM SHOP_ORDER SO WHERE TO_CHAR(SO.PLANNED_COMP_DATE + 8/24 , 'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
SELECT SHOP_ORDER FROM SHOP_ORDER SO WHERE TO_CHAR(SO.PLANNED_COMP_DATE + 8/24 , 'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
)
)
</select>
</select>
<!-- 计划数、完成数-->
<!-- 焊接车间 计划数、完成数-->
<select id= "planAndCompleteDataFSW" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
<select id= "planAndCompleteDataFSW" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT A.CNT QTY_PLAN , B.CNT QTY_DONE , A.CNT - B.CNT QTY_HAND FROM
SELECT A.CNT QTY_PLAN , B.CNT QTY_DONE , A.CNT - B.CNT QTY_HAND FROM
(
(
@ -367,4 +425,140 @@
SELECT SHOP_ORDER FROM SHOP_ORDER SO WHERE TO_CHAR(SO.PLANNED_COMP_DATE + 8/24 , 'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM') ) ) B
SELECT SHOP_ORDER FROM SHOP_ORDER SO WHERE TO_CHAR(SO.PLANNED_COMP_DATE + 8/24 , 'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM') ) ) B
</select>
</select>
<!-- 综合看板 -->
<!-- 设备不同状态数 -->
<select id= "resourceStatusQty" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT SUM(CASE WHEN "TYPE" = 'Z' THEN 1 ELSE 0 END) Z_QTY,
SUM(CASE WHEN "TYPE" = 'S' THEN 1 ELSE 0 END) S_QTY,
SUM(CASE WHEN "TYPE" = 'Q' THEN 1 ELSE 0 END) Q_QTY
FROM Z_ABNORMAL_BILL ZB
WHERE SITE = '1000' AND TO_CHAR(ZB.CREATED_DATE_TIME,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
GROUP BY TO_CHAR(ZB.CREATED_DATE_TIME,'YYYY-MM')
</select>
<!-- 设备各异常处理状态 -->
<select id= "resourceAbnormalInfo" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT TEMP.* , T.CNT FROM
(
SELECT '其他' TYPE_DESCRIPTION ,'Q' TYPE , 'N' STATUS , '待解决' STATUS_DESCRIPTION FROM DUAL
UNION
SELECT '其他' TYPE_DESCRIPTION ,'Q' TYPE , 'X' , '正在处理' FROM DUAL
UNION
SELECT '其他' TYPE_DESCRIPTION ,'Q' TYPE , 'SUCCESS' , '已解决' STATUS FROM DUAL
UNION
SELECT '质量', 'Z', 'N', '待解决' FROM DUAL
UNION
SELECT '质量', 'Z', 'X', '正在处理' FROM DUAL
UNION
SELECT '质量', 'Z', 'SUCCESS', '已解决' FROM DUAL
UNION
SELECT '设备', 'S', 'N' , '待解决' FROM DUAL
UNION
SELECT '设备', 'S', 'X' , '正在处理' FROM DUAL
UNION
SELECT '设备', 'S', 'SUCCESS', '已解决' FROM DUAL ) TEMP
LEFT JOIN
(SELECT ZAB."TYPE" , ZAB.STATUS , COUNT(*) CNT
FROM Z_ABNORMAL_BILL zab WHERE STATUS IN ('N','X') AND TO_CHAR(ZAB.CREATED_DATE_TIME,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM') GROUP BY ZAB."TYPE" ,ZAB.STATUS ,TO_CHAR(ZAB.CREATED_DATE_TIME,'YYYY-MM')
UNION
SELECT ZAB."TYPE" , 'SUCCESS' STATUS , COUNT(*) CNT
FROM Z_ABNORMAL_BILL zab WHERE STATUS NOT IN ('N','X') AND TO_CHAR(ZAB.CREATED_DATE_TIME,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM') GROUP BY ZAB."TYPE" ,TO_CHAR(ZAB.CREATED_DATE_TIME,'YYYY-MM') ) T
ON T.TYPE = TEMP.TYPE AND T.STATUS = TEMP.STATUS
ORDER BY TEMP.TYPE DESC,TEMP.STATUS DESC
</select>
<!-- 设备故障前三 -->
<select id= "resourceFaultThree" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT DESCRIPTION, QTY
FROM (
SELECT SUBSTR(NT.DESCRIPTION, 0, 4) DESCRIPTION, SUM(1) QTY
FROM Z_ABNORMAL_BILL A
INNER JOIN Z_ABNORMAL_NC_CODE B ON B.ABNORMAL_BILL_BO = A.HANDLE
INNER JOIN NC_CODE NC ON NC.SITE = B.SITE AND NC.NC_CODE = B.NC_CODE
INNER JOIN NC_CODE_T NT ON NT.NC_CODE_BO = NC.HANDLE
WHERE A.TYPE = 'S' AND A.SITE = '1000' AND TO_CHAR(A.CREATED_DATE_TIME,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
GROUP BY SUBSTR(NT.DESCRIPTION, 0, 4)
ORDER BY SUM(1) DESC
) WHERE ROWNUM < = 3
</select>
<!-- 达成率 -->
<select id= "completeRate" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT 0 "min", 100 "max", '名称' "label", T.RATE "value",
'%' "unit"
FROM DUAL , (SELECT ROUND( SUM(SO.QTY_DONE) / SUM(SO.QTY_TO_BUILD) , 4 ) * 100 RATE
FROM SHOP_ORDER SO
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = SO.HANDLE AND CF.ATTRIBUTE = 'FACTORY'
WHERE SITE = '1000' --AND CF.VALUE = '6106'
AND TO_CHAR(SO.PLANNED_COMP_DATE,'YYYY-MM') = TO_CHAR(SYSDATE,'YYYY-MM')
GROUP BY TO_CHAR(PLANNED_COMP_DATE,'YYYY-MM') ) T
</select>
<!-- 设备运行数 -->
<!-- 设备运行状态数 -->
<select id= "resourceRunQtyAll" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT X.CNT RUN , Y.CNT IDLE ,Z.CNT "STOP" FROM
(SELECT COUNT(RESRCE) CNT
FROM RESRCE r
WHERE R.STATUS_BO = 'StatusBO:1000,301' AND R.SITE = '1000'
AND R.RESRCE NOT IN (SELECT RESRCE FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS != 'RUN')) X ,
(SELECT M.CNT + N.CNT CNT FROM
(SELECT COUNT(RESRCE) CNT FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS = 'FREE') M,
(
SELECT COUNT(RESRCE) CNT FROM RESRCE r
WHERE R.STATUS_BO = 'StatusBO:1000,4' AND R.SITE = '1000'
AND R.RESRCE NOT IN (SELECT RESRCE FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS = 'FREE')
) N ) Y ,
(SELECT M.CNT + N.CNT CNT FROM
(SELECT COUNT(RESRCE) CNT FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS IN ('DOW','WARN')) M,
(
SELECT COUNT(RESRCE) CNT FROM RESRCE r
WHERE R.STATUS_BO = 'StatusBO:1000,5' AND R.SITE = '1000'
AND R.RESRCE NOT IN (SELECT RESRCE FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS IN ('DOW' ,'WARN'))
) N ) Z
</select>
<!-- -->
<select id= "resourceQtyRun" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT COUNT(RESRCE) "value"
FROM RESRCE r
WHERE R.STATUS_BO = 'StatusBO:1000,301' AND R.SITE = '1000'
AND R.RESRCE NOT IN (SELECT RESRCE FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS != 'RUN')
</select>
<select id= "resourceQtyFree" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT M.CNT + N.CNT "value" FROM
(SELECT COUNT(RESRCE) CNT FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS = 'FREE') M,
(
SELECT COUNT(RESRCE) CNT FROM RESRCE r
WHERE R.STATUS_BO = 'StatusBO:1000,4' AND R.SITE = '1000'
AND R.RESRCE NOT IN (SELECT RESRCE FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS = 'FREE')
) N
</select>
<select id= "resourceQtyDow" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT M.CNT + N.CNT "value" FROM
(SELECT COUNT(RESRCE) CNT FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS IN ('DOW','WARN')) M,
(
SELECT COUNT(RESRCE) CNT FROM RESRCE r
WHERE R.STATUS_BO = 'StatusBO:1000,5' AND R.SITE = '1000'
AND R.RESRCE NOT IN (SELECT RESRCE FROM Z_RESOURCE_STATUS_RECEIVE zrsr WHERE ZRSR.STATUS IN ('DOW' ,'WARN'))
) N
</select>
<!-- 设备运行状态数 -->
<select id= "resourceQtyAll" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
WITH TEMPA AS (
SELECT COUNT(*) CNT FROM (SELECT DISTINCT ZSD.RESRCE FROM Z_SFC_DISPATCH ZSD
WHERE ZSD.DISPATCH_STATUS IN ('COMPLETE','CANCEL','START')
AND TO_CHAR(ZSD.ACTUAL_START_DATE, 'YYYY-MM-DD') = TO_CHAR(SYSDATE-1 ,'YYYY-MM-DD')
AND ZSD.RESRCE NOT IN (SELECT RESRCE FROM Z_RESOURCE_STATUS_RECEIVE WHERE STATUS = 'RUN'))
) ,
TEMPB AS (SELECT
MAX(CASE WHEN STATUS = 'RUN' THEN QTY ELSE 0 END)RUN,
MAX(CASE WHEN STATUS = 'DOW' THEN QTY ELSE 0 END)"STOP",
MAX(CASE WHEN STATUS = 'WARN' THEN QTY ELSE 0 END)IDLE,
MAX(CASE WHEN STATUS = 'FREE' THEN QTY ELSE 0 END)IDLEA
FROM
( SELECT "STATUS", COUNT(1)QTY FROM Z_RESOURCE_STATUS_RECEIVE GROUP BY "STATUS" ))
SELECT TEMPA.CNT + TEMPB.RUN RUN , TEMPB.STOP STOP , TEMPB.IDLE + TEMPB.IDLEA IDLE
FROM TEMPA, TEMPB
</select>
</mapper>
</mapper>