更改四车间看板计划完成数sql,饼图sql.

master
yangwl 3 years ago
parent c433ff6b92
commit 7c9c36de39

@ -40,6 +40,57 @@
</select>
<select id="partsManufacturing" parameterType="java.util.HashMap" resultType="java.util.HashMap">
WITH ZSD AS (
SELECT * FROM
( SELECT TEMP.* , ROW_NUMBER() OVER(PARTITION BY TEMP.FINISHED_SFC , TEMP.FINISHED_SHOP_ORDER ORDER BY STEP_ID_A) RN FROM
(
SELECT
cf.VALUE FINISHED_WORK_ORDER,
so.SHOP_ORDER FINISHED_SHOP_ORDER,
zsd.SFC FINISHED_SFC,
i.ITEM FINISHED_ITEM,
it.DESCRIPTION FINISHED_ITEM_DESCRIPTION,
o.OPERATION FINISHED_OPERATION,
ot.DESCRIPTION FINISHED_OPERATION_DESCRIPTION,
so.BOM_BO ,
zsd.SITE,
zsd.DISPATCH_STATUS FINISHED_STATUS,
ZSD.STEP_ID STEP_ID_A
FROM
Z_SFC_DISPATCH zsd
INNER JOIN SHOP_ORDER so ON
so.SHOP_ORDER = zsd.SHOP_ORDER
AND so.SITE = zsd.SITE
INNER JOIN ITEM i ON
i.HANDLE = so.ITEM_BO
LEFT JOIN ITEM_T it ON
it.ITEM_BO = i.HANDLE
AND it.LOCALE = 'zh'
INNER JOIN OPERATION o ON
o.OPERATION = zsd.OPERATION
AND o.SITE = zsd.SITE
AND o.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot ON
ot.OPERATION_BO = o.HANDLE
INNER JOIN CUSTOM_FIELDS cf ON
cf.HANDLE = so.HANDLE
AND cf."ATTRIBUTE" = 'WORK_ORDER'
WHERE
zsd.OPERATION IN ('HJ_6106HJH1', 'HJ_6106HJH2', 'HJ_6106HJH3')
AND cf.VALUE = #{workOrder}
AND zsd.SITE = #{site}
) TEMP
) WHERE RN = 1
) ,
zsdTemplate AS (
SELECT COUNT(ZSD2.SHOP_ORDER) NUM , ZSD.FINISHED_SHOP_ORDER FINISHED_SHOP_ORDER_TEMP , ZSD.FINISHED_SFC FINISHED_SFC_TEMP FROM ZSD
INNER JOIN BOM_COMPONENT bc ON bc.BOM_BO = zsd.BOM_BO
INNER JOIN SHOP_ORDER so ON so.ITEM_BO = BC.COMPONENT_GBO
INNER JOIN CUSTOM_FIELDS cf ON cf.HANDLE = so.HANDLE AND cf."ATTRIBUTE" = 'WORK_ORDER' AND cf.VALUE = zsd.FINISHED_WORK_ORDER
INNER JOIN Z_SFC_DISPATCH zsd2 ON zsd2.SHOP_ORDER = so.SHOP_ORDER AND zsd2.SITE = #{site}
WHERE zsd2.DISPATCH_STATUS != 'COMPLETE' AND zsd2.DISPATCH_STATUS != 'CANCEL'
GROUP BY ZSD.FINISHED_SHOP_ORDER , ZSD.FINISHED_SFC
)
SELECT
DISTINCT
SITE,
@ -83,218 +134,162 @@
PLANNED_COMP_DATE,
ACTUAL_START_DATE,
ACTUAL_COMPLETE_DATE
FROM
FROM
(
SELECT
FINISHED_WORK_ORDER,
FINISHED_SHOP_ORDER,
FINISHED_SFC,
FINISHED_ITEM,
FINISHED_ITEM_DESCRIPTION,
FINISHED_OPERATION,
FINISHED_OPERATION_DESCRIPTION,
FINISHED_STATUS,
zsd.SITE,
CASE
WHEN zsdTemplate.NUM > 1 THEN '否'
ELSE '是'
END HJ_IS_COMPLETE,
cf2.VALUE ITEM_NUMBER,
so.SHOP_ORDER ,
i.ITEM ,
it.DESCRIPTION ITEM_DESCRIPTION,
zsd2.DISPATCH_QTY ,
zsd2.BLANKING_SIZE ,
zsd2.SFC ,
zsd2.OPERATION ,
ot2.DESCRIPTION OPERATION_DESCRIPTION,
zsd2.DISPATCH_STATUS ,
o3.OPERATION CURRENT_OPERATION,
ot3.DESCRIPTION CURRENT_OPERATION_DESCRIPTION,
CASE
WHEN zsd3.NUM > 1 THEN '否'
ELSE '是'
END IS_COMPLETE,
zsd2.EMPLOYEE_DESCRIPTION,
zsd2.PLANNED_START_DATE ,
zsd2.PLANNED_COMP_DATE,
zsd2.ACTUAL_START_DATE ,
zsd2.ACTUAL_COMPLETE_DATE,
zsd2.STEP_ID
FINISHED_WORK_ORDER,
FINISHED_SHOP_ORDER,
FINISHED_SFC,
FINISHED_ITEM,
FINISHED_ITEM_DESCRIPTION,
FINISHED_OPERATION,
FINISHED_OPERATION_DESCRIPTION,
FINISHED_STATUS,
zsd.SITE,
CASE
WHEN zsdTemplate.NUM > 1 THEN '否'
ELSE '是'
END HJ_IS_COMPLETE,
cf2.VALUE ITEM_NUMBER,
so.SHOP_ORDER ,
i.ITEM ,
it.DESCRIPTION ITEM_DESCRIPTION,
zsd2.DISPATCH_QTY ,
zsd2.BLANKING_SIZE ,
zsd2.SFC ,
zsd2.OPERATION ,
ot2.DESCRIPTION OPERATION_DESCRIPTION,
zsd2.DISPATCH_STATUS ,
o3.OPERATION CURRENT_OPERATION,
ot3.DESCRIPTION CURRENT_OPERATION_DESCRIPTION,
CASE
WHEN zsd3.NUM > 1 THEN '否'
ELSE '是'
END IS_COMPLETE,
zsd2.EMPLOYEE_DESCRIPTION,
zsd2.PLANNED_START_DATE ,
zsd2.PLANNED_COMP_DATE,
zsd2.ACTUAL_START_DATE ,
zsd2.ACTUAL_COMPLETE_DATE,
zsd2.STEP_ID
FROM
(
SELECT
cf.VALUE FINISHED_WORK_ORDER,
so.SHOP_ORDER FINISHED_SHOP_ORDER,
zsd.SFC FINISHED_SFC,
i.ITEM FINISHED_ITEM,
it.DESCRIPTION FINISHED_ITEM_DESCRIPTION,
o.OPERATION FINISHED_OPERATION,
ot.DESCRIPTION FINISHED_OPERATION_DESCRIPTION,
so.BOM_BO ,
zsd.SITE,
zsd.DISPATCH_STATUS FINISHED_STATUS
FROM
Z_SFC_DISPATCH zsd
INNER JOIN SHOP_ORDER so ON
so.SHOP_ORDER = zsd.SHOP_ORDER
AND so.SITE = zsd.SITE
INNER JOIN ITEM i ON
i.HANDLE = so.ITEM_BO
LEFT JOIN ITEM_T it ON
it.ITEM_BO = i.HANDLE
AND it.LOCALE = 'zh'
INNER JOIN OPERATION o ON
o.OPERATION = zsd.OPERATION
AND o.SITE = zsd.SITE
AND o.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot ON
ot.OPERATION_BO = o.HANDLE
INNER JOIN CUSTOM_FIELDS cf ON
cf.HANDLE = so.HANDLE
AND cf."ATTRIBUTE" = 'WORK_ORDER'
WHERE
zsd.OPERATION IN ('HJ_6106HJH1', 'HJ_6106HJH2', 'HJ_6106HJH3')
AND cf.VALUE = #{workOrder}
AND zsd.SITE = #{site}
)zsd
INNER JOIN (
SELECT
COUNT(zsd.HANDLE) NUM,
cf.VALUE WORK_ORDER ,
zsd.SITE
FROM
Z_SFC_DISPATCH zsd
INNER JOIN SHOP_ORDER so ON
so.SHOP_ORDER = zsd.SHOP_ORDER
AND so.SITE = zsd.SITE
INNER JOIN CUSTOM_FIELDS cf ON
cf.HANDLE = so.HANDLE
AND cf."ATTRIBUTE" = 'WORK_ORDER'
WHERE
zsd.DISPATCH_STATUS != 'COMPLETE'
AND zsd.DISPATCH_STATUS != 'CANCEL'
AND cf.VALUE = #{workOrder}
GROUP BY
cf.VALUE,
zsd.SITE
) zsdTemplate ON
zsdTemplate.WORK_ORDER = zsd.FINISHED_WORK_ORDER
AND zsdTemplate.SITE = zsd.SITE
zsd
INNER JOIN zsdTemplate ON
zsdTemplate.FINISHED_SHOP_ORDER_TEMP = zsd.FINISHED_SHOP_ORDER AND zsdTemplate.FINISHED_SFC_TEMP = ZSD.FINISHED_SFC
INNER JOIN BOM_COMPONENT bc ON
bc.BOM_BO = zsd.BOM_BO
bc.BOM_BO = zsd.BOM_BO
INNER JOIN ITEM i ON
i.HANDLE = bc.COMPONENT_GBO
i.HANDLE = bc.COMPONENT_GBO
LEFT JOIN ITEM_T it ON
it.ITEM_BO = i.HANDLE
AND it.LOCALE = 'zh'
it.ITEM_BO = i.HANDLE
AND it.LOCALE = 'zh'
INNER JOIN SHOP_ORDER so ON
so.ITEM_BO = i.HANDLE
AND i.SITE = so.SITE
so.ITEM_BO = i.HANDLE
AND i.SITE = so.SITE
INNER JOIN CUSTOM_FIELDS cf ON
cf.HANDLE = so.HANDLE
AND cf."ATTRIBUTE" = 'WORK_ORDER'
AND cf.VALUE = zsd.FINISHED_WORK_ORDER
/*子件的查询*/
cf.HANDLE = so.HANDLE
AND cf."ATTRIBUTE" = 'WORK_ORDER'
AND cf.VALUE = zsd.FINISHED_WORK_ORDER
/*子件的查询*/
INNER JOIN Z_SFC_DISPATCH zsd2 ON
zsd2.SHOP_ORDER = so.SHOP_ORDER
AND zsd.SITE = zsd2.SITE
zsd2.SHOP_ORDER = so.SHOP_ORDER
AND zsd.SITE = zsd2.SITE
LEFT JOIN CUSTOM_FIELDS cf2 ON
so.HANDLE = cf2.HANDLE
AND cf2."ATTRIBUTE" = 'ITEM_NUMBER'
so.HANDLE = cf2.HANDLE
AND cf2."ATTRIBUTE" = 'ITEM_NUMBER'
INNER JOIN OPERATION o2 ON
o2.OPERATION = zsd2.OPERATION
AND o2.SITE = zsd.SITE
o2.OPERATION = zsd2.OPERATION
AND o2.SITE = zsd.SITE
LEFT JOIN OPERATION_T ot2 ON
ot2.OPERATION_BO = o2.HANDLE
AND ot2.LOCALE = 'zh'
ot2.OPERATION_BO = o2.HANDLE
AND ot2.LOCALE = 'zh'
INNER JOIN SFC s2 ON
s2.SFC = zsd2.SFC
AND s2.SITE = zsd.SITE
s2.SFC = zsd2.SFC
AND s2.SITE = zsd.SITE
LEFT JOIN SFC_ROUTING sr ON
sr.SFC_BO = s2.HANDLE
sr.SFC_BO = s2.HANDLE
LEFT JOIN SFC_ROUTER st ON
st.SFC_ROUTING_BO = sr.HANDLE
AND st.IN_USE = 'true'
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)
ss.SFC_ROUTER_BO = st.HANDLE
AND (ss.QTY_IN_QUEUE > 0
OR ss.QTY_IN_WORK > 0)
LEFT JOIN OPERATION o3 ON
o3.OPERATION = SPLIT(ss.OPERATION_BO,
2)
AND o3.SITE = zsd.SITE
AND o3.CURRENT_REVISION = 'true'
o3.OPERATION = SPLIT(ss.OPERATION_BO,
2)
AND o3.SITE = zsd.SITE
AND o3.CURRENT_REVISION = 'true'
LEFT JOIN OPERATION_T ot3 ON
ot3.OPERATION_BO = o3.HANDLE
AND ot3.LOCALE = 'zh'
ot3.OPERATION_BO = o3.HANDLE
AND ot3.LOCALE = 'zh'
LEFT JOIN (
SELECT
COUNT(HANDLE) NUM,
SHOP_ORDER,
SITE
FROM
Z_SFC_DISPATCH zsd
WHERE
SITE = #{site}
AND zsd.DISPATCH_STATUS != 'COMPLETE'
AND zsd.DISPATCH_STATUS != 'CANCEL'
GROUP BY
SITE ,
SHOP_ORDER
) zsd3 ON
zsd3.SHOP_ORDER = so.SHOP_ORDER
AND zsd3.SITE = zsd.SITE
)
<where>
SITE = #{site} AND FINISHED_WORK_ORDER = #{workOrder}
<if test="itemNumber != null and itemNumber != ''">
AND ITEM_NUMBER = #{itemNumber}
</if>
<if test="shopOrder != null and shopOrder != ''">
AND (FINISHED_SHOP_ORDER = #{shopOrder} OR SHOP_ORDER = #{shopOrder})
</if>
<if test="item != null and item != ''">
AND (FINISHED_ITEM = #{item} OR FINISHED_ITEM_DESCRIPTION = #{item}
SELECT
COUNT(HANDLE) NUM,
SHOP_ORDER,
SITE
FROM
Z_SFC_DISPATCH zsd
WHERE
SITE = #{site}
AND zsd.DISPATCH_STATUS != 'COMPLETE'
AND zsd.DISPATCH_STATUS != 'CANCEL'
GROUP BY
SITE ,
SHOP_ORDER
) zsd3 ON
zsd3.SHOP_ORDER = so.SHOP_ORDER
AND zsd3.SITE = zsd.SITE
)
<where>
SITE = #{site} AND FINISHED_WORK_ORDER = #{workOrder}
<if test="itemNumber != null and itemNumber != ''">
AND ITEM_NUMBER = #{itemNumber}
</if>
<if test="shopOrder != null and shopOrder != ''">
AND (FINISHED_SHOP_ORDER = #{shopOrder} OR SHOP_ORDER = #{shopOrder})
</if>
<if test="item != null and item != ''">
AND (FINISHED_ITEM = #{item} OR FINISHED_ITEM_DESCRIPTION = #{item}
OR ITEM = #{item} OR ITEM_DESCRIPTION = #{item}
)
</if>
<if test="currentOperation != null and currentOperation != ''">
AND (CURRENT_OPERATION LIKE '%${currentOperation}%' OR
)
</if>
<if test="currentOperation != null and currentOperation != ''">
AND (CURRENT_OPERATION LIKE '%${currentOperation}%' OR
CURRENT_OPERATION_DESCRIPTION LIKE '%${currentOperation}%'
)
</if>
<if test="operation != null and operation != ''">
AND (FINISHED_OPERATION LIKE '%${operation}%'
)
</if>
<if test="operation != null and operation != ''">
AND (FINISHED_OPERATION LIKE '%${operation}%'
OR FINISHED_OPERATION_DESCRIPTION LIKE '%${operation}%'
OR OPERATION LIKE '%${operation}%'
OR OPERATION_DESCRIPTION LIKE '%${operation}%'
)
</if>
<!-- <if test="finishedStatus != null and finishedStatus != ''">-->
<!-- AND FINISHED_STATUS = #{finishedStatus}-->
<!-- </if>-->
<if test="startDateTime != null and startDateTime != ''">
)
</if>
<!-- <if test="finishedStatus != null and finishedStatus != ''">-->
<!-- AND FINISHED_STATUS = #{finishedStatus}-->
<!-- </if>-->
<if test="startDateTime != null and startDateTime != ''">
AND ACTUAL_START_DATE &gt;= TO_DATE(#{startDateTime}, 'YYYY-MM-DD') - 8/24
</if>
<if test="endDateTime != null and endDateTime != ''">
AND ACTUAL_START_DATE &lt;= TO_DATE(#{endDateTime}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="completeStartDateTime != null and completeStartDateTime != ''">
AND ACTUAL_COMPLETE_DATE &gt;= TO_DATE(#{completeStartDateTime}, 'YYYY-MM-DD') - 8/24
</if>
<if test="completeEndDateTime != null and completeEndDateTime != ''">
AND ACTUAL_COMPLETE_DATE &lt;= TO_DATE(#{completeEndDateTime}|| '15:59:59',
'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="hjIsCompleted != null and hjIsCompleted != ''">
AND FINISHED_STATUS = #{hjIsCompleted}
</if>
<if test="isCompleted != null and isCompleted != ''">
AND IS_COMPLETE = #{isCompleted}
</if>
</where>
ORDER BY FINISHED_OPERATION,FINISHED_SHOP_ORDER,SFC,STEP_ID
</if>
<if test="endDateTime != null and endDateTime != ''">
AND ACTUAL_START_DATE &lt;= TO_DATE(#{endDateTime}|| '15:59:59', 'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="completeStartDateTime != null and completeStartDateTime != ''">
AND ACTUAL_COMPLETE_DATE &gt;= TO_DATE(#{completeStartDateTime}, 'YYYY-MM-DD') - 8/24
</if>
<if test="completeEndDateTime != null and completeEndDateTime != ''">
AND ACTUAL_COMPLETE_DATE &lt;= TO_DATE(#{completeEndDateTime}|| '15:59:59',
'YYYY-MM-DD HH24:MI:SS')
</if>
<if test="hjIsCompleted != null and hjIsCompleted != ''">
AND FINISHED_STATUS = #{hjIsCompleted}
</if>
<if test="isCompleted != null and isCompleted != ''">
AND HJ_IS_COMPLETE = #{isCompleted}
</if>
</where>
ORDER BY FINISHED_OPERATION,FINISHED_SHOP_ORDER,SFC,STEP_ID
</select>
<select id="surplusReturnTable" resultType="java.util.HashMap">

@ -567,7 +567,7 @@
<!--异常看板-->
<select id="abnormalTypeQty" resultType="java.util.HashMap" parameterType="java.util.HashMap">
SELECT TEMP.* , NVL(T.DID_CNT,0) ,NVL(T.SUM_CNT,0) SUM_CNT FROM
SELECT TEMP.* , NVL(T.DID_CNT,0) DID_CNT,NVL(T.SUM_CNT,0) SUM_CNT FROM
( SELECT 'Z' TYPE , '质量异常' TYPE_DESCRIPTION FROM DUAL
UNION
SELECT 'Q' TYPE , '其他异常' TYPE_DESCRIPTION FROM DUAL

@ -3,12 +3,17 @@ package com.foreverwin.mesnac.dispatch.controller;
import cn.hutool.core.date.DateUtil;
import com.foreverwin.mesnac.dispatch.model.ShopOrderRelease;
import com.foreverwin.mesnac.dispatch.service.ShopOrderReleaseService;
import com.foreverwin.mesnac.dispatch.service.impl.ShopOrderReleaseServiceImpl;
import com.foreverwin.modular.core.util.CommonMethods;
import com.foreverwin.modular.core.util.R;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
/**
@ -31,11 +36,11 @@ public class ShopOrderReleaseController {
@Autowired
private ShopOrderReleaseService shopOrderReleaseService;
@ResponseBody
@PostMapping("queryShopOrder")
public R queryShopOrder(@RequestBody ShopOrderRelease shopOrderRelease) {
List<ShopOrderRelease> list = null;
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
if (shopOrderRelease == null) {
shopOrderRelease = new ShopOrderRelease();
@ -54,7 +59,6 @@ public class ShopOrderReleaseController {
if (shopOrderRelease.getCompleteToDate_S() != null) {
shopOrderRelease.setCompleteToDate(DateUtil.parse(shopOrderRelease.getCompleteToDate_S()));
}
list = shopOrderReleaseService.findShopOrderList(shopOrderRelease);
} catch (Exception e) {
return R.failed(e.getMessage());

@ -24,59 +24,59 @@
<select id="findShopOrderList" resultMap="BaseResultMap">
SELECT MVP.*
FROM (
SELECT SO.HANDLE, SO.HANDLE SHOP_ORDER_BO, SO.SITE, SO.SHOP_ORDER, CF1.VALUE WORK_ORDER, CF2.VALUE SHOP_ORDER_TYPE, CF3.VALUE COMMENTS,
IM.ITEM, IMT.DESCRIPTION ITEM_DESCRIPTION, SO.QTY_TO_BUILD, SO.PLANNED_START_DATE, SO.PLANNED_COMP_DATE, MAX(ZSD.PLANNED_COMP_DATE) DISPATCH_COMPLETE_DATE,
SUBSTR(SPLIT(OP.RESOURCE_TYPE_BO, 2),0,INSTR(SPLIT(OP.RESOURCE_TYPE_BO, 2), '_')-1) WORK_CENTER,
CASE WHEN ST.STATUS = '502' OR ST.STATUS = '503' OR ST.STATUS = '504' THEN ST.STATUS
WHEN ST.STATUS = '501' AND SO.QTY_RELEASED &lt;= 0 THEN N'501'
WHEN MAX(SS.SHOP_ORDER_BO) IS NULL THEN N'505' ELSE N'506' END STATUS,
CASE WHEN IM.LOT_SIZE = 1 THEN N'是' ELSE N'否' END IS_MAJOR
FROM SHOP_ORDER SO
INNER JOIN ITEM IM ON SO.PLANNED_ITEM_BO = IM.HANDLE
INNER JOIN STATUS ST ON SO.STATUS_BO = ST.HANDLE AND ST.STATUS_GROUP = 'ORDERS'
INNER JOIN ROUTER RT ON SO.PLANNED_ROUTER_BO = RT.HANDLE OR (SO.PLANNED_ROUTER_BO = 'RouterBO:'||RT.SITE||','||RT.ROUTER||','||RT.ROUTER_TYPE||',#' AND RT.CURRENT_REVISION = 'true')
INNER JOIN ROUTER_OPERATION RO ON RT.ENTRY_ROUTER_STEP_BO = RO.ROUTER_STEP_BO
INNER JOIN OPERATION OP ON SO.SITE = OP.SITE AND SPLIT(RO.OPERATION_BO,2) = OP.OPERATION AND OP.CURRENT_REVISION = 'true'
LEFT JOIN (
SELECT SHOP_ORDER_BO
FROM SFC SC
INNER JOIN STATUS ST ON SC.STATUS_BO = ST.HANDLE AND ST.STATUS_GROUP = 'SFC'
WHERE ST.STATUS != '401'
GROUP BY SHOP_ORDER_BO
) SS ON SS.SHOP_ORDER_BO = SO.HANDLE
LEFT JOIN ITEM_T IMT ON IM.HANDLE = IMT.ITEM_BO AND IMT.LOCALE = 'zh'
LEFT JOIN CUSTOM_FIELDS CF1 ON CF1.HANDLE = SO.HANDLE AND CF1.ATTRIBUTE = 'WORK_ORDER'
LEFT JOIN CUSTOM_FIELDS CF2 ON CF2.HANDLE = SO.HANDLE AND CF2.ATTRIBUTE = 'SHOP_ORDER_TYPE'
LEFT JOIN CUSTOM_FIELDS CF3 ON CF3.HANDLE = SO.HANDLE AND CF3.ATTRIBUTE = 'COMMENTS'
LEFT JOIN Z_SFC_DISPATCH ZSD ON SO.SITE = ZSD.SITE AND SO.SHOP_ORDER = ZSD.SHOP_ORDER
WHERE SO.SITE = #{site}
<if test="shopOrder != null and shopOrder != ''">
AND SO.SHOP_ORDER = #{shopOrder}
</if>
<if test="workOrder != null and workOrder != ''">
AND CF1.VALUE LIKE '%'|| #{workOrder} || '%'
</if>
<if test="shopOrderType != null and shopOrderType != ''">
AND CF2.VALUE LIKE '%'|| #{shopOrderType} || '%'
</if>
<if test="item != null and item != ''">
AND IM.ITEM = #{item}
</if>
<if test="startFromDate != null">
AND SO.PLANNED_START_DATE >= #{startFromDate}
</if>
<if test="startToDate != null">
AND SO.PLANNED_START_DATE &lt;= #{startToDate}
</if>
<if test="completeFromDate != null">
AND SO.PLANNED_COMP_DATE >= #{completeFromDate}
</if>
<if test="completeToDate != null">
AND SO.PLANNED_COMP_DATE &lt;= #{completeToDate}
</if>
GROUP BY SO.HANDLE, SO.SITE, SO.SHOP_ORDER, SO.QTY_RELEASED, ST.STATUS, CF1.VALUE, CF2.VALUE, CF3.VALUE,
OP.RESOURCE_TYPE_BO, IM.ITEM, IMT.DESCRIPTION, SO.QTY_TO_BUILD, SO.PLANNED_START_DATE, SO.PLANNED_COMP_DATE,
SO.PLANNED_WORK_CENTER_BO, IM.LOT_SIZE
SELECT SO.HANDLE, SO.HANDLE SHOP_ORDER_BO, SO.SITE, SO.SHOP_ORDER, CF1.VALUE WORK_ORDER, CF2.VALUE SHOP_ORDER_TYPE, CF3.VALUE COMMENTS,
IM.ITEM, IMT.DESCRIPTION ITEM_DESCRIPTION, SO.QTY_TO_BUILD, SO.PLANNED_START_DATE, SO.PLANNED_COMP_DATE, MAX(ZSD.PLANNED_COMP_DATE) DISPATCH_COMPLETE_DATE,
SUBSTR(SPLIT(OP.RESOURCE_TYPE_BO, 2),0,INSTR(SPLIT(OP.RESOURCE_TYPE_BO, 2), '_')-1) WORK_CENTER,
CASE WHEN ST.STATUS = '502' OR ST.STATUS = '503' OR ST.STATUS = '504' THEN ST.STATUS
WHEN ST.STATUS = '501' AND SO.QTY_RELEASED &lt;= 0 THEN N'501'
WHEN MAX(SS.SHOP_ORDER_BO) IS NULL THEN N'505' ELSE N'506' END STATUS,
CASE WHEN IM.LOT_SIZE = 1 THEN N'是' ELSE N'否' END IS_MAJOR
FROM SHOP_ORDER SO
INNER JOIN ITEM IM ON SO.PLANNED_ITEM_BO = IM.HANDLE
INNER JOIN STATUS ST ON SO.STATUS_BO = ST.HANDLE AND ST.STATUS_GROUP = 'ORDERS'
INNER JOIN ROUTER RT ON SO.PLANNED_ROUTER_BO = RT.HANDLE OR (SO.PLANNED_ROUTER_BO = 'RouterBO:'||RT.SITE||','||RT.ROUTER||','||RT.ROUTER_TYPE||',#' AND RT.CURRENT_REVISION = 'true')
INNER JOIN ROUTER_OPERATION RO ON RT.ENTRY_ROUTER_STEP_BO = RO.ROUTER_STEP_BO
INNER JOIN OPERATION OP ON RO.OPERATION_BO = 'OperationBO:'||OP.SITE||','||OP.OPERATION||',#' AND OP.CURRENT_REVISION = 'true'
LEFT JOIN (
SELECT SHOP_ORDER_BO
FROM SFC SC
INNER JOIN STATUS ST ON SC.STATUS_BO = ST.HANDLE AND ST.STATUS_GROUP = 'SFC'
WHERE ST.STATUS != '401'
GROUP BY SHOP_ORDER_BO
) SS ON SS.SHOP_ORDER_BO = SO.HANDLE
LEFT JOIN ITEM_T IMT ON IM.HANDLE = IMT.ITEM_BO AND IMT.LOCALE = 'zh'
LEFT JOIN CUSTOM_FIELDS CF1 ON CF1.HANDLE = SO.HANDLE AND CF1.ATTRIBUTE = 'WORK_ORDER'
LEFT JOIN CUSTOM_FIELDS CF2 ON CF2.HANDLE = SO.HANDLE AND CF2.ATTRIBUTE = 'SHOP_ORDER_TYPE'
LEFT JOIN CUSTOM_FIELDS CF3 ON CF3.HANDLE = SO.HANDLE AND CF3.ATTRIBUTE = 'COMMENTS'
LEFT JOIN Z_SFC_DISPATCH ZSD ON SO.SITE = ZSD.SITE AND SO.SHOP_ORDER = ZSD.SHOP_ORDER
WHERE SO.SITE = #{site}
<if test="shopOrder != null and shopOrder != ''">
AND SO.SHOP_ORDER = #{shopOrder}
</if>
<if test="workOrder != null and workOrder != ''">
AND CF1.VALUE LIKE '%'|| #{workOrder} || '%'
</if>
<if test="shopOrderType != null and shopOrderType != ''">
AND CF2.VALUE LIKE '%'|| #{shopOrderType} || '%'
</if>
<if test="item != null and item != ''">
AND IM.ITEM = #{item}
</if>
<if test="startFromDate != null">
AND SO.PLANNED_START_DATE >= #{startFromDate}
</if>
<if test="startToDate != null">
AND SO.PLANNED_START_DATE &lt;= #{startToDate}
</if>
<if test="completeFromDate != null">
AND SO.PLANNED_COMP_DATE >= #{completeFromDate}
</if>
<if test="completeToDate != null">
AND SO.PLANNED_COMP_DATE &lt;= #{completeToDate}
</if>
GROUP BY SO.HANDLE, SO.SITE, SO.SHOP_ORDER, SO.QTY_RELEASED, ST.STATUS, CF1.VALUE, CF2.VALUE, CF3.VALUE,
OP.RESOURCE_TYPE_BO, IM.ITEM, IMT.DESCRIPTION, SO.QTY_TO_BUILD, SO.PLANNED_START_DATE, SO.PLANNED_COMP_DATE,
SO.PLANNED_WORK_CENTER_BO, IM.LOT_SIZE
) MVP
WHERE 1 = 1
<if test="status != null and status != ''">

Loading…
Cancel
Save