修改车间一次交检合格率报表

master
yinq 3 years ago
parent 22611e6704
commit dd43d660f6

@ -989,8 +989,11 @@
LEFT JOIN ITEM_T ct ON ct.ITEM_BO = cp.HANDLE
INNER JOIN OPERATION o ON o.SITE = zsd.SITE AND o.OPERATION = zsd.OPERATION AND o.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE
LEFT JOIN Z_INSPECTION_TASK zit ON zsd.HANDLE = zit.SFC_DISPATCH_BO AND zit.STEP_ID = zsd.STEP_ID
LEFT JOIN Z_NWA_USER znu ON znu.USER_NAME = zit.MODIFY_USER
LEFT JOIN (SELECT zit.HANDLE, zit.SHOP_ORDER, zit.MODIFY_USER
FROM Z_INSPECTION_TASK zit
WHERE ROWID IN (SELECT MAX(ROWID) FROM Z_INSPECTION_TASK zit GROUP BY zit.SHOP_ORDER)) ZITK
ON zsd.SHOP_ORDER = ZITK.SHOP_ORDER
LEFT JOIN Z_NWA_USER znu ON znu.USER_NAME = ZITK.MODIFY_USER
<where>
zsd.DISPATCH_STATUS = 'COMPLETE'
AND zsd.SITE = #{site}
@ -1010,18 +1013,29 @@
</select>
<select id="itemTraceScheduleReport" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT cf.VALUE ITEM_NUMBER,
cf2.VALUE WORK_ORDER,
zsd.SHOP_ORDER SHOP_ORDER,
s.SFC SFC,
i.ITEM ITEM,
it.DESCRIPTION ITEM_DESCRIPTION,
ct.DESCRIPTION COMPONENT_DESCRIPTION,
ot.DESCRIPTION OPERATION_DESCRIPTION,
zsd.BLANKING_SIZE BLANKING_SIZE,
zsd.ACTUAL_START_DATE ACTUAL_START_DATE,
SELECT cf.VALUE ITEM_NUMBER,
cf2.VALUE WORK_ORDER,
zsd.SHOP_ORDER SHOP_ORDER,
s.SFC SFC,
i.ITEM ITEM,
it.DESCRIPTION ITEM_DESCRIPTION,
ct.DESCRIPTION COMPONENT_DESCRIPTION,
ot.DESCRIPTION OPERATION_DESCRIPTION,
zsd.BLANKING_SIZE BLANKING_SIZE,
zsd.START_DATE ACTUAL_START_DATE,
zsd.ACTUAL_COMPLETE_DATE ACTUAL_COMPLETE_DATE
FROM Z_SFC_DISPATCH zsd
FROM (SELECT COMP.*,STAT.START_DATE
FROM (SELECT *
FROM (SELECT sd.*,
row_number() over (PARTITION BY sd.SFC ORDER BY sd.ACTUAL_COMPLETE_DATE DESC)
AS NEWINDEX
FROM Z_SFC_DISPATCH sd
WHERE sd.DISPATCH_STATUS = 'COMPLETE')
WHERE NEWINDEX = '1') COMP
LEFT JOIN (SELECT sd2.SFC, MIN(sd2.ACTUAL_START_DATE) START_DATE
FROM Z_SFC_DISPATCH sd2
WHERE sd2.DISPATCH_STATUS = 'COMPLETE'
GROUP BY sd2.SFC) STAT ON COMP.SFC = STAT.SFC) zsd
LEFT JOIN SFC s ON s.SFC = zsd.SFC AND s.SITE = zsd.SITE
LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zsd.SHOP_ORDER AND so.SITE = zsd.SITE
LEFT JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'ITEM_NUMBER'
@ -1035,7 +1049,7 @@
INNER JOIN OPERATION o ON o.SITE = zsd.SITE AND o.OPERATION = zsd.OPERATION AND o.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE
<where>
zsd.DISPATCH_STATUS = 'COMPLETE'
zsd.DISPATCH_STATUS = 'COMPLETE' AND ot.DESCRIPTION='下料'
AND zsd.SITE = #{site}
<if test="shopOrder != null and shopOrder != ''">
AND zsd.SHOP_ORDER = #{shopOrder}
@ -1057,7 +1071,9 @@
WHEN WIP.DISPATCH_STATUS = 'START' THEN N'已开始'
END AS DISPATCH_STATUS
FROM (
SELECT cf.VALUE ITEM_NUMBER,
SELECT zsd.OPERATION OPERATION,
rs.DESCRIPTION DESCRIPTION,
cf.VALUE ITEM_NUMBER,
cf2.VALUE WORK_ORDER,
zsd.SHOP_ORDER SHOP_ORDER,
zsd.DISPATCH_NO DISPATCH_NO,
@ -1078,9 +1094,10 @@
zsd.DISPATCH_SEQ - 1 BEFORE_SEQ,
zsd.PLANNED_START_DATE PLANNED_START_DATE,
zsd.PLANNED_COMP_DATE PLANNED_COMP_DATE,
zsd.ACTUAL_START_DATE ACTUAL_START_DATE
zsd.ACTUAL_START_DATE ACTUAL_START_DATE
FROM Z_SFC_DISPATCH zsd
LEFT JOIN SFC s ON s.SFC = zsd.SFC AND s.SITE = zsd.SITE
LEFT JOIN RESRCE rs ON zsd.SITE = rs.SITE AND zsd.RESRCE = rs.RESRCE
LEFT JOIN SHOP_ORDER so ON so.SHOP_ORDER = zsd.SHOP_ORDER AND so.SITE = zsd.SITE
LEFT JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'ITEM_NUMBER'
LEFT JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER'
@ -1098,7 +1115,6 @@
ON V1.SITE = WIP.SITE AND V1.SFC = WIP.SFC AND V1.ROUTER_BO = WIP.ROUTER_BO AND
V1.DISPATCH_SEQ = WIP.BEFORE_SEQ
<where>
1=1
<if test="shopOrder != null and shopOrder != ''">
AND WIP.SHOP_ORDER = #{shopOrder}
</if>

@ -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') &lt;= #{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">

Loading…
Cancel
Save