@ -1163,7 +1163,7 @@
WIP.nextOperationNum "nextOperationNum",
zsd3.PLANNED_COMP_DATE "currentPlanTime",
WIP.endPlanTime "endPlanTime",
WIP.rework "rework",--是否返修工序
-- WIP.rework "rework",--是否返修工序
CASE
WHEN WIP.nextOperationNum > 0 AND SYSDATE > zsd3.PLANNED_COMP_DATE AND zsd3.DISPATCH_STATUS != 'COMPLETE'
THEN 'true'
@ -1186,14 +1186,17 @@
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL' THEN
zsd.PROD_HOURS * zsd.DISPATCH_QTY
ELSE 0 END), 0, 0, SUM(CASE
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL' THEN
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL'
THEN
zsd.PROD_HOURS * zsd.DISPATCH_QTY
ELSE 0 END) / SUM(zsd.PROD_HOURS * zsd.DISPATCH_QTY))
* 100, '99990.99') rate,--进度(工时百分比)
MAX(zsd.ACTUAL_START_DATE) ACTUAL_START_DATE,--最大实际开始时间
SUM(CASE WHEN zsd.DISPATCH_STATUS != 'COMPLETE' AND zsd.DISPATCH_STATUS != 'CANCEL' THEN 1 ELSE 0 END) nextOperationNum,--剩余工序数量
SUM(CASE
WHEN zsd.DISPATCH_STATUS != 'COMPLETE' AND zsd.DISPATCH_STATUS != 'CANCEL' THEN 1
ELSE 0 END) nextOperationNum,--剩余工序数量
MAX(zsd.PLANNED_COMP_DATE) endPlanTime,--计划最终交付时间
rs.REWORK rework,--是否返修工序
-- 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
@ -1208,18 +1211,22 @@
-- AND zsd.DISPATCH_STATUS != 'CANCEL'
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
GROUP BY zsd.SITE, cf.VALUE, cf2.VALUE, zsd.SHOP_ORDER, zsd.SFC, it.DESCRIPTION
ORDER BY rate
) WIP
LEFT JOIN (SELECT zsd1.SITE,zsd1.SFC,MAX(zsd1.STEP_ID) STEP_ID,MAX(zsd1.CURRENT_OPERATION) CURRENT_OPERATION FROM (
LEFT JOIN (SELECT zsd1.SITE, zsd1.SFC, MAX(zsd1.STEP_ID) STEP_ID, MAX(zsd1.CURRENT_OPERATION) CURRENT_OPERATION
FROM (
SELECT zsd0.SITE, zsd0.SFC, OT.DESCRIPTION CURRENT_OPERATION, ss.STEP_ID
FROM Z_SFC_DISPATCH zsd0
LEFT JOIN SFC s2 ON s2.SFC = zsd0.SFC AND s2.SITE = zsd0.SITE
LEFT JOIN SFC_ROUTING sr ON sr.SFC_BO = s2.HANDLE
LEFT JOIN SFC_ROUTER st ON st.SFC_ROUTING_BO = sr.HANDLE AND st.IN_USE = 'true'
LEFT JOIN SFC_STEP ss ON ss.SFC_ROUTER_BO = st.HANDLE AND (ss.QTY_IN_QUEUE > 0 OR ss.QTY_IN_WORK > 0)
LEFT JOIN SFC_STEP ss ON ss.SFC_ROUTER_BO = st.HANDLE AND
(ss.QTY_IN_QUEUE > 0 OR ss.QTY_IN_WORK > 0)
INNER JOIN OPERATION o
ON ss.OPERATION_BO = 'OperationBO:'||o.SITE||','||o.OPERATION||',#' AND o.CURRENT_REVISION = 'true' AND o.SITE = zsd0.SITE AND o.CURRENT_REVISION = 'true'
ON ss.OPERATION_BO = 'OperationBO:' || o.SITE || ',' || o.OPERATION || ',#' AND
o.CURRENT_REVISION = 'true' AND o.SITE = zsd0.SITE AND
o.CURRENT_REVISION = 'true'
and zsd0.OPERATION = o.OPERATION
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = O.HANDLE AND OT.LOCALE = 'zh') zsd1
GROUP BY zsd1.SITE, zsd1.SFC) zsd2 ON WIP.SFC = zsd2.SFC AND WIP.SITE = zsd2.SITE
@ -1369,35 +1376,48 @@
</select>
<select id= "projectScheduleShow" parameterType= "java.util.HashMap" resultType= "java.util.HashMap" >
--事业部项目进度看板数据接口
SELECT * FROM (
SELECT *
FROM (
SELECT OWIP.item "item",--项目号
OWIP.workOrder "workOrder",
SUM(OWIP.shopOrderQTY) "shopOrderQTY",
TO_CHAR(AVG(OWIP.rate), '990.99') "rate", --项目总进度(工时百分比)
TO_CHAR(AVG(CASE
WHEN OWIP.shopOrderQTY = OWIP.doneQTY THEN '100.00'
ELSE OWIP.rate
END), '990.99') "rate", --项目总进度(工时百分比)
TO_CHAR(CASE
WHEN
DECODE((TO_DATE(MAX(OWIP.endPlanTime)) - TO_DATE(MIN(OWIP.PLANNED_START_DATE))),
0, 0, ((TO_DATE(SYSDATE) - TO_DATE(MIN(OWIP.PLANNED_START_DATE))) /
(TO_DATE(MAX(OWIP.endPlanTime)) - TO_DATE(MIN(OWIP.PLANNED_START_DATE)))))
(TO_DATE(MAX(OWIP.endPlanTime)) -
TO_DATE(MIN(OWIP.PLANNED_START_DATE)))))
<![CDATA[ < 1 ]]>
THEN DECODE((TO_DATE(MAX(OWIP.endPlanTime)) - TO_DATE(MIN(OWIP.PLANNED_START_DATE))),
0, 0, ((TO_DATE(SYSDATE) - TO_DATE(MIN(OWIP.PLANNED_START_DATE))) /
(TO_DATE(MAX(OWIP.endPlanTime)) - TO_DATE(MIN(OWIP.PLANNED_START_DATE))))) * 100
(TO_DATE(MAX(OWIP.endPlanTime)) -
TO_DATE(MIN(OWIP.PLANNED_START_DATE))))) * 100
ELSE 100 END, '990.99') "planRate", --计划进度
MAX(OWIP.endPlanTime) "endPlanDate",
MIN(OWIP.PLANNED_START_DATE) "startDate"
FROM (SELECT cf.VALUE item,--项目号
cf2.VALUE workOrder,--工作令
zsd.SFC,
MAX(zsd.DISPATCH_QTY) shopOrderQTY,--订单数量
MIN(zsd.DISPATCH_QTY) shopOrderQTY,--订单数量
MIN(CASE
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL' THEN
zsd.DISPATCH_QTY
ELSE 0 END) doneQTY, --已完成数量
TO_CHAR(
DECODE(SUM(CASE
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL'
THEN
zsd.PROD_HOURS * zsd.DISPATCH_QTY
ELSE 0 END), 0, 0, SUM(CASE
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' THEN
WHEN zsd.DISPATCH_STATUS = 'COMPLETE' OR zsd.DISPATCH_STATUS = 'CANCEL'
THEN
zsd.PROD_HOURS * zsd.DISPATCH_QTY
ELSE 0 END) / SUM(zsd.PROD_HOURS * zsd.DISPATCH_QTY) )
ELSE 0 END) /
SUM(zsd.PROD_HOURS * zsd.DISPATCH_QTY))
* 100, '99990.99') rate,--进度(工时百分比)
MAX(zsd.PLANNED_COMP_DATE) endPlanTime, --计划最终交付时间
MIN(zsd.PLANNED_START_DATE) PLANNED_START_DATE--计划开始时间
@ -1407,11 +1427,10 @@
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 = '1000'
AND zsd.DISPATCH_STATUS != 'CANCEL'
AND cf.VALUE IS NOT NULL
AND cf2.VALUE IS NOT NULL
GROUP BY zsd.SITE, cf.VALUE, cf2.VALUE,zsd.SFC
ORDER BY endPlanTime DESC ) OWIP
GROUP BY zsd.SITE, cf.VALUE, cf2.VALUE, zsd.SHOP_ORDER, zsd.SFC
) OWIP
GROUP BY OWIP.item, OWIP.workOrder
) WIP
<where >