|
|
@ -668,4 +668,96 @@
|
|
|
|
</if>
|
|
|
|
</if>
|
|
|
|
</where>
|
|
|
|
</where>
|
|
|
|
</select>
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<select id="findWorkOrderSchedule" parameterType="java.util.HashMap" resultType="java.util.HashMap">
|
|
|
|
|
|
|
|
SELECT *
|
|
|
|
|
|
|
|
FROM (
|
|
|
|
|
|
|
|
SELECT zsd.WORK_ORDER,
|
|
|
|
|
|
|
|
zsd.ITEM_NUMBER,
|
|
|
|
|
|
|
|
zsd.DISPATCH_SEQ,
|
|
|
|
|
|
|
|
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,
|
|
|
|
|
|
|
|
CASE WHEN zsd2.QTY > 0 THEN '未完成' ELSE '完成' END IS_COMPLETE
|
|
|
|
|
|
|
|
FROM (
|
|
|
|
|
|
|
|
SELECT WORK_ORDER,
|
|
|
|
|
|
|
|
ITEM_NUMBER,
|
|
|
|
|
|
|
|
MIN(CREATED_DATE_TIME) CREATED_DATE_TIME,
|
|
|
|
|
|
|
|
SUM(DISPATCH_SEQ) DISPATCH_SEQ,
|
|
|
|
|
|
|
|
CASE
|
|
|
|
|
|
|
|
WHEN SUM(COMP_HOURS) != 0 THEN (SUM(COMP_HOURS) / SUM(HOURS) * 100)
|
|
|
|
|
|
|
|
ELSE 0 END HOURS_PERCENT,
|
|
|
|
|
|
|
|
CASE
|
|
|
|
|
|
|
|
WHEN SUM(COMP_OPERATION) != 0
|
|
|
|
|
|
|
|
THEN (SUM(COMP_OPERATION) / SUM(OPERATION_NUM) * 100)
|
|
|
|
|
|
|
|
ELSE 0 END OPERATION_PERCENT
|
|
|
|
|
|
|
|
FROM (
|
|
|
|
|
|
|
|
SELECT cf2.VALUE WORK_ORDER,
|
|
|
|
|
|
|
|
cf.VALUE ITEM_NUMBER,
|
|
|
|
|
|
|
|
zsd.CREATED_DATE_TIME,
|
|
|
|
|
|
|
|
zsd.DISPATCH_SEQ,
|
|
|
|
|
|
|
|
zsd.PROD_HOURS * zsd.DISPATCH_SEQ HOURS,
|
|
|
|
|
|
|
|
CASE
|
|
|
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL'
|
|
|
|
|
|
|
|
THEN zsd.PROD_HOURS * zsd.DISPATCH_SEQ
|
|
|
|
|
|
|
|
ELSE 0 END COMP_HOURS,
|
|
|
|
|
|
|
|
CASE
|
|
|
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL'
|
|
|
|
|
|
|
|
THEN 1
|
|
|
|
|
|
|
|
ELSE 0 END COMP_OPERATION,
|
|
|
|
|
|
|
|
ROW_NUMBER() OVER (PARTITION BY zsd.HANDLE ORDER BY zsd.HANDLE) OPERATION_NUM
|
|
|
|
|
|
|
|
FROM Z_SFC_DISPATCH zsd
|
|
|
|
|
|
|
|
INNER 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 WORK_ORDER, ITEM_NUMBER
|
|
|
|
|
|
|
|
) zsd
|
|
|
|
|
|
|
|
LEFT JOIN (
|
|
|
|
|
|
|
|
SELECT cf2.VALUE WORK_ORDER, cf.VALUE ITEM_NUMBER, COUNT(zsd.HANDLE) QTY
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
) zsd2 ON zsd2.WORK_ORDER || zsd2.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER
|
|
|
|
|
|
|
|
LEFT JOIN (
|
|
|
|
|
|
|
|
SELECT cf2.VALUE WORK_ORDER, cf.VALUE ITEM_NUMBER, COUNT(zsd.HANDLE) QTY
|
|
|
|
|
|
|
|
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'
|
|
|
|
|
|
|
|
GROUP BY cf2.VALUE, cf.VALUE
|
|
|
|
|
|
|
|
) zsd3 ON zsd3.WORK_ORDER || zsd3.ITEM_NUMBER = zsd.WORK_ORDER || zsd.ITEM_NUMBER
|
|
|
|
|
|
|
|
WHERE (zsd.WORK_ORDER IS NOT NULL OR zsd.ITEM_NUMBER IS NOT NULL)
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
<where>
|
|
|
|
|
|
|
|
1 = 1
|
|
|
|
|
|
|
|
<if test="workOrder != null and workOrder != ''">
|
|
|
|
|
|
|
|
AND WORK_ORDER = #{workOrder}
|
|
|
|
|
|
|
|
</if>
|
|
|
|
|
|
|
|
<if test="itemNumber != null and itemNumber != ''">
|
|
|
|
|
|
|
|
AND ITEM_NUMBER = #{itemNumber}
|
|
|
|
|
|
|
|
</if>
|
|
|
|
|
|
|
|
<if test="isCompleted != null and isCompleted != ''">
|
|
|
|
|
|
|
|
AND IS_COMPLETE = #{isCompleted}
|
|
|
|
|
|
|
|
</if>
|
|
|
|
|
|
|
|
<if test="startDateTime != null and startDateTime != ''">
|
|
|
|
|
|
|
|
AND CREATED_DATE_TIME >= TO_DATE(#{startDateTime},'YYYY-MM-DD')-8/24
|
|
|
|
|
|
|
|
</if>
|
|
|
|
|
|
|
|
<if test="endDateTime != null and endDateTime != ''">
|
|
|
|
|
|
|
|
AND CREATED_DATE_TIME <= TO_DATE(#{endDateTime}|| '15:59:59','YYYY-MM-DD HH24:MI:SS')
|
|
|
|
|
|
|
|
</if>
|
|
|
|
|
|
|
|
</where>
|
|
|
|
|
|
|
|
ORDER BY CREATED_DATE_TIME ASC
|
|
|
|
|
|
|
|
</select>
|
|
|
|
</mapper>
|
|
|
|
</mapper>
|