|
|
|
@ -2147,50 +2147,51 @@
|
|
|
|
|
<select id="projectIdleTimeStatisticsReport" resultType="java.util.Map" parameterType="java.util.HashMap">
|
|
|
|
|
--项目空闲时间统计报表
|
|
|
|
|
SELECT WIP.WORK_CENTER_DESCRIPTION,
|
|
|
|
|
WIP.ITEM_NUMBER,
|
|
|
|
|
WIP.WORK_ORDER,
|
|
|
|
|
WIP.SHOP_ORDER,
|
|
|
|
|
WIP.SFC,
|
|
|
|
|
WIP.ITEM,
|
|
|
|
|
WIP.ITEM_DESCRIPTION,
|
|
|
|
|
MAX(WIP.QTY) QTY,
|
|
|
|
|
TO_CHAR(DECODE(SUM(WIP.ACTUAL_PROCESS_TIME), null, 0, SUM(WIP.ACTUAL_PROCESS_TIME)),
|
|
|
|
|
'99990.99') ACTUAL_PROCESS_TIME,
|
|
|
|
|
TO_CHAR(DECODE(SUM(WIP.WAIT_TIME), null, 0, SUM(WIP.WAIT_TIME)), '99990.99') WAIT_TIME,
|
|
|
|
|
TO_CHAR(DECODE((SUM(WIP.WAIT_TIME) + SUM(WIP.ACTUAL_PROCESS_TIME)), null, 0,
|
|
|
|
|
(SUM(WIP.ACTUAL_PROCESS_TIME) / (SUM(WIP.WAIT_TIME) +
|
|
|
|
|
SUM(WIP.ACTUAL_PROCESS_TIME))) * 100),
|
|
|
|
|
'99990.99') || '%' ACTUAL_TATE
|
|
|
|
|
WIP.ITEM_NUMBER,
|
|
|
|
|
WIP.WORK_ORDER,
|
|
|
|
|
WIP.SHOP_ORDER,
|
|
|
|
|
WIP.SFC,
|
|
|
|
|
WIP.ITEM,
|
|
|
|
|
WIP.ITEM_DESCRIPTION,
|
|
|
|
|
MAX(WIP.QTY) QTY,
|
|
|
|
|
TO_CHAR(DECODE(SUM(WIP.ACTUAL_PROCESS_TIME), 0, 0, SUM(WIP.ACTUAL_PROCESS_TIME)),
|
|
|
|
|
'99990.99') ACTUAL_PROCESS_TIME,
|
|
|
|
|
TO_CHAR(DECODE(SUM(WIP.WAIT_TIME), 0, 0, SUM(WIP.WAIT_TIME)), '99990.99') WAIT_TIME,
|
|
|
|
|
TO_CHAR(DECODE((SUM(WIP.WAIT_TIME) + SUM(WIP.ACTUAL_PROCESS_TIME)), 0, 0,
|
|
|
|
|
(SUM(WIP.ACTUAL_PROCESS_TIME) / (SUM(WIP.WAIT_TIME) +
|
|
|
|
|
SUM(WIP.ACTUAL_PROCESS_TIME))) * 100),
|
|
|
|
|
'99990.99') || '%' ACTUAL_TATE
|
|
|
|
|
FROM (SELECT wct.DESCRIPTION WORK_CENTER_DESCRIPTION,
|
|
|
|
|
cf.VALUE ITEM_NUMBER,
|
|
|
|
|
cf2.VALUE WORK_ORDER,
|
|
|
|
|
zsd.SHOP_ORDER SHOP_ORDER,
|
|
|
|
|
s.SFC SFC,
|
|
|
|
|
i.ITEM ITEM,
|
|
|
|
|
it.DESCRIPTION ITEM_DESCRIPTION,
|
|
|
|
|
zsd.DISPATCH_QTY QTY,
|
|
|
|
|
(zsd.ACTUAL_COMPLETE_DATE - zsd.ACTUAL_START_DATE) * 24 ACTUAL_PROCESS_TIME,
|
|
|
|
|
zsd.DISPATCH_SEQ,
|
|
|
|
|
DECODE(LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
|
|
|
|
|
OVER (partition by cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC ORDER BY cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC,zsd.ACTUAL_START_DATE),
|
|
|
|
|
NULL, 0,
|
|
|
|
|
(zsd.ACTUAL_COMPLETE_DATE - LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
|
|
|
|
|
OVER (partition by cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC ORDER BY cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC,zsd.ACTUAL_START_DATE)) *
|
|
|
|
|
24) WAIT_TIME,
|
|
|
|
|
LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
|
|
|
|
|
OVER (partition by cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC ORDER BY cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC,zsd.ACTUAL_START_DATE) NEXT_COMPLETE,
|
|
|
|
|
zsd.ACTUAL_START_DATE ACTUAL_START_DATE,
|
|
|
|
|
zsd.ACTUAL_COMPLETE_DATE ACTUAL_COMPLETE_DATE
|
|
|
|
|
FROM Z_SFC_DISPATCH zsd
|
|
|
|
|
INNER JOIN WORK_CENTER wc ON wc.WORK_CENTER = zsd.WORK_CENTER AND wc.SITE = zsd.SITE
|
|
|
|
|
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
|
|
|
|
|
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'
|
|
|
|
|
LEFT JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER'
|
|
|
|
|
LEFT JOIN ITEM i On i.HANDLE = so.ITEM_BO AND I.SITE = SO.SITE
|
|
|
|
|
LEFT JOIN ITEM_T it ON it.ITEM_BO = i.HANDLE
|
|
|
|
|
WHERE zsd.DISPATCH_STATUS != 'CANCEL'
|
|
|
|
|
cf.VALUE ITEM_NUMBER,
|
|
|
|
|
cf2.VALUE WORK_ORDER,
|
|
|
|
|
zsd.SHOP_ORDER SHOP_ORDER,
|
|
|
|
|
s.SFC SFC,
|
|
|
|
|
i.ITEM ITEM,
|
|
|
|
|
it.DESCRIPTION ITEM_DESCRIPTION,
|
|
|
|
|
zsd.DISPATCH_QTY QTY,
|
|
|
|
|
zsd.DISPATCH_SEQ,
|
|
|
|
|
DECODE(zsd.ACTUAL_COMPLETE_DATE - zsd.ACTUAL_START_DATE, null, 0,
|
|
|
|
|
(zsd.ACTUAL_COMPLETE_DATE - zsd.ACTUAL_START_DATE) * 24) ACTUAL_PROCESS_TIME,
|
|
|
|
|
DECODE(zsd.ACTUAL_COMPLETE_DATE - LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
|
|
|
|
|
OVER (partition by cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC ORDER BY cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC,zsd.ACTUAL_START_DATE),
|
|
|
|
|
NULL, 0,
|
|
|
|
|
(zsd.ACTUAL_COMPLETE_DATE - LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
|
|
|
|
|
OVER (partition by cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC ORDER BY cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC,zsd.ACTUAL_START_DATE)) *
|
|
|
|
|
24) WAIT_TIME,
|
|
|
|
|
LAG(zsd.ACTUAL_COMPLETE_DATE, 1)
|
|
|
|
|
OVER (partition by cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC ORDER BY cf.VALUE,cf2.VALUE,zsd.SHOP_ORDER,s.SFC,zsd.ACTUAL_START_DATE) NEXT_COMPLETE,
|
|
|
|
|
zsd.ACTUAL_START_DATE ACTUAL_START_DATE,
|
|
|
|
|
zsd.ACTUAL_COMPLETE_DATE ACTUAL_COMPLETE_DATE
|
|
|
|
|
FROM Z_SFC_DISPATCH zsd
|
|
|
|
|
INNER JOIN WORK_CENTER wc ON wc.WORK_CENTER = zsd.WORK_CENTER AND wc.SITE = zsd.SITE
|
|
|
|
|
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
|
|
|
|
|
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'
|
|
|
|
|
LEFT JOIN CUSTOM_FIELDS cf2 ON cf2.HANDLE = so.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER'
|
|
|
|
|
LEFT JOIN ITEM i On i.HANDLE = so.ITEM_BO AND I.SITE = SO.SITE
|
|
|
|
|
LEFT JOIN ITEM_T it ON it.ITEM_BO = i.HANDLE
|
|
|
|
|
WHERE zsd.DISPATCH_STATUS != 'CANCEL'
|
|
|
|
|
ORDER BY cf.VALUE, cf2.VALUE, zsd.SHOP_ORDER, s.SFC, zsd.ACTUAL_START_DATE) WIP
|
|
|
|
|
<where>
|
|
|
|
|
1=1
|
|
|
|
@ -2211,5 +2212,47 @@
|
|
|
|
|
WIP.ITEM_DESCRIPTION
|
|
|
|
|
ORDER BY WIP.WORK_CENTER_DESCRIPTION, WIP.ITEM_NUMBER, WIP.WORK_ORDER, WIP.SHOP_ORDER, WIP.SFC
|
|
|
|
|
</select>
|
|
|
|
|
<select id="projectProcessingCycleReport" resultType="java.util.Map" parameterType="java.util.HashMap">
|
|
|
|
|
--项目加工周期报表
|
|
|
|
|
SELECT wct.DESCRIPTION WORK_CENTER_DESCRIPTION,
|
|
|
|
|
rs.RESRCE RESRCE,
|
|
|
|
|
o.OPERATION "operation",
|
|
|
|
|
ot.DESCRIPTION OPERATION_DESCRIPTION,
|
|
|
|
|
rs.DESCRIPTION RESRCE_DESCRIPTION,
|
|
|
|
|
SUM(CASE
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS != 'COMPLETE' AND zsd.DISPATCH_STATUS != 'CANCEL' THEN
|
|
|
|
|
zsd.PROD_HOURS * zsd.DISPATCH_QTY
|
|
|
|
|
ELSE 0 END) UN_OPERATION_HOURS,
|
|
|
|
|
cf2.VALUE WORK_ORDER,
|
|
|
|
|
SUM(zsd.PROD_HOURS * zsd.DISPATCH_QTY) WORK_ORDER_HOURS,
|
|
|
|
|
CF.VALUE "dayCapacity",
|
|
|
|
|
TO_CHAR(MAX(zsd.ACTUAL_COMPLETE_DATE) - MIN(zsd.ACTUAL_START_DATE), '99990.99') PRODUCTION_DAY
|
|
|
|
|
FROM Z_SFC_DISPATCH zsd
|
|
|
|
|
INNER JOIN WORK_CENTER wc ON wc.WORK_CENTER = zsd.WORK_CENTER AND wc.SITE = zsd.SITE
|
|
|
|
|
LEFT JOIN WORK_CENTER_T wct ON wct.WORK_CENTER_BO = wc.HANDLE AND wct.LOCALE = 'zh'
|
|
|
|
|
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 cf2 ON cf2.HANDLE = so.HANDLE AND cf2."ATTRIBUTE" = 'WORK_ORDER'
|
|
|
|
|
LEFT JOIN OPERATION o ON o.OPERATION = zsd.OPERATION AND o.SITE = zsd.SITE
|
|
|
|
|
LEFT JOIN OPERATION_T ot ON ot.OPERATION_BO = o.HANDLE AND ot.LOCALE = 'zh'
|
|
|
|
|
LEFT JOIN CUSTOM_FIELDS CF ON CF.ATTRIBUTE = 'DAY_CAPACITY' AND CF.HANDLE = o.HANDLE
|
|
|
|
|
--WHERE cf2.VALUE = '2021102000001-工作令/半钢/部套'
|
|
|
|
|
WHERE 1=1
|
|
|
|
|
<if test="workOrder != null and workOrder != ''">
|
|
|
|
|
AND cf2.VALUE = #{workOrder}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="resrce != null and resrce != ''">
|
|
|
|
|
AND rs.RESRCE = #{resrce}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="operationCode != null and operationCode != ''">
|
|
|
|
|
AND o.OPERATION = #{operationCode}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="operationDescription != null and operationDescription != ''">
|
|
|
|
|
AND ot.DESCRIPTION = #{operationDescription}
|
|
|
|
|
</if>
|
|
|
|
|
GROUP BY wct.DESCRIPTION, rs.RESRCE, ot.DESCRIPTION, rs.DESCRIPTION, o.OPERATION, cf2.VALUE, CF.VALUE
|
|
|
|
|
ORDER BY wct.DESCRIPTION, ot.DESCRIPTION, rs.DESCRIPTION
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
</mapper>
|