You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

171 lines
7.4 KiB

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.gaotao.modules.otherInbound.dao.OtherInboundMapper">
  4. <!-- 获取其他入库单列表 -->
  5. <select id="getInboundList" parameterType="map" resultType="map">
  6. SELECT
  7. h.site,
  8. h.order_no AS inboundNo,
  9. h.bu_no AS buNo,
  10. '' AS batchNo,
  11. h.required_inbound_date AS inspectionDate,
  12. SUM(CASE WHEN pr.hardtag_in_flag = '已入库' THEN 1 ELSE 0 END) AS labelinCount, -- 已入库标签数
  13. COUNT(DISTINCT pr.roll_no) AS totalLabels, -- 需入库标签数
  14. SUM(CASE WHEN pr.hardtag_in_flag = '已入库' THEN ISNULL(pr.roll_qty, 0) ELSE 0 END) AS totalinLabels, -- 已入库物料总数
  15. SUM(CAST(D.required_qty AS float)) as labelCount, --需入库总数
  16. d.related_order_no AS relatedOrderNo, -- 关联单号
  17. d.related_order_line_no AS relatedOrderLineNo -- 关联行号
  18. FROM inbound_notification_head h
  19. 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
  20. 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
  21. WHERE h.site = #{site} and h.bu_no in (select bu_no from AccessBu where username = #{userName})
  22. and h.order_type = '其他入库' and h.close_flag = 'N' AND h.order_status = '待入库' and d.in_warehouse = #{warehouseId}
  23. <if test="searchCode != null and searchCode != ''">
  24. AND (
  25. h.order_no LIKE CONCAT('%', #{searchCode}, '%')
  26. OR h.related_order_no LIKE CONCAT('%', #{searchCode}, '%')
  27. )
  28. </if>
  29. <!-- <if test="searchCode == null or searchCode == ''">-->
  30. <!-- AND CONVERT(DATE, h.required_inbound_date) = CONVERT(DATE, GETDATE())-->
  31. <!-- </if>-->
  32. GROUP BY h.site,h.bu_no,h.order_no,h.required_inbound_date,d.related_order_no,d.related_order_line_no
  33. ORDER BY h.required_inbound_date DESC
  34. </select>
  35. <!-- 获取其他入库单详情 -->
  36. <select id="getInboundDetails" parameterType="map" resultType="map">
  37. SELECT
  38. h.site,
  39. h.order_no as inboundNo,
  40. h.site as site,
  41. h.bu_no as buNo,
  42. '' as batchNo,
  43. h.required_inbound_date as inspectionDate,
  44. SUM(CASE WHEN hardtag_in_flag = '已入库' then 1 else 0 end) labelinCount, --已入库标签数
  45. COUNT(DISTINCT pr.roll_no) as totalLabels , --需入库标签数
  46. SUM(CASE WHEN hardtag_in_flag = '已入库' then CAST(roll_qty AS float) else 0 end) totalinLabels,--已入库物料总数
  47. SUM(CAST(D.required_qty AS float)) as labelCount, --需入库总数
  48. d.related_order_no as relatedOrderNo, --关联单号
  49. d.related_order_line_no as relatedOrderLineNo --关联行号
  50. FROM inbound_notification_head h
  51. 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
  52. 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
  53. WHERE
  54. h.site = #{site}
  55. AND h.bu_no = #{buNo}
  56. AND h.order_no = #{inboundNo}
  57. GROUP BY h.order_no, h.site, h.bu_no, h.required_inbound_date, d.related_order_no, d.related_order_line_no
  58. </select>
  59. <!-- 验证物料与入库单是否匹配 -->
  60. <select id="validateMaterialWithInbound" parameterType="map" resultType="map">
  61. SELECT TOP 1
  62. d.part_no as materialCode,
  63. d.part_desc as materialName,
  64. d.unit,
  65. d.required_qty as requiredQty,
  66. h.order_status as status,
  67. d.in_batch_no as batchNo,
  68. h.order_no as inboundNo,
  69. h.site,
  70. h.bu_no as buNo
  71. FROM inbound_notification_detail d
  72. 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
  73. WHERE d.order_no = #{inboundNo}
  74. AND d.bu_no = #{buNo}
  75. AND d.site = #{site}
  76. AND d.part_no = #{materialCode}
  77. AND h.order_status = '待入库'
  78. AND h.order_type = '其他入库'
  79. </select>
  80. <!-- 更新入库单头表状态 -->
  81. <update id="updateInboundHeadStatus" parameterType="map">
  82. UPDATE inbound_notification_head
  83. SET order_status = #{status},
  84. h.updated_date = GETDATE(),
  85. WHERE order_no = #{inboundNo}
  86. AND bu_no = #{buNo}
  87. AND site = #{site}
  88. AND order_type = '其他入库'
  89. </update>
  90. <!-- 获取物料清单 -->
  91. <select id="getMaterialList" parameterType="map" resultType="map">
  92. SELECT
  93. d.part_no as partNo,
  94. d.part_no as materialCode,
  95. d.part_desc as materialName,
  96. p.UMID as unit,
  97. SUM(CAST(h.transQty AS float)) as actualQty,
  98. SUM(CAST(d.required_qty AS float)) as requiredQty --需求数量
  99. FROM inbound_notification_detail d
  100. LEFT JOIN Part p ON d.site = p.Site AND d.bu_no = p.bu_no AND d.part_no = p.PartNo
  101. LEFT JOIN TransHeader t ON t.site = d.site AND t.OrderRef2 = d.bu_no and t.OrderRef1 = d.order_no
  102. 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
  103. WHERE d.site = #{site} AND d.bu_no = #{buNo} AND d.order_no = #{inboundNo}
  104. GROUP BY d.part_no, d.part_desc, p.UMID
  105. ORDER BY d.part_no
  106. </select>
  107. <!-- 验证库位是否存在且可用 -->
  108. <select id="validateLocation" resultType="java.util.Map">
  109. SELECT
  110. LocationID as locationCode,
  111. WareHouseID as warehouseId,
  112. LocationName as locationName,
  113. Active as status,
  114. site
  115. FROM Location
  116. WHERE LocationID = #{locationCode}
  117. AND site = #{site}
  118. </select>
  119. <!-- 获取物料信息 -->
  120. <select id="getPartInfo" parameterType="map" resultType="map">
  121. SELECT
  122. PartNo as materialCode,
  123. PartDescription as materialName,
  124. UMID as unit,
  125. Active as status
  126. FROM part
  127. WHERE PartNo = #{materialCode}
  128. AND Site = #{site}
  129. AND bu_no = #{buNo}
  130. AND Active = 'Y'
  131. </select>
  132. <!-- 查询已扫描标签列表(从ScannedRollTempTable缓存表) -->
  133. <select id="getScannedLabelList" parameterType="map" resultType="map">
  134. SELECT
  135. site,
  136. bu_no as buNo,
  137. part_no as materialCode,
  138. RollNo as labelCode,
  139. RollQty as actualQty,
  140. getBatchNo as batchNo
  141. FROM ScannedRollTempTable
  142. WHERE site = #{site}
  143. AND bu_no = #{buNo}
  144. AND NotifyNo = #{inboundNo}
  145. ORDER BY RollNo DESC
  146. </select>
  147. <!-- 获取用户默认打印机配置 -->
  148. <select id="getUserDefaultPrinter" resultType="map">
  149. SELECT TOP 1
  150. rfp.NewPrinterName AS printerName,
  151. rfp.IPAddress AS printerIp,
  152. rfp.ReportID AS labelNo
  153. FROM ReportFileList_UserPrinter rfp
  154. WHERE rfp.UserID = #{username}
  155. <if test="labelNo != null and labelNo != ''">
  156. AND rfp.ReportID = #{labelNo}
  157. </if>
  158. ORDER BY rfp.ReportID
  159. </select>
  160. </mapper>