|
|
<?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.otherInbound.dao.OtherInboundMapper">
<!-- 获取其他入库单列表 --> <select id="getInboundList" parameterType="map" resultType="map"> SELECT h.site, h.order_no AS inboundNo, h.bu_no AS buNo, '' AS batchNo, h.required_inbound_date AS inspectionDate, SUM(CASE WHEN pr.hardtag_in_flag = '已入库' THEN 1 ELSE 0 END) AS labelinCount, -- 已入库标签数 COUNT(DISTINCT pr.roll_no) AS totalLabels, -- 需入库标签数 SUM(CASE WHEN pr.hardtag_in_flag = '已入库' THEN ISNULL(pr.roll_qty, 0) ELSE 0 END) AS totalinLabels, -- 已入库物料总数 SUM(CAST(D.required_qty AS float)) as labelCount, --需入库总数 d.related_order_no AS relatedOrderNo, -- 关联单号 d.related_order_line_no AS relatedOrderLineNo -- 关联行号 FROM inbound_notification_head h INNER JOIN inbound_notification_detail d ON h.site = d.site and h.bu_no = d.bu_no and h.order_no = d.order_no LEFT JOIN po_order_roll_no pr ON d.site = pr.site and d.bu_no = pr.bu_no and d.inspection_no = pr.inspection_no AND d.part_no = pr.part_no WHERE h.site = #{site} and h.bu_no in (select bu_no from AccessBu where username = #{userName}) and h.order_type = '其他入库' and h.close_flag = 'N' AND h.order_status = '待入库' and d.in_warehouse = #{warehouseId} <if test="searchCode != null and searchCode != ''"> AND ( h.order_no LIKE CONCAT('%', #{searchCode}, '%') OR h.related_order_no LIKE CONCAT('%', #{searchCode}, '%') ) </if><!-- <if test="searchCode == null or searchCode == ''">--><!-- AND CONVERT(DATE, h.required_inbound_date) = CONVERT(DATE, GETDATE())--><!-- </if>--> GROUP BY h.site,h.bu_no,h.order_no,h.required_inbound_date,d.related_order_no,d.related_order_line_no ORDER BY h.required_inbound_date DESC </select>
<!-- 获取其他入库单详情 --> <select id="getInboundDetails" parameterType="map" resultType="map"> SELECT h.site, h.order_no as inboundNo, h.site as site, h.bu_no as buNo, '' as batchNo, h.required_inbound_date as inspectionDate, SUM(CASE WHEN hardtag_in_flag = '已入库' then 1 else 0 end) labelinCount, --已入库标签数 COUNT(DISTINCT pr.roll_no) as totalLabels , --需入库标签数 SUM(CASE WHEN hardtag_in_flag = '已入库' then CAST(roll_qty AS float) else 0 end) totalinLabels,--已入库物料总数 SUM(CAST(D.required_qty AS float)) as labelCount, --需入库总数 d.related_order_no as relatedOrderNo, --关联单号 d.related_order_line_no as relatedOrderLineNo --关联行号 FROM inbound_notification_head h INNER JOIN inbound_notification_detail d ON h.site = d.site and h.bu_no = d.bu_no and h.order_no = d.order_no LEFT JOIN po_order_roll_no pr ON d.site = pr.site and d.bu_no = pr.bu_no and d.inspection_no = pr.inspection_no AND d.part_no = pr.part_no WHERE h.site = #{site} AND h.bu_no = #{buNo} AND h.order_no = #{inboundNo} GROUP BY h.order_no, h.site, h.bu_no, h.required_inbound_date, d.related_order_no, d.related_order_line_no </select>
<!-- 验证物料与入库单是否匹配 --> <select id="validateMaterialWithInbound" parameterType="map" resultType="map"> SELECT TOP 1 d.part_no as materialCode, d.part_desc as materialName, d.unit, d.required_qty as requiredQty, h.order_status as status, d.in_batch_no as batchNo, h.order_no as inboundNo, h.site, h.bu_no as buNo FROM inbound_notification_detail d INNER JOIN inbound_notification_head h ON d.order_no = h.order_no AND d.site = h.site AND d.bu_no = h.bu_no WHERE d.order_no = #{inboundNo} AND d.bu_no = #{buNo} AND d.site = #{site} AND d.part_no = #{materialCode} AND h.order_status = '待入库' AND h.order_type = '其他入库' </select>
<!-- 更新入库单头表状态 --> <update id="updateInboundHeadStatus" parameterType="map"> UPDATE inbound_notification_head SET order_status = #{status}, h.updated_date = GETDATE(), WHERE order_no = #{inboundNo} AND bu_no = #{buNo} AND site = #{site} AND order_type = '其他入库' </update>
<!-- 获取物料清单 --> <select id="getMaterialList" parameterType="map" resultType="map"> SELECT d.part_no as partNo, d.part_no as materialCode, d.part_desc as materialName, p.UMID as unit, SUM(CAST(h.transQty AS float)) as actualQty, SUM(CAST(d.required_qty AS float)) as requiredQty --需求数量 FROM inbound_notification_detail d LEFT JOIN Part p ON d.site = p.Site AND d.bu_no = p.bu_no AND d.part_no = p.PartNo LEFT JOIN TransHeader t ON t.site = d.site AND t.OrderRef2 = d.bu_no and t.OrderRef1 = d.order_no LEFT JOIN TransDetail h ON t.site = h.site AND t.OrderRef2 = h.OrderRef2 and t.TransNo = h.TransNo and d.part_no = h.partNo WHERE d.site = #{site} AND d.bu_no = #{buNo} AND d.order_no = #{inboundNo} GROUP BY d.part_no, d.part_desc, p.UMID ORDER BY d.part_no </select>
<!-- 验证库位是否存在且可用 --> <select id="validateLocation" resultType="java.util.Map"> SELECT LocationID as locationCode, WareHouseID as warehouseId, LocationName as locationName, Active as status, site FROM Location WHERE LocationID = #{locationCode} AND site = #{site} </select>
<!-- 获取物料信息 --> <select id="getPartInfo" parameterType="map" resultType="map"> SELECT PartNo as materialCode, PartDescription as materialName, UMID as unit, Active as status FROM part WHERE PartNo = #{materialCode} AND Site = #{site} AND bu_no = #{buNo} AND Active = 'Y' </select>
<!-- 查询已扫描标签列表(从ScannedRollTempTable缓存表) --> <select id="getScannedLabelList" parameterType="map" resultType="map"> SELECT site, bu_no as buNo, part_no as materialCode, RollNo as labelCode, RollQty as actualQty, getBatchNo as batchNo FROM ScannedRollTempTable WHERE site = #{site} AND bu_no = #{buNo} AND NotifyNo = #{inboundNo} ORDER BY RollNo DESC </select>
<!-- 获取用户默认打印机配置 --> <select id="getUserDefaultPrinter" resultType="map"> SELECT TOP 1 rfp.NewPrinterName AS printerName, rfp.IPAddress AS printerIp, rfp.ReportID AS labelNo FROM ReportFileList_UserPrinter rfp WHERE rfp.UserID = #{username} <if test="labelNo != null and labelNo != ''"> AND rfp.ReportID = #{labelNo} </if> ORDER BY rfp.ReportID </select>
</mapper>
|