|
|
<?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.gaotao.modules.inboundNotification.dao.InboundNotificationDetailMapper">
<!-- 验证标签与入库单是否匹配 --> <select id="validateLabelWithInbound" resultType="java.util.Map"> SELECT top 1 pr.roll_no as labelCode, pr.part_no as partNo, pr.roll_qty as quantity, pr.hardtag_in_flag as hardtagInFlag, pr.batch_no as batchNo FROM po_order_roll_no pr INNER JOIN inbound_notification_detail d ON pr.site = d.site and pr.bu_no = d.bu_no and pr.inspection_no = d.inspection_no AND pr.part_no = d.part_no WHERE pr.roll_no = #{labelCode} AND d.order_no = #{orderNo} AND pr.hardtag_in_flag = '未入库' AND pr.site = #{site} </select>
<!-- 获取入库单的标签明细 --> <select id="getInboundLabelDetails" resultType="java.util.Map"> SELECT pr.roll_no as labelCode, pr.part_no as partNo, pr.roll_qty as quantity, pr.hardtag_in_flag as hardtagInFlag FROM po_order_roll_no pr INNER JOIN inbound_notification_detail d ON pr.inspection_no = d.order_no AND pr.part_no = d.part_no WHERE pr.inspection_no = #{orderNo} AND pr.part_no = #{partNo} AND pr.hardtag_in_flag = '未入库' AND pr.site = #{site} ORDER BY pr.roll_no </select>
<!-- 更新标签状态 --> <update id="updateLabelStatus"> <if test="labelCodes != null and labelCodes.size() > 0"> UPDATE po_order_roll_no SET hardtag_in_flag = #{status}, updated_date = GETDATE(), update_by = 'SYSTEM' WHERE roll_no IN <foreach collection="labelCodes" item="labelCode" open="(" separator="," close=")"> #{labelCode} </foreach> AND site = #{site} AND bu_no = #{buNo} </if> </update>
<!-- 查询收获入库单明细 --> <select id="getInboundDetail" resultType="com.gaotao.modules.inboundNotification.entity.vo.InboundNotificationDetailVo" parameterType="com.gaotao.modules.inboundNotification.entity.vo.InboundNotificationDetailVo"> SELECT a.site, a.bu_no, a.order_no, a.part_no, a.part_desc, a.unit, c.umName, a.required_qty, a.in_warehouse, b.WareHouseName as inWarehouseName, a.in_batch_no, a.created_by, a.created_date, a.updated_by, a.updated_date, a.order_qty, a.related_order_no, a.related_order_line_no, a.actual_in_qty as actualStockInQty, a.roll_no FROM inbound_notification_detail as a left join WareHouse as b on a.site = b.site and a.bu_no = b.bu_no and a.in_warehouse = b.WareHouseID left join um as c on a.site = c.site and a.unit = c.UMID <where> a.site = #{site} and a.bu_no = #{buNo} and a.order_no = #{orderNo} <if test = "partNo != null and partNo != ''"> AND a.part_no = #{partNo} </if> </where> </select>
<!-- 删除收获入库单明细 --> <delete id="deleteInboundDetail" parameterType="com.gaotao.modules.inboundNotification.entity.vo.InboundNotificationDetailVo"> DELETE FROM inbound_notification_detail WHERE site = #{site} and bu_no = #{buNo} and order_no = #{orderNo} and part_no = #{partNo} <if test="rollNo != null and rollNo != ''"> AND roll_no = #{rollNo} </if> </delete>
<insert id="saveInboundDetails"> INSERT INTO inbound_notification_detail (site, bu_no, order_no, part_no, part_desc, unit, required_qty, in_warehouse, in_batch_no, created_by, created_date, order_qty, related_order_no, related_order_line_no, inspection_no, order_item_no, roll_no) VALUES <foreach collection="list" item="detail" separator=","> (#{detail.site}, #{detail.buNo}, #{detail.orderNo}, #{detail.partNo}, #{detail.partDesc}, #{detail.unit}, #{detail.requiredQty,jdbcType=FLOAT}, #{detail.inWarehouse}, #{detail.inBatchNo}, #{detail.createdBy}, GETDATE(), #{detail.orderQty,jdbcType=FLOAT}, #{detail.relatedOrderNo}, #{detail.relatedOrderLineNo}, #{detail.inspectionNo}, #{detail.orderItemNo}, #{detail.rollNo}) </foreach> </insert>
<select id="getInboundPartList" resultType="com.gaotao.modules.pms.entity.vo.PartInformationVo"> SELECT a.site, a.bu_no, a.PartNo, a.PartDescription as partDesc, a.UMID as unit, a.inbound_warehouse_id as inboundWarehouseId FROM part as a left join inbound_notification_detail as b on a.site = b.site and a.bu_no = b.bu_no and a.partNo = b.part_no and b.order_no = #{query.orderNo} where a.site = #{query.site} and a.bu_no = #{query.buNo} and b.site is null and a.PartNo not in <foreach collection="query.arr" close=")" open="(" item="item" separator=","> #{item} </foreach> <if test = "query.partNo != null and query.partNo != ''"> AND a.partNo like '%' + #{query.partNo} + '%' </if> <if test = "query.partDesc != null and query.partDesc != ''"> AND a.PartDescription like '%' + #{query.partDesc} + '%' </if> </select>
<delete id="deleteInboundDetailByHead"> DELETE FROM inbound_notification_detail WHERE site = #{site} AND bu_no = #{buNo} AND order_no = #{orderNo} </delete>
<update id="updateInboundDetails" parameterType="java.util.List"> UPDATE inbound_notification_detail SET required_qty = CASE <foreach item="item" index="index" collection="list" open="" close="" separator=" "> WHEN (roll_no = #{item.rollNo} OR (ISNULL(roll_no, '') = '' AND part_no = #{item.partNo})) THEN #{item.requiredQty,jdbcType=DOUBLE} </foreach> ELSE required_qty END, in_warehouse = CASE <foreach item="item" index="index" collection="list" open="" close="" separator=" "> WHEN (roll_no = #{item.rollNo} OR (ISNULL(roll_no, '') = '' AND part_no = #{item.partNo})) THEN #{item.inWarehouse} </foreach> ELSE in_warehouse END WHERE site = #{list[0].site} AND bu_no = #{list[0].buNo} AND order_no = #{list[0].orderNo} AND ( roll_no IN <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item.rollNo} </foreach> OR (ISNULL(roll_no, '') = '' AND part_no IN <foreach item="item" index="index" collection="list" open="(" separator="," close=")"> #{item.partNo} </foreach> ) ) </update>
<select id="getInboundDetail2" resultType="com.gaotao.modules.trans.entity.TransDetailSub" statementType="CALLABLE"> {call GetWarehouseEntryAndExitDetails( #{site, mode=IN, jdbcType=VARCHAR}, #{buNo, mode=IN, jdbcType=VARCHAR}, #{orderNo, mode=IN, jdbcType=VARCHAR}, #{orderType, mode=IN, jdbcType=VARCHAR}, #{relatedOrderNo, mode=IN, jdbcType=VARCHAR}, #{relatedOrderLineNo, mode=IN, jdbcType=VARCHAR}, #{partNo, mode=IN, jdbcType=VARCHAR} )} </select>
<select id="getInboundShopOrderList" resultType="com.gaotao.modules.inboundNotification.entity.vo.InboundNotificationDetailVo"> SELECT a.Site, a.bu_no, a.OrderNo as related_order_no, a.PartNo, c.PartDescription as partDesc, c.UMID as unit, a.status, a.LotSize as order_qty, pr.RollNo as rollNo, pr.RollQty as requiredQty, pr.remark, c.inbound_warehouse_id as inboundWarehouseId FROM ShopOrder a INNER JOIN SFDC_Rolls pr ON a.site = pr.site AND a.bu_no = pr.bu_no AND a.OrderNo = pr.OrderNo LEFT JOIN inbound_notification_detail b ON pr.Site = b.site AND pr.bu_no = b.bu_no AND pr.OrderNo = b.related_order_no AND pr.RollNo = b.roll_no INNER JOIN Part c on a.Site = c.Site and a.bu_no = c.bu_no and a.PartNo = c.PartNo WHERE a.site = #{query.site} and a.bu_no = #{query.buNo} and pr.status = '待入库' AND b.site IS NULL AND pr.RollType <![CDATA[<>]]> '删除卷' AND pr.RollNo NOT IN <foreach collection="query.arr" close=")" open="(" item="item" separator=","> #{item} </foreach> <if test = "query.relatedOrderNo != null and query.relatedOrderNo != ''"> AND a.OrderNo like '%' + #{query.relatedOrderNo} + '%' </if> <if test = "query.partNo != null and query.partNo != ''"> AND a.partNo like '%' + #{query.partNo} + '%' </if> <if test = "query.partDesc != null and query.partDesc != ''"> AND c.PartDescription like '%' + #{query.partDesc} + '%' </if> <if test = "query.status != null and query.status != ''"> AND a.status = #{query.status} </if> ORDER BY a.OrderNo, pr.RollNo </select>
<select id="getMaxLineNo" resultType="java.lang.Integer"> SELECT MAX(order_item_no) FROM inbound_notification_detail WHERE site = #{site} AND bu_no = #{buNo} AND order_no = #{orderNo} </select></mapper>
|