InboundItemMapper.xml 47 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115
  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}::uuid
  188. </if>
  189. <if test="fromItemId != null and fromItemId != ''">
  190. AND tpii.from_item_id = #{fromItemId}::uuid
  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. <if test="sPurId != null">
  211. AND tpii.s_pur_id = #{sPurId,typeHandler=UuidTypeHandler}
  212. </if>
  213. <if test="sPurItemId != null">
  214. AND tpii.s_pur_item_id = #{sPurItemId,typeHandler=UuidTypeHandler}
  215. </if>
  216. </where>
  217. </sql>
  218. <sql id="idsForeach">
  219. <!-- 根据主键itemId批量操作 -->
  220. WHERE item_id in
  221. <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
  222. #{item}
  223. </foreach>
  224. </sql>
  225. <!-- 查询表dkic_b.t_psi_inbound_item,(条件查询+分页)列表 -->
  226. <select id="selectByCond" resultMap="BaseResultMapResponse">
  227. SELECT
  228. <include refid="Base_Column_List_Response"/>
  229. ,tpii.wh_id as "whId"
  230. ,tmw.wh_name as "whName"
  231. ,tmgs.sku_code as "skuCode"
  232. ,tpii.sku_model as "skuModel"
  233. ,tpii.sku_name as "skuName"
  234. ,tmgs.sku_spec as "skuSpec"
  235. ,tmgs.price_purchase
  236. ,tmgs.sku_images
  237. ,tmgb.brand_name as "brandName"
  238. ,tmgb.short_name as "shortName"
  239. ,tpp.pur_id as "purId"
  240. ,tpp.pur_no as "purNo"
  241. ,sys.f_remove_zero(tppi.item_qty) as "purItemQty"
  242. ,sys.f_remove_zero(tppi.intoing_qty) as "purItemIntoingQty"
  243. ,sys.f_remove_zero(tppi.into_qty) as "purItemIntoQty"
  244. ,sys.f_remove_zero(tpiv.inv_qty) as inv_qty
  245. ,tmgs.pack_box
  246. ,tmgus.unit_name as "subUnitName"
  247. ,tmgu.unit_name as "unitName"
  248. ,tmgs.flg_sub_unit
  249. ,dkic_b.f_box_piece(tmgus.unit_name,tmgu.unit_name,tpii.intoing_box,tpii.intoing_piece) as "ingBoxPiece"
  250. ,dkic_b.f_box_piece(tmgus.unit_name,tmgu.unit_name,tpii.into_box,tpii.into_piece) as "boxPiece"
  251. ,tmgu.decimal_places as "decimalPlaces"
  252. FROM dkic_b.t_psi_inbound_item tpii
  253. left join dkic_b.t_mst_unit as tmgu on tpii.unit_id = tmgu.unit_id
  254. left join dkic_b.t_mst_unit as tmgus on tpii.sub_unit_id = tmgus.unit_id
  255. left join dkic_b.t_psi_inventory tpiv on tpiv.inv_id = tpii.inv_id
  256. left join dkic_b.t_psi_purchase_item tppi on tppi.item_id = tpii.from_item_id
  257. left join dkic_b.t_psi_purchase tpp on tpp.pur_id = tpii.from_id
  258. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  259. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  260. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  261. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  262. <include refid="Condition"/>
  263. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  264. limit #{end} offset #{start}
  265. </if>
  266. </select>
  267. <!-- 查询表dkic_b.t_psi_inbound_item,(条件查询)个数 -->
  268. <select id="countByCond" resultType="Long">
  269. SELECT
  270. count(1)
  271. FROM dkic_b.t_psi_inbound_item tpii
  272. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  273. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  274. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  275. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  276. <include refid="Condition"/>
  277. </select>
  278. <!-- 根据主键查询表dkic_b.t_psi_inbound_item的一行数据 -->
  279. <select id="selectById" resultMap="BaseResultMapResponse">
  280. SELECT
  281. <include refid="Base_Column_List_Response"/>
  282. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where tpii.unit_id = ul.unit_id) as "decimalPlaces"
  283. FROM dkic_b.t_psi_inbound_item tpii
  284. WHERE tpii.item_id = #{id}::uuid
  285. </select>
  286. <!-- 根据主键锁定表dkic_b.t_psi_inbound_item的一行数据 -->
  287. <select id="selectByIdForUpdate" resultMap="BaseResultMap">
  288. SELECT
  289. <include refid="Base_Column_List"/>
  290. ,(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"
  291. FROM dkic_b.t_psi_inbound_item
  292. WHERE item_id = #{itemId}
  293. for update
  294. </select>
  295. <!-- 根据主键锁定表dkic_b.t_psi_inbound_item的多行数据 -->
  296. <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
  297. SELECT
  298. <include refid="Base_Column_List"/>
  299. ,(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"
  300. FROM dkic_b.t_psi_inbound_item
  301. <include refid="idsForeach"/>
  302. for update
  303. </select>
  304. <insert id="insertBatch">
  305. insert into dkic_b.t_psi_inbound_item
  306. (
  307. <trim suffixOverrides=",">
  308. into_id,
  309. into_type,
  310. from_id,
  311. from_item_id,
  312. item_index,
  313. sku_id,
  314. price_into,
  315. non_std_code,
  316. into_status,
  317. intoing_qty,
  318. intoing_amt,
  319. into_qty,
  320. into_amt,
  321. return_qty,
  322. return_amt,
  323. remarks,
  324. inv_id,
  325. cost_price,
  326. cost_amt,
  327. out_qty,
  328. inv_qty,
  329. cp_id,
  330. op_app_code,
  331. s_into_id,
  332. s_into_item_id,
  333. s_pur_id,
  334. s_pur_item_id,
  335. </trim>
  336. )
  337. values
  338. <foreach collection="list" index="index" item="item" separator=",">
  339. (
  340. <trim suffixOverrides=",">
  341. #{item.intoId}::uuid,
  342. #{item.intoType},
  343. #{item.fromId}::uuid,
  344. #{item.fromItemId}::uuid,
  345. #{item.itemIndex},
  346. #{item.skuId}::uuid,
  347. #{item.priceInto},
  348. #{item.nonStdCode},
  349. #{item.intoStatus},
  350. #{item.intoingQty},
  351. #{item.intoingAmt},
  352. #{item.intoQty},
  353. #{item.intoAmt},
  354. #{item.returnQty},
  355. #{item.returnAmt},
  356. #{item.remarks},
  357. #{item.invId}::uuid,
  358. #{item.costPrice},
  359. #{item.costAmt},
  360. #{item.outQty},
  361. #{item.invQty},
  362. #{item.cpId},
  363. #{item.opAppCode},
  364. #{item.sIntoId}::uuid,
  365. #{item.sIntoItemId}::uuid,
  366. #{item.sPurId}::uuid,
  367. #{item.sPurItemId}::uuid,
  368. </trim>
  369. )
  370. </foreach>
  371. </insert>
  372. <update id="updateAmount" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  373. update dkic_b.t_psi_inbound_item
  374. <set>
  375. <if test="returnQty!= null">
  376. return_qty= #{returnQty},
  377. </if>
  378. <if test="returnAmt!= null">
  379. return_amt = #{returnAmt},
  380. </if>
  381. </set>
  382. where item_id = #{itemId}::uuid
  383. </update>
  384. <!-- 入库办理显示字段 -->
  385. <sql id="Base_Column_List_Response_Into">
  386. tpii.item_id,
  387. tpii.into_id,
  388. tpii.into_type,
  389. tpii.from_id,
  390. tpii.from_item_id,
  391. tpii.item_index,
  392. tpii.sku_id,
  393. tpii.price_into,
  394. tpii.non_std_code,
  395. tpii.into_status,
  396. sys.f_remove_zero(tpii.intoing_qty) as intoing_qty,
  397. tpii.intoing_amt,
  398. sys.f_remove_zero(tpii.into_qty) as into_qty,
  399. tpii.into_amt,
  400. sys.f_remove_zero(tpii.return_qty) as return_qty,
  401. tpii.return_amt,
  402. tpii.remarks,
  403. tpii.inv_id,
  404. tpii.cost_price,
  405. tpii.cost_amt,
  406. tpii.wh_id,
  407. sys.f_remove_zero(tpii.inv_qty) as inv_qty,
  408. tpii.intoing_box,
  409. tpii.intoing_piece,
  410. tpii.into_box,
  411. tpii.into_piece,
  412. tpii.pack_box
  413. </sql>
  414. <sql id="Base_Column_List_Response_Out">
  415. tpoi.item_id,
  416. tpoi.out_id as into_id,
  417. tpoi.out_type as into_type,
  418. tpoi.from_id,
  419. tpoi.from_item_id,
  420. tpoi.item_index,
  421. tpoi.sku_id,
  422. tpoi.price_out as price_into,
  423. tpoi.non_std_code,
  424. tpoi.out_status as into_status,
  425. tpoi.outing_qty as intoing_amt ,
  426. sys.f_remove_zero(tpoi.outing_amt) as intoing_qty ,
  427. sys.f_remove_zero(tpoi.out_qty) as into_qty ,
  428. tpoi.out_amt as into_amt ,
  429. sys.f_remove_zero(tpoi.return_qty) as return_qty,
  430. tpoi.return_amt,
  431. tpoi.remarks,
  432. tpoi.inv_id,
  433. tpoi.cost_price,
  434. tpoi.cost_amt,
  435. null as wh_id,
  436. null as inv_qty,
  437. tpoi.outing_box as intoing_box,
  438. tpoi.outing_piece as intoing_piece,
  439. tpoi.out_box as into_box,
  440. tpoi.out_piece as into_piece,
  441. tpoi.pack_box
  442. </sql>
  443. <!--条件查询 web端入库办理用-->
  444. <select id="selectInboundItem" resultMap="BaseResultMapResponse">
  445. SELECT
  446. <include refid="Base_Column_List_Response_Into"/>
  447. ,tmgs.sku_code as "skuCode"
  448. ,tmgs.sku_model as "skuModel"
  449. ,tmgs.sku_name as "skuName"
  450. ,tmgs.sku_spec as "skuSpec"
  451. ,tmgb.brand_name as "brandName"
  452. ,tmgb.short_name as "shortName"
  453. ,tmw.wh_name as "whName"
  454. ,tmu.unit_code as "unitCode"
  455. ,tmu.unit_name as "unitName"
  456. ,tmu2.unit_code as "subUnitCode"
  457. ,tmu2.unit_name as "subUnitName"
  458. ,tmu.decimal_places as "decimalPlaces"
  459. FROM dkic_b.t_psi_inbound_item tpii
  460. <include refid="Select_Inbound_Join_Table_Into"/>
  461. <where>
  462. tpii.flg_valid
  463. <if test="intoId != null and intoId != ''">
  464. AND tpii.into_id = #{intoId}::uuid
  465. </if>
  466. </where>
  467. union all
  468. select
  469. <include refid="Base_Column_List_Response_Out"/>
  470. ,tmgs.sku_code as "skuCode"
  471. ,tmgs.sku_model as "skuModel"
  472. ,tmgs.sku_name as "skuName"
  473. ,tmgs.sku_spec as "skuSpec"
  474. ,tmgb.brand_name as "brandName"
  475. ,tmgb.short_name as "shortName"
  476. ,null as "whName"
  477. ,tmu.unit_code as "unitCode"
  478. ,tmu.unit_name as "unitName"
  479. ,tmu2.unit_code as "subUnitCode"
  480. ,tmu2.unit_name as "subUnitName"
  481. ,tmu.decimal_places as "decimalPlaces"
  482. from dkic_b.t_psi_outbound_item tpoi
  483. <include refid="Select_Inbound_Join_Table_Out"/>
  484. <where>
  485. tpoi.flg_valid
  486. <if test="intoId != null and intoId != ''">
  487. AND tpoi.out_id = #{intoId}::uuid
  488. </if>
  489. </where>
  490. </select>
  491. <!--入库办理显示入库关联表-->
  492. <sql id="Select_Inbound_Join_Table_Into">
  493. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  494. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  495. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  496. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  497. left join dkic_b.t_mst_unit tmu on tmu.unit_id = tpii.unit_id
  498. left join dkic_b.t_mst_unit tmu2 on tmu2.unit_id = tpii.unit_id
  499. </sql>
  500. <sql id="Select_Inbound_Join_Table_Out">
  501. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpoi.sku_id
  502. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  503. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpoi.inv_id
  504. left join dkic_b.t_mst_unit tmu on tmu.unit_id = tpoi.unit_id
  505. left join dkic_b.t_mst_unit tmu2 on tmu2.unit_id = tpoi.sub_unit_id
  506. </sql>
  507. <delete id="deleteByFromId" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  508. DELETE FROM dkic_b.t_psi_inbound_item WHERE from_item_id = #{fromItemId}::uuid
  509. </delete>
  510. <update id="updateIntoStatus" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  511. update dkic_b.t_psi_inbound_item
  512. <set>
  513. <if test="intoStatus!= null">
  514. into_status= #{intoStatus},
  515. </if>
  516. </set>
  517. where item_id = #{itemId}::uuid
  518. </update>
  519. <select id="selectByInboundReturnCond" resultMap="BaseResultMapReturnResponse">
  520. SELECT
  521. <include refid="Base_Column_List_Response"/>
  522. ,tmgs.sku_code as "skuCode"
  523. ,tmgs.sku_model as "skuModel"
  524. ,tmgs.sku_name as "skuName"
  525. ,tmgs.sku_spec as "skuSpec"
  526. ,tmgs.sku_images
  527. ,tmgb.brand_name as "brandName"
  528. ,tmgb.short_name as "shortName"
  529. ,tmw.wh_id as "whId"
  530. ,tmw.wh_code as "whCode"
  531. ,tmw.wh_name as "whName"
  532. ,sys.f_remove_zero(tpsii.intoing_qty) as "sIntoItemIntoingQty"
  533. ,tpsii.intoing_amt as "sIntoItemIntoingAmt"
  534. ,sys.f_remove_zero(tpsii.into_qty) as "sIntoItemIntoQty"
  535. ,tpsii.into_amt as "sIntoItemIntoAmt"
  536. ,sys.f_remove_zero(tpsii.return_qty) as "sIntoItemReturnQty"
  537. ,tpsii.return_amt as "sIntoItemReturnAmt"
  538. ,sys.f_remove_zero(tppi.intoing_qty) as "sPurItemIntoingQty"
  539. ,tppi.intoing_amt as "sPurItemIntoingAmt"
  540. ,sys.f_remove_zero(tppi.into_qty) as "sPurItemIntoQty"
  541. ,tppi.into_amt as "sPurItemIntoAmt"
  542. ,sys.f_remove_zero(tppi.return_qty) as "sPurItemReturnQty"
  543. ,tppi.return_amt as "sPurItemReturnAmt"
  544. ,sys.f_remove_zero(tpi.usable_qty) AS "usableQty"
  545. ,tpi.non_std_code AS "nonStdCode"
  546. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where tpii.unit_id = ul.unit_id) as "decimalPlaces"
  547. FROM dkic_b.t_psi_inbound_item tpii
  548. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  549. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  550. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  551. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  552. left join dkic_b.t_psi_inbound_item tpsii on tpsii.item_id = tpii.s_into_item_id
  553. left join dkic_b.t_psi_purchase_item tppi on tppi.item_id = tpii.s_pur_item_id
  554. <include refid="Condition"/>
  555. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  556. limit #{end} offset #{start}
  557. </if>
  558. </select>
  559. <!-- 条件查询 (入库成本核对用) -->
  560. <select id="selectCostCheck" resultMap="BaseResultMapResponse">
  561. SELECT
  562. <include refid="Base_Column_List_Response"/>
  563. ,tpid.into_no as "intoNo"
  564. ,tmgs.sku_code as "skuCode"
  565. ,case when tmgs.sku_model is null then tpii.sku_model
  566. when tmgs.sku_model is not null then tmgs.sku_model
  567. else null end as "skuModel"
  568. ,case when tmgs.sku_name is null then tpii.sku_name
  569. when tmgs.sku_name is not null then tmgs.sku_name
  570. else null end as "skuName"
  571. -- ,tmgs.sku_model as "skuModel"
  572. -- ,tmgs.sku_name as "skuName"
  573. -- ,tpii.sku_model as "skuModel"
  574. -- ,tpii.sku_name as "skuName"
  575. ,tmgs.sku_spec as "skuSpec"
  576. ,tmgb.brand_name as "brandName"
  577. ,tmgb.short_name as "shortName"
  578. ,tpp.pur_id as "purId"
  579. ,tpp.pur_no as "purNo"
  580. ,sys.f_remove_zero(tppi.item_qty) as "purItemQty"
  581. ,sys.f_remove_zero(tppi.intoing_qty) as "purItemIntoingQty"
  582. ,sys.f_remove_zero(tppi.into_qty) as "purItemIntoQty"
  583. ,tmp.sup_code as "supCode"
  584. ,tmp.sup_name as "supName"
  585. ,tmw.wh_name AS "whName"
  586. ,tpid.into_date AS "intoDate"
  587. ,sys.f_get_name_i18n(tdk.kind_name_i18n, #{i18n}) AS "intoStatusName"
  588. ,sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) AS "intoTypeName"
  589. ,tmgss.series_name AS "seriesName"
  590. ,case when tpii.flg_cost_check is null then '未核对'
  591. when tpii.flg_cost_check = true then '已核对'
  592. else '未核对' end as "flgCostCheckName"
  593. ,sys.f_remove_zero(tpiv.inv_qty) as inv_qty
  594. ,(select ul.decimal_places from dkic_b.t_mst_unit ul where tpii.unit_id = ul.unit_id) as "decimalPlaces"
  595. FROM dkic_b.t_psi_inbound_item tpii
  596. left join dkic_b.t_psi_inbound tpid on tpii.into_id = tpid.into_id
  597. left join dkic_b.t_psi_inventory tpiv on tpiv.inv_id = tpii.inv_id
  598. left join dkic_b.t_psi_purchase_item tppi on tppi.item_id = tpii.from_item_id
  599. left join dkic_b.t_psi_purchase tpp on tpp.pur_id = tpii.from_id
  600. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = tpii.sku_id
  601. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  602. left join dkic_b.t_mst_goods_series tmgss on tmgss.series_id = tmgs.series_id
  603. left join dkic_b.t_psi_inventory tpi on tpi.inv_id = tpii.inv_id
  604. left join dkic_b.t_mst_warehouse tmw on tmw.wh_id = tpii.wh_id
  605. Left join dkic_b.t_mst_supplier tmp on tpid.sup_id = tmp.sup_id
  606. LEFT JOIN sys.t_data_kind tdk ON tdk.kind_code = tpid.into_status
  607. LEFT JOIN sys.t_data_kind tdk1 ON tdk1.kind_code = tpii.into_type
  608. LEFT JOIN dkic_b.t_mst_staff tmss ON tmss.staff_id = tpid.staff_id
  609. LEFT JOIN dkic_b.t_mst_org tmo ON tmo.org_id = tpid.org_id
  610. <where>
  611. tpii.flg_valid
  612. and tpii.into_qty &lt;&gt; 0
  613. <if test="intoId != null and intoId != ''">
  614. AND tpii.into_id = #{intoId}::uuid
  615. </if>
  616. <if test="intoNo != null and intoNo != ''">
  617. AND tpid.into_no LIKE concat('%',my_ex.likequery(#{intoNo}),'%')
  618. </if>
  619. <if test="supId != null and supId != ''">
  620. AND tpid.sup_id = #{supId}::uuid
  621. </if>
  622. <if test="intoDateStart != null">
  623. AND tpid.into_date &gt;= #{intoDateStart}::timestamp with time zone
  624. </if>
  625. <if test="intoDateEnd != null">
  626. AND tpid.into_date &lt; #{intoDateEnd}::timestamp with time zone + interval '1 day'
  627. </if>
  628. <if test="skuName != null and skuName!='' ">
  629. AND tmgs.sku_name LIKE concat('%',my_ex.likequery(#{skuName}),'%')
  630. </if>
  631. <if test="cpId != null">
  632. AND tpii.cp_id = #{cpId}
  633. </if>
  634. <if test="intoTypeName != null">
  635. AND sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) LIKE concat('%',my_ex.likequery(#{intoTypeName}),'%')
  636. </if>
  637. <if test="supName != null">
  638. AND tmp.sup_name LIKE concat('%',my_ex.likequery(#{supName}),'%')
  639. </if>
  640. <if test="viewNoCostDocuments !=null and viewNoCostDocuments == true">
  641. AND tpii.flg_cost_check = false
  642. </if>
  643. <if test="staffName !=null">
  644. AND tmss.staff_name LIKE concat('%',my_ex.likequery(#{staffName}),'%')
  645. </if>
  646. <if test="orgName !=null">
  647. AND tmo.org_name LIKE concat('%',my_ex.likequery(#{orgName}),'%')
  648. </if>
  649. <if test="intoStatusList != null and intoStatusList.size()>0">
  650. AND tpii.into_status =
  651. any(#{intoStatusList, typeHandler= StringListTypeHandler})
  652. </if>
  653. <if test="skuModel != null and skuModel != ''">
  654. AND tmgs.sku_model LIKE concat('%',my_ex.likequery(#{skuModel}),'%')
  655. </if>
  656. <if test="searchText !=null">
  657. AND (tpid.into_no LIKE concat('%',my_ex.likequery(#{searchText}), '%')
  658. OR tmgs.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
  659. OR tmgs.sku_model LIKE concat('%',my_ex.likequery(#{searchText}),'%'))
  660. </if>
  661. </where>
  662. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  663. limit #{end} offset #{start}
  664. </if>
  665. </select>
  666. <!--入库成本核对-->
  667. <update id="updateCost" parameterType="com.dk.mdm.model.pojo.ivt.InboundItem">
  668. update dkic_b.t_psi_inbound_item
  669. <set>
  670. flg_cost_check = true,
  671. <if test="costPrice!= null">
  672. cost_price= #{costPrice},
  673. </if>
  674. <if test="costAmt!= null">
  675. cost_amt = #{costAmt},
  676. </if>
  677. </set>
  678. where item_id = #{itemId}::uuid
  679. </update>
  680. <!--根据来源id删除单据-->
  681. <update id="deleteItemByFromId">
  682. update dkic_b.t_psi_inbound_item
  683. <set>
  684. flg_valid = false
  685. </set>
  686. WHERE from_id = #{fromId}::uuid
  687. </update>
  688. <!--查询入库价-->
  689. <select id="selectPriceInto" resultMap="BaseResultMapResponse">
  690. SELECT
  691. ti.item_id,ti.price_into,ti.cost_price,ti.cost_amt
  692. FROM dkic_b.t_psi_inbound_item ti
  693. left join dkic_b.t_psi_inbound t ON ti.into_id = t.into_id
  694. where t.flg_valid
  695. and ti.flg_valid
  696. and ti.price_into > 0
  697. and t.into_type != '外协入库'
  698. and ti.wh_id = #{whId}::uuid
  699. and ti.sku_id =#{skuId}::uuid
  700. and ti.non_std_code = #{nonStdCode}
  701. order by make_time desc
  702. </select>
  703. <select id="selectCostCheckList" resultType="map">
  704. SELECT
  705. A."skuModel",
  706. A."skuName",
  707. A."skuId",
  708. A."costPrice",
  709. A."costAmt",
  710. A."brandId",
  711. A."skuImages",
  712. A."brandName",
  713. A."shortName",
  714. json_agg (
  715. json_build_object (
  716. 'itemId', A."itemId",
  717. 'intoId', A."intoId",
  718. 'outId', A."outId",
  719. 'invId', A."invId",
  720. 'intoType', A."intoType",
  721. 'outType', A."outType",
  722. 'fromId', A."fromId",
  723. 'fromItemId', A."fromItemId",
  724. 'skuModel', A."skuModel",
  725. 'skuName', A."skuName",
  726. 'skuId', A."skuId",
  727. 'intoQty', A."intoQty",
  728. 'outQty', A."outQty",
  729. 'costPrice', A."costPrice",
  730. 'costAmt', A."costAmt",
  731. 'brandId', A."brandId",
  732. 'skuImages', A."skuImages",
  733. 'brandName', A."brandName",
  734. 'shortName', A."shortName"
  735. )
  736. ) AS "itemList"
  737. FROM
  738. (
  739. SELECT
  740. tpii.sku_model AS "skuModel",
  741. tpii.sku_name AS "skuName",
  742. tpii.sku_id AS "skuId",
  743. tpii.cost_price AS "costPrice",
  744. tpii.cost_amt AS "costAmt",
  745. tmgs.brand_id AS "brandId",
  746. tmgs.sku_images AS "skuImages",
  747. tmgb.brand_name AS "brandName",
  748. tmgb.short_name AS "shortName",
  749. tpii.item_id AS "itemId",
  750. tpii.into_id AS "intoId",
  751. NULL AS "outId",
  752. tpii.inv_id AS "invId",
  753. null AS "outType",
  754. tpii.into_type AS "intoType",
  755. tpii.from_id AS "fromId",
  756. tpii.from_item_id AS "fromItemId",
  757. tpii.into_qty AS "intoQty",
  758. null AS "outQty"
  759. FROM
  760. dkic_b.t_psi_inbound_item tpii
  761. LEFT JOIN dkic_b.t_psi_inbound tpi ON tpi.into_id = tpii.into_id
  762. LEFT JOIN dkic_b.t_mst_goods_sku tmgs ON tmgs.sku_id = tpii.sku_id
  763. LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
  764. <where>
  765. tpii.cost_price = 0
  766. AND tpii.into_qty != 0
  767. AND tpii.sku_model IS NOT NULL
  768. AND tpii.into_type != '入库类型-采退入库'
  769. <if test="intoId != null and intoId != ''">
  770. AND tpii.into_id = #{intoId}::uuid
  771. </if>
  772. <if test="cpId != null">
  773. AND tpii.cp_id = #{cpId}
  774. </if>
  775. <if test="brandId != null">
  776. AND tmgs.brand_id = #{brandId}::uuid
  777. </if>
  778. <if test="intoDateStart != null">
  779. AND tpi.into_date &gt;= #{intoDateStart}::timestamp with time zone
  780. </if>
  781. <if test="intoDateEnd != null">
  782. AND tpi.into_date &lt; #{intoDateEnd}::timestamp with time zone + interval '1 day'
  783. </if>
  784. <if test="viewNoCostDocuments !=null and viewNoCostDocuments == true">
  785. AND tpii.flg_cost_check = false
  786. </if>
  787. <if test="staffName !=null">
  788. AND tmss.staff_name LIKE concat('%',my_ex.likequery(#{staffName}),'%')
  789. </if>
  790. <if test="intoStatusList != null and intoStatusList.size()>0">
  791. AND tpii.into_status =
  792. any(#{intoStatusList, typeHandler= StringListTypeHandler})
  793. </if>
  794. <if test="brandId != null and brandId != ''">
  795. AND tmgb.brand_id = #{brandId}::uuid
  796. </if>
  797. <if test="skuIdFlag !=null and skuIdFlag == true">
  798. AND tpii.sku_id is null
  799. </if>
  800. <if test="searchText !=null">
  801. AND (tpii.sku_model LIKE concat('%',my_ex.likequery(#{searchText}), '%')
  802. OR tpii.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
  803. )
  804. </if>
  805. </where>
  806. UNION ALL
  807. SELECT
  808. tpoi.sku_model AS "skuModel",
  809. tpoi.sku_name AS "skuName",
  810. tpoi.sku_id AS "skuId",
  811. tpoi.cost_price AS "costPrice",
  812. tpoi.cost_amt AS "costAmt",
  813. tmgs.brand_id AS "brandId",
  814. tmgs.sku_images AS "skuImages",
  815. tmgb.brand_name AS "brandName",
  816. tmgb.short_name AS "shortName",
  817. tpoi.item_id AS "itemId",
  818. NULL AS "intoId",
  819. tpoi.out_id AS "outId",
  820. tpoi.inv_id AS "invId",
  821. tpoi.out_type AS "outType",
  822. null AS "intoType",
  823. tpoi.from_id AS "fromId",
  824. tpoi.from_item_id AS "fromItemId",
  825. null AS "intoQty",
  826. tpoi.out_qty AS "outQty"
  827. FROM
  828. dkic_b.t_psi_outbound_item tpoi
  829. LEFT JOIN dkic_b.t_psi_outbound tpo ON tpo.out_id = tpoi.out_id
  830. LEFT JOIN dkic_b.t_mst_goods_sku tmgs ON tmgs.sku_id = tpoi.sku_id
  831. LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
  832. <where>
  833. tpoi.cost_price = 0
  834. AND tpoi.out_qty != 0
  835. AND tpoi.sku_model IS NOT NULL
  836. <if test="outId != null and outId != ''">
  837. AND tpoi.out_id = #{outId}::uuid
  838. </if>
  839. <if test="cpId != null">
  840. AND tpoi.cp_id = #{cpId}
  841. </if>
  842. <if test="intoDateStart != null">
  843. AND tpo.out_date &gt;= #{intoDateStart}::timestamp with time zone
  844. </if>
  845. <if test="intoDateEnd != null">
  846. AND tpo.out_date &lt; #{intoDateEnd}::timestamp with time zone + interval '1 day'
  847. </if>
  848. <if test="brandId != null and brandId != ''">
  849. AND tmgb.brand_id = #{brandId}::uuid
  850. </if>
  851. <if test="skuIdFlag !=null and skuIdFlag == true">
  852. AND tpoi.sku_id is null
  853. </if>
  854. <if test="searchText !=null">
  855. AND (tpoi.sku_model LIKE concat('%',my_ex.likequery(#{searchText}), '%')
  856. OR tpoi.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
  857. )
  858. </if>
  859. </where>
  860. ) AS A
  861. GROUP BY
  862. A."skuModel",
  863. A."skuName",
  864. A."skuId",
  865. A."costPrice",
  866. A."costAmt",
  867. A."brandId",
  868. A."skuImages",
  869. A."brandName",
  870. A."shortName"
  871. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  872. limit #{end} offset #{start}
  873. </if>
  874. </select>
  875. <select id="countByCondList" resultType="Long">
  876. SELECT COUNT(1) from
  877. (
  878. SELECT
  879. A."skuModel",
  880. A."skuName",
  881. A."skuId",
  882. A."costPrice",
  883. A."costAmt",
  884. A."brandId",
  885. A."skuImages",
  886. A."brandName",
  887. A."shortName",
  888. json_agg (
  889. json_build_object (
  890. 'itemId', A."itemId",
  891. 'intoId', A."intoId",
  892. 'outId', A."outId",
  893. 'invId', A."invId",
  894. 'fromId', A."fromId",
  895. 'fromItemId', A."fromItemId",
  896. 'skuModel', A."skuModel",
  897. 'skuName', A."skuName",
  898. 'skuId', A."skuId",
  899. 'intoQty', A."intoQty",
  900. 'costPrice', A."costPrice",
  901. 'costAmt', A."costAmt",
  902. 'brandId', A."brandId",
  903. 'skuImages', A."skuImages",
  904. 'brandName', A."brandName",
  905. 'shortName', A."shortName"
  906. )
  907. ) AS "itemList"
  908. FROM
  909. (
  910. SELECT
  911. tpii.sku_model AS "skuModel",
  912. tpii.sku_name AS "skuName",
  913. tpii.sku_id AS "skuId",
  914. tpii.cost_price AS "costPrice",
  915. tpii.cost_amt AS "costAmt",
  916. tmgs.brand_id AS "brandId",
  917. tmgs.sku_images AS "skuImages",
  918. tmgb.brand_name AS "brandName",
  919. tmgb.short_name AS "shortName",
  920. tpii.item_id AS "itemId",
  921. tpii.into_id AS "intoId",
  922. NULL AS "outId",
  923. tpii.inv_id AS "invId",
  924. tpii.from_id AS "fromId",
  925. tpii.from_item_id AS "fromItemId",
  926. tpii.into_qty AS "intoQty"
  927. FROM
  928. dkic_b.t_psi_inbound_item tpii
  929. LEFT JOIN dkic_b.t_psi_inbound tpi ON tpi.into_id = tpii.into_id
  930. LEFT JOIN dkic_b.t_mst_goods_sku tmgs ON tmgs.sku_id = tpii.sku_id
  931. LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
  932. <where>
  933. tpii.cost_price = 0
  934. AND tpii.into_qty != 0
  935. AND tpii.sku_model IS NOT NULL
  936. AND tpii.into_type != '入库类型-采退入库'
  937. <if test="intoId != null and intoId != ''">
  938. AND tpii.into_id = #{intoId}::uuid
  939. </if>
  940. <if test="cpId != null">
  941. AND tpii.cp_id = #{cpId}
  942. </if>
  943. <if test="brandId != null">
  944. AND tmgs.brand_id = #{brandId}::uuid
  945. </if>
  946. <if test="intoDateStart != null">
  947. AND tpi.into_date &gt;= #{intoDateStart}::timestamp with time zone
  948. </if>
  949. <if test="intoDateEnd != null">
  950. AND tpi.into_date &lt; #{intoDateEnd}::timestamp with time zone + interval '1 day'
  951. </if>
  952. <if test="viewNoCostDocuments !=null and viewNoCostDocuments == true">
  953. AND tpii.flg_cost_check = false
  954. </if>
  955. <if test="staffName !=null">
  956. AND tmss.staff_name LIKE concat('%',my_ex.likequery(#{staffName}),'%')
  957. </if>
  958. <if test="intoStatusList != null and intoStatusList.size()>0">
  959. AND tpii.into_status =
  960. any(#{intoStatusList, typeHandler= StringListTypeHandler})
  961. </if>
  962. <if test="brandId != null and brandId != ''">
  963. AND tmgb.brand_id = #{brandId}::uuid
  964. </if>
  965. <if test="skuIdFlag !=null and skuIdFlag == true">
  966. AND tpii.sku_id is null
  967. </if>
  968. <if test="searchText !=null">
  969. AND (tpii.sku_model LIKE concat('%',my_ex.likequery(#{searchText}), '%')
  970. OR tpii.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
  971. )
  972. </if>
  973. </where>
  974. UNION ALL
  975. SELECT
  976. tpoi.sku_model AS "skuModel",
  977. tpoi.sku_name AS "skuName",
  978. tpoi.sku_id AS "skuId",
  979. tpoi.cost_price AS "costPrice",
  980. tpoi.cost_amt AS "costAmt",
  981. tmgs.brand_id AS "brandId",
  982. tmgs.sku_images AS "skuImages",
  983. tmgb.brand_name AS "brandName",
  984. tmgb.short_name AS "shortName",
  985. tpoi.item_id AS "itemId",
  986. NULL AS "intoId",
  987. tpoi.out_id AS "outId",
  988. tpoi.inv_id AS "invId",
  989. tpoi.from_id AS "fromId",
  990. tpoi.from_item_id AS "fromItemId",
  991. tpoi.out_qty AS "intoQty"
  992. FROM
  993. dkic_b.t_psi_outbound_item tpoi
  994. LEFT JOIN dkic_b.t_psi_outbound tpo ON tpo.out_id = tpoi.out_id
  995. LEFT JOIN dkic_b.t_mst_goods_sku tmgs ON tmgs.sku_id = tpoi.sku_id
  996. LEFT JOIN dkic_b.t_mst_goods_brand tmgb ON tmgb.brand_id = tmgs.brand_id
  997. <where>
  998. tpoi.cost_price = 0
  999. AND tpoi.out_qty != 0
  1000. AND tpoi.sku_model IS NOT NULL
  1001. <if test="outId != null and outId != ''">
  1002. AND tpoi.out_id = #{outId}::uuid
  1003. </if>
  1004. <if test="cpId != null">
  1005. AND tpoi.cp_id = #{cpId}
  1006. </if>
  1007. <if test="intoDateStart != null">
  1008. AND tpo.out_date &gt;= #{intoDateStart}::timestamp with time zone
  1009. </if>
  1010. <if test="intoDateEnd != null">
  1011. AND tpo.out_date &lt; #{intoDateEnd}::timestamp with time zone + interval '1 day'
  1012. </if>
  1013. <if test="brandId != null and brandId != ''">
  1014. AND tmgb.brand_id = #{brandId}::uuid
  1015. </if>
  1016. <if test="skuIdFlag !=null and skuIdFlag == true">
  1017. AND tpoi.sku_id is null
  1018. </if>
  1019. <if test="searchText !=null">
  1020. AND (tpoi.sku_model LIKE concat('%',my_ex.likequery(#{searchText}), '%')
  1021. OR tpoi.sku_name LIKE concat('%',my_ex.likequery(#{searchText}),'%')
  1022. )
  1023. </if>
  1024. </where>
  1025. ) AS A
  1026. GROUP BY
  1027. A."skuModel",
  1028. A."skuName",
  1029. A."skuId",
  1030. A."costPrice",
  1031. A."costAmt",
  1032. A."brandId",
  1033. A."skuImages",
  1034. A."brandName",
  1035. A."shortName") AS B
  1036. </select>
  1037. <!--查询当前订单下是否存在退货单-->
  1038. <select id="selectHasReturn" resultType="Long">
  1039. SELECT count(1)
  1040. FROM dkic_b.t_psi_inbound_item ti
  1041. left join dkic_b.t_psi_inbound t on t.into_id = ti.into_id
  1042. where t.flg_valid = #{flgValid}
  1043. AND ti.s_pur_id = #{sPurId,typeHandler=UuidTypeHandler}
  1044. AND ti.into_type = #{intoType}
  1045. </select>
  1046. <!--根据条件进行查询-->
  1047. <select id="selectMessageByOtherCondition" resultMap="BaseResultMapResponse">
  1048. SELECT
  1049. <include refid="Base_Column_List_Response"/>
  1050. FROM dkic_b.t_psi_inbound_item tpii
  1051. <where>
  1052. <if test="intoId != null and intoId != ''">
  1053. AND tpii.into_id = #{intoId}::uuid
  1054. </if>
  1055. <if test="fromId != null and fromId != ''">
  1056. AND tpoi.from_id = #{fromId}::uuid
  1057. </if>
  1058. </where>
  1059. </select>
  1060. </mapper>