InboundItemMapper.xml 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  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.dk.mdm.mapper.ivt.InboundItemMapper">
  4. <!-- 通用设置 -->
  5. <!-- 通用查询列 -->
  6. <sql id="Base_Column_List">
  7. item_id, into_id, into_type, from_id, from_item_id, item_index, sku_id, price_into, non_std_code,
  8. into_status, sys.f_remove_zero(intoing_qty) as intoing_qty, intoing_amt, sys.f_remove_zero(into_qty) as into_qty,
  9. into_amt, sys.f_remove_zero(return_qty) as return_qty, return_amt,
  10. remarks, inv_id, cost_price, cost_amt, sys.f_remove_zero(out_qty) as out_qty, sys.f_remove_zero(inv_qty) as inv_qty, flg_valid, cp_id, op_create_time,
  11. op_create_user_id, op_update_time, op_update_user_id, op_app_code, op_timestamp, op_db_user,
  12. s_into_id,s_into_item_id,s_pur_id,s_pur_item_id,intoing_box,intoing_piece,into_box,into_piece,
  13. unit_id,sub_unit_id, pack_box
  14. </sql>
  15. <!-- response通用查询列 -->
  16. <sql id="Base_Column_List_Response">
  17. tpii.item_id, tpii.into_id, tpii.into_type, tpii.from_id, tpii.from_item_id, tpii.item_index, tpii.sku_id, tpii.price_into,
  18. tpii.non_std_code, tpii.into_status, sys.f_remove_zero(tpii.intoing_qty) as intoing_qty, tpii.intoing_amt,
  19. sys.f_remove_zero(tpii.into_qty) as into_qty, tpii.into_amt, sys.f_remove_zero(tpii.return_qty) as return_qty,
  20. tpii.return_amt, tpii.remarks, tpii.inv_id, tpii.cost_price, tpii.cost_amt,
  21. sys.f_remove_zero(tpii.out_qty) as out_qty, sys.f_remove_zero(tpii.inv_qty) as inv_qty, tpii.flg_valid,
  22. tpii.cp_id,tpii.s_into_id,tpii.s_into_item_id,tpii.s_pur_id,tpii.s_pur_item_id,
  23. tpii.intoing_box,tpii.intoing_piece,tpii.into_box,tpii.into_piece,
  24. tpii.unit_id,tpii.sub_unit_id,tpii.pack_box,tpii.flg_cost_check
  25. </sql>
  26. <!-- 通用查询映射结果 -->
  27. <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.ivt.InboundItem">
  28. <id column="item_id" property="itemId"/>
  29. <result column="into_id" property="intoId" typeHandler="UuidTypeHandler"/>
  30. <result column="into_type" property="intoType"/>
  31. <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
  32. <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
  33. <result column="item_index" property="itemIndex"/>
  34. <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
  35. <result column="price_into" property="priceInto"/>
  36. <result column="non_std_code" property="nonStdCode"/>
  37. <result column="into_status" property="intoStatus"/>
  38. <result column="intoing_qty" property="intoingQty"/>
  39. <result column="intoing_amt" property="intoingAmt"/>
  40. <result column="into_qty" property="intoQty"/>
  41. <result column="into_amt" property="intoAmt"/>
  42. <result column="return_qty" property="returnQty"/>
  43. <result column="return_amt" property="returnAmt"/>
  44. <result column="remarks" property="remarks"/>
  45. <result column="inv_id" property="invId" typeHandler="UuidTypeHandler"/>
  46. <result column="cost_price" property="costPrice"/>
  47. <result column="cost_amt" property="costAmt"/>
  48. <result column="out_qty" property="outQty"/>
  49. <result column="inv_qty" property="invQty"/>
  50. <result column="flg_valid" property="flgValid"/>
  51. <result column="cp_id" property="cpId"/>
  52. <result column="op_create_time" property="opCreateTime" typeHandler="TimestampTypeHandler"/>
  53. <result column="op_create_user_id" property="opCreateUserId" typeHandler="UuidTypeHandler"/>
  54. <result column="op_update_time" property="opUpdateTime" typeHandler="TimestampTypeHandler"/>
  55. <result column="op_update_user_id" property="opUpdateUserId" typeHandler="UuidTypeHandler"/>
  56. <result column="op_app_code" property="opAppCode"/>
  57. <result column="op_timestamp" property="opTimestamp" typeHandler="TimestampTypeHandler"/>
  58. <result column="op_db_user" property="opDbUser"/>
  59. <result column="s_into_id" property="sIntoId" typeHandler="UuidTypeHandler"/>
  60. <result column="s_into_item_id" property="sIntoItemId" typeHandler="UuidTypeHandler"/>
  61. <result column="s_pur_id" property="sPurId" typeHandler="UuidTypeHandler"/>
  62. <result column="s_pur_item_id" property="sPurItemId" typeHandler="UuidTypeHandler"/>
  63. <result column="intoing_box" property="intoingBox" />
  64. <result column="intoing_piece" property="intoingPiece" />
  65. <result column="into_box" property="intoBox" />
  66. <result column="into_piece" property="intoPiece" />
  67. </resultMap>
  68. <!-- response查询映射结果 -->
  69. <resultMap id="BaseResultMapResponse" type="com.dk.mdm.model.response.ivt.InboundItemResponse">
  70. <id column="item_id" property="itemId"/>
  71. <result column="into_id" property="intoId" typeHandler="UuidTypeHandler"/>
  72. <result column="into_type" property="intoType"/>
  73. <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
  74. <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
  75. <result column="item_index" property="itemIndex"/>
  76. <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
  77. <result column="price_into" property="priceInto"/>
  78. <result column="non_std_code" property="nonStdCode"/>
  79. <result column="into_status" property="intoStatus"/>
  80. <result column="intoing_qty" property="intoingQty"/>
  81. <result column="intoing_amt" property="intoingAmt"/>
  82. <result column="into_qty" property="intoQty"/>
  83. <result column="into_amt" property="intoAmt"/>
  84. <result column="return_qty" property="returnQty"/>
  85. <result column="return_amt" property="returnAmt"/>
  86. <result column="remarks" property="remarks"/>
  87. <result column="inv_id" property="invId" typeHandler="UuidTypeHandler"/>
  88. <result column="cost_price" property="costPrice"/>
  89. <result column="cost_amt" property="costAmt"/>
  90. <result column="brandName" property="brandName"/>
  91. <result column="out_qty" property="outQty"/>
  92. <result column="inv_qty" property="invQty"/>
  93. <result column="flg_valid" property="flgValid"/>
  94. <result column="cp_id" property="cpId"/>
  95. <result column="price_purchase" property="pricePurchase"/>
  96. <result column="sku_images" property="skuImages" typeHandler="JsonTypeHandler"/>
  97. <result column="s_into_id" property="sIntoId" typeHandler="UuidTypeHandler"/>
  98. <result column="s_into_item_id" property="sIntoItemId" typeHandler="UuidTypeHandler"/>
  99. <result column="s_pur_id" property="sPurId" typeHandler="UuidTypeHandler"/>
  100. <result column="s_pur_item_id" property="sPurItemId" typeHandler="UuidTypeHandler"/>
  101. <result column="intoing_box" property="intoingBox" />
  102. <result column="intoing_piece" property="intoingPiece" />
  103. <result column="into_box" property="intoBox" />
  104. <result column="into_piece" property="intoPiece" />
  105. <result column="unit_id" property="unitId"/>
  106. <result column="sub_unit_id" property="subUnitId"/>
  107. <result column="pack_box" property="packBox"/>
  108. <result column="subUnitName" property="subUnitName"/>
  109. <result column="unitName" property="unitName"/>
  110. <result column="whName" property="whName"/>
  111. <result column="intoDate" property="intoDate" typeHandler="TimestampTypeHandler"/>
  112. <result column="seriesName" property="seriesName"/>
  113. <result column="intoStatusName" property="intoStatusName"/>
  114. <result column="flg_sub_unit" property="flgSubUnit"/>
  115. <result column="intoTypeName" property="intoTypeName"/>
  116. <result column="flg_cost_check" property="flgCostCheck"/>
  117. <result column="flgCostCheckName" property="flgCostCheckName"/>
  118. </resultMap>
  119. <!-- 退货用-->
  120. <resultMap id="BaseResultMapReturnResponse" type="com.dk.mdm.model.response.ivt.InboundItemResponse">
  121. <id column="item_id" property="itemId"/>
  122. <result column="into_id" property="intoId" typeHandler="UuidTypeHandler"/>
  123. <result column="into_type" property="intoType"/>
  124. <result column="from_id" property="fromId" typeHandler="UuidTypeHandler"/>
  125. <result column="from_item_id" property="fromItemId" typeHandler="UuidTypeHandler"/>
  126. <result column="item_index" property="itemIndex"/>
  127. <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
  128. <result column="price_into" property="priceInto"/>
  129. <result column="non_std_code" property="nonStdCode"/>
  130. <result column="into_status" property="intoStatus"/>
  131. <result column="intoing_qty" property="intoingQty"/>
  132. <result column="intoing_amt" property="intoingAmt"/>
  133. <result column="into_qty" property="intoQty"/>
  134. <result column="into_amt" property="intoAmt"/>
  135. <result column="return_qty" property="returnQty"/>
  136. <result column="return_amt" property="returnAmt"/>
  137. <result column="remarks" property="remarks"/>
  138. <result column="inv_id" property="invId" typeHandler="UuidTypeHandler"/>
  139. <result column="cost_price" property="costPrice"/>
  140. <result column="cost_amt" property="costAmt"/>
  141. <result column="out_qty" property="outQty"/>
  142. <result column="inv_qty" property="invQty"/>
  143. <result column="flg_valid" property="flgValid"/>
  144. <result column="cp_id" property="cpId"/>
  145. <result column="s_into_id" property="sIntoId" typeHandler="UuidTypeHandler"/>
  146. <result column="s_into_item_id" property="sIntoItemId" typeHandler="UuidTypeHandler"/>
  147. <result column="s_pur_id" property="sPurId" typeHandler="UuidTypeHandler"/>
  148. <result column="s_pur_item_id" property="sPurItemId" typeHandler="UuidTypeHandler"/>
  149. <result column="sku_images" property="skuImages" typeHandler="JsonTypeHandler"/>
  150. <result column="sIntoItemIntoingQty" property="sIntoItemIntoingQty"/>
  151. <result column="sIntoItemIntoingAmt" property="sIntoItemIntoingAmt"/>
  152. <result column="sIntoItemIntoQty" property="sIntoItemIntoQty"/>
  153. <result column="sIntoItemIntoAmt" property="sIntoItemIntoAmt"/>
  154. <result column="sIntoItemReturnQty" property="sIntoItemReturnQty"/>
  155. <result column="sIntoItemReturnAmt" property="sIntoItemReturnAmt"/>
  156. <result column="sPurItemIntoingQty" property="sPurItemIntoingQty"/>
  157. <result column="sPurItemIntoingAmt" property="sPurItemIntoingAmt"/>
  158. <result column="sPurItemIntoQty" property="sPurItemIntoQty"/>
  159. <result column="sPurItemIntoAmt" property="sPurItemIntoAmt"/>
  160. <result column="sPurItemReturnQty" property="sPurItemReturnQty"/>
  161. <result column="sPurItemReturnAmt" property="sPurItemReturnAmt"/>
  162. <result column="usableQty" property="usableQty"/>
  163. <result column="nonStdCode" property="nonStdCode"/>
  164. <result column="intoing_box" property="intoingBox" />
  165. <result column="intoing_piece" property="intoingPiece" />
  166. <result column="into_box" property="intoBox" />
  167. <result column="into_piece" property="intoPiece" />
  168. <result column="unit_id" property="unitId"/>
  169. <result column="unit_code" property="unitCode"/>
  170. <result column="unit_name" property="unitName"/>
  171. <result column="sub_unit_id" property="subUnitId"/>
  172. <result column="sub_unit_code" property="subUnitCode"/>
  173. <result column="sub_unit_name" property="subUnitName"/>
  174. <result column="pack_box" property="packBox"/>
  175. </resultMap>
  176. <!-- 通用条件列 -->
  177. <sql id="Condition">
  178. <where>
  179. tpii.flg_valid
  180. <if test="intoId != null and intoId != ''">
  181. AND tpii.into_id = #{intoId}::uuid
  182. </if>
  183. <if test="intoType != null and intoType != ''">
  184. AND tpii.into_type = #{intoType}
  185. </if>
  186. <if test="fromId != null and fromId != ''">
  187. AND tpii.from_id = #{fromId}
  188. </if>
  189. <if test="fromItemId != null and fromItemId != ''">
  190. AND tpii.from_item_id = #{fromItemId}
  191. </if>
  192. <if test="itemIndex != null">
  193. AND tpii.item_index = #{itemIndex}
  194. </if>
  195. <if test="skuId != null and skuId != ''">
  196. AND tpii.sku_id = #{skuId}
  197. </if>
  198. <if test="priceInto != null">
  199. AND tpii.price_into = #{priceInto}
  200. </if>
  201. <if test="nonStdCode != null and nonStdCode != ''">
  202. AND tpii.non_std_code = #{nonStdCode}
  203. </if>
  204. <if test="invId != null and invId != ''">
  205. AND tpii.inv_id = #{invId}
  206. </if>
  207. <if test="cpId != null">
  208. AND tpii.cp_id = #{cpId}
  209. </if>
  210. </where>
  211. </sql>
  212. <sql id="idsForeach">
  213. <!-- 根据主键itemId批量操作 -->
  214. WHERE item_id in
  215. <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
  216. #{item}
  217. </foreach>
  218. </sql>
  219. <!-- 查询表dkic_b.t_psi_inbound_item,(条件查询+分页)列表 -->
  220. <select id="selectByCond" resultMap="BaseResultMapResponse">
  221. SELECT
  222. <include refid="Base_Column_List_Response"/>
  223. ,tpii.wh_id as "whId"
  224. ,tmw.wh_name as "whName"
  225. ,tmgs.sku_code as "skuCode"
  226. ,tpii.sku_model as "skuModel"
  227. ,tpii.sku_name as "skuName"
  228. ,tmgs.sku_spec as "skuSpec"
  229. ,tmgs.price_purchase
  230. ,tmgs.sku_images
  231. ,tmgb.brand_name as "brandName"
  232. ,tmgb.short_name as "shortName"
  233. ,tpp.pur_id as "purId"
  234. ,tpp.pur_no as "purNo"
  235. ,sys.f_remove_zero(tppi.item_qty) as "purItemQty"
  236. ,sys.f_remove_zero(tppi.intoing_qty) as "purItemIntoingQty"
  237. ,sys.f_remove_zero(tppi.into_qty) as "purItemIntoQty"
  238. ,sys.f_remove_zero(tpiv.inv_qty) as inv_qty
  239. ,tmgs.pack_box
  240. ,tmgus.unit_name as "subUnitName"
  241. ,tmgu.unit_name as "unitName"
  242. ,tmgs.flg_sub_unit
  243. ,dkic_b.f_box_piece(tmgus.unit_name,tmgu.unit_name,tpii.intoing_box,tpii.intoing_piece) as "ingBoxPiece"
  244. ,dkic_b.f_box_piece(tmgus.unit_name,tmgu.unit_name,tpii.into_box,tpii.into_piece) as "boxPiece"
  245. ,tmgu.decimal_places as "decimalPlaces"
  246. FROM dkic_b.t_psi_inbound_item tpii
  247. left join dkic_b.t_mst_unit as tmgu on tpii.unit_id = tmgu.unit_id
  248. left join dkic_b.t_mst_unit as tmgus on tpii.sub_unit_id = tmgus.unit_id
  249. left join dkic_b.t_psi_inventory tpiv on tpiv.inv_id = tpii.inv_id
  250. left join dkic_b.t_psi_purchase_item tppi on tppi.item_id = tpii.from_item_id
  251. left join dkic_b.t_psi_purchase tpp on tpp.pur_id = tpii.from_id
  252. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  253. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  254. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  255. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  256. <include refid="Condition"/>
  257. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  258. limit #{end} offset #{start}
  259. </if>
  260. </select>
  261. <!-- 查询表dkic_b.t_psi_inbound_item,(条件查询)个数 -->
  262. <select id="countByCond" resultType="Long">
  263. SELECT
  264. count(1)
  265. FROM dkic_b.t_psi_inbound_item tpii
  266. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  267. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  268. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  269. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  270. <include refid="Condition"/>
  271. </select>
  272. <!-- 根据主键查询表dkic_b.t_psi_inbound_item的一行数据 -->
  273. <select id="selectById" resultMap="BaseResultMapResponse">
  274. SELECT
  275. <include refid="Base_Column_List_Response"/>
  276. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where tpii.unit_id = ul.unit_id) as "decimalPlaces"
  277. FROM dkic_b.t_psi_inbound_item tpii
  278. WHERE tpii.item_id = #{id}::uuid
  279. </select>
  280. <!-- 根据主键锁定表dkic_b.t_psi_inbound_item的一行数据 -->
  281. <select id="selectByIdForUpdate" resultMap="BaseResultMap">
  282. SELECT
  283. <include refid="Base_Column_List"/>
  284. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where dkic_b.t_psi_inbound_item.unit_id = ul.unit_id) as "decimalPlaces"
  285. FROM dkic_b.t_psi_inbound_item
  286. WHERE item_id = #{itemId}
  287. for update
  288. </select>
  289. <!-- 根据主键锁定表dkic_b.t_psi_inbound_item的多行数据 -->
  290. <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
  291. SELECT
  292. <include refid="Base_Column_List"/>
  293. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where dkic_b.t_psi_inbound_item.unit_id = ul.unit_id) as "decimalPlaces"
  294. FROM dkic_b.t_psi_inbound_item
  295. <include refid="idsForeach"/>
  296. for update
  297. </select>
  298. <insert id="insertBatch">
  299. insert into dkic_b.t_psi_inbound_item
  300. (
  301. <trim suffixOverrides=",">
  302. into_id,
  303. into_type,
  304. from_id,
  305. from_item_id,
  306. item_index,
  307. sku_id,
  308. price_into,
  309. non_std_code,
  310. into_status,
  311. intoing_qty,
  312. intoing_amt,
  313. into_qty,
  314. into_amt,
  315. return_qty,
  316. return_amt,
  317. remarks,
  318. inv_id,
  319. cost_price,
  320. cost_amt,
  321. out_qty,
  322. inv_qty,
  323. cp_id,
  324. op_app_code,
  325. s_into_id,
  326. s_into_item_id,
  327. s_pur_id,
  328. s_pur_item_id,
  329. </trim>
  330. )
  331. values
  332. <foreach collection="list" index="index" item="item" separator=",">
  333. (
  334. <trim suffixOverrides=",">
  335. #{item.intoId}::uuid,
  336. #{item.intoType},
  337. #{item.fromId}::uuid,
  338. #{item.fromItemId}::uuid,
  339. #{item.itemIndex},
  340. #{item.skuId}::uuid,
  341. #{item.priceInto},
  342. #{item.nonStdCode},
  343. #{item.intoStatus},
  344. #{item.intoingQty},
  345. #{item.intoingAmt},
  346. #{item.intoQty},
  347. #{item.intoAmt},
  348. #{item.returnQty},
  349. #{item.returnAmt},
  350. #{item.remarks},
  351. #{item.invId}::uuid,
  352. #{item.costPrice},
  353. #{item.costAmt},
  354. #{item.outQty},
  355. #{item.invQty},
  356. #{item.cpId},
  357. #{item.opAppCode},
  358. #{item.sIntoId}::uuid,
  359. #{item.sIntoItemId}::uuid,
  360. #{item.sPurId}::uuid,
  361. #{item.sPurItemId}::uuid,
  362. </trim>
  363. )
  364. </foreach>
  365. </insert>
  366. <update id="updateAmount" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  367. update dkic_b.t_psi_inbound_item
  368. <set>
  369. <if test="returnQty!= null">
  370. return_qty= #{returnQty},
  371. </if>
  372. <if test="returnAmt!= null">
  373. return_amt = #{returnAmt},
  374. </if>
  375. </set>
  376. where item_id = #{itemId}::uuid
  377. </update>
  378. <!-- 入库办理显示字段 -->
  379. <sql id="Base_Column_List_Response_Into">
  380. tpii.item_id,
  381. tpii.into_id,
  382. tpii.into_type,
  383. tpii.from_id,
  384. tpii.from_item_id,
  385. tpii.item_index,
  386. tpii.sku_id,
  387. tpii.price_into,
  388. tpii.non_std_code,
  389. tpii.into_status,
  390. sys.f_remove_zero(tpii.intoing_qty) as intoing_qty,
  391. tpii.intoing_amt,
  392. sys.f_remove_zero(tpii.into_qty) as into_qty,
  393. tpii.into_amt,
  394. sys.f_remove_zero(tpii.return_qty) as return_qty,
  395. tpii.return_amt,
  396. tpii.remarks,
  397. tpii.inv_id,
  398. tpii.cost_price,
  399. tpii.cost_amt,
  400. tpii.wh_id,
  401. sys.f_remove_zero(tpii.inv_qty) as inv_qty,
  402. tpii.intoing_box,
  403. tpii.intoing_piece,
  404. tpii.into_box,
  405. tpii.into_piece,
  406. tpii.pack_box
  407. </sql>
  408. <sql id="Base_Column_List_Response_Out">
  409. tpoi.item_id,
  410. tpoi.out_id as into_id,
  411. tpoi.out_type as into_type,
  412. tpoi.from_id,
  413. tpoi.from_item_id,
  414. tpoi.item_index,
  415. tpoi.sku_id,
  416. tpoi.price_out as price_into,
  417. tpoi.non_std_code,
  418. tpoi.out_status as into_status,
  419. tpoi.outing_qty as intoing_amt ,
  420. sys.f_remove_zero(tpoi.outing_amt) as intoing_qty ,
  421. sys.f_remove_zero(tpoi.out_qty) as into_qty ,
  422. tpoi.out_amt as into_amt ,
  423. sys.f_remove_zero(tpoi.return_qty) as return_qty,
  424. tpoi.return_amt,
  425. tpoi.remarks,
  426. tpoi.inv_id,
  427. tpoi.cost_price,
  428. tpoi.cost_amt,
  429. null as wh_id,
  430. null as inv_qty,
  431. tpoi.outing_box as intoing_box,
  432. tpoi.outing_piece as intoing_piece,
  433. tpoi.out_box as into_box,
  434. tpoi.out_piece as into_piece,
  435. tpoi.pack_box
  436. </sql>
  437. <!--条件查询 web端入库办理用-->
  438. <select id="selectInboundItem" resultMap="BaseResultMapResponse">
  439. SELECT
  440. <include refid="Base_Column_List_Response_Into"/>
  441. ,tmgs.sku_code as "skuCode"
  442. ,tmgs.sku_model as "skuModel"
  443. ,tmgs.sku_name as "skuName"
  444. ,tmgs.sku_spec as "skuSpec"
  445. ,tmgb.brand_name as "brandName"
  446. ,tmgb.short_name as "shortName"
  447. ,tmw.wh_name as "whName"
  448. ,tmu.unit_code as "unitCode"
  449. ,tmu.unit_name as "unitName"
  450. ,tmu2.unit_code as "subUnitCode"
  451. ,tmu2.unit_name as "subUnitName"
  452. ,tmu.decimal_places as "decimalPlaces"
  453. FROM dkic_b.t_psi_inbound_item tpii
  454. <include refid="Select_Inbound_Join_Table_Into"/>
  455. <where>
  456. tpii.flg_valid
  457. <if test="intoId != null and intoId != ''">
  458. AND tpii.into_id = #{intoId}::uuid
  459. </if>
  460. </where>
  461. union all
  462. select
  463. <include refid="Base_Column_List_Response_Out"/>
  464. ,tmgs.sku_code as "skuCode"
  465. ,tmgs.sku_model as "skuModel"
  466. ,tmgs.sku_name as "skuName"
  467. ,tmgs.sku_spec as "skuSpec"
  468. ,tmgb.brand_name as "brandName"
  469. ,tmgb.short_name as "shortName"
  470. ,null as "whName"
  471. ,tmu.unit_code as "unitCode"
  472. ,tmu.unit_name as "unitName"
  473. ,tmu2.unit_code as "subUnitCode"
  474. ,tmu2.unit_name as "subUnitName"
  475. ,tmu.decimal_places as "decimalPlaces"
  476. from dkic_b.t_psi_outbound_item tpoi
  477. <include refid="Select_Inbound_Join_Table_Out"/>
  478. <where>
  479. tpoi.flg_valid
  480. <if test="intoId != null and intoId != ''">
  481. AND tpoi.out_id = #{intoId}::uuid
  482. </if>
  483. </where>
  484. </select>
  485. <!--入库办理显示入库关联表-->
  486. <sql id="Select_Inbound_Join_Table_Into">
  487. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  488. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  489. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  490. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  491. left join dkic_b.t_mst_unit tmu on tmu.unit_id = tpii.unit_id
  492. left join dkic_b.t_mst_unit tmu2 on tmu2.unit_id = tpii.unit_id
  493. </sql>
  494. <sql id="Select_Inbound_Join_Table_Out">
  495. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpoi.sku_id
  496. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  497. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpoi.inv_id
  498. left join dkic_b.t_mst_unit tmu on tmu.unit_id = tpoi.unit_id
  499. left join dkic_b.t_mst_unit tmu2 on tmu2.unit_id = tpoi.sub_unit_id
  500. </sql>
  501. <delete id="deleteByFromId" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  502. DELETE FROM dkic_b.t_psi_inbound_item WHERE from_item_id = #{fromItemId}::uuid
  503. </delete>
  504. <update id="updateIntoStatus" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  505. update dkic_b.t_psi_inbound_item
  506. <set>
  507. <if test="intoStatus!= null">
  508. into_status= #{intoStatus},
  509. </if>
  510. </set>
  511. where item_id = #{itemId}::uuid
  512. </update>
  513. <select id="selectByInboundReturnCond" resultMap="BaseResultMapReturnResponse">
  514. SELECT
  515. <include refid="Base_Column_List_Response"/>
  516. ,tmgs.sku_code as "skuCode"
  517. ,tmgs.sku_model as "skuModel"
  518. ,tmgs.sku_name as "skuName"
  519. ,tmgs.sku_spec as "skuSpec"
  520. ,tmgs.sku_images
  521. ,tmgb.brand_name as "brandName"
  522. ,tmgb.short_name as "shortName"
  523. ,tmw.wh_id as "whId"
  524. ,tmw.wh_code as "whCode"
  525. ,tmw.wh_name as "whName"
  526. ,sys.f_remove_zero(tpsii.intoing_qty) as "sIntoItemIntoingQty"
  527. ,tpsii.intoing_amt as "sIntoItemIntoingAmt"
  528. ,sys.f_remove_zero(tpsii.into_qty) as "sIntoItemIntoQty"
  529. ,tpsii.into_amt as "sIntoItemIntoAmt"
  530. ,sys.f_remove_zero(tpsii.return_qty) as "sIntoItemReturnQty"
  531. ,tpsii.return_amt as "sIntoItemReturnAmt"
  532. ,sys.f_remove_zero(tppi.intoing_qty) as "sPurItemIntoingQty"
  533. ,tppi.intoing_amt as "sPurItemIntoingAmt"
  534. ,sys.f_remove_zero(tppi.into_qty) as "sPurItemIntoQty"
  535. ,tppi.into_amt as "sPurItemIntoAmt"
  536. ,sys.f_remove_zero(tppi.return_qty) as "sPurItemReturnQty"
  537. ,tppi.return_amt as "sPurItemReturnAmt"
  538. ,sys.f_remove_zero(tpi.usable_qty) AS "usableQty"
  539. ,tpi.non_std_code AS "nonStdCode"
  540. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where dkic_b.t_psi_inbound_item.unit_id = ul.unit_id) as "decimalPlaces"
  541. FROM dkic_b.t_psi_inbound_item tpii
  542. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  543. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  544. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  545. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  546. left join dkic_b.t_psi_inbound_item tpsii on tpsii.item_id = tpii.s_into_item_id
  547. left join dkic_b.t_psi_purchase_item tppi on tppi.item_id = tpii.s_pur_item_id
  548. <include refid="Condition"/>
  549. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  550. limit #{end} offset #{start}
  551. </if>
  552. </select>
  553. <!-- 条件查询 (入库成本核对用) -->
  554. <select id="selectCostCheck" resultMap="BaseResultMapResponse">
  555. SELECT
  556. <include refid="Base_Column_List_Response"/>
  557. ,tpid.into_no as "intoNo"
  558. ,tmgs.sku_code as "skuCode"
  559. ,case when tmgs.sku_model is null then tpii.sku_model
  560. when tmgs.sku_model is not null then tmgs.sku_model
  561. else null end as "skuModel"
  562. ,case when tmgs.sku_name is null then tpii.sku_name
  563. when tmgs.sku_name is not null then tmgs.sku_name
  564. else null end as "skuName"
  565. -- ,tmgs.sku_model as "skuModel"
  566. -- ,tmgs.sku_name as "skuName"
  567. -- ,tpii.sku_model as "skuModel"
  568. -- ,tpii.sku_name as "skuName"
  569. ,tmgs.sku_spec as "skuSpec"
  570. ,tmgb.brand_name as "brandName"
  571. ,tmgb.short_name as "shortName"
  572. ,tpp.pur_id as "purId"
  573. ,tpp.pur_no as "purNo"
  574. ,sys.f_remove_zero(tppi.item_qty) as "purItemQty"
  575. ,sys.f_remove_zero(tppi.intoing_qty) as "purItemIntoingQty"
  576. ,sys.f_remove_zero(tppi.into_qty) as "purItemIntoQty"
  577. ,tmp.sup_code as "supCode"
  578. ,tmp.sup_name as "supName"
  579. ,tmw.wh_name AS "whName"
  580. ,tpid.into_date AS "intoDate"
  581. ,sys.f_get_name_i18n(tdk.kind_name_i18n, #{i18n}) AS "intoStatusName"
  582. ,sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) AS "intoTypeName"
  583. ,tmgss.series_name AS "seriesName"
  584. ,case when tpii.flg_cost_check is null then '未核对'
  585. when tpii.flg_cost_check = true then '已核对'
  586. else '未核对' end as "flgCostCheckName"
  587. ,sys.f_remove_zero(tpiv.inv_qty) as inv_qty
  588. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where tpii.unit_id = ul.unit_id) as "decimalPlaces"
  589. FROM dkic_b.t_psi_inbound_item tpii
  590. left join dkic_b.t_psi_inbound tpid on tpii.into_id = tpid.into_id
  591. left join dkic_b.t_psi_inventory tpiv on tpiv.inv_id = tpii.inv_id
  592. left join dkic_b.t_psi_purchase_item tppi on tppi.item_id = tpii.from_item_id
  593. left join dkic_b.t_psi_purchase tpp on tpp.pur_id = tpii.from_id
  594. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  595. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  596. left join dkic_b.t_mst_goods_series tmgss on tmgss.series_id = tmgs.series_id
  597. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  598. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  599. Left join dkic_b.t_mst_supplier tmp on tpid.sup_id = tmp.sup_id
  600. LEFT JOIN sys.t_data_kind tdk ON tdk.kind_code = tpid.into_status
  601. LEFT JOIN sys.t_data_kind tdk1 ON tdk1.kind_code = tpii.into_type
  602. LEFT JOIN dkic_b.t_mst_staff tmss ON tmss.staff_id = tpid.staff_id
  603. LEFT JOIN dkic_b.t_mst_org tmo ON tmo.org_id = tpid.org_id
  604. <where>
  605. tpii.flg_valid
  606. and tpii.into_qty &lt;&gt; 0
  607. <if test="intoId != null and intoId != ''">
  608. AND tpii.into_id = #{intoId}::uuid
  609. </if>
  610. <if test="intoNo != null and intoNo != ''">
  611. AND tpid.into_no LIKE concat('%',my_ex.likequery(#{intoNo}),'%')
  612. </if>
  613. <if test="supId != null and supId != ''">
  614. AND tpid.sup_id = #{supId}::uuid
  615. </if>
  616. <if test="intoDateStart != null">
  617. AND tpid.into_date &gt;= #{intoDateStart}::timestamp with time zone
  618. </if>
  619. <if test="intoDateEnd != null">
  620. AND tpid.into_date &lt; #{intoDateEnd}::timestamp with time zone + interval '1 day'
  621. </if>
  622. <if test="skuName != null and skuName!='' ">
  623. AND tmgs.sku_name LIKE concat('%',my_ex.likequery(#{skuName}),'%')
  624. </if>
  625. <if test="cpId != null">
  626. AND tpii.cp_id = #{cpId}
  627. </if>
  628. <if test="intoTypeName != null">
  629. AND sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) LIKE concat('%',my_ex.likequery(#{intoTypeName}),'%')
  630. </if>
  631. <if test="supName != null">
  632. AND tmp.sup_name LIKE concat('%',my_ex.likequery(#{supName}),'%')
  633. </if>
  634. <if test="viewNoCostDocuments !=null and viewNoCostDocuments == true">
  635. AND tpii.flg_cost_check = false
  636. </if>
  637. <if test="staffName !=null">
  638. AND tmss.staff_name LIKE concat('%',my_ex.likequery(#{staffName}),'%')
  639. </if>
  640. <if test="orgName !=null">
  641. AND tmo.org_name LIKE concat('%',my_ex.likequery(#{orgName}),'%')
  642. </if>
  643. <if test="intoStatusList != null and intoStatusList.size()>0">
  644. AND tpii.into_status =
  645. any(#{intoStatusList, typeHandler= StringListTypeHandler})
  646. </if>
  647. <if test="skuModel != null and skuModel != ''">
  648. AND tmgs.sku_model LIKE concat('%',my_ex.likequery(#{skuModel}),'%')
  649. </if>
  650. <if test="searchText !=null">
  651. AND (tpid.into_no LIKE concat('%',my_ex.likequery(#{searchText}), '%') OR tmgs.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%') OR tmgs.sku_code LIKE concat('%',my_ex.likequery(#{searchText}),'%'))
  652. </if>
  653. </where>
  654. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  655. limit #{end} offset #{start}
  656. </if>
  657. </select>
  658. <!--入库成本核对-->
  659. <update id="updateCost" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  660. update dkic_b.t_psi_inbound_item
  661. <set>
  662. flg_cost_check = true,
  663. <if test="costPrice!= null">
  664. cost_price= #{costPrice},
  665. </if>
  666. <if test="costAmt!= null">
  667. cost_amt = #{costAmt},
  668. </if>
  669. </set>
  670. where item_id = #{itemId}::uuid
  671. </update>
  672. <!--根据来源id删除单据-->
  673. <delete id="deleteItemByFromId">
  674. DELETE FROM dkic_b.t_psi_inbound_item
  675. WHERE from_id = #{fromId}::uuid
  676. </delete>
  677. </mapper>