@ -491,23 +491,47 @@
</select>
<select id= "findWorkShopPassRate" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >
SELECT DESCRIPTION WORK_CENTER_DESCRIPTION, "MONTH",sum(NG_QTY) NC_QTY, sum(OK_QTY) OK_QTY,sum(CHECK_QTY) CHECK_QTY,sum(DISPATCH_QTY) DISPATCH_QTY,round(sum(OK_QTY)*100/sum(DISPATCH_QTY),2)||'% ' OK_RATE FROM
(
SELECT CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC )=1 AND zit."RESULT"='OK' THEN 0
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC)=1 AND zit."RESULT"='NG' THEN TO_NUMBER(zab.NC_QTY)
ELSE 0 END NG_QTY , TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') "MONTH",
CASE WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC)=1 AND zit."RESULT"='OK' THEN zsd.DISPATCH_QTY
WHEN ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC)=1 AND zit."RESULT"='NG' THEN 0
ELSE 0 END OK_QTY
,ZSD.DISPATCH_QTY, WT.DESCRIPTION,
ROW_NUMBER() OVER(PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC) seq,
zit."RESULT",COUNT(ZIT.HANDLE) check_qty, zit.sfc ,zit.OPERATION,zit.STEP_ID FROM Z_INSPECTION_TASK zit
JOIN sfc S ON S.SFC=zit.SFC AND s.SITE=zit.SITE
JOIN Z_SFC_DISPATCH ZSD ON ZSD.SFC=zit.SFC AND ZSD.SITE=zit.SITE AND zit.STEP_ID=ZSD.STEP_ID
SELECT OLD.WORK_CENTER_DESCRIPTION
, OLD.MONTH
, NVL(NEW.NC_QTY, 0) NC_QTY
, OLD.DISPATCH_QTY - NVL(NEW.NC_QTY, 0) OK_QTY
, OLD.CHECK_QTY
, OLD.DISPATCH_QTY
, round((OLD.DISPATCH_QTY - NVL(NEW.NC_QTY, 0)) * 100 / OLD.DISPATCH_QTY, 2) || '%' OK_RATE
FROM (SELECT DESCRIPTION WORK_CENTER_DESCRIPTION,
"MONTH",
sum(OK_QTY) OK_QTY,
sum(CHECK_QTY) CHECK_QTY,
sum(DISPATCH_QTY) DISPATCH_QTY
FROM (SELECT TO_CHAR(zit.CREATED_DATE_TIME, 'YYYY-MM') "MONTH",
CASE
WHEN ROW_NUMBER()
OVER (PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC) =
1 AND zit."RESULT" = 'OK' THEN zsd.DISPATCH_QTY
WHEN ROW_NUMBER()
OVER (PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC) =
1 AND zit."RESULT" = 'NG' THEN 0
ELSE 0 END OK_QTY,
ZSD.DISPATCH_QTY,
WT.DESCRIPTION,
ROW_NUMBER()
OVER (PARTITION BY zit.sfc ,zit.OPERATION,zit.STEP_ID ORDER BY zit.CREATED_DATE_TIME ASC) seq,
zit."RESULT",
COUNT(ZIT.HANDLE) check_qty,
zit.sfc,
zit.OPERATION,
zit.STEP_ID
FROM Z_INSPECTION_TASK zit
JOIN sfc S ON S.SFC = zit.SFC AND s.SITE = zit.SITE
JOIN Z_SFC_DISPATCH ZSD ON ZSD.SFC = zit.SFC AND ZSD.SITE = zit.SITE AND zit.STEP_ID = ZSD.STEP_ID
JOIN WORK_CENTER WC ON WC.SITE = zit.SITE AND WC.WORK_CENTER = zit.WORK_CENTER
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WC.HANDLE AND WT.LOCALE = 'zh'
LEFT JOIN Z_ABNORMAL_BILL ZAB ON zit.SFC=ZAB.SFC AND zit.SITE=ZAB.SITE AND zit.STEP_ID=ZAB.STEP_ID AND zab."TYPE"='Z'
WHERE zit.SITE= #{site} AND (zit.CATEGORY='P' OR zit.CATEGORY='S') AND zit.STATUS='COMPLETE'
LEFT JOIN Z_ABNORMAL_BILL ZAB
ON zit.SFC = ZAB.SFC AND zit.SITE = ZAB.SITE AND zit.STEP_ID = ZAB.STEP_ID AND
zab."TYPE" = 'Z'
WHERE zit.SITE = '1000'
AND (zit.CATEGORY = 'P' OR zit.CATEGORY = 'S')
AND zit.STATUS = 'COMPLETE'
<if test= "workCenter != null and workCenter != ''" >
AND zit.WORK_CENTER = #{workCenter}
</if>
@ -517,11 +541,22 @@
<if test= "startToDate != null and startToDate != ''" >
AND TO_CHAR(zit.CREATED_DATE_TIME,'YYYY-MM') < = #{startToDate}
</if>
GROUP BY zit."RESULT",zit.sfc ,zit.OPERATION,zit.STEP_ID, zit.CREATED_DATE_TIME,zit.RESRCE,zab.NC_QTY, WT.DESCRIPTION,ZSD.DISPATCH_QTY
)
WHERE SEQ='1'
GROUP BY DESCRIPTION, "MONTH"
ORDER BY DESCRIPTION,"MONTH"
GROUP BY zit."RESULT", zit.sfc, zit.OPERATION, zit.STEP_ID, zit.CREATED_DATE_TIME, zit.RESRCE, zab.NC_QTY,
WT.DESCRIPTION, ZSD.DISPATCH_QTY)
WHERE SEQ = '1'
GROUP BY DESCRIPTION, "MONTH") OLD
LEFT JOIN (SELECT WT.DESCRIPTION WORK_CENTER_DESCRIPTION,
TO_CHAR(ZAB.CREATED_DATE_TIME, 'YYYY-MM') MONTH,
COUNT(TO_NUMBER(ZAB.NC_QTY)) NC_QTY
FROM Z_ABNORMAL_BILL ZAB
LEFT JOIN WORK_CENTER WC ON WC.SITE = ZAB.SITE AND WC.WORK_CENTER = ZAB.WORK_CENTER
LEFT JOIN WORK_CENTER_T WT ON WT.WORK_CENTER_BO = WC.HANDLE AND WT.LOCALE = 'zh'
WHERE (ZAB.STATUS = 'X' OR ZAB.STATUS = 'F' OR ZAB.STATUS = 'J')
AND ZAB.TYPE = 'Z'
GROUP BY TO_CHAR(ZAB.CREATED_DATE_TIME, 'YYYY-MM'), WT.DESCRIPTION) NEW
ON OLD.WORK_CENTER_DESCRIPTION = NEW.WORK_CENTER_DESCRIPTION
AND OLD.MONTH = NEW.MONTH
ORDER BY OLD.WORK_CENTER_DESCRIPTION, "MONTH"
</select>
<select id= "findCheckUserPassRate" resultType= "java.util.HashMap" parameterType= "java.util.HashMap" >