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.

278 lines
10 KiB

​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
9 months ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
3 months ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
3 months ago
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
​
  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.check.mapper.CountAdjustmentMapper">
  4. <!-- rqrq - 统计需要系统处理的异常结果数量 -->
  5. <select id="countSystemHandleRecords" resultType="int">
  6. SELECT COUNT(1)
  7. FROM count_result
  8. WHERE site = #{site}
  9. AND count_no = #{countNo}
  10. AND handle_flag = 'N'
  11. AND handle_type = 'SYSTEM'
  12. AND count_result != 'SURPLUS'
  13. AND count_result != 'OK'
  14. </select>
  15. <!-- rqrq - 查询待系统处理的标签明细(排除SURPLUS类型)-->
  16. <select id="querySystemHandleLabels" resultType="CountAdjustmentLabelItem">
  17. SELECT
  18. r.id AS countResultId,
  19. r.count_no AS countNo,
  20. r.count_result AS countResult,
  21. r.diff_qty AS diffQty,
  22. r.site AS site,
  23. r.unit_id AS unitId,
  24. r.pallet_id AS palletId,
  25. h.part_no AS partNo,
  26. h.qty AS qty,
  27. h.batch_no AS batchNo,
  28. h.location_id AS locationId,
  29. h.warehouse_id AS warehouseId,
  30. h.wdr AS wdr,
  31. h.expired_date AS expiredDate,
  32. h.eng_chg_level AS engChgLevel
  33. FROM count_result r
  34. LEFT JOIN handling_unit h ON r.site = h.site AND r.unit_id = h.unit_id
  35. WHERE r.site = #{site}
  36. AND r.count_no = #{countNo}
  37. AND r.handle_flag = 'N'
  38. AND r.handle_type = 'SYSTEM'
  39. AND r.count_result != 'SURPLUS'
  40. AND r.count_result != 'OK'
  41. ORDER BY r.id
  42. </select>
  43. <!-- rqrq - 插入事务明细 -->
  44. <insert id="insertTransDetail">
  45. INSERT INTO trans_detail (
  46. site, trans_no, item_no, part_no, trans_qty,
  47. batch_no, location_id, direction, wdr_no, eng_chg_level
  48. ) VALUES (
  49. #{site}, #{transNo}, #{itemNo}, #{partNo}, #{transQty},
  50. #{batchNo}, #{locationId}, #{direction}, #{wdrNo}, #{engChgLevel}
  51. )
  52. </insert>
  53. <!-- rqrq - 插入事务子明细(sub_no是标签号,seq_no是序号,direction是+/-)-->
  54. <insert id="insertTransDetailSub">
  55. INSERT INTO trans_detail_sub (
  56. site, trans_no, item_no, seq_no, sub_no, sub_qty, direction,
  57. part_no, batch_no, location_id, eng_chg_level, order_ref1, order_ref3, order_ref4
  58. ) VALUES (
  59. #{site}, #{transNo}, #{itemNo}, #{seqNo}, #{subNo}, #{subQty}, #{direction},
  60. #{partNo}, #{batchNo}, #{locationId}, #{engChgLevel}, #{orderRef1}, #{orderRef3}, #{orderRef4}
  61. )
  62. </insert>
  63. <!-- rqrq - 更新标签数量 -->
  64. <update id="updateHandlingUnitQty">
  65. UPDATE handling_unit
  66. SET qty = #{qty},
  67. in_stock_flag = #{inStockFlag},
  68. modified_by = #{username},
  69. modified_date = GETDATE()
  70. WHERE site = #{site}
  71. AND unit_id = #{unitId}
  72. </update>
  73. <!-- rqrq - 更新盘点结果处理标记 -->
  74. <update id="updateCountResultHandleFlag">
  75. UPDATE count_result
  76. SET handle_flag = 'Y'
  77. WHERE id = #{countResultId}
  78. </update>
  79. <!-- ==================== 库存操作(允许负库存)==================== - rqrq -->
  80. <!-- rqrq - 查询库存记录是否存在 -->
  81. <select id="countInventoryStock" resultType="int">
  82. SELECT COUNT(1)
  83. FROM inventory_stock
  84. WHERE site = #{site}
  85. AND warehouse_id = #{warehouseId}
  86. AND part_no = #{partNo}
  87. AND (batch_no = #{batchNo} OR (batch_no IS NULL AND #{batchNo} IS NULL))
  88. AND location_id = #{locationId}
  89. AND (wdr = #{wdr} OR (wdr IS NULL AND #{wdr} IS NULL))
  90. AND (eng_chg_level = #{engChgLevel} OR (eng_chg_level IS NULL AND #{engChgLevel} IS NULL))
  91. </select>
  92. <!-- rqrq - 创建0库存记录 -->
  93. <insert id="insertZeroStock">
  94. INSERT INTO inventory_stock (
  95. site, warehouse_id, part_no, batch_no, location_id, wdr, eng_chg_level,
  96. in_qty, in_standard_value, in_actual_value, out_qty, qty_on_hand, qty_reserved,
  97. freeze_flag, first_in_date, latest_in_date, active_date
  98. ) VALUES (
  99. #{site}, #{warehouseId}, #{partNo}, #{batchNo}, #{locationId}, #{wdr}, #{engChgLevel},
  100. 0, 0, 0, 0, 0, 0,
  101. 'N', GETDATE(), GETDATE(), GETDATE()
  102. )
  103. </insert>
  104. <!-- rqrq - 减少库存(允许负库存)-->
  105. <update id="reduceStock">
  106. UPDATE inventory_stock
  107. SET out_qty = out_qty + #{reduceQty},
  108. qty_on_hand = qty_on_hand - #{reduceQty},
  109. latest_out_date = GETDATE()
  110. WHERE site = #{site}
  111. AND warehouse_id = #{warehouseId}
  112. AND part_no = #{partNo}
  113. AND (batch_no = #{batchNo} OR (batch_no IS NULL AND #{batchNo} IS NULL))
  114. AND location_id = #{locationId}
  115. AND (wdr = #{wdr} OR (wdr IS NULL AND #{wdr} IS NULL))
  116. AND (eng_chg_level = #{engChgLevel} OR (eng_chg_level IS NULL AND #{engChgLevel} IS NULL))
  117. </update>
  118. <!-- rqrq - 增加库存 -->
  119. <update id="addStock">
  120. UPDATE inventory_stock
  121. SET in_qty = in_qty + #{addQty},
  122. qty_on_hand = qty_on_hand + #{addQty},
  123. latest_in_date = GETDATE()
  124. WHERE site = #{site}
  125. AND warehouse_id = #{warehouseId}
  126. AND part_no = #{partNo}
  127. AND (batch_no = #{batchNo} OR (batch_no IS NULL AND #{batchNo} IS NULL))
  128. AND location_id = #{locationId}
  129. AND (wdr = #{wdr} OR (wdr IS NULL AND #{wdr} IS NULL))
  130. AND (eng_chg_level = #{engChgLevel} OR (eng_chg_level IS NULL AND #{engChgLevel} IS NULL))
  131. </update>
  132. <!-- ==================== 盘盈盘亏记录查询 ==================== - rqrq -->
  133. <!-- rqrq - 查询盘盈盘亏事务头和明细 -->
  134. <select id="queryAdjustmentTransList" resultType="CountAdjustmentTransData">
  135. SELECT
  136. h.site,
  137. h.trans_no AS transNo,
  138. h.trans_date AS transDate,
  139. h.trans_type_db AS transTypeDb,
  140. CASE h.trans_type_db
  141. WHEN 'PK' THEN '盘亏'
  142. WHEN 'PY' THEN '盘盈'
  143. ELSE h.trans_type_db
  144. END AS transTypeDesc,
  145. h.warehouse_id AS warehouseId,
  146. h.order_ref1 AS orderRef1,
  147. h.remark,
  148. h.user_name AS userName,
  149. d.item_no AS itemNo,
  150. d.part_no AS partNo,
  151. d.trans_qty AS transQty,
  152. d.batch_no AS batchNo,
  153. d.location_id AS locationId,
  154. d.direction,
  155. CASE d.direction
  156. WHEN '+' THEN '入库'
  157. WHEN '-' THEN '出库'
  158. ELSE d.direction
  159. END AS directionDesc,
  160. d.wdr_no AS wdrNo,
  161. d.eng_chg_level AS engChgLevel
  162. FROM trans_header h
  163. INNER JOIN trans_detail d ON h.site = d.site AND h.trans_no = d.trans_no
  164. WHERE h.site = #{site}
  165. AND h.order_ref1 = #{countNo}
  166. AND h.trans_type_db IN ('PK', 'PY')
  167. ORDER BY h.trans_no, d.item_no
  168. </select>
  169. <!-- rqrq - 查询盘盈盘亏事务头和明细(分页) -->
  170. <select id="queryAdjustmentTransListPage" resultType="CountAdjustmentTransData">
  171. SELECT
  172. h.site,
  173. h.trans_no AS transNo,
  174. h.trans_date AS transDate,
  175. h.trans_type_db AS transTypeDb,
  176. CASE h.trans_type_db
  177. WHEN 'PK' THEN '盘亏'
  178. WHEN 'PY' THEN '盘盈'
  179. ELSE h.trans_type_db
  180. END AS transTypeDesc,
  181. h.warehouse_id AS warehouseId,
  182. h.order_ref1 AS orderRef1,
  183. h.remark,
  184. h.user_name AS userName,
  185. d.item_no AS itemNo,
  186. d.part_no AS partNo,
  187. d.trans_qty AS transQty,
  188. d.batch_no AS batchNo,
  189. d.location_id AS locationId,
  190. d.direction,
  191. CASE d.direction
  192. WHEN '+' THEN '入库'
  193. WHEN '-' THEN '出库'
  194. ELSE d.direction
  195. END AS directionDesc,
  196. d.wdr_no AS wdrNo,
  197. d.eng_chg_level AS engChgLevel
  198. FROM trans_header h
  199. INNER JOIN trans_detail d ON h.site = d.site AND h.trans_no = d.trans_no
  200. WHERE h.site = #{site}
  201. AND h.order_ref1 = #{countNo}
  202. AND h.trans_type_db IN ('PK', 'PY')
  203. ORDER BY h.trans_no, d.item_no
  204. </select>
  205. <!-- rqrq - 查询事务子明细(sub_no就是标签号unit_id) -->
  206. <select id="queryAdjustmentTransSubList" resultType="CountAdjustmentTransSubData">
  207. SELECT
  208. site,
  209. trans_no AS transNo,
  210. item_no AS itemNo,
  211. seq_no AS seqNo,
  212. sub_no AS subNo,
  213. sub_qty AS subQty,
  214. direction,
  215. CASE direction
  216. WHEN '+' THEN '入库'
  217. WHEN '-' THEN '出库'
  218. ELSE direction
  219. END AS directionDesc,
  220. part_no AS partNo,
  221. batch_no AS batchNo,
  222. location_id AS locationId,
  223. eng_chg_level AS engChgLevel,
  224. order_ref1 AS palletId,
  225. order_ref3 AS wdr,
  226. order_ref4 AS warehouseId
  227. FROM trans_detail_sub
  228. WHERE site = #{site}
  229. AND trans_no = #{transNo}
  230. ORDER BY item_no, seq_no
  231. </select>
  232. <!-- rqrq - 查询事务子明细(分页) -->
  233. <select id="queryAdjustmentTransSubListPage" resultType="CountAdjustmentTransSubData">
  234. SELECT
  235. site,
  236. trans_no AS transNo,
  237. item_no AS itemNo,
  238. seq_no AS seqNo,
  239. sub_no AS subNo,
  240. sub_qty AS subQty,
  241. direction,
  242. CASE direction
  243. WHEN '+' THEN '入库'
  244. WHEN '-' THEN '出库'
  245. ELSE direction
  246. END AS directionDesc,
  247. part_no AS partNo,
  248. batch_no AS batchNo,
  249. location_id AS locationId,
  250. eng_chg_level AS engChgLevel,
  251. order_ref1 AS palletId,
  252. order_ref3 AS wdr,
  253. order_ref4 AS warehouseId
  254. FROM trans_detail_sub
  255. WHERE site = #{site}
  256. AND trans_no = #{transNo}
  257. ORDER BY item_no, seq_no
  258. </select>
  259. </mapper>