You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
204 lines
11 KiB
XML
204 lines
11 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.foreverwin.mesnac.production.mapper.SfcCrossMapper">
|
|
|
|
<resultMap id="StepOperationMap" type="com.foreverwin.mesnac.production.model.StepOperation">
|
|
<result property="operationBo" column="OPERATION_BO"/>
|
|
<result property="stepId" column="STEP_ID"/>
|
|
<result property="sequence" column="SEQUENCE" javaType="java.math.BigDecimal"/>
|
|
<result property="reportingCenterBo" column="REPORTING_CENTER_BO"/>
|
|
<result property="operation" column="OPERATION"/>
|
|
<result property="description" column="DESCRIPTION"/>
|
|
<result property="resourceBo" column="RESOURCE_BO"/>
|
|
<result property="handle" column="HANDLE"/>
|
|
<result property="routerBo" column="ROUTER_BO"/>
|
|
<result property="resrce" column="RESRCE"/>
|
|
|
|
</resultMap>
|
|
|
|
<select id="findBindingBarcode" resultMap="com.foreverwin.mesnac.meapi.mapper.SfcMapper.BaseResultMap">
|
|
SELECT
|
|
SFC.HANDLE,
|
|
SFC.SFC,
|
|
SFC.SHOP_ORDER_BO,
|
|
SFC.STATUS_BO
|
|
FROM SFC SFC
|
|
JOIN SFC_DATA DT ON DT.SFC_BO = SFC.HANDLE AND DT.DATA_FIELD = #{dataField}
|
|
WHERE DT.DATA_ATTR = #{dataAttr}
|
|
AND SFC.SITE = #{site}
|
|
|
|
<if test="statusBoList != null and statusBoList.size() > 0">
|
|
AND SFC.STATUS_BO IN
|
|
<foreach collection="statusBoList" item="item" index="index" open="(" close=")" separator=",">
|
|
#{item}
|
|
</foreach>
|
|
</if>
|
|
|
|
ORDER BY DT.DATE_TIME DESC
|
|
</select>
|
|
|
|
<select id="findRouterOperationByRouterBo" resultMap="StepOperationMap">
|
|
SELECT
|
|
STEP.STEP_ID ,
|
|
STEP."SEQUENCE",
|
|
STEP.REPORTING_CENTER_BO,
|
|
STEP.ERP_OPERATION ,
|
|
OP.HANDLE AS OPERATION_BO,
|
|
OP.OPERATION ,
|
|
OPT.DESCRIPTION
|
|
FROM ROUTER R
|
|
JOIN ROUTER_STEP STEP ON R.HANDLE = STEP.ROUTER_BO
|
|
JOIN ROUTER_OPERATION RO ON STEP.HANDLE = RO.ROUTER_STEP_BO
|
|
JOIN OPERATION OP ON 'OperationBO:' || #{site} || ',' || OP.OPERATION || ',#' = RO.OPERATION_BO AND
|
|
OP.CURRENT_REVISION = 'true'
|
|
JOIN OPERATION_T OPT ON OP.HANDLE = OPT.OPERATION_BO AND OPT.LOCALE='zh'
|
|
WHERE R.HANDLE = #{routerBo}
|
|
AND OP.SITE = #{site}
|
|
AND OPT.LOCALE = #{locale}
|
|
ORDER BY STEP."SEQUENCE"
|
|
</select>
|
|
|
|
<select id="findRouterLastOperationByRouterBo" resultMap="StepOperationMap">
|
|
select zsd.RESRCE,srt.HANDLE,sep.STEP_ID ,sep.STEP_SEQUENCE "SEQUENCE",sep.OPERATION_BO,srt.ROUTER_BO
|
|
from sfc sfc
|
|
inner join sfc_routing sri on sfc.handle = sri.sfc_bo
|
|
inner join sfc_router srt on sri.handle = srt.sfc_routing_bo
|
|
inner join sfc_step sep on srt.handle = sep.sfc_router_bo
|
|
JOIN Z_SFC_DISPATCH zsd ON zsd.SFC=sfc.SFC AND zsd.SITE=sfc.SITE AND sep.STEP_ID=zsd.STEP_ID
|
|
WHERE SFC.HANDLE=#{sfcBo}
|
|
ORDER BY sep.STEP_SEQUENCE DESC
|
|
</select>
|
|
|
|
<select id="findShopOrderListByStatus" resultMap="com.foreverwin.mesnac.meapi.mapper.ShopOrderMapper.BaseResultMap">
|
|
SELECT
|
|
ORD.HANDLE,
|
|
ORD.SHOP_ORDER,
|
|
ORD.PLANNED_ITEM_BO,
|
|
ORD.ITEM_BO
|
|
FROM SHOP_ORDER ORD
|
|
JOIN CUSTOM_FIELDS CF ON ORD.HANDLE = CF.HANDLE AND CF.ATTRIBUTE = 'WORK_ORDER_STATUS'
|
|
WHERE ORD.PLANNED_WORK_CENTER_BO = #{plannedWorkCenterBo}
|
|
AND CF.VALUE = #{status}
|
|
</select>
|
|
|
|
<select id="getResourceBySfc" resultMap="StepOperationMap">
|
|
select siw.RESOURCE_BO
|
|
from sfc sfc
|
|
inner join sfc_routing sri on sfc.handle = sri.sfc_bo
|
|
inner join sfc_router srt on sri.handle = srt.sfc_routing_bo AND srt.IN_USE = 'true'
|
|
inner join sfc_step sep on srt.handle = sep.sfc_router_bo
|
|
INNER JOIN SFC_IN_WORK siw ON sep.HANDLE = siw.SFC_STEP_BO
|
|
WHERE sfc.site = #{site} and sfc.SFC = #{sfc}
|
|
</select>
|
|
<select id="querySfcData" resultType="map">
|
|
SELECT SO.SHOP_ORDER, SO_CF.VALUE ITEM_NUMBER, SO_CF2.VALUE WORK_ORDER,I.ITEM, IT.DESCRIPTION ITEM_DESC,
|
|
CASE WHEN ST.STATUS='403' AND SS.QTY_IN_QUEUE > 0 THEN N'402' ELSE ST.STATUS END STATUS,
|
|
OP.OPERATION, OT.DESCRIPTION OPERATION_DESC,OP.OPERATION||'/'||RS.STEP_ID OPERATION_STEP,
|
|
RO_CF2.VALUE TOOL ,SOD.HANDLE SFC_DISPATCH_DETAIL_BO,SOD.WORK_CENTER,SOD.PROD_HOURS,
|
|
S.SFC,S.QTY SFC_QTY,RS.STEP_ID,
|
|
SOD.DISPATCH_NO,SOD.EMPLOYEE_DESCRIPTION,SOD.EMPLOYEE,SOD.BLANKING_SIZE,SOD.DRAWINGS_REVISION,
|
|
TO_CHAR( SOD.PLANNED_START_DATE + INTERVAL '8' HOUR,'yyyy-mm-dd hh24:mi:ss')START_DATE,
|
|
TO_CHAR(SOD.PLANNED_COMP_DATE + INTERVAL '8' HOUR ,'yyyy-mm-dd hh24:mi:ss')COMP_DATE,
|
|
TO_CHAR((SOD.PLANNED_COMP_DATE - SOD.PLANNED_START_DATE )*24,'fm9999999990.00')||'H' ADD_DATE,
|
|
CASE WHEN OT.DESCRIPTION LIKE 'CH%' THEN SUBSTR(OT.DESCRIPTION, 0, 3) ELSE N'' END SLOT,SOD.ROUTER_BO
|
|
FROM SFC S
|
|
INNER JOIN STATUS ST ON ST.HANDLE = S.STATUS_BO
|
|
INNER JOIN SFC_ROUTING SR ON SR.SFC_BO = S.HANDLE
|
|
INNER JOIN SFC_ROUTER SRO ON SRO.SFC_ROUTING_BO = SR.HANDLE AND SRO.IN_USE = 'true'
|
|
INNER JOIN SFC_STEP SS ON SS.SFC_ROUTER_BO = SRO.HANDLE AND (SS.QTY_IN_QUEUE > 0 OR SS.QTY_IN_WORK > 0)
|
|
INNER JOIN ROUTER RO ON SRO.ROUTER_BO = RO.HANDLE
|
|
INNER JOIN ROUTER_STEP RS ON RS.ROUTER_BO = RO.HANDLE AND RS.STEP_ID = SS.STEP_ID
|
|
INNER JOIN ROUTER_OPERATION ROP ON ROP.HANDLE = RS.ROUTER_COMP_GBO AND SS.OPERATION_BO = ROP.OPERATION_BO
|
|
LEFT JOIN CUSTOM_FIELDS RO_CF2 ON RO_CF2.HANDLE = ROP.HANDLE AND RO_CF2."ATTRIBUTE" = 'TOOL_NUMBER'
|
|
INNER JOIN OPERATION OP ON 'OperationBO:'||OP.SITE||','||OP.OPERATION||',#' = SS.OPERATION_BO AND
|
|
OP.CURRENT_REVISION='true'
|
|
AND (#{dto.operation} IS NULL OR OP.OPERATION = #{dto.operation})
|
|
LEFT JOIN OPERATION_T OT ON OT.OPERATION_BO = OP.HANDLE AND OT.LOCALE =#{locale}
|
|
INNER JOIN SHOP_ORDER SO ON SO.HANDLE = S.SHOP_ORDER_BO
|
|
LEFT JOIN CUSTOM_FIELDS SO_CF ON SO_CF.HANDLE = SO.HANDLE AND SO_CF."ATTRIBUTE" = 'ITEM_NUMBER'
|
|
LEFT JOIN CUSTOM_FIELDS SO_CF2 ON SO_CF2.HANDLE = SO.HANDLE AND SO_CF2."ATTRIBUTE" = 'WORK_ORDER'
|
|
INNER JOIN ITEM I ON I.HANDLE = S.ITEM_BO
|
|
LEFT JOIN ITEM_T IT ON IT.ITEM_BO = I.HANDLE AND IT.LOCALE =#{locale}
|
|
INNER JOIN (
|
|
SELECT SD.HANDLE, SD.SFC,SD.RESRCE,SD.DRAWINGS_REVISION,SD.OPERATION,SD.STEP_ID,SD.PLANNED_COMP_DATE,
|
|
SD.PLANNED_START_DATE,SD.DISPATCH_NO,SD.WORK_CENTER,SD.PROD_HOURS,SD.EMPLOYEE_DESCRIPTION,SD.EMPLOYEE,SD.BLANKING_SIZE,SD.ROUTER_BO
|
|
FROM Z_PROD_READY_TASK RB
|
|
INNER JOIN Z_SFC_DISPATCH SD ON SD.HANDLE = RB.SFC_DISPATCH_BO
|
|
WHERE RB.SITE =#{site} AND RB.STATUS = 'FINISH' AND RB."RESULT"='OK'
|
|
) SOD ON SOD.RESRCE =#{dto.resrce} AND SOD.SFC= S.SFC AND SOD.OPERATION = OP.OPERATION and
|
|
SS.STEP_ID=SOD.STEP_ID
|
|
WHERE S.SITE = #{site} AND S.SFC = #{dto.sfc} AND ROWNUM=1
|
|
GROUP BY SO.SHOP_ORDER, SO_CF.VALUE , I.ITEM, IT.DESCRIPTION
|
|
,SOD.WORK_CENTER,SOD.ROUTER_BO,SO_CF2.VALUE,SOD.PROD_HOURS,SOD.EMPLOYEE_DESCRIPTION,SOD.EMPLOYEE,SOD.BLANKING_SIZE,SOD.DRAWINGS_REVISION,
|
|
CASE WHEN ST.STATUS='403' AND SS.QTY_IN_QUEUE > 0 THEN N'402' ELSE ST.STATUS END,
|
|
OP.OPERATION, OT.DESCRIPTION ,OP.OPERATION||'/'||RS.STEP_ID ,RO_CF2.VALUE,
|
|
S.SFC,S.QTY ,RS.STEP_ID,SOD.DISPATCH_NO , SOD.HANDLE ,
|
|
TO_CHAR( SOD.PLANNED_START_DATE + INTERVAL '8' HOUR,'yyyy-mm-dd hh24:mi:ss'),
|
|
TO_CHAR(SOD.PLANNED_COMP_DATE + INTERVAL '8' HOUR,'yyyy-mm-dd hh24:mi:ss'),
|
|
TO_CHAR((SOD.PLANNED_COMP_DATE - SOD.PLANNED_START_DATE )*24,'fm9999999990.00')||'H',
|
|
CASE WHEN OT.DESCRIPTION LIKE 'CH%' THEN SUBSTR(OT.DESCRIPTION, 0, 3) ELSE N'' END
|
|
</select>
|
|
<select id="getSfcInfo" resultType="map">
|
|
SELECT O.OPERATION,SSTEP.STEP_ID,IT.DESCRIPTION,S.SFC,S.QTY,
|
|
CASE WHEN SSTEP.QTY_IN_WORK > 0 THEN '工作中'
|
|
WHEN SSTEP.QTY_IN_QUEUE > 0 THEN '排队中'
|
|
ELSE '新建' END STEP_STATUS
|
|
FROM SFC S
|
|
LEFT JOIN ITEM_T IT ON S.ITEM_BO=IT.ITEM_BO AND IT.LOCALE='zh'
|
|
INNER JOIN SFC_ROUTING SRI ON S.HANDLE=SRI.SFC_BO
|
|
INNER JOIN SFC_ROUTER SR ON SRI.HANDLE=SR.SFC_ROUTING_BO AND SR.IN_USE='true'
|
|
INNER JOIN ROUTER_STEP RS ON RS.ROUTER_BO=sr.ROUTER_BO
|
|
INNER JOIN SFC_STEP SSTEP ON SSTEP.SFC_ROUTER_BO=SR.HANDLE AND RS.STEP_ID= SSTEP.STEP_ID
|
|
AND (SSTEP.QTY_IN_QUEUE > 0 OR SSTEP.QTY_IN_WORK > 0)
|
|
INNER JOIN STATUS ST ON ST.HANDLE = S.STATUS_BO
|
|
INNER JOIN OPERATION O ON O.OPERATION=SPLIT(SSTEP.OPERATION_BO,2) AND O.SITE=S.SITE AND O.CURRENT_REVISION =
|
|
'true'
|
|
AND #{operation} = O.OPERATION
|
|
WHERE S.SFC=#{sfc} AND S.SITE=#{site}
|
|
</select>
|
|
<select id="getSfcDispatch" resultType="java.lang.String">
|
|
SELECT DISPATCH_STATUS FROM Z_SFC_DISPATCH zsd WHERE OPERATION= #{operation} AND SFC= #{sfc} AND STEP_ID=
|
|
#{stepId} AND SITE= #{site} AND RESRCE=#{resrce}
|
|
</select>
|
|
|
|
<select id="getSfcListByResrce" resultType="com.foreverwin.mesnac.meapi.dto.SfcDto">
|
|
SELECT ZSD.sfc,ZSD.operation,IT.DESCRIPTION item_Description,ST.STATUS,s.qty,ZSD.DISPATCH_NO,ZSD.STEP_ID
|
|
FROM Z_SFC_DISPATCH ZSD
|
|
JOIN SFC S ON ZSD.SFC=s.SFC AND ZSD.SITE=s.SITE
|
|
LEFT JOIN ITEM_T IT ON S.ITEM_BO=IT.ITEM_BO AND IT.LOCALE=#{locale}
|
|
INNER JOIN STATUS ST ON ST.HANDLE = S.STATUS_BO
|
|
WHERE zsd.SITE=#{site} AND zsd.DISPATCH_STATUS='START' AND ZSD.RESRCE=#{resrce}
|
|
</select>
|
|
|
|
<select id="resourceCheck" resultType="java.lang.Integer">
|
|
SELECT count(HANDLE) FROM Z_RESOURCE_INSPECT_TASK zrit WHERE site=#{site} and RESRCE=#{resrce} AND CATEGORY='DM'
|
|
AND STATUS='COMPLETE' AND "RESULT"='OK' AND TASK_CREATE_DATE>=#{dateTime}
|
|
</select>
|
|
|
|
<select id="getInfoBySfc" resultType="com.foreverwin.mesnac.meapi.dto.SfcDto">
|
|
SELECT DISTINCT S.SFC SFC, SO.SHOP_ORDER SHOP_ORDER,CF.VALUE WORK_ORDER,O.OPERATION OPERATION,
|
|
CASE WHEN SSTEP.QTY_IN_WORK > 0 THEN '工作中'
|
|
WHEN SSTEP.QTY_IN_QUEUE > 0 THEN '排队中'
|
|
ELSE '新建' END STATUS,SSTEP.STEP_ID STEP_ID,
|
|
WC.WORK_CENTER WORK_CENTER,SO.PLANNED_START_DATE PLANNED_START_DATE,SO.PLANNED_COMP_DATE PLANNED_COMP_DATE
|
|
FROM SFC S
|
|
LEFT JOIN Z_SFC_DISPATCH ZSD ON S.SFC = ZSD.SFC AND S.SITE = ZSD.SITE
|
|
INNER JOIN SFC_ROUTING SRI ON S.HANDLE=SRI.SFC_BO
|
|
INNER JOIN SFC_ROUTER SR ON SRI.HANDLE=SR.SFC_ROUTING_BO AND SR.IN_USE='true'
|
|
INNER JOIN ROUTER_STEP RS ON RS.ROUTER_BO=SR.ROUTER_BO
|
|
INNER JOIN SFC_STEP SSTEP ON SSTEP.SFC_ROUTER_BO=SR.HANDLE AND RS.STEP_ID= SSTEP.STEP_ID
|
|
AND (SSTEP.QTY_IN_QUEUE > 0 OR SSTEP.QTY_IN_WORK > 0)
|
|
INNER JOIN STATUS ST ON ST.HANDLE = S.STATUS_BO
|
|
LEFT JOIN OPERATION O ON O.OPERATION=SPLIT(SSTEP.OPERATION_BO,2) AND O.SITE=S.SITE AND O.CURRENT_REVISION =
|
|
'true'
|
|
LEFT JOIN SHOP_ORDER SO ON SO.SHOP_ORDER = ZSD.SHOP_ORDER AND SO.SITE = S.SITE
|
|
LEFT JOIN CUSTOM_FIELDS CF ON CF.HANDLE = SO.HANDLE AND CF."ATTRIBUTE" = 'WORK_ORDER'
|
|
LEFT JOIN WORK_CENTER WC ON WC.WORK_CENTER = ZSD.WORK_CENTER AND WC.SITE = S.SITE
|
|
<where>
|
|
<if test="sfc != null">
|
|
S.SITE = #{sfc.site} AND S.SFC = #{sfc.sfc}
|
|
</if>
|
|
</where>
|
|
</select>
|
|
</mapper>
|