|
|
|
@ -1126,59 +1126,91 @@
|
|
|
|
|
|
|
|
|
|
<select id="ProjectScheduleReport" parameterType="java.util.HashMap" resultType="java.util.HashMap">
|
|
|
|
|
--项目进度报表
|
|
|
|
|
SELECT WIP.item "item",--项目号
|
|
|
|
|
WIP.workOrder "workOrder",
|
|
|
|
|
WIP.shopOrder "shopOrder",
|
|
|
|
|
WIP.SFC "SFC",
|
|
|
|
|
WIP.itemDescription "itemDescription",
|
|
|
|
|
WIP.shopOrderQTY "shopOrderQTY",
|
|
|
|
|
WIP.doneQTY "doneQTY",
|
|
|
|
|
WIP.rate "rate",
|
|
|
|
|
OT.DESCRIPTION "currentOperation",
|
|
|
|
|
WIP.nextOperationNum "nextOperationNum",
|
|
|
|
|
zsd2.PLANNED_COMP_DATE "currentPlanTime",
|
|
|
|
|
WIP.endPlanTime "endPlanTime"
|
|
|
|
|
FROM (SELECT cf.VALUE item,--项目号
|
|
|
|
|
cf2.VALUE workOrder,--工作令
|
|
|
|
|
zsd.SHOP_ORDER shopOrder,--订单编号
|
|
|
|
|
zsd.SFC SFC,--SFC
|
|
|
|
|
it.DESCRIPTION itemDescription,--物料描述
|
|
|
|
|
SUM(zsd.DISPATCH_QTY) shopOrderQTY,--订单数量
|
|
|
|
|
SUM(CASE
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
|
|
|
|
|
zsd.DISPATCH_QTY
|
|
|
|
|
ELSE 0 END) doneQTY, --已完成数量
|
|
|
|
|
TO_CHAR(SUM(CASE
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
|
|
|
|
|
zsd.PROD_HOURS
|
|
|
|
|
ELSE 0 END) / SUM(zsd.PROD_HOURS) * 100, '99990.99') || '%' rate,--进度(工时百分比)
|
|
|
|
|
MAX(zsd.ACTUAL_START_DATE) ACTUAL_START_DATE,--最大实际开始时间
|
|
|
|
|
SUM(CASE WHEN zsd.DISPATCH_STATUS != 'COMPLETE' THEN 1 ELSE 0 END) nextOperationNum,--剩余工序数量
|
|
|
|
|
MAX(zsd.PLANNED_COMP_DATE) endPlanTime,--计划最终交付时间
|
|
|
|
|
zsd.SITE SITE
|
|
|
|
|
FROM Z_SFC_DISPATCH 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'
|
|
|
|
|
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 = so.ITEM_BO AND it.LOCALE = 'zh'
|
|
|
|
|
WHERE zsd.SITE = '1000'
|
|
|
|
|
AND cf.VALUE IS NOT NULL
|
|
|
|
|
AND cf2.VALUE IS NOT NULL
|
|
|
|
|
SELECT WIP.item "item",--项目号
|
|
|
|
|
WIP.workOrder "workOrder",
|
|
|
|
|
WIP.shopOrder "shopOrder",
|
|
|
|
|
WIP.SFC "SFC",
|
|
|
|
|
WIP.itemDescription "itemDescription",
|
|
|
|
|
WIP.shopOrderQTY "shopOrderQTY",
|
|
|
|
|
WIP.doneQTY "doneQTY",
|
|
|
|
|
WIP.rate || '%' "rate",
|
|
|
|
|
OT.DESCRIPTION "currentOperation",
|
|
|
|
|
WIP.nextOperationNum "nextOperationNum",
|
|
|
|
|
zsd2.PLANNED_COMP_DATE "currentPlanTime",
|
|
|
|
|
WIP.endPlanTime "endPlanTime",
|
|
|
|
|
WIP.rework "rework",--是否返修工序
|
|
|
|
|
CASE
|
|
|
|
|
WHEN WIP.nextOperationNum > 0 AND SYSDATE > zsd2.PLANNED_COMP_DATE
|
|
|
|
|
THEN 'true'
|
|
|
|
|
WHEN WIP.nextOperationNum = 0 AND WIP.rate !=100.00 AND SYSDATE > zsd2.PLANNED_COMP_DATE
|
|
|
|
|
THEN 'true'
|
|
|
|
|
ELSE 'false' END "isOverTime" --当前工序是否超时
|
|
|
|
|
FROM (SELECT cf.VALUE item,--项目号
|
|
|
|
|
cf2.VALUE workOrder,--工作令
|
|
|
|
|
zsd.SHOP_ORDER shopOrder,--订单编号
|
|
|
|
|
zsd.SFC SFC,--SFC
|
|
|
|
|
it.DESCRIPTION itemDescription,--物料描述
|
|
|
|
|
SUM(zsd.DISPATCH_QTY) shopOrderQTY,--订单数量
|
|
|
|
|
SUM(CASE
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
|
|
|
|
|
zsd.DISPATCH_QTY
|
|
|
|
|
ELSE 0 END) doneQTY, --已完成数量
|
|
|
|
|
TO_CHAR(
|
|
|
|
|
DECODE(SUM(CASE
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
|
|
|
|
|
zsd.PROD_HOURS
|
|
|
|
|
ELSE 0 END), 0, 0, SUM(CASE
|
|
|
|
|
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
|
|
|
|
|
zsd.PROD_HOURS
|
|
|
|
|
ELSE 0 END) / SUM(zsd.PROD_HOURS))
|
|
|
|
|
* 100, '99990.99') rate,--进度(工时百分比)
|
|
|
|
|
MAX(zsd.ACTUAL_START_DATE) ACTUAL_START_DATE,--最大实际开始时间
|
|
|
|
|
SUM(CASE WHEN zsd.DISPATCH_STATUS != 'COMPLETE' THEN 1 ELSE 0 END) nextOperationNum,--剩余工序数量
|
|
|
|
|
MAX(zsd.PLANNED_COMP_DATE) endPlanTime,--计划最终交付时间
|
|
|
|
|
rs.REWORK rework,--是否返修工序
|
|
|
|
|
zsd.SITE SITE
|
|
|
|
|
FROM Z_SFC_DISPATCH 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'
|
|
|
|
|
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 = so.ITEM_BO AND it.LOCALE = 'zh'
|
|
|
|
|
LEFT JOIN ROUTER r ON zsd.ROUTER_BO = R.HANDLE
|
|
|
|
|
LEFT JOIN ROUTER_STEP rs ON rs.ROUTER_BO = r.HANDLE AND rs.STEP_ID = zsd.STEP_ID
|
|
|
|
|
WHERE zsd.SITE = '1000'
|
|
|
|
|
AND cf.VALUE IS NOT NULL
|
|
|
|
|
AND cf2.VALUE IS NOT NULL
|
|
|
|
|
GROUP BY zsd.SITE, cf.VALUE, cf2.VALUE, zsd.SHOP_ORDER, zsd.SFC, it.DESCRIPTION, rs.REWORK
|
|
|
|
|
ORDER BY rate
|
|
|
|
|
) WIP
|
|
|
|
|
LEFT JOIN Z_SFC_DISPATCH zsd2 ON WIP.shopOrder = ZSD2.SHOP_ORDER AND WIP.SFC = zsd2.SFC
|
|
|
|
|
AND WIP.SITE = zsd2.SITE AND WIP.ACTUAL_START_DATE = zsd2.ACTUAL_START_DATE
|
|
|
|
|
INNER JOIN OPERATION O ON O.SITE = WIP.SITE AND O.OPERATION = zsd2.OPERATION AND O.CURRENT_REVISION = 'true'
|
|
|
|
|
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh'
|
|
|
|
|
<where>
|
|
|
|
|
<if test="shopOrder != null and shopOrder != ''">
|
|
|
|
|
AND zsd.SHOP_ORDER = #{shopOrder}
|
|
|
|
|
<if test="workOrder != null and workOrder != ''">
|
|
|
|
|
AND WIP.workOrder like '%${workOrder}%'
|
|
|
|
|
</if>
|
|
|
|
|
</where>
|
|
|
|
|
GROUP BY zsd.SITE, cf.VALUE, cf2.VALUE, zsd.SHOP_ORDER, zsd.SFC, it.DESCRIPTION
|
|
|
|
|
) WIP
|
|
|
|
|
LEFT JOIN Z_SFC_DISPATCH zsd2 ON WIP.shopOrder = ZSD2.SHOP_ORDER AND WIP.SFC = zsd2.SFC
|
|
|
|
|
AND WIP.SITE = zsd2.SITE AND WIP.ACTUAL_START_DATE = zsd2.ACTUAL_START_DATE
|
|
|
|
|
INNER JOIN OPERATION O ON O.SITE = WIP.SITE AND O.OPERATION = zsd2.OPERATION AND O.CURRENT_REVISION = 'true'
|
|
|
|
|
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh'
|
|
|
|
|
WHERE 1 = 1
|
|
|
|
|
ORDER BY endPlanTime DESC
|
|
|
|
|
</select>
|
|
|
|
|
<select id="selectCurrentPlanTime" parameterType="java.util.HashMap" resultType="java.util.Map">
|
|
|
|
|
select MIN(zsd.PLANNED_COMP_DATE) "planEndCompDate"
|
|
|
|
|
FROM Z_SFC_DISPATCH zsd
|
|
|
|
|
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 AND OT.LOCALE = 'zh'
|
|
|
|
|
<where>
|
|
|
|
|
1=1
|
|
|
|
|
<if test="SFC != null and SFC != ''">
|
|
|
|
|
AND zsd.SFC = #{SFC}
|
|
|
|
|
</if>
|
|
|
|
|
<if test="currentOperation != null and currentOperation != ''">
|
|
|
|
|
AND OT.DESCRIPTION = #{currentOperation}
|
|
|
|
|
</if>
|
|
|
|
|
</where>
|
|
|
|
|
ORDER BY zsd.ACTUAL_START_DATE
|
|
|
|
|
</select>
|
|
|
|
|
|
|
|
|
|
</mapper>
|