OrderMapper.xml 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934
  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.sale.OrderMapper">
  4. <!-- 通用设置 -->
  5. <!-- 通用查询列 -->
  6. <sql id="Base_Column_List">
  7. order_id, order_no, order_type, org_id, staff_id, cus_id, address_area, address_name, address_no, address_gcj02, address_full, contact_name, contact_phone, sales_channel, delivery_date, sum_quantity, sum_standard, sum_amount, sale_discount, order_status, out_status, outing_qty, outing_amt, out_qty, out_amt, return_qty, return_amt, amt_receivable, amt_handle, amt_residue, remarks, annex_paths, make_staff, make_time, flg_valid, cp_id
  8. </sql>
  9. <!-- 通用查询映射结果 -->
  10. <resultMap id="BaseResultMap" type="com.dk.mdm.model.pojo.sale.Order">
  11. <id column="order_id" property="orderId"/>
  12. <result column="order_no" property="orderNo"/>
  13. <result column="order_type" property="orderType"/>
  14. <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
  15. <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
  16. <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
  17. <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
  18. <result column="address_name" property="addressName"/>
  19. <result column="address_no" property="addressNo"/>
  20. <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
  21. <result column="address_full" property="addressFull"/>
  22. <result column="contact_name" property="contactName"/>
  23. <result column="contact_phone" property="contactPhone"/>
  24. <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
  25. <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
  26. <result column="sum_quantity" property="sumQuantity"/>
  27. <result column="sum_standard" property="sumStandard"/>
  28. <result column="sum_amount" property="sumAmount"/>
  29. <result column="sale_discount" property="saleDiscount"/>
  30. <result column="order_status" property="orderStatus"/>
  31. <result column="out_status" property="outStatus"/>
  32. <result column="outing_qty" property="outingQty"/>
  33. <result column="outing_amt" property="outingAmt"/>
  34. <result column="out_qty" property="outQty"/>
  35. <result column="out_amt" property="outAmt"/>
  36. <result column="return_qty" property="returnQty"/>
  37. <result column="return_amt" property="returnAmt"/>
  38. <result column="amt_receivable" property="amtReceivable"/>
  39. <result column="amt_handle" property="amtHandle"/>
  40. <result column="amt_residue" property="amtResidue"/>
  41. <result column="remarks" property="remarks"/>
  42. <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
  43. <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
  44. <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
  45. <result column="flg_valid" property="flgValid"/>
  46. <result column="cp_id" property="cpId"/>
  47. </resultMap>
  48. <!-- 通用查询映射结果 -->
  49. <resultMap id="BaseResultMapResponse" type="com.dk.mdm.model.response.sale.OrderResponse">
  50. <id column="order_id" property="orderId"/>
  51. <result column="order_no" property="orderNo"/>
  52. <result column="order_type" property="orderType"/>
  53. <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
  54. <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
  55. <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
  56. <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
  57. <result column="address_name" property="addressName"/>
  58. <result column="orgName" property="orgName"/>
  59. <result column="orderTypeName" property="orderTypeName"/>
  60. <result column="staffName" property="staffName"/>
  61. <result column="cusCode" property="cusCode"/>
  62. <result column="cusName" property="cusName"/>
  63. <result column="cusPhone" property="cusPhone"/>
  64. <result column="cusFrom" property="cusFrom"/>
  65. <result column="cusFromName" property="cusFromName"/>
  66. <result column="channelName" property="channelName"/>
  67. <result column="orderStatusName" property="orderStatusName"/>
  68. <result column="outStatusName" property="outStatusName"/>
  69. <result column="makeStaffName" property="makeStaffName"/>
  70. <result column="address_no" property="addressNo"/>
  71. <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
  72. <result column="address_full" property="addressFull"/>
  73. <result column="contact_name" property="contactName"/>
  74. <result column="contact_phone" property="contactPhone"/>
  75. <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
  76. <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
  77. <result column="sum_quantity" property="sumQuantity"/>
  78. <result column="sum_standard" property="sumStandard"/>
  79. <result column="sum_amount" property="sumAmount"/>
  80. <result column="sale_discount" property="saleDiscount"/>
  81. <result column="order_status" property="orderStatus"/>
  82. <result column="out_status" property="outStatus"/>
  83. <result column="outing_qty" property="outingQty"/>
  84. <result column="outing_amt" property="outingAmt"/>
  85. <result column="out_qty" property="outQty"/>
  86. <result column="out_amt" property="outAmt"/>
  87. <result column="return_qty" property="returnQty"/>
  88. <result column="return_amt" property="returnAmt"/>
  89. <result column="amt_receivable" property="amtReceivable"/>
  90. <result column="amt_handle" property="amtHandle"/>
  91. <result column="amt_residue" property="amtResidue"/>
  92. <result column="remarks" property="remarks"/>
  93. <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
  94. <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
  95. <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
  96. <result column="flg_valid" property="flgValid"/>
  97. <result column="cp_id" property="cpId"/>
  98. <collection property="orderItemResponseList" resultMap="orderItemListMap" columnPrefix="toi_"/>
  99. </resultMap>
  100. <resultMap id="orderItemListMap" type="java.util.Map">
  101. <id column="item_id" property="itemId"/>
  102. <result column="order_id" property="orderId" typeHandler="UuidTypeHandler"/>
  103. <result column="item_index" property="itemIndex"/>
  104. <result column="order_no" property="orderNo"/>
  105. <result column="sku_id" property="skuId" typeHandler="UuidTypeHandler"/>
  106. <result column="item_qty" property="itemQty"/>
  107. <result column="price_std" property="priceStd"/>
  108. <result column="amt_std" property="amtStd"/>
  109. <result column="price_standard" property="priceStandard"/>
  110. <result column="price_sale" property="priceSale"/>
  111. <result column="item_amt" property="itemAmt"/>
  112. <result column="price_discount" property="priceDiscount"/>
  113. <result column="non_std_code" property="nonStdCode"/>
  114. <result column="out_status" property="outStatus"/>
  115. <result column="outing_qty" property="outingQty"/>
  116. <result column="outing_amt" property="outingAmt"/>
  117. <result column="out_qty" property="outQty"/>
  118. <result column="out_amt" property="outAmt"/>
  119. <result column="sku_code" property="skuCode"/>
  120. <result column="sku_name" property="skuName"/>
  121. <result column="sku_model" property="skuModel"/>
  122. <result column="return_qty" property="returnQty"/>
  123. <result column="return_amt" property="returnAmt"/>
  124. <result column="remarks" property="remarks"/>
  125. <result column="flg_valid" property="flgValid"/>
  126. <result column="cp_id" property="cpId"/>
  127. <result column="price_purchase" property="pricePurchase"/>
  128. <result column="brand_name" property="brandName"/>
  129. <result column="short_name" property="shortName"/>
  130. </resultMap>
  131. <!--小程序用 查询销售订单带明细-->
  132. <resultMap id="BaseResultMapDetailResponse" type="com.dk.mdm.model.response.sale.OrderResponse">
  133. <id column="order_id" property="orderId"/>
  134. <result column="order_no" property="orderNo"/>
  135. <result column="order_type" property="orderType"/>
  136. <result column="org_id" property="orgId" typeHandler="UuidTypeHandler"/>
  137. <result column="staff_id" property="staffId" typeHandler="UuidTypeHandler"/>
  138. <result column="cus_id" property="cusId" typeHandler="UuidTypeHandler"/>
  139. <result column="address_area" property="addressArea" typeHandler="JsonTypeHandler"/>
  140. <result column="address_name" property="addressName"/>
  141. <result column="address_no" property="addressNo"/>
  142. <result column="address_gcj02" property="addressGcj02" typeHandler="JsonTypeHandler"/>
  143. <result column="address_full" property="addressFull"/>
  144. <result column="contact_name" property="contactName"/>
  145. <result column="contact_phone" property="contactPhone"/>
  146. <result column="sales_channel" property="salesChannel" typeHandler="UuidTypeHandler"/>
  147. <result column="delivery_date" property="deliveryDate" typeHandler="TimestampTypeHandler"/>
  148. <result column="sum_quantity" property="sumQuantity"/>
  149. <result column="sum_standard" property="sumStandard"/>
  150. <result column="sum_amount" property="sumAmount"/>
  151. <result column="sale_discount" property="saleDiscount"/>
  152. <result column="order_status" property="orderStatus"/>
  153. <result column="out_status" property="outStatus"/>
  154. <result column="outing_qty" property="outingQty"/>
  155. <result column="outing_amt" property="outingAmt"/>
  156. <result column="out_qty" property="outQty"/>
  157. <result column="out_amt" property="outAmt"/>
  158. <result column="return_qty" property="returnQty"/>
  159. <result column="return_amt" property="returnAmt"/>
  160. <result column="amt_receivable" property="amtReceivable"/>
  161. <result column="amt_handle" property="amtHandle"/>
  162. <result column="amt_residue" property="amtResidue"/>
  163. <result column="remarks" property="remarks"/>
  164. <result column="annex_paths" property="annexPaths" typeHandler="JsonTypeHandler"/>
  165. <result column="make_staff" property="makeStaff" typeHandler="UuidTypeHandler"/>
  166. <result column="make_time" property="makeTime" typeHandler="TimestampTypeHandler"/>
  167. <result column="flg_valid" property="flgValid"/>
  168. <result column="cp_id" property="cpId"/>
  169. <collection property="orderItemResponseList" resultMap="itemListMap" columnPrefix="list_"/>
  170. </resultMap>
  171. <!--小程序用 关联映射-->
  172. <resultMap id="itemListMap" type="java.util.Map">
  173. <result column="item_id" property="itemId"/>
  174. <result column="order_id" property="orderId"/>
  175. <result column="order_no" property="orderNo"/>
  176. <result column="item_index" property="itemIndex"/>
  177. <result column="sku_id" property="skuId"/>
  178. <result column="item_qty" property="itemQty"/>
  179. <result column="price_std" property="priceStd"/>
  180. <result column="amt_std" property="amtStd"/>
  181. <result column="price_sale" property="priceSale"/>
  182. <result column="item_amt" property="itemAmt"/>
  183. <result column="price_discount" property="priceDiscount"/>
  184. <result column="non_std_code" property="nonStdCode"/>
  185. <result column="out_status" property="outStatus"/>
  186. <result column="outing_qty" property="outingQty"/>
  187. <result column="outing_amt" property="outingAmt"/>
  188. <result column="out_qty" property="outQty"/>
  189. <result column="out_amt" property="outAmt"/>
  190. <result column="return_qty" property="returnQty"/>
  191. <result column="return_amt" property="returnAmt"/>
  192. <result column="remarks" property="remarks"/>
  193. <result column="flg_valid" property="flgValid"/>
  194. <result column="cp_id" property="cpId"/>
  195. <result column="sku_code" property="skuCode"/>
  196. <result column="sku_model" property="skuModel"/>
  197. <result column="sku_name" property="skuName"/>
  198. <result column="brand_name" property="brandName"/>
  199. <result column="short_name" property="shortName"/>
  200. <result column="price_purchase" property="pricePurchase"/>
  201. <result column="price_standard" property="priceStandard"/>
  202. <result column="order_qty" property="orderQty"/>
  203. <result column="price_out" property="priceOut"/>
  204. <result column="inv_id" property="invId"/>
  205. <result column="wh_id" property="whId"/>
  206. <result column="inv_qty" property="invQty"/>
  207. <result column="usable_qty" property="usableQty"/>
  208. <result column="wh_name" property="whName"/>
  209. </resultMap>
  210. <!--小程序用 总单-->
  211. <sql id="Base_Column_List_Detail_Join">
  212. t
  213. .
  214. order_id
  215. ,
  216. t.order_no,
  217. t.order_type,
  218. t.org_id,
  219. t.staff_id,
  220. t.cus_id,
  221. t.address_area,
  222. t.address_name,
  223. t.address_no,
  224. t.address_gcj02,
  225. t.address_full,
  226. t.contact_name,
  227. t.contact_phone,
  228. t.sales_channel,
  229. t.delivery_date,
  230. t.sum_quantity,
  231. t.sum_standard,
  232. t.sum_amount, t.sale_discount,
  233. t.order_status, t.out_status,
  234. t.outing_qty, t.outing_amt, t.out_qty,
  235. t.out_amt, t.return_qty, t.return_amt,
  236. t.amt_receivable, amt_handle, amt_residue,
  237. t.remarks, t.annex_paths, t.make_staff, t.make_time,
  238. t.flg_valid, t.cp_id
  239. </sql>
  240. <!--小程序用 明细-->
  241. <sql id="Base_Column_List_Item_Response_Detail_Join">
  242. toi.item_id AS list_item_id,
  243. toi.order_id AS list_order_id,
  244. t.order_no AS list_order_no,
  245. toi.item_index AS list_item_index,
  246. toi.sku_id AS list_sku_id,
  247. toi.item_qty AS list_item_qty,
  248. toi.item_qty AS list_order_qty,
  249. toi.price_std AS list_price_std,
  250. toi.amt_std AS list_amt_std,
  251. toi.price_sale AS list_price_sale,
  252. toi.price_sale AS list_price_out,
  253. toi.item_amt AS list_item_amt,
  254. toi.price_discount AS list_price_discount,
  255. toi.non_std_code AS list_non_std_code,
  256. toi.out_status AS list_out_status,
  257. toi.outing_qty AS list_outing_qty,
  258. toi.outing_amt AS list_outing_amt,
  259. toi.out_qty AS list_out_qty,
  260. toi.out_amt AS list_out_amt,
  261. toi.return_qty AS list_return_qty,
  262. toi.return_amt AS list_return_amt,
  263. toi.remarks AS list_remarks,
  264. toi.flg_valid AS list_flg_valid,
  265. toi.cp_id AS list_cp_id,
  266. tmgs.sku_code AS list_sku_code,
  267. tmgs.sku_model AS list_sku_model,
  268. tmgs.sku_name AS list_sku_name,
  269. tmgb.brand_name AS list_brand_name,
  270. tmgb.short_name AS list_short_name,
  271. tmgs.price_purchase AS list_price_purchase,
  272. tmgs.price_standard AS list_price_standard,
  273. i.inv_id as list_inv_id,
  274. i.wh_id as list_wh_id,
  275. i.inv_qty as list_inv_qty,
  276. i.usable_qty as list_usable_qty,
  277. i.wh_name as list_wh_name
  278. </sql>
  279. <!-- 通用条件列 -->
  280. <sql id="Condition">
  281. <where>
  282. <if test="orderNo != null and orderNo != ''">
  283. AND t.order_no LIKE concat('%',my_ex.likequery(#{orderNo}),'%')
  284. </if>
  285. <if test="orderType != null and orderType != ''">
  286. AND t.order_type = #{orderType}
  287. </if>
  288. <if test="orgId != null and orgId != ''">
  289. AND t.org_id = #{orgId}
  290. </if>
  291. <if test="staffId != null and staffId != ''">
  292. AND t.staff_id = #{staffId}
  293. </if>
  294. <if test="cusId != null and cusId != ''">
  295. AND t.cus_id = #{cusId}
  296. </if>
  297. <if test="addressArea != null and addressArea != ''">
  298. AND t.address_area = #{addressArea}
  299. </if>
  300. <if test="addressName != null and addressName != ''">
  301. AND t.address_name = #{addressName}
  302. </if>
  303. <if test="addressNo != null and addressNo != ''">
  304. AND t.address_no = #{addressNo}
  305. </if>
  306. <if test="addressGcj02 != null and addressGcj02 != ''">
  307. AND t.address_gcj02 = #{addressGcj02}
  308. </if>
  309. <if test="addressFull != null and addressFull != ''">
  310. AND t.address_full LIKE concat('%',my_ex.likequery(#{addressFull}),'%')
  311. </if>
  312. <if test="contactName != null and contactName != ''">
  313. AND t.contact_name LIKE concat('%',my_ex.likequery(#{contactName}),'%')
  314. </if>
  315. <if test="contactPhone != null and contactPhone != ''">
  316. AND t.contact_phone LIKE concat('%',my_ex.likequery(#{contactPhone}),'%')
  317. </if>
  318. <if test="salesChannel != null and salesChannel != ''">
  319. AND t.sales_channel = #{salesChannel}
  320. </if>
  321. <if test="sumQuantity != null">
  322. AND t.sum_quantity = #{sumQuantity}
  323. </if>
  324. <if test="sumStandard != null">
  325. AND t.sum_standard = #{sumStandard}
  326. </if>
  327. <if test="sumAmount != null">
  328. AND t.sum_amount = #{sumAmount}
  329. </if>
  330. <if test="saleDiscount != null">
  331. AND t.sale_discount = #{saleDiscount}
  332. </if>
  333. <if test="orderStatus != null and orderStatus != ''">
  334. AND t.order_status = #{orderStatus}
  335. </if>
  336. <if test="outStatus != null and outStatus != ''">
  337. AND t.out_status = #{outStatus}
  338. </if>
  339. <if test="outingQty != null">
  340. AND t.outing_qty = #{outingQty}
  341. </if>
  342. <if test="outingAmt != null">
  343. AND t.outing_amt = #{outingAmt}
  344. </if>
  345. <if test="outQty != null">
  346. AND t.out_qty = #{outQty}
  347. </if>
  348. <if test="outAmt != null">
  349. AND t.out_amt = #{outAmt}
  350. </if>
  351. <if test="returnQty != null">
  352. AND t.return_qty = #{returnQty}
  353. </if>
  354. <if test="returnAmt != null">
  355. AND t.return_amt = #{returnAmt}
  356. </if>
  357. <if test="amtReceivable != null">
  358. AND t.amt_receivable = #{amtReceivable}
  359. </if>
  360. <if test="amtHandle != null">
  361. AND t.amt_handle = #{amtHandle}
  362. </if>
  363. <if test="amtResidue != null">
  364. AND t.amt_residue = #{amtResidue}
  365. </if>
  366. <if test="remarks != null and remarks != ''">
  367. AND t.remarks = #{remarks}
  368. </if>
  369. <if test="annexPaths != null and annexPaths != ''">
  370. AND t.annex_paths = #{annexPaths}
  371. </if>
  372. <if test="makeStaff != null and makeStaff != ''">
  373. AND t.make_staff = #{makeStaff}
  374. </if>
  375. <if test="makeTime != null">
  376. AND t.make_time = #{makeTime}
  377. </if>
  378. <if test="cpId != null">
  379. AND t.cp_id = #{cpId}
  380. </if>
  381. <if test="cusPhone != null and cusPhone != ''">
  382. AND tmc.cus_phone LIKE concat('%',my_ex.likequery(#{cusPhone}),'%')
  383. </if>
  384. <if test="cusName != null and cusName != ''">
  385. AND tmc.cus_name LIKE concat('%',my_ex.likequery(#{cusName}),'%')
  386. </if>
  387. <if test="orgIdList != null and orgIdList.size() > 0">
  388. AND t.org_id =any(#{orgIdList, typeHandler=uuidListTypeHandler})
  389. </if>
  390. <if test="staffIdList != null and staffIdList.size() > 0">
  391. AND t.staff_id =any(#{staffIdList, typeHandler=uuidListTypeHandler})
  392. </if>
  393. <if test="outStatusList != null and outStatusList.size() > 0">
  394. AND t.out_status =any(#{outStatusList, typeHandler=StringListTypeHandler})
  395. </if>
  396. <if test="deliveryDateStart != null and deliveryDateEnd != null">
  397. AND t.delivery_date &gt;= #{deliveryDateStart}::timestamp with time zone
  398. AND t.delivery_date &lt; #{deliveryDateEnd}::timestamp with time zone + interval '1 day'
  399. </if>
  400. <if test="makeTimeStart != null and makeTimeEnd != null">
  401. AND t.make_time &gt;= #{makeTimeStart}::timestamp with time zone
  402. AND t.make_time &lt; #{makeTimeEnd}::timestamp with time zone + interval '1 day'
  403. </if>
  404. <if test="flgValidList != null and flgValidList.size()>0">
  405. AND t.flg_valid =any(#{flgValidList, typeHandler=BooleanListTypeHandler})
  406. </if>
  407. </where>
  408. </sql>
  409. <sql id="idsForeach">
  410. <!-- 根据主键orderId批量操作 -->
  411. WHERE order_id in
  412. <foreach collection="ids" index="index" item="item" separator="," open="(" close=")">
  413. #{item}
  414. </foreach>
  415. </sql>
  416. <!-- 查询表t_psi_order,(条件查询+分页)列表 -->
  417. <select id="selectByCond" resultMap="BaseResultMapResponse">
  418. SELECT t.order_id,
  419. t.order_no,
  420. t.order_type,
  421. sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) as "orderTypeName",
  422. t.org_id,
  423. tmo.org_name as "orgName",
  424. t.staff_id,
  425. tms.staff_name as "staffName",
  426. t.cus_id,
  427. tmc.cus_code as "cusCode",
  428. tmc.cus_name as "cusName",
  429. tmc.cus_phone as "cusPhone",
  430. tmc.cus_from as "cusFrom",
  431. tmdd.data_value as "cusFromName",
  432. t.address_area,
  433. t.address_name,
  434. t.address_no,
  435. t.address_gcj02,
  436. t.address_full,
  437. t.contact_name,
  438. t.contact_phone,
  439. t.sales_channel,
  440. tmsc.channel_name as "channelName",
  441. t.delivery_date,
  442. t.sum_quantity,
  443. t.sum_standard,
  444. t.sum_amount,
  445. t.sale_discount,
  446. t.order_status,
  447. sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n}) as "orderStatusName",
  448. t.out_status,
  449. sys.f_get_name_i18n(tdk3.kind_name_i18n, #{i18n}) as "outStatusName",
  450. t.outing_qty,
  451. t.outing_amt,
  452. t.out_qty,
  453. t.out_amt,
  454. t.return_qty,
  455. t.return_amt,
  456. t.amt_receivable,
  457. t.amt_handle,
  458. t.amt_residue,
  459. t.remarks,
  460. t.annex_paths,
  461. makestaff.staff_name as "makeStaffName",
  462. t.make_time,
  463. t.cp_id,
  464. t.flg_valid
  465. FROM dkic_b.t_psi_order as t
  466. left join dkic_b.t_mst_sale_channel tmsc on t.sales_channel = tmsc.channel_id
  467. left join dkic_b.t_mst_org tmo on t.org_id = tmo.org_id
  468. left join dkic_b.t_mst_staff tms on t.staff_id = tms.staff_id
  469. left join dkic_b.t_mst_staff as makestaff on t.make_staff = makestaff.staff_id
  470. left join dkic_b.t_mst_customer tmc on t.cus_id = tmc.cus_id
  471. left join dkic_b.t_mst_dictionary_data tmdd on tmc.cus_from = tmdd.data_id
  472. left join sys.t_data_kind as tdk1 on t.order_type = tdk1.kind_code
  473. left join sys.t_data_kind as tdk2 on t.order_status = tdk2.kind_code
  474. left join sys.t_data_kind as tdk3 on t.out_status = tdk3.kind_code
  475. <include refid="Condition"/>
  476. order by t.op_create_time desc
  477. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  478. limit #{end} offset #{start}
  479. </if>
  480. </select>
  481. <sql id="Base_Column_List_Item_Response_Join">
  482. toi.item_id AS toi_item_id,
  483. t.order_id AS toi_order_id,
  484. t.order_no AS toi_order_no,
  485. toi.order_id AS toi_order_id,
  486. toi.item_index AS toi_item_index,
  487. toi.sku_id AS toi_sku_id,
  488. toi.item_qty AS toi_item_qty,
  489. toi.price_std AS toi_price_std,
  490. toi.amt_std AS toi_amt_std,
  491. toi.price_sale AS toi_price_sale,
  492. toi.item_amt AS toi_item_amt,
  493. toi.price_discount AS toi_price_discount,
  494. toi.non_std_code AS toi_non_std_code,
  495. toi.out_status AS toi_out_status,
  496. toi.outing_qty AS toi_outing_qty,
  497. toi.outing_amt AS toi_outing_amt,
  498. toi.out_qty AS toi_out_qty,
  499. toi.out_amt AS toi_out_amt,
  500. toi.return_qty AS toi_return_qty,
  501. toi.return_amt AS toi_return_amt,
  502. toi.remarks AS toi_remarks,
  503. toi.flg_valid AS toi_flg_valid,
  504. toi.cp_id AS toi_cp_id,
  505. tmgs.sku_code AS toi_sku_code,
  506. tmgs.sku_model AS toi_sku_model,
  507. tmgs.sku_name AS toi_sku_name,
  508. tmgb.brand_name AS toi_brand_name,
  509. tmgb.short_name AS toi_short_name,
  510. tmgs.price_purchase AS toi_price_purchase,
  511. tmgs.price_standard AS toi_price_standard
  512. </sql>
  513. <!-- 查询表t_psi_order,(条件查询+分页)列表 -->
  514. <select id="purSaleSelectByCond" resultMap="BaseResultMapResponse">
  515. SELECT t.order_id,
  516. t.order_no,
  517. t.order_type,
  518. sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) as "orderTypeName",
  519. t.org_id,
  520. tmo.org_name as "orgName",
  521. t.staff_id,
  522. tms.staff_name as "staffName",
  523. t.cus_id,
  524. tmc.cus_code as "cusCode",
  525. tmc.cus_name as "cusName",
  526. tmc.cus_phone as "cusPhone",
  527. tmc.cus_from as "cusFrom",
  528. tmdd.data_value as "cusFromName",
  529. t.address_area,
  530. t.address_name,
  531. t.address_no,
  532. t.address_gcj02,
  533. t.address_full,
  534. t.contact_name,
  535. t.contact_phone,
  536. t.sales_channel,
  537. tmsc.channel_name as "channelName",
  538. t.delivery_date,
  539. t.sum_quantity,
  540. t.sum_standard,
  541. t.sum_amount,
  542. t.sale_discount,
  543. t.order_status,
  544. sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n}) as "orderStatusName",
  545. t.out_status,
  546. sys.f_get_name_i18n(tdk3.kind_name_i18n, #{i18n}) as "outStatusName",
  547. t.outing_qty,
  548. t.outing_amt,
  549. t.out_qty,
  550. t.out_amt,
  551. t.return_qty,
  552. t.return_amt,
  553. t.amt_receivable,
  554. t.amt_handle,
  555. t.amt_residue,
  556. t.remarks,
  557. t.annex_paths,
  558. makestaff.staff_name as "makeStaffName",
  559. t.make_time,
  560. t.cp_id,
  561. t.flg_valid,
  562. <include refid="Base_Column_List_Item_Response_Join"/>
  563. FROM dkic_b.t_psi_order as t
  564. left join dkic_b.t_psi_order_item toi on toi.order_id = t.order_id
  565. left join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = toi.sku_id
  566. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  567. left join dkic_b.t_mst_sale_channel tmsc on t.sales_channel = tmsc.channel_id
  568. left join dkic_b.t_mst_org tmo on t.org_id = tmo.org_id
  569. left join dkic_b.t_mst_staff tms on t.staff_id = tms.staff_id
  570. left join dkic_b.t_mst_staff as makestaff on t.make_staff = makestaff.staff_id
  571. left join dkic_b.t_mst_customer tmc on t.cus_id = tmc.cus_id
  572. left join dkic_b.t_mst_dictionary_data tmdd on tmc.cus_from = tmdd.data_id
  573. left join sys.t_data_kind as tdk1 on t.order_type = tdk1.kind_code
  574. left join sys.t_data_kind as tdk2 on t.order_status = tdk2.kind_code
  575. left join sys.t_data_kind as tdk3 on t.out_status = tdk3.kind_code
  576. <include refid="Condition"/>
  577. order by t.op_create_time desc
  578. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  579. limit #{end} offset #{start}
  580. </if>
  581. </select>
  582. <!-- 查询表t_psi_order,(条件查询)个数 -->
  583. <select id="countByCond" resultType="Long">
  584. SELECT
  585. count(1)
  586. FROM dkic_b.t_psi_order as t
  587. left join dkic_b.t_mst_customer tmc on t.cus_id = tmc.cus_id
  588. left join dkic_b.t_psi_order_item toi on toi.order_id = t.order_id
  589. <include refid="Condition"/>
  590. </select>
  591. <!-- 根据主键查询表t_psi_order的一行数据 -->
  592. <select id="selectById" resultMap="BaseResultMapResponse">
  593. SELECT t.order_id,
  594. t.order_no,
  595. t.order_type,
  596. sys.f_get_name_i18n(tdk1.kind_name_i18n, #{i18n}) as "orderTypeName",
  597. t.org_id,
  598. tmo.org_name as "orgName",
  599. t.staff_id,
  600. tms.staff_name as "staffName",
  601. t.cus_id,
  602. tmc.cus_code as "cusCode",
  603. tmc.cus_name as "cusName",
  604. tmc.cus_phone as "cusPhone",
  605. tmc.cus_from as "cusFrom",
  606. tmdd.data_value as "cusFromName",
  607. t.address_area,
  608. t.address_name,
  609. t.address_no,
  610. t.address_gcj02,
  611. t.address_full,
  612. t.contact_name,
  613. t.contact_phone,
  614. t.sales_channel,
  615. tmsc.channel_name as "channelName",
  616. t.delivery_date,
  617. t.sum_quantity,
  618. t.sum_standard,
  619. t.sum_amount,
  620. t.sale_discount,
  621. t.order_status,
  622. sys.f_get_name_i18n(tdk2.kind_name_i18n, #{i18n}) as "orderStatusName",
  623. t.out_status,
  624. sys.f_get_name_i18n(tdk3.kind_name_i18n, #{i18n}) as "outStatusName",
  625. t.outing_qty,
  626. t.outing_amt,
  627. t.out_qty,
  628. t.out_amt,
  629. t.return_qty,
  630. t.return_amt,
  631. t.amt_receivable,
  632. t.amt_handle,
  633. t.amt_residue,
  634. t.remarks,
  635. t.annex_paths,
  636. makestaff.staff_name as "makeStaffName",
  637. t.make_time,
  638. t.cp_id
  639. FROM dkic_b.t_psi_order as t
  640. left join dkic_b.t_mst_sale_channel tmsc on t.sales_channel = tmsc.channel_id
  641. left join dkic_b.t_mst_org tmo on t.org_id = tmo.org_id
  642. left join dkic_b.t_mst_staff tms on t.staff_id = tms.staff_id
  643. left join dkic_b.t_mst_staff as makestaff on t.make_staff = makestaff.staff_id
  644. left join dkic_b.t_mst_customer tmc on t.cus_id = tmc.cus_id
  645. left join dkic_b.t_mst_dictionary_data tmdd on tmc.cus_from = tmdd.data_id
  646. left join sys.t_data_kind as tdk1 on t.order_type = tdk1.kind_code
  647. left join sys.t_data_kind as tdk2 on t.order_status = tdk2.kind_code
  648. left join sys.t_data_kind as tdk3 on t.out_status = tdk3.kind_code
  649. WHERE t.order_id = #{orderId}::uuid
  650. </select>
  651. <!-- 根据主键锁定表t_psi_order的一行数据 -->
  652. <select id="selectByIdForUpdate" resultMap="BaseResultMap">
  653. SELECT
  654. <include refid="Base_Column_List"/>
  655. FROM dkic_b.t_psi_order
  656. WHERE order_id = #{id}::uuid
  657. for update
  658. </select>
  659. <!-- 根据主键锁定表t_psi_order的多行数据 -->
  660. <select id="selectByIdsForUpdate" resultMap="BaseResultMap">
  661. SELECT
  662. <include refid="Base_Column_List"/>
  663. FROM dkic_b.t_psi_order
  664. <include refid="idsForeach"/>
  665. for update
  666. </select>
  667. <insert id="insertBatch">
  668. insert into dkic_b.t_psi_order
  669. (
  670. <trim suffixOverrides=",">
  671. order_no,
  672. order_type,
  673. org_id,
  674. staff_id,
  675. cus_id,
  676. address_area,
  677. address_name,
  678. address_no,
  679. address_gcj02,
  680. address_full,
  681. contact_name,
  682. contact_phone,
  683. sales_channel,
  684. delivery_date,
  685. sum_quantity,
  686. sum_standard,
  687. sum_amount,
  688. sale_discount,
  689. order_status,
  690. out_status,
  691. outing_qty,
  692. outing_amt,
  693. out_qty,
  694. out_amt,
  695. return_qty,
  696. return_amt,
  697. amt_receivable,
  698. amt_handle,
  699. amt_residue,
  700. remarks,
  701. annex_paths,
  702. make_staff,
  703. make_time,
  704. cp_id,
  705. op_app_code,
  706. </trim>
  707. )
  708. values
  709. <foreach collection="list" index="index" item="item" separator=",">
  710. (
  711. <trim suffixOverrides=",">
  712. #{item.orderNo},
  713. #{item.orderType},
  714. #{item.orgId}::uuid,
  715. #{item.staffId}::uuid,
  716. #{item.cusId}::uuid,
  717. #{item.addressArea},
  718. #{item.addressName},
  719. #{item.addressNo},
  720. #{item.addressGcj02},
  721. #{item.addressFull},
  722. #{item.contactName},
  723. #{item.contactPhone},
  724. #{item.salesChannel}::uuid,
  725. #{item.deliveryDate},
  726. #{item.sumQuantity},
  727. #{item.sumStandard},
  728. #{item.sumAmount},
  729. #{item.saleDiscount},
  730. #{item.orderStatus},
  731. #{item.outStatus},
  732. #{item.outingQty},
  733. #{item.outingAmt},
  734. #{item.outQty},
  735. #{item.outAmt},
  736. #{item.returnQty},
  737. #{item.returnAmt},
  738. #{item.amtReceivable},
  739. #{item.amtHandle},
  740. #{item.amtResidue},
  741. #{item.remarks},
  742. #{item.annexPaths},
  743. #{item.makeStaff}::uuid,
  744. #{item.makeTime},
  745. #{item.cpId},
  746. #{item.opAppCode},
  747. </trim>
  748. )
  749. </foreach>
  750. </insert>
  751. <!-- 根据id修改-->
  752. <update id="updateById" parameterType="com.dk.mdm.model.pojo.sale.Order">
  753. update dkic_b.t_psi_order
  754. <set>
  755. <if test=" et!=null and et.orderType != null">
  756. order_type =#{et.orderType,jdbcType=VARCHAR},
  757. </if>
  758. <if test=" et!=null and et.orgId != null">
  759. org_id =#{et.orgId,typeHandler=UuidTypeHandler},
  760. </if>
  761. <if test=" et!=null and et.staffId != null">
  762. staff_id =#{et.staffId,typeHandler=UuidTypeHandler},
  763. </if>
  764. <if test=" et!=null and et.cusId != null">
  765. cus_id =#{et.cusId,typeHandler=UuidTypeHandler},
  766. </if>
  767. <if test=" et!=null and et.addressArea != null">
  768. address_area =#{et.addressArea,typeHandler=JsonTypeHandler},
  769. </if>
  770. <if test=" et!=null and et.addressName != null">
  771. address_name =#{et.addressName,jdbcType=VARCHAR},
  772. </if>
  773. <if test=" et!=null and et.addressNo != null">
  774. address_no =#{et.addressNo,jdbcType=VARCHAR},
  775. </if>
  776. <if test=" et!=null and et.addressGcj02 != null">
  777. address_gcj02 =#{et.addressGcj02,typeHandler=JsonTypeHandler},
  778. </if>
  779. <if test=" et!=null and et.addressFull != null">
  780. address_full =#{et.addressFull,jdbcType=VARCHAR},
  781. </if>
  782. <if test=" et!=null and et.contactName != null">
  783. contact_name =#{et.contactName,jdbcType=VARCHAR},
  784. </if>
  785. <if test=" et!=null and et.contactPhone != null">
  786. contact_phone =#{et.contactPhone,jdbcType=VARCHAR},
  787. </if>
  788. <if test=" et!=null and et.salesChannel != null">
  789. sales_channel =#{et.salesChannel,jdbcType=OTHER},
  790. </if>
  791. <if test=" et!=null and et.deliveryDate != null">
  792. delivery_date =#{et.deliveryDate,jdbcType=DATE},
  793. </if>
  794. <if test=" et!=null and et.sumQuantity != null">
  795. sum_quantity =#{et.sumQuantity,jdbcType=NUMERIC},
  796. </if>
  797. <if test=" et!=null and et.sumStandard != null">
  798. sum_standard =#{et.sumStandard,jdbcType=NUMERIC},
  799. </if>
  800. <if test=" et!=null and et.sumAmount != null">
  801. sum_amount =#{et.sumAmount,jdbcType=NUMERIC},
  802. </if>
  803. <if test=" et!=null and et.saleDiscount != null">
  804. sale_discount =#{et.saleDiscount,jdbcType=NUMERIC},
  805. </if>
  806. <if test=" et!=null and et.orderStatus != null">
  807. order_status =#{et.orderStatus,jdbcType=VARCHAR},
  808. </if>
  809. <if test=" et!=null and et.outStatus != null">
  810. out_status =#{et.outStatus,jdbcType=VARCHAR},
  811. </if>
  812. <if test=" et!=null and et.outingQty != null">
  813. outing_qty = outing_qty + #{et.outingQty,jdbcType=NUMERIC},
  814. </if>
  815. <if test=" et!=null and et.outingAmt != null">
  816. outing_amt = outing_amt + #{et.outingAmt,jdbcType=NUMERIC},
  817. </if>
  818. <if test=" et!=null and et.outQty != null">
  819. out_qty =out_qty + #{et.outQty,jdbcType=NUMERIC},
  820. </if>
  821. <if test=" et!=null and et.outAmt != null">
  822. out_amt = out_amt + #{et.outAmt,jdbcType=NUMERIC},
  823. </if>
  824. <if test=" et!=null and et.returnQty != null">
  825. return_qty =#{et.returnQty,jdbcType=NUMERIC},
  826. </if>
  827. <if test=" et!=null and et.returnAmt != null">
  828. return_amt =#{et.returnAmt,jdbcType=NUMERIC},
  829. </if>
  830. <if test=" et!=null and et.amtReceivable != null">
  831. amt_receivable =#{et.amtReceivable,jdbcType=NUMERIC},
  832. </if>
  833. <if test=" et!=null and et.amtHandle != null">
  834. amt_handle =#{et.amtHandle,jdbcType=NUMERIC},
  835. </if>
  836. <if test=" et!=null and et.amtResidue != null">
  837. amt_residue =#{et.amtResidue,jdbcType=NUMERIC},
  838. </if>
  839. <if test=" et!=null and et.remarks != null">
  840. remarks =#{et.remarks,jdbcType=VARCHAR},
  841. </if>
  842. <if test=" et!=null and et.annexPaths != null">
  843. annex_paths =#{et..annexPaths,typeHandler=JsonTypeHandler},
  844. </if>
  845. <if test=" et!=null and et.makeStaff != null">
  846. make_staff =#{et.makeStaff,jdbcType=OTHER},
  847. </if>
  848. <if test=" et!=null and et.makeTime != null">
  849. make_time =#{et.makeTime,jdbcType=TIMESTAMP},
  850. </if>
  851. <if test=" et!=null and et.flgValid != null">
  852. flg_valid =#{et.flgValid,jdbcType=BOOLEAN},
  853. </if>
  854. <if test=" et!=null and et.cpId != null">
  855. cp_id =#{et.cpId,jdbcType=INTEGER},
  856. </if>
  857. </set>
  858. where order_id =#{et.orderId,typeHandler=UuidTypeHandler}
  859. and sum_quantity >= (out_qty + outing_qty)
  860. </update>
  861. <!-- 小程序 条件查询(总单带明细)-->
  862. <select id="selectByCondDetail" resultMap="BaseResultMapDetailResponse">
  863. SELECT
  864. <include refid="Base_Column_List_Detail_Join"/>,
  865. <include refid="Base_Column_List_Item_Response_Detail_Join"/>
  866. FROM dkic_b.t_psi_order as t
  867. left join dkic_b.t_psi_order_item toi on toi.order_id = t.order_id
  868. inner join dkic_b.t_mst_goods_sku tmgs on tmgs.sku_id = toi.sku_id
  869. left join dkic_b.t_mst_goods_brand tmgb on tmgb.brand_id = tmgs.brand_id
  870. left join(SELECT T.*
  871. FROM (select tpi.inv_id,
  872. tpi.wh_id,
  873. tpi.inv_qty,
  874. tpi.usable_qty,
  875. tpi.sku_id,
  876. tpi.non_std_code,
  877. tpi.cp_id,
  878. tmw.wh_name,
  879. rank()
  880. over (partition by tpi.cp_id,tpi.sku_id,tpi.non_std_code order by tpi.inv_id) as RK
  881. from dkic_b.t_psi_inventory as tpi
  882. left join dkic_b.t_mst_warehouse as tmw on tmw.wh_id = tpi.wh_id) T
  883. WHERE T.RK = 1) as i
  884. on i.sku_id = toi.sku_id and i.non_std_code = toi.non_std_code and i.cp_id = toi.cp_id
  885. <include refid="Condition"/>
  886. order by t.op_create_time desc
  887. <if test="pageSize != null and currentPage != null and pageSize != 0 and currentPage != 0">
  888. limit #{end} offset #{start}
  889. </if>
  890. </select>
  891. <!--小程序-->
  892. <select id="countByCondDetail" resultType="Long">
  893. SELECT
  894. count(1)
  895. FROM dkic_b.t_psi_order as t
  896. <include refid="Condition"/>
  897. </select>
  898. <!--修改退货信息 -->
  899. <update id="updateReturnMessage" parameterType="com.dk.mdm.model.pojo.sale.Order">
  900. update dkic_b.t_psi_order
  901. <set>
  902. <if test=" returnQty != null">
  903. return_qty = return_qty + #{returnQty,jdbcType=NUMERIC},
  904. </if>
  905. <if test=" returnAmt != null">
  906. return_amt = return_amt + #{returnAmt,jdbcType=NUMERIC},
  907. </if>
  908. </set>
  909. where order_id = #{orderId,typeHandler=UuidTypeHandler}
  910. and out_qty >= return_qty
  911. </update>
  912. </mapper>