2025-03-26 09:06:23 +08:00
<?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.cim.idm.dao.DeliveryDao" >
<insert id= "createDelivery" >
2025-04-10 15:31:53 +08:00
INSERT INTO MATERIALDELIVERY(SITENAME, DELIVERYNAME, DELIVERYTYPE, DELIVERYSTATE)
VALUES (#{dto.siteName}, #{dto.deliveryName}, #{dto.deliveryType}, #{state})
2025-03-26 09:06:23 +08:00
</insert>
2025-03-31 14:31:16 +08:00
<insert id= "createRelation" >
INSERT ALL
<foreach item= "item" index= "index" collection= "receiveList" >
2025-04-14 11:42:23 +08:00
INTO MATERIALDELIVERYRECEIVE (RECEIVEREQUESTNAME, DELIVERYNAME, DELIVERYNUM, MATERIALSPECNAME, RECEIVEREQUESTDETAILNAME) VALUES (#{item.receiveRequestName}, #{item.deliveryName}, #{item.deliveryNum}, #{item.materialSpecName}, #{item.receiveRequestDetailName})
2025-03-31 14:31:16 +08:00
</foreach>
SELECT * FROM dual
</insert>
2025-04-08 13:09:15 +08:00
<resultMap id= "MaterialReceiveRequestVo" type= "com.cim.idm.model.vo.MaterialReceiveRequestVo" >
<result property= "siteName" column= "SITENAME" />
<result property= "receiveRequestName" column= "RECEIVEREQUESTNAME" />
<result property= "receiveRequestType" column= "RECEIVEREQUESTTYPE" />
<result property= "orderDate" column= "ORDERDATE" />
<result property= "supplierNo" column= "SUPPLIERNO" />
<result property= "lastEventName" column= "LASTEVENTNAME" />
<result property= "lastEventTime" column= "LASTEVENTTIME" />
<result property= "lastEventUser" column= "LASTEVENTUSER" />
<result property= "lastEventComment" column= "LASTEVENTCOMMENT" />
<result property= "supplierName" column= "SUPPLIERNAME" />
<result property= "erpFactory" column= "ERPFACTORY" />
<result property= "orgName" column= "ORGNAME" />
2025-04-10 20:09:44 +08:00
<!-- <result property="materialSpecName" column="MATERIALSPECNAME" /> -->
<!-- <result property="descCn" column="DESC_CN" /> -->
2025-04-08 13:09:15 +08:00
<result property= "receiveRequestState" column= "RECEIVEREQUESTSTATE" />
<result property= "oemSiteName" column= "OEMSITENAME" />
<result property= "oemSiteInCharge" column= "OEMSITEINCHARGE" />
<result property= "lastEventTimeKey" column= "LASTEVENTTIMEKEY" />
<result property= "systemType" column= "SYSTEMTYPE" />
<result property= "purchaseOrderGroup" column= "PURCHASEORDERGROUP" />
</resultMap>
2025-04-10 15:31:53 +08:00
<select id= "getReceiveList" resultMap= "MaterialReceiveRequestVo" >
2025-04-08 13:09:15 +08:00
SELECT DISTINCT m.SITENAME, m.RECEIVEREQUESTNAME, m.RECEIVEREQUESTTYPE, m.ORDERDATE, m.SUPPLIERNO,
m.LASTEVENTNAME, m.LASTEVENTTIME, m.LASTEVENTUSER, m.LASTEVENTCOMMENT, s.SUPPLIERNAME,
2025-04-10 20:09:44 +08:00
STOCKORGNO ERPFACTORY, o.ORGNAME,
2025-04-08 13:09:15 +08:00
CASE WHEN m.RECEIVEREQUESTSTATE = 'Completed' THEN '完成' ELSE '未完成' END RECEIVEREQUESTSTATE,
m.OEMSITENAME, m.OEMSITEINCHARGE, m.LASTEVENTTIMEKEY, m.SYSTEMTYPE, m.PURCHASEORDERGROUP
FROM MATERIALRECEIVEREQUEST m
LEFT JOIN SUPPLIER s ON s.SUPPLIERNO = m.SUPPLIERNO
LEFT JOIN MATERIALRECEIVEREQUESTDETAIL d ON m.RECEIVEREQUESTNAME = d.RECEIVEREQUESTNAME
LEFT JOIN MATERIALSPEC ms ON d.MATERIALSPECNAME = ms.MATERIALSPECNAME
LEFT JOIN ORG o ON STOCKORGNO = o.ORGNO
WHERE m.SITENAME = #{dto.siteName}
2025-04-11 13:37:13 +08:00
ANd ms.is_batch = #{isBatch}
2025-04-08 13:09:15 +08:00
AND m.RECEIVEREQUESTTYPE IN
2025-03-26 10:32:09 +08:00
<foreach item= "type" index= "index" collection= "typeList" open= "(" separator= "," close= ")" >
#{type}
</foreach>
2025-04-08 13:09:15 +08:00
<if test= "dto.erpFactory != null and dto.erpFactory != ''" >
AND m.STOCKORGNO = #{dto.erpFactory}
</if>
2025-03-26 10:32:09 +08:00
<if test= "dto.receiveRequestName != null and dto.receiveRequestName != ''" >
2025-04-08 13:09:15 +08:00
AND m.RECEIVEREQUESTNAME LIKE '%'||#{dto.receiveRequestName}||'%'
</if>
<if test= "dto.receiveRequestState != null and dto.receiveRequestState != ''" >
AND m.RECEIVEREQUESTSTATE = #{dto.receiveRequestState}
</if>
<if test= "dto.materialSpecName != null and dto.materialSpecName != ''" >
AND ms.MATERIALSPECNAME LIKE '%'||#{dto.materialSpecName}||'%'
</if>
<if test= "dto.descCn != null and dto.descCn != ''" >
AND ms.DESC_CN LIKE '%'||#{dto.descCn}||'%'
</if>
<if test= "dto.fromDate != null and dto.fromDate != '' and dto.toDate != null and dto.toDate != ''" >
AND m.ORDERDATE BETWEEN TO_DATE( #{dto.fromDate}, 'YYYY/MM/DDHH24MISS' )
AND TO_DATE( #{dto.toDate}, 'YYYY/MM/DDHH24MISS' )
2025-03-26 10:32:09 +08:00
</if>
2025-05-21 12:30:17 +08:00
<if test= "dto.supplierNo != null and dto.supplierNo != ''" >
AND m.SUPPLIERNO LIKE '%'||#{dto.supplierNo}||'%'
</if>
2025-04-14 16:46:50 +08:00
AND ms.IS_BATCH = #{isBatch}
2025-03-26 10:32:09 +08:00
</select>
2025-03-26 17:40:01 +08:00
<!-- GetInvoiceDetailInformationRow Z10006_SAP -->
<select id= "getStoreDetail" resultType= "map" >
WITH AA AS (
SELECT m5.RECEIVEREQUESTNAME, m5.MATERIALSPECNAME, m5.SDK_ID, m5.phase, SUM( m5.MATERIALQUANTITY ) QTY
FROM MATERIALPACKING m5
WHERE m5.STOCKSTATE IN ( 'Stocked', 'StockOut' )
AND m5.RECEIVEREQUESTNAME in
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
GROUP BY m5.MATERIALSPECNAME, m5.RECEIVEREQUESTNAME, m5.SDK_ID, m5.phase
),
BB AS (
SELECT m5.RECEIVEREQUESTNAME, m5.MATERIALSPECNAME, m5.SDK_ID, m5.phase, SUM( m5.MATERIALQUANTITY ) QTY
FROM MATERIALPACKING m5
WHERE m5.STOCKSTATE = 'Created'
AND m5.RECEIVEREQUESTNAME in
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
GROUP BY m5.MATERIALSPECNAME, m5.RECEIVEREQUESTNAME, m5.SDK_ID, m5.phase
2025-03-31 14:30:15 +08:00
),
MAIN AS (
SELECT m.MATERIALSPECNAME,
SUM( m.REQUESTQUANTITY ) REQUESTQUANTITY,
SUM( m.RECEIVEDQUANTITY ) RECEIVEDQUANTITY,
SUM( m.REQUESTQUANTITY - m.RECEIVEDQUANTITY ) AS RECEIVEDQUANTITY2,
SUM( m.REQUESTQUANTITY - m.RECEIVEDQUANTITY ) AS MINUSQTY
FROM MATERIALRECEIVEREQUESTDETAIL m
2025-03-31 18:47:23 +08:00
WHERE m.RECEIVEREQUESTNAME in
2025-03-31 14:30:15 +08:00
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
GROUP BY m.MATERIALSPECNAME
2025-03-26 17:40:01 +08:00
)
2025-04-01 15:41:26 +08:00
<if test= "deliveryName != null" >
2025-03-31 18:47:23 +08:00
,DELIVERY AS (
SELECT sum(md.DELIVERYNUM) DELIVERYNUM, md.MATERIALSPECNAME MATERIALSPECNAME
2025-04-10 15:31:53 +08:00
FROM MATERIALDELIVERYRECEIVE md
2025-04-01 15:41:26 +08:00
WHERE md.DELIVERYNAME = #{deliveryName}
and md.RECEIVEREQUESTNAME IN
2025-03-31 18:47:23 +08:00
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
GROUP BY md.MATERIALSPECNAME
)
</if>
SELECT distinct MAIN.RECEIVEDQUANTITY, MAIN.MINUSQTY,
2025-04-01 15:41:26 +08:00
<if test= "deliveryName != null" >
2025-03-31 18:47:23 +08:00
DELIVERY.DELIVERYNUM REQUESTQUANTITY,
</if>
2025-04-01 15:41:26 +08:00
<if test= "deliveryName == null" >
2025-03-31 18:47:23 +08:00
MAIN.REQUESTQUANTITY REQUESTQUANTITY,
</if>
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE, '1' RECEIVEREQUESTDETAILNAME, '是' IS_BATCH,
2025-03-31 14:30:15 +08:00
m.MATERIALSPECNAME, m.SITENAME, m.ERPLOCATION, m.LOCATIONNAME, m.MATERIALUNIT, m.SDK_ID,
m.REMARK REMARK, m.SALESMAN SALESPERSON, m.SALESASSISTANT CAREER_ASSISTANCE, m.BUSINESSDIVISION BUSINESS_UNIT,
2025-04-17 09:20:24 +08:00
-- m2.STOCKORGNO AS ERPFACTORY,
COALESCE(m2.STOCKORGNO, m.ERPFACTORY) AS ERPFACTORY,
2025-05-09 16:55:35 +08:00
m2.SUPPLIERNO,m.POCATEGORY,
2025-03-31 14:30:15 +08:00
m3.WIDTH AS DESCRIPTION, m3.MATERIALUNITDESC, m3.WIDTH SPECNAME, m3.PHASE, m3.DESC_CN, DECODE( m3.IS_BATCH, 'Y', '是' , '否' ) IS_BATCH,
CASE WHEN m3.EXPIRATION_RULES = '0' THEN '入厂保质期' WHEN m3.EXPIRATION_RULES = '1' THEN '出厂保质期' ELSE '未定义' END AS REPLACED_VALUE,
2025-04-09 18:50:08 +08:00
DECODE( m4.IQCFLAG, 'Y', '是', '否' ) IQCFLAG,
2025-03-31 14:30:15 +08:00
be.DESCRIPTION AS ERPLOCATION2, o.ORGNAME AS ERPFACTORY2, sss.DESCRIPTION AS LOCATIONNAME2,
NVL( BB.QTY, 0 ) CREATEQTY, NVL( AA.QTY, 0 ) STOCKINQTY
FROM MAIN
LEFT JOIN MATERIALRECEIVEREQUESTDETAIL m ON MAIN.MATERIALSPECNAME = m.MATERIALSPECNAME
2025-03-26 17:40:01 +08:00
LEFT JOIN MATERIALRECEIVEREQUEST m2 ON m.RECEIVEREQUESTNAME = m2.RECEIVEREQUESTNAME
LEFT JOIN MATERIALSPEC m3 ON m.MATERIALSPECNAME = m3.MATERIALSPECNAME
LEFT JOIN BS_MATERIALFACTORY m4 ON m.MATERIALSPECNAME = m4.MATERIALSPECNAME AND m.ERPFACTORY = m4.ERPFACTORY
LEFT JOIN SUPPLIER S ON m2.SUPPLIERNO = S.SUPPLIERNO
LEFT JOIN BS_ERPLOCATION be ON m.ERPLOCATION = be.ERPLOCATIONNAME
LEFT JOIN ORG o ON o.ORGNO = m2.STOCKORGNO
LEFT JOIN STORAGESPEC sss ON m.LOCATIONNAME = sss.STORAGENAME
LEFT JOIN AA ON AA.RECEIVEREQUESTNAME = m.RECEIVEREQUESTNAME
AND AA.MATERIALSPECNAME = m.MATERIALSPECNAME
AND AA.SDK_ID = m.SDK_ID AND AA.PHASE = m3.PHASE
LEFT JOIN BB ON BB.RECEIVEREQUESTNAME = m.RECEIVEREQUESTNAME
AND BB.MATERIALSPECNAME = m.MATERIALSPECNAME
2025-05-22 10:52:45 +08:00
AND COALESCE(BB.SDK_ID, 'N/A') = COALESCE(m.SDK_ID, 'N/A')
AND COALESCE(BB.PHASE, 'N/A') = COALESCE(m3.PHASE, 'N/A')
2025-04-01 15:41:26 +08:00
<if test= "deliveryName != null" >
2025-03-31 18:47:23 +08:00
INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME
</if>
2025-03-26 17:40:01 +08:00
WHERE ( m2.RETURNFLAG IS NULL OR m2.RETURNFLAG != 'Y' )
AND m.RECEIVEREQUESTNAME in
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
AND m.SITENAME = #{siteName}
2025-05-08 16:12:53 +08:00
AND (m.DELETEDETAILFLAG IS NULL OR m.DELETEDETAILFLAG !='L')
2025-04-22 13:26:28 +08:00
AND m3.IS_BATCH != 'N'
2025-04-17 09:20:24 +08:00
<!-- AND m2.RECEIVEREQUESTTYPE IN -->
<!-- <foreach item="type" index="index" collection="typeList" open="(" separator="," close=")"> -->
<!-- #{type} -->
<!-- </foreach> -->
-- ZLR1 销售退货类型
2025-04-11 17:00:11 +08:00
</select>
<!-- GetNoBatchPOStockIn 00001 -->
<select id= "getMaterialDetail" resultType= "map" >
WITH MAIN AS (
SELECT m.MATERIALSPECNAME,
SUM( m.REQUESTQUANTITY ) REQUESTQUANTITY,
SUM( m.RECEIVEDQUANTITY ) RECEIVEDQUANTITY,
SUM( m.REQUESTQUANTITY - m.RECEIVEDQUANTITY) AS ThisAcceptNumber
FROM MATERIALRECEIVEREQUESTDETAIL m
WHERE m.RECEIVEREQUESTNAME in
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
GROUP BY m.MATERIALSPECNAME
)
<if test= "deliveryName != null" >
,DELIVERY AS (
SELECT sum(md.DELIVERYNUM) DELIVERYNUM, md.MATERIALSPECNAME MATERIALSPECNAME
FROM MATERIALDELIVERYRECEIVE md
WHERE md.DELIVERYNAME = #{deliveryName}
and md.RECEIVEREQUESTNAME IN
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
GROUP BY md.MATERIALSPECNAME
)
</if>
SELECT distinct MAIN.RECEIVEDQUANTITY, MAIN.ThisAcceptNumber,
<if test= "deliveryName != null" >
DELIVERY.DELIVERYNUM REQUESTQUANTITY,
</if>
<if test= "deliveryName == null" >
MAIN.REQUESTQUANTITY REQUESTQUANTITY,
</if>
m3.DESCRIPTION, be.DESCRIPTION AS ERPLOCATION2, m.ERPLOCATION, o.ORGNAME AS ERPFACTORY2,
m2.STOCKORGNO AS ERPFACTORY, sss.DESCRIPTION AS LOCATIONNAME2, m.LOCATIONNAME, m2.SUPPLIERNO,
ss.SPECNAME, m.PHASE, m3.DESC_CN, m.MATERIALSPECNAME,
m.MATERIALUNIT, MM.FNAME MATERIALUNITDESC, m.SDK_ID, m.PHASE, m.SITENAME,
DECODE(m3.IS_BATCH, 'Y', '是' , '否') IS_BATCH, DECODE(m3.IQCFLAG, 'Y', '是' ,'否') IQCFLAG,
CASE WHEN m3.EXPIRATION_RULES = '0' THEN '不遵守有效期管理'
WHEN m3.EXPIRATION_RULES = '1' THEN '遵守有效期管理'
ELSE '未定义'
END AS REPLACED_VALUE
FROM MAIN
LEFT JOIN MATERIALRECEIVEREQUESTDETAIL m ON MAIN.MATERIALSPECNAME = m.MATERIALSPECNAME
LEFT JOIN MATERIALRECEIVEREQUEST m2 ON m.RECEIVEREQUESTNAME = m2.RECEIVEREQUESTNAME
LEFT JOIN MATERIALSPEC m3 ON m.MATERIALSPECNAME = m3.MATERIALSPECNAME
LEFT JOIN SDK_SPEC ss ON m.SDK_ID = ss.SDK_ID
LEFT JOIN MATERIALUNIT MM ON MM.FNUMBER = m.MATERIALUNIT
LEFT JOIN BS_ERPLOCATION be ON m.ERPLOCATION = be.ERPLOCATIONNAME
LEFT JOIN ORG o ON o.ORGNO = m2.STOCKORGNO
LEFT JOIN STORAGESPEC sss ON m.LOCATIONNAME = sss.STORAGENAME
<if test= "deliveryName != null" >
INNER JOIN DELIVERY ON DELIVERY.MATERIALSPECNAME = m.MATERIALSPECNAME
</if>
WHERE m.RECEIVEREQUESTNAME in
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
AND m.SITENAME = #{siteName}
AND (m.REQUESTQUANTITY - m.RECEIVEDQUANTITY) > 0
2025-05-08 15:12:42 +08:00
<!-- AND m2.RECEIVEREQUESTTYPE IN -->
<!-- <foreach item="type" index="index" collection="typeList" open="(" separator="," close=")"> -->
<!-- #{type} -->
<!-- </foreach> -->
2025-04-11 17:00:11 +08:00
AND (m2.RETURNFLAG IS NULL OR m2.RETURNFLAG != 'Y')
AND (m3.IS_BATCH IS NULL OR m3.IS_BATCH != 'Y')
2025-03-26 17:40:01 +08:00
</select>
<!-- GetPackingRow xh002 -->
<select id= "getStoreCharge" resultType= "map" >
SELECT ROWNUM SEQ, TTT.*
FROM (
SELECT A.RECEIVEREQUESTNAME, A.SITENAME, A.MATERIALPACKINGNAME, A.MATERIALSPECNAME, A.ERPLOCATION, A.ERPFACTORY,
A.LOCATIONNAME, A.CHARGE, A.REMARK, B.DESC_CN, B.DESCRIPTION, A.SDK_ID, SS.SPECNAME, A.PHASE,
A.MATERIALQUANTITY, M.FNAME UNIT, BE.DESCRIPTION ERPLOCATIONDESC, S.DESCRIPTION LOCATIONNAMEDESC,
A.ERPFACTORY ERPFACTROY, o.ORGNAME ERPFACTROYDESC, A.SUPPLIERNAME SUPPLIERNO
FROM MATERIALPACKING A
LEFT JOIN MATERIALSPEC B ON A.MATERIALSPECNAME = B.MATERIALSPECNAME
LEFT JOIN SDK_SPEC SS ON A.SDK_ID = SS.SDK_ID
LEFT JOIN BS_ERPLOCATION BE ON BE.ERPLOCATIONNAME = A.ERPLOCATION
LEFT JOIN STORAGESPEC S ON S.STORAGENAME = A.LOCATIONNAME
LEFT JOIN ORG o ON o.ORGNO = A.ERPFACTORY
LEFT JOIN MATERIALUNIT M ON M.FNUMBER = A.UNIT
WHERE A.SITENAME = #{siteName}
2025-04-10 20:09:44 +08:00
AND A.RECEIVEREQUESTNAME = #{documentName}
2025-03-26 17:40:01 +08:00
AND A.STOCKSTATE = 'Created'
ORDER BY A.MATERIALSPECNAME, A.SDK_ID, A.PHASE
) TTT
</select>
2025-04-10 15:31:53 +08:00
<select id= "getByKey" resultType= "com.cim.idm.model.po.delivery.MaterialDelivery" >
select SITENAME, DELIVERYNAME, DELIVERYTYPE, DELIVERYSTATE
from MATERIALDELIVERY
WHERE SITENAME = #{dto.siteName}
AND DELIVERYNAME = #{dto.documentName}
</select>
<select id= "getReceiveByKey" resultType= "com.cim.idm.model.po.MaterialReceiveRequest" >
2025-03-31 14:30:15 +08:00
SELECT SITENAME, RECEIVEREQUESTNAME, RECEIVEREQUESTTYPE, PURCHASEORDERGROUP, RECEIVEREQUESTSTATE, SUPPLIERNO,
OEMSITENAME, OEMSITEINCHARGE, SYSTEMTYPE, LASTEVENTNAME, LASTEVENTTIMEKEY, LASTEVENTTIME, LASTEVENTUSER,
LASTEVENTCOMMENT, ERPPONAME, SAVEREASON, RESPPERSON, RESPDEPART, SOLVETIME, PASSSTATE, WORKER, SDK_ID,
ERPID, REMARK, PURCHASER, PURORGNO, ORDERDATE, CLOSERUSER, CLOSEDATE, STOCKORGNO, RETURNFLAG,
2025-03-31 18:47:23 +08:00
RECEIVEREQUESTDETAILTYPE, ERPLOCATION, PRODUCTDEPTNO, SOURCEBILLID, EFFECTIVESTARTTIME, EFFECTIVEENDTIME
2025-03-26 17:40:01 +08:00
FROM MATERIALRECEIVEREQUEST
2025-04-10 15:31:53 +08:00
WHERE SITENAME = #{dto.siteName}
AND RECEIVEREQUESTNAME = #{dto.documentName}
2025-03-31 18:47:23 +08:00
</select>
2025-04-11 11:13:08 +08:00
<select id= "getRelByDelivery" resultType= "com.cim.idm.model.po.delivery.MaterialDeliveryReceive" >
2025-05-16 09:00:08 +08:00
SELECT md.DELIVERYNAME, md.DELIVERYNUM, md.RECEIVEREQUESTNAME, md.MATERIALSPECNAME, md.RECEIVEREQUESTDETAILNAME
2025-04-10 15:31:53 +08:00
FROM MATERIALDELIVERYRECEIVE md
WHERE md.DELIVERYNAME = #{dto.documentName}
2025-03-26 17:40:01 +08:00
</select>
2025-03-31 14:31:16 +08:00
2025-04-11 11:13:08 +08:00
<select id= "getReceiveByDelivery" resultType= "com.cim.idm.model.po.MaterialReceiveRequest" >
SELECT m.SITENAME, m.RECEIVEREQUESTNAME, m.RECEIVEREQUESTTYPE, m.PURCHASEORDERGROUP, m.RECEIVEREQUESTSTATE, m.SUPPLIERNO,
m.OEMSITENAME, m.OEMSITEINCHARGE, m.SYSTEMTYPE, m.LASTEVENTNAME, m.LASTEVENTTIMEKEY, m.LASTEVENTTIME, m.LASTEVENTUSER,
m.LASTEVENTCOMMENT, m.ERPPONAME, m.SAVEREASON, m.RESPPERSON, m.RESPDEPART, m.SOLVETIME, m.PASSSTATE, m.WORKER, m.SDK_ID,
m.ERPID, m.REMARK, m.PURCHASER, m.PURORGNO, m.ORDERDATE, m.CLOSERUSER, m.CLOSEDATE, m.STOCKORGNO, m.RETURNFLAG,
m.RECEIVEREQUESTDETAILTYPE, m.ERPLOCATION, m.PRODUCTDEPTNO, m.SOURCEBILLID, m.EFFECTIVESTARTTIME, m.EFFECTIVEENDTIME
FROM MATERIALRECEIVEREQUEST m, MATERIALDELIVERYRECEIVE md
WHERE m.SITENAME = #{dto.siteName}
AND md.DELIVERYNAME = #{dto.documentName}
AND m.RECEIVEREQUESTNAME = md.RECEIVEREQUESTNAME
</select>
2025-04-14 11:42:23 +08:00
<select id= "getReceiveByMaterialSpec" resultType= "com.cim.idm.model.vo.DeliveryReceiveDetailVo" >
SELECT receiveRequestName, receiveRequestDetailName
FROM MATERIALRECEIVEREQUESTDETAIL
WHERE RECEIVEREQUESTNAME = #{documentName}
AND MATERIALSPECNAME = #{materialSpec}
</select>
<select id= "getDeliveryByMaterialSpec" resultType= "com.cim.idm.model.vo.DeliveryReceiveDetailVo" >
SELECT receiveRequestName, receiveRequestDetailName
FROM MATERIALDELIVERYRECEIVE
WHERE DELIVERYNAME = #{documentName}
AND MATERIALSPECNAME = #{materialSpec}
</select>
2025-03-31 18:47:23 +08:00
<select id= "getReceiveDetail" resultType= "com.cim.idm.model.vo.DeliveryReceiveDetailVo" >
2025-04-14 11:42:23 +08:00
SELECT receiveRequestName, materialSpecName, requestQuantity, requestQuantity as deliveryNum, RECEIVEREQUESTDETAILNAME
2025-03-31 14:31:16 +08:00
FROM MATERIALRECEIVEREQUESTDETAIL
WHERE RECEIVEREQUESTNAME in
<foreach item= "name" index= "index" collection= "nameList" open= "(" separator= "," close= ")" >
#{name}
</foreach>
2025-04-14 11:42:23 +08:00
order by RECEIVEREQUESTDETAILNAME
2025-03-31 14:31:16 +08:00
</select>
2025-04-10 18:45:06 +08:00
<select id= "getDeliveryList" resultType= "com.cim.idm.model.po.delivery.MaterialDelivery" >
SELECT SITENAME, DELIVERYNAME, DELIVERYTYPE, DELIVERYSTATE
FROM MATERIALDELIVERY
WHERE SITENAME = #{dto.siteName}
<if test= "dto.deliveryName != null and dto.deliveryName != ''" >
AND DELIVERYNAME LIKE '%'||#{dto.deliveryName}||'%'
</if>
<if test= "dto.deliveryType != null and dto.deliveryType != ''" >
AND DELIVERYTYPE = #{dto.deliveryType}
</if>
<if test= "dto.deliveryState != null and dto.deliveryState != ''" >
AND DELIVERYSTATE = #{dto.deliveryState}
</if>
order by DELIVERYNAME
</select>
<delete id= "delDelivery" >
delete from MATERIALDELIVERY
where SITENAME = #{dto.siteName}
and DELIVERYNAME = #{dto.deliveryName}
</delete>
<delete id= "delDeliveryRel" >
delete from MATERIALDELIVERYRECEIVE
where DELIVERYNAME = #{dto.deliveryName}
</delete>
2025-04-11 13:37:13 +08:00
<delete id= "editDelivery" >
UPDATE MATERIALDELIVERY SET DELIVERYSTATE = #{dto.deliveryState}
WHERE SITENAME = #{dto.siteName} AND DELIVERYNAME = #{dto.deliveryName}
</delete>
2025-05-21 18:17:54 +08:00
<select id= "getDeliveryStoreDetail" resultType= "map" >
WITH
AA AS (
SELECT
m5.RECEIVEREQUESTNAME,
m5.MATERIALSPECNAME,
SUM( m5.MATERIALQUANTITY ) QTY
FROM
MATERIALPACKING m5
WHERE
m5.STOCKSTATE IN ( 'Stocked', 'StockOut' )
AND m5.RECEIVEREQUESTNAME IN ( #{deliveryName} )
GROUP BY
m5.MATERIALSPECNAME,
m5.RECEIVEREQUESTNAME
),
BB AS (
SELECT
m5.RECEIVEREQUESTNAME,
m5.MATERIALSPECNAME,
SUM( m5.MATERIALQUANTITY ) QTY
FROM
MATERIALPACKING m5
WHERE
m5.STOCKSTATE = 'Created'
AND m5.RECEIVEREQUESTNAME IN ( #{deliveryName} )
GROUP BY
m5.MATERIALSPECNAME,
m5.RECEIVEREQUESTNAME
),
CC AS (
SELECT
m5.DELIVERYNAME RECEIVEREQUESTNAME,
m5.MATERIALSPECNAME ,
SUM( m5.DELIVERYNUM ) QTY
FROM
MATERIALDELIVERYRECEIVE m5
WHERE
m5.DELIVERYNAME IN ( #{deliveryName} )
GROUP BY
m5.DELIVERYNAME,
m5.MATERIALSPECNAME
),
DELIVERY AS (
SELECT DISTINCT DELIVERYNAME, md.MATERIALSPECNAME,
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME,
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE,
'1' RECEIVEREQUESTDETAILNAME,
m.SITENAME,
m.ERPLOCATION,
m.LOCATIONNAME,
m.MATERIALUNIT,
m.SDK_ID,
m.REMARK REMARK,
m.SALESMAN SALESPERSON,
m.SALESASSISTANT CAREER_ASSISTANCE,
m.BUSINESSDIVISION BUSINESS_UNIT,
COALESCE( m2.STOCKORGNO, m.ERPFACTORY ) AS ERPFACTORY,
m2.SUPPLIERNO,
--m.POCATEGORY,
m3.WIDTH AS DESCRIPTION,
m3.MATERIALUNITDESC,
m3.WIDTH SPECNAME,
m3.PHASE,
m3.DESC_CN,
DECODE( m3.IS_BATCH, 'Y', '是', '否' ) IS_BATCH,
CASE WHEN m3.EXPIRATION_RULES = '0' THEN
'入厂保质期'
WHEN m3.EXPIRATION_RULES = '1' THEN
'出厂保质期' ELSE '未定义'
END AS REPLACED_VALUE,
DECODE( m4.IQCFLAG, 'Y', '是', '否' ) IQCFLAG,
be.DESCRIPTION AS ERPLOCATION2,
o.ORGNAME AS ERPFACTORY2,
sss.DESCRIPTION AS LOCATIONNAME2 FROM MATERIALDELIVERYRECEIVE md
LEFT JOIN MATERIALRECEIVEREQUEST m2 ON md.RECEIVEREQUESTNAME = m2.RECEIVEREQUESTNAME
LEFT JOIN MATERIALRECEIVEREQUESTDETAIL m ON md.RECEIVEREQUESTNAME = m.RECEIVEREQUESTNAME
AND md.RECEIVEREQUESTDETAILNAME = m.RECEIVEREQUESTDETAILNAME
LEFT JOIN MATERIALSPEC m3 ON md.MATERIALSPECNAME = m3.MATERIALSPECNAME
LEFT JOIN BS_MATERIALFACTORY m4 ON m3.MATERIALSPECNAME = m4.MATERIALSPECNAME AND m2.ERPFACTORY = m4.ERPFACTORY
LEFT JOIN BS_ERPLOCATION be ON m.ERPLOCATION = be.ERPLOCATIONNAME
LEFT JOIN ORG o ON m2.STOCKORGNO = o.ORGNO
LEFT JOIN STORAGESPEC sss ON m.LOCATIONNAME = sss.STORAGENAME
WHERE md.DELIVERYNAME = #{deliveryName})
SELECT M.DELIVERYNAME, M.MATERIALSPECNAME,
M.RECEIVETIME,
M.MAKEDATE,
M.RECEIVEREQUESTDETAILNAME,
M.SITENAME,
M.ERPLOCATION,
M.LOCATIONNAME,
M.MATERIALUNIT,
M.SDK_ID,
M.REMARK,
M.SALESPERSON,
M.CAREER_ASSISTANCE,
M.BUSINESS_UNIT,
M.ERPFACTORY,
M.SUPPLIERNO,
M.DESCRIPTION,
M.MATERIALUNITDESC,
M.SPECNAME,
M.PHASE,
M.DESC_CN,
M.IS_BATCH,
M.REPLACED_VALUE,
M.IQCFLAG,
M.ERPLOCATION2,
M.ERPFACTORY2,
M.LOCATIONNAME2,AA.QTY RECEIVEDQUANTITY2,BB.QTY RECEIVEDQUANTITY, CC.QTY REQUESTQUANTITY, (CC.QTY - BB.QTY) MINUSQTY, AA.QTY STOCKINQTY, BB.QTY CREATEQTY FROM DELIVERY M
LEFT JOIN AA ON M.DELIVERYNAME = AA.RECEIVEREQUESTNAME AND M.MATERIALSPECNAME = AA.MATERIALSPECNAME
LEFT JOIN BB ON M.DELIVERYNAME = BB.RECEIVEREQUESTNAME AND M.MATERIALSPECNAME = BB.MATERIALSPECNAME
LEFT JOIN CC ON M.DELIVERYNAME = CC.RECEIVEREQUESTNAME AND M.MATERIALSPECNAME = CC.MATERIALSPECNAME
WHERE M.DELIVERYNAME = #{deliveryName}
</select>
2025-05-21 18:46:50 +08:00
<select id= "getStoreChargeSort" resultType= "map" >
SELECT ROWNUM SEQ, TTT.*
FROM (
SELECT A.RECEIVEREQUESTNAME, A.SITENAME, A.MATERIALPACKINGNAME, A.MATERIALSPECNAME, A.ERPLOCATION, A.ERPFACTORY,
A.LOCATIONNAME, A.CHARGE, A.REMARK, B.DESC_CN, B.DESCRIPTION, A.SDK_ID, SS.SPECNAME, A.PHASE,
A.MATERIALQUANTITY, M.FNAME UNIT, BE.DESCRIPTION ERPLOCATIONDESC, S.DESCRIPTION LOCATIONNAMEDESC,
A.ERPFACTORY ERPFACTROY, o.ORGNAME ERPFACTROYDESC, A.SUPPLIERNAME SUPPLIERNO
FROM MATERIALPACKING A
LEFT JOIN MATERIALSPEC B ON A.MATERIALSPECNAME = B.MATERIALSPECNAME
LEFT JOIN SDK_SPEC SS ON A.SDK_ID = SS.SDK_ID
LEFT JOIN BS_ERPLOCATION BE ON BE.ERPLOCATIONNAME = A.ERPLOCATION
LEFT JOIN STORAGESPEC S ON S.STORAGENAME = A.LOCATIONNAME
LEFT JOIN ORG o ON o.ORGNO = A.ERPFACTORY
LEFT JOIN MATERIALUNIT M ON M.FNUMBER = A.UNIT
WHERE A.SITENAME = #{siteName}
AND A.RECEIVEREQUESTNAME = #{documentName}
AND A.STOCKSTATE = 'Created'
ORDER BY A.CHARGE
) TTT
</select>
2025-05-22 12:26:39 +08:00
<update id= "updateMaterialReceiveRequestDetailQty" >
<foreach item= "item" index= "index" collection= "receiveList" >
update MATERIALRECEIVEREQUESTDETAIL set RECEIVEDQUANTITY = #{item.deliveryNum} where RECEIVEREQUESTNAME = #{item.receiveRequestName} and RECEIVEREQUESTDETAILNAME = #{item.receiveRequestDetailName} and MATERIALSPECNAME = #{item.materialSpecName}
INTO MATERIALDELIVERYRECEIVE (RECEIVEREQUESTNAME, DELIVERYNAME, DELIVERYNUM, MATERIALSPECNAME, RECEIVEREQUESTDETAILNAME) VALUES (#{item.receiveRequestName}, #{item.deliveryName}, #{item.deliveryNum}, #{item.materialSpecName}, #{item.receiveRequestDetailName})
</foreach>
</update>
2025-03-26 09:06:23 +08:00
</mapper>