133 lines
7.3 KiB
XML
Raw Normal View History

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">
INSERT INTO MATERIALRECEIVEREQUEST(SITENAME, RECEIVEREQUESTNAME, RECEIVEREQUESTTYPE)
VALUES (#{siteName}, #{receiveRequestName}, #{receiveRequestType})
</insert>
<update id="bindDelivery">
UPDATE MATERIALRECEIVEREQUEST SET DELIVERYNAME = #{receiveRequestName}
WHERE SITENAME = #{siteName}
AND RECEIVEREQUESTNAME IN
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
#{name}
</foreach>
</update>
2025-03-26 10:32:09 +08:00
<select id="getPurchase" resultType="com.cim.idm.model.MaterialReceiveRequest">
SELECT SITENAME, RECEIVEREQUESTNAME FROM MATERIALRECEIVEREQUEST
WHERE SITENAME = #{dto.siteName}
AND RECEIVEREQUESTTYPE IN
<foreach item="type" index="index" collection="typeList" open="(" separator="," close=")">
#{type}
</foreach>
<if test="dto.receiveRequestName != null and dto.receiveRequestName != ''">
AND RECEIVEREQUESTNAME LIKE '%'||#{dto.receiveRequestName}||'%'
</if>
</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
)
SELECT m3.WIDTH AS DESCRIPTION, be.DESCRIPTION AS ERPLOCATION2, m.ERPLOCATION, o.ORGNAME AS ERPFACTORY2,
m2.STOCKORGNO AS ERPFACTORY, sss.DESCRIPTION AS LOCATIONNAME2, m.LOCATIONNAME, m2.SUPPLIERNO,
'1' RECEIVEREQUESTDETAILNAME, SUM( m.REQUESTQUANTITY ) REQUESTQUANTITY, SUM( m.RECEIVEDQUANTITY ) RECEIVEDQUANTITY,
SUM( m.REQUESTQUANTITY - m.RECEIVEDQUANTITY ) AS RECEIVEDQUANTITY2,
SUM( m.REQUESTQUANTITY - m.RECEIVEDQUANTITY ) AS MINUSQTY, NVL( MAX( BB.QTY ), 0 ) CREATEQTY,
NVL( MAX( AA.QTY ), 0 ) STOCKINQTY, m3.DESC_CN, m.MATERIALUNIT, M3.MATERIALUNITDESC,
CASE WHEN m3.EXPIRATION_RULES = '0' THEN '入厂保质期'
WHEN m3.EXPIRATION_RULES = '1' THEN '出厂保质期' ELSE '未定义'
END AS REPLACED_VALUE,
m.SDK_ID, m3.WIDTH SPECNAME, m3.PHASE, m.MATERIALSPECNAME, m.SITENAME, m.RECEIVEREQUESTNAME,
DECODE( m3.IS_BATCH, 'Y', '是' '否' ) IS_BATCH, '是' IS_BATCH, DECODE( m4.IQCFLAG, 'Y', '是' '否' ) IQCFLAG,
max( m.REMARK ) REMARK, max( m.SALESMAN ) SALESPERSON, max( m.SALESASSISTANT ) CAREER_ASSISTANCE,
max( m.BUSINESSDIVISION ) BUSINESS_UNIT, TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) RECEIVETIME,
TO_CHAR( SYSDATE, 'YYYY-MM-DD' ) MAKEDATE
FROM MATERIALRECEIVEREQUESTDETAIL m
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
AND BB.SDK_ID = m.SDK_ID
AND BB.PHASE = m3.PHASE
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}
AND m2.RECEIVEREQUESTTYPE IN ( 'ZK4A', '45', '4C', 'Z001', 'Z002', 'Z003', 'Z004' )
GROUP BY m3.DESCRIPTION, be.DESCRIPTION, m.ERPLOCATION, o.ORGNAME, m2.STOCKORGNO, sss.DESCRIPTION,
m.LOCATIONNAME, m2.SUPPLIERNO, m3.DESC_CN, m.MATERIALUNIT, M3.MATERIALUNITDESC,
m3.EXPIRATION_RULES, m.SDK_ID, m3.WIDTH, m3.PHASE, m.MATERIALSPECNAME, m.SITENAME,
m.RECEIVEREQUESTNAME, m3.IS_BATCH, m4.IQCFLAG
</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}
AND A.RECEIVEREQUESTNAME in
<foreach item="name" index="index" collection="nameList" open="(" separator="," close=")">
#{name}
</foreach>
AND A.STOCKSTATE = 'Created'
ORDER BY A.MATERIALSPECNAME, A.SDK_ID, A.PHASE
) TTT
</select>
<select id="getTypeByKey" resultType="String">
SELECT RECEIVEREQUESTTYPE
FROM MATERIALRECEIVEREQUEST
WHERE SITENAME = #{siteName}
AND RECEIVEREQUESTNAME = #{receiveRequestName}
</select>
<select id="getReceiveByDelivery" resultType="String">
SELECT RECEIVEREQUESTNAME
FROM MATERIALRECEIVEREQUEST
WHERE SITENAME = #{siteName}
AND DELIVERYNAME = #{receiveRequestName}
</select>
2025-03-26 09:06:23 +08:00
</mapper>