工作令加工进度表

master
赵嘉伟 3 years ago
parent 5bd81461d2
commit 64d5fd1af9

@ -794,23 +794,26 @@
</select>
<select id="findWorkOrderSchedule" parameterType="java.util.HashMap" resultType="java.util.HashMap">
SELECT *
SELECT *
FROM (
SELECT zsd.WORK_ORDER,
zsd.ITEM_NUMBER,
zsd.DISPATCH_QTY,
TO_CHAR(TO_NUMBER(zsd.HOURS_PERCENT), 'FM9999990.00') || '%' HOURS_PERCENT,
TO_CHAR(TO_NUMBER(zsd.OPERATION_PERCENT), 'FM9999990.00') || '%' OPERATION_PERCENT,
CREATED_DATE_TIME,
zsd.CREATED_DATE_TIME,
zsd.WORK_CENTER,
wct.DESCRIPTION WORK_CENTER_DESCRIPTION,
zsd.SUM_HOURS,
CASE WHEN zsd2.QTY > 0 THEN '未完成' ELSE '完成' END IS_COMPLETE
CASE WHEN zsd2.QTY > 0 THEN '未完成' ELSE '完成' END IS_COMPLETE,
zsd.SITE
FROM (
SELECT WORK_ORDER,
ITEM_NUMBER,
MIN(CREATED_DATE_TIME) CREATED_DATE_TIME,
SUM(DISPATCH_QTY) DISPATCH_QTY,
WORK_CENTER,
SITE,
SUM(COMP_HOURS) SUM_HOURS,
CASE
WHEN SUM(COMP_HOURS) != 0 THEN (SUM(COMP_HOURS) / SUM(HOURS) * 100)
@ -823,6 +826,7 @@
SELECT cf2.VALUE WORK_ORDER,
cf.VALUE ITEM_NUMBER,
zsd.CREATED_DATE_TIME,
zsd.SITE,
zsd.DISPATCH_QTY,
zsd.PROD_HOURS * zsd.DISPATCH_QTY HOURS,
zsd.WORK_CENTER WORK_CENTER,
@ -841,38 +845,34 @@
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'
WHERE zsd.SITE = '1000'
)
GROUP BY WORK_ORDER, ITEM_NUMBER,WORK_CENTER
WHERE zsd.SITE = #{site} )
GROUP BY SITE,WORK_ORDER, ITEM_NUMBER,WORK_CENTER
) zsd
LEFT JOIN (
LEFT JOIN (
SELECT cf2.VALUE WORK_ORDER, cf.VALUE ITEM_NUMBER, COUNT(zsd.HANDLE) QTY,zsd.WORK_CENTER
FROM Z_SFC_DISPATCH zsd
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'
WHERE zsd.DISPATCH_STATUS != 'COMPLETE'
AND zsd.DISPATCH_STATUS != 'CANCEL'
GROUP BY cf2.VALUE, cf.VALUE,zsd.WORK_CENTER
) zsd2 ON zsd2.WORK_ORDER || zsd2.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER AND zsd2.WORK_CENTER = zsd.WORK_CENTER
LEFT JOIN (
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'
WHERE zsd.DISPATCH_STATUS != 'COMPLETE' AND zsd.DISPATCH_STATUS != 'CANCEL' AND zsd.SITE= #{site} GROUP BY cf2.VALUE, cf.VALUE,zsd.WORK_CENTER
) zsd2 ON zsd2.WORK_ORDER || zsd2.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER AND zsd2.WORK_CENTER = zsd.WORK_CENTER
LEFT JOIN (
SELECT cf2.VALUE WORK_ORDER, cf.VALUE ITEM_NUMBER, COUNT(zsd.HANDLE) QTY,zsd.WORK_CENTER
FROM Z_SFC_DISPATCH zsd
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 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'
WHERE zsd.SITE = #{site}
GROUP BY cf2.VALUE, cf.VALUE,zsd.WORK_CENTER
) zsd3 ON zsd3.WORK_ORDER || zsd3.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER AND zsd3.WORK_CENTER = zsd.WORK_CENTER AND zsd3.WORK_CENTER = zsd.WORK_CENTER
WHERE (zsd.WORK_ORDER IS NOT NULL OR zsd.ITEM_NUMBER IS NOT NULL)
) zsd3 ON zsd3.WORK_ORDER || zsd3.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER AND zsd3.WORK_CENTER = zsd.WORK_CENTER AND zsd3.WORK_CENTER = zsd.WORK_CENTER
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'
WHERE (zsd.WORK_ORDER IS NOT NULL OR zsd.ITEM_NUMBER IS NOT NULL)
)
<where>
1 = 1
<if test="workCenter != null and workCenter != ''">
AND WORK_CENTER = #{workCenter}
AND (WORK_CENTER = #{workCenter} OR WORK_CENTER_DESCRIPTION = #{workCenter})
</if>
<if test="workOrder != null and workOrder != ''">
AND WORK_ORDER = #{workOrder}
@ -889,6 +889,7 @@
<if test="endDateTime != null and endDateTime != ''">
AND CREATED_DATE_TIME &lt;= TO_DATE(#{endDateTime}|| '15:59:59','YYYY-MM-DD HH24:MI:SS')
</if>
</where>
ORDER BY CREATED_DATE_TIME ASC
</select>

Loading…
Cancel
Save