InboundItemMapper.xml 48 KB

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