KwpLedgerTradeMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488
  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.sckw.payment.dao.KwpLedgerTradeMapper">
  4. <resultMap id="BaseResultMap" type="com.sckw.payment.model.KwpLedgerTrade">
  5. <!--@mbg.generated-->
  6. <!--@Table kwp_ledger_trade-->
  7. <id column="id" jdbcType="BIGINT" property="id"/>
  8. <result column="ent_id" jdbcType="BIGINT" property="entId"/>
  9. <result column="t_ledger_no" jdbcType="VARCHAR" property="tLedgerNo"/>
  10. <result column="name" jdbcType="VARCHAR" property="name"/>
  11. <result column="start_time" jdbcType="TIMESTAMP" property="startTime"/>
  12. <result column="end_time" jdbcType="TIMESTAMP" property="endTime"/>
  13. <result column="tax_rate" jdbcType="INTEGER" property="taxRate"/>
  14. <result column="trading" jdbcType="VARCHAR" property="trading"/>
  15. <result column="total_price" jdbcType="DECIMAL" property="totalPrice"/>
  16. <result column="ex_tax_price" jdbcType="DECIMAL" property="exTaxPrice"/>
  17. <result column="settle_price" jdbcType="DECIMAL" property="settlePrice"/>
  18. <result column="actual_price" jdbcType="DECIMAL" property="actualPrice"/>
  19. <result column="audit_user" jdbcType="VARCHAR" property="auditUser"/>
  20. <result column="audit_phone" jdbcType="VARCHAR" property="auditPhone"/>
  21. <result column="success_user" jdbcType="VARCHAR" property="successUser"/>
  22. <result column="success_phone" jdbcType="VARCHAR" property="successPhone"/>
  23. <result column="generate_time" jdbcType="TIMESTAMP" property="generateTime"/>
  24. <result column="receipt_time" jdbcType="TIMESTAMP" property="receiptTime"/>
  25. <result column="url" jdbcType="VARCHAR" property="url"/>
  26. <result column="order_count" jdbcType="INTEGER" property="orderCount"/>
  27. <result column="remark" jdbcType="VARCHAR" property="remark"/>
  28. <result column="status" jdbcType="INTEGER" property="status"/>
  29. <result column="create_by" jdbcType="BIGINT" property="createBy"/>
  30. <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
  31. <result column="update_by" jdbcType="BIGINT" property="updateBy"/>
  32. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
  33. <result column="del_flag" jdbcType="INTEGER" property="delFlag"/>
  34. </resultMap>
  35. <sql id="Base_Column_List">
  36. <!--@mbg.generated-->
  37. id,
  38. ent_id,
  39. t_ledger_no,
  40. `name`,
  41. start_time,
  42. end_time,
  43. tax_rate,
  44. trading,
  45. total_price,
  46. ex_tax_price,
  47. settle_price,
  48. actual_price,
  49. audit_user,
  50. audit_phone,
  51. success_user,
  52. success_phone,
  53. generate_time,
  54. receipt_time,
  55. url,
  56. order_count,
  57. remark,
  58. `status`,
  59. create_by,
  60. create_time,
  61. update_by,
  62. update_time,
  63. del_flag
  64. </sql>
  65. <sql id="sell_col">
  66. klt.id,
  67. klt.t_ledger_no tLedgerNo,
  68. klt.name,
  69. klt.start_time startTime,
  70. klt.end_time endTime,
  71. klt.tax_rate taxRate,
  72. klt.trading,
  73. klt.total_price totalPrice,
  74. klt.ex_tax_price exTaxPrice,
  75. klt.settle_price settlePrice,
  76. klt.actual_price actualPrice,
  77. klt.audit_phone auditPhone,
  78. klt.audit_user auditUser,
  79. klt.url,
  80. klt.generate_time generateTime,
  81. klt.receipt_time receiptTime,
  82. klt.remark,
  83. klt.status,
  84. klt.create_by createBy,
  85. kltu.contacts,
  86. kltu.phone,
  87. kltu.firm_name firmName,
  88. klt.order_count orderCount
  89. </sql>
  90. <sql id="purchase_col">
  91. klt.id,
  92. klt.t_ledger_no tLedgerNo,
  93. klt.name,
  94. klt.start_time startTime,
  95. klt.end_time endTime,
  96. klt.tax_rate taxRate,
  97. klt.trading,
  98. klt.total_price totalPrice,
  99. klt.ex_tax_price exTaxPrice,
  100. klt.settle_price settlePrice,
  101. klt.actual_price actualPrice,
  102. klt.success_phone successPhone,
  103. klt.success_user successUser,
  104. klt.url,
  105. klt.generate_time generateTime,
  106. klt.receipt_time receiptTime,
  107. klt.remark,
  108. klt.create_by createBy,
  109. klt.status,
  110. kltu.contacts,
  111. kltu.phone,
  112. kltu.firm_name firmName,
  113. klt.order_count orderCount
  114. </sql>
  115. <!--销售2 采购1-->
  116. <select id="sellList" resultType="com.sckw.payment.model.dto.LedgerSellDto">
  117. select
  118. <include refid="sell_col"/>
  119. from kwp_ledger_trade klt
  120. inner join kwp_ledger_trade_unit kltu
  121. on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  122. kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
  123. inner join kwp_ledger_trade_unit kltu2
  124. on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type =
  125. #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
  126. <where>
  127. klt.del_flag = 0
  128. and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
  129. <if test="tradeReq.status != null">
  130. and klt.status = #{tradeReq.status}
  131. </if>
  132. <if test="tradeReq.trading != null">
  133. and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
  134. </if>
  135. <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
  136. and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
  137. and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
  138. </if>
  139. <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
  140. and (
  141. klt.t_ledger_no like concat('%'
  142. , #{tradeReq.keywords,jdbcType=VARCHAR}
  143. , '%')
  144. or kltu.firm_name like concat('%'
  145. , #{tradeReq.keywords,jdbcType=VARCHAR}
  146. , '%')
  147. or kltu.contacts like concat('%'
  148. , #{tradeReq.keywords,jdbcType=VARCHAR}
  149. , '%')
  150. )
  151. </if>
  152. </where>
  153. order by klt.generate_time desc
  154. </select>
  155. <select id="list" resultType="com.sckw.payment.model.vo.LedgerSell">
  156. select
  157. <include refid="sell_col"/>
  158. from kwp_ledger_trade klt
  159. inner join kwp_ledger_trade_unit kltu
  160. on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  161. kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
  162. inner join kwp_ledger_trade_unit kltu2
  163. on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type =
  164. #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
  165. <where>
  166. klt.del_flag = 0
  167. <if test="tradeReq.status != null">
  168. and klt.status = #{tradeReq.status}
  169. </if>
  170. <if test="tradeReq.trading != null">
  171. and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
  172. </if>
  173. <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
  174. and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
  175. and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
  176. </if>
  177. <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
  178. and (
  179. klt.t_ledger_no like concat('%'
  180. , #{tradeReq.keywords,jdbcType=VARCHAR}
  181. , '%')
  182. or kltu.firm_name like concat('%'
  183. , #{tradeReq.keywords,jdbcType=VARCHAR}
  184. , '%')
  185. or kltu.contacts like concat('%'
  186. , #{tradeReq.keywords,jdbcType=VARCHAR}
  187. , '%')
  188. )
  189. </if>
  190. </where>
  191. order by klt.generate_time desc
  192. </select>
  193. <select id="purchaseList" resultType="com.sckw.payment.model.dto.LedgerPurchaseDto">
  194. select
  195. <include refid="purchase_col"/>
  196. from kwp_ledger_trade klt
  197. inner join kwp_ledger_trade_unit kltu
  198. on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  199. kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
  200. inner join kwp_ledger_trade_unit kltu2
  201. on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type =
  202. #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
  203. <where>
  204. klt.del_flag = 0
  205. and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
  206. <choose>
  207. <when test="tradeReq.status != null">
  208. and klt.status = #{tradeReq.status}
  209. </when>
  210. <otherwise>
  211. and klt.status not in (1, 6)
  212. </otherwise>
  213. </choose>
  214. <if test="tradeReq.trading != null">
  215. and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
  216. </if>
  217. <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
  218. and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
  219. and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
  220. </if>
  221. <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
  222. and (
  223. klt.t_ledger_no like concat('%'
  224. , #{tradeReq.keywords,jdbcType=VARCHAR}
  225. , '%')
  226. or kltu.firm_name like concat('%'
  227. , #{tradeReq.keywords,jdbcType=VARCHAR}
  228. , '%')
  229. or kltu.contacts like concat('%'
  230. , #{tradeReq.keywords,jdbcType=VARCHAR}
  231. , '%')
  232. )
  233. </if>
  234. </where>
  235. order by klt.generate_time desc
  236. </select>
  237. <select id="countSum" resultType="com.sckw.payment.model.vo.res.LedgerCountSumVo">
  238. select IFNULL(count(1), 0) "ledgerCount",
  239. sum(klt.total_price) "totalPrice"
  240. from kwp_ledger_trade klt
  241. inner join kwp_ledger_trade_unit kltu
  242. on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  243. kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
  244. inner join kwp_ledger_trade_unit kltu2
  245. on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
  246. kltu2.unit_type = #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
  247. <where>
  248. klt.del_flag = 0
  249. and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
  250. <if test="tradeReq.status != null">
  251. and klt.status = #{tradeReq.status}
  252. </if>
  253. <if test="tradeReq.trading != null">
  254. and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
  255. </if>
  256. <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
  257. and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
  258. and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
  259. </if>
  260. <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
  261. and (
  262. klt.t_ledger_no like concat('%'
  263. , #{tradeReq.keywords,jdbcType=VARCHAR}
  264. , '%')
  265. or kltu.firm_name like concat('%'
  266. , #{tradeReq.keywords,jdbcType=VARCHAR}
  267. , '%')
  268. or kltu.contacts like concat('%'
  269. , #{tradeReq.keywords,jdbcType=VARCHAR}
  270. , '%')
  271. )
  272. </if>
  273. </where>
  274. </select>
  275. <select id="countOrder" resultType="java.util.Map">
  276. SELECT count(1) "0",
  277. count(IF(klt.status = 1, 1, NULL)) "1",
  278. count(IF(klt.status = 2, 1, NULL)) "2",
  279. count(IF(klt.status = 3, 1, NULL)) "3",
  280. count(IF(klt.status = 4, 1, NULL)) "4",
  281. count(IF(klt.status = 5, 1, NULL)) "5",
  282. count(IF(klt.status = 6, 1, NULL)) "6"
  283. from kwp_ledger_trade klt
  284. inner join kwp_ledger_trade_unit kltu
  285. on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  286. kltu.unit_type = #{tradeReq.unitType,jdbcType=INTEGER}
  287. inner join kwp_ledger_trade_unit kltu2
  288. on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type =
  289. #{tradeReq.unitTypeTwo,jdbcType=INTEGER}
  290. <where>
  291. klt.del_flag = 0
  292. and kltu2.top_ent_id = #{tradeReq.entId,jdbcType=BIGINT}
  293. <if test="tradeReq.unitType != null and tradeReq.unitType == 2">
  294. and klt.status not in (1,6)
  295. </if>
  296. <if test="tradeReq.trading != null">
  297. and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
  298. </if>
  299. <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
  300. and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
  301. and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
  302. </if>
  303. <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
  304. and (
  305. klt.t_ledger_no like concat('%'
  306. , #{tradeReq.keywords,jdbcType=VARCHAR}
  307. , '%')
  308. or kltu.firm_name like concat('%'
  309. , #{tradeReq.keywords,jdbcType=VARCHAR}
  310. , '%')
  311. or kltu.contacts like concat('%'
  312. , #{tradeReq.keywords,jdbcType=VARCHAR}
  313. , '%')
  314. )
  315. </if>
  316. </where>
  317. </select>
  318. <select id="countOrder2" resultType="java.util.Map">
  319. SELECT count(1) "0",
  320. count(IF(kll_distinct.status = 1, 1, NULL)) "1",
  321. count(IF(kll_distinct.status = 2, 1, NULL)) "2",
  322. count(IF(kll_distinct.status = 3, 1, NULL)) "3",
  323. count(IF(kll_distinct.status = 4, 1, NULL)) "4",
  324. count(IF(kll_distinct.status = 5, 1, NULL)) "5",
  325. count(IF(kll_distinct.status = 6, 1, NULL)) "6"
  326. FROM (
  327. SELECT distinct klt.id, klt.status
  328. from kwp_ledger_trade klt
  329. inner join kwp_ledger_trade_unit kltu
  330. on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  331. <where>
  332. klt.del_flag = 0
  333. <if test="tradeReq.trading != null">
  334. and klt.trading = #{tradeReq.trading,jdbcType=INTEGER}
  335. </if>
  336. <if test="tradeReq.endCreateTime != null and tradeReq.endCreateTime != '' and tradeReq.startCreateTime != null and tradeReq.startCreateTime != ''">
  337. and klt.generate_time between #{tradeReq.startCreateTime,jdbcType=TIMESTAMP}
  338. and #{tradeReq.endCreateTime,jdbcType=TIMESTAMP}
  339. </if>
  340. <if test="tradeReq.keywords != null and tradeReq.keywords != ''">
  341. and (
  342. klt.t_ledger_no like concat('%', #{tradeReq.keywords,jdbcType=VARCHAR}, '%')
  343. or kltu.firm_name like concat('%', #{tradeReq.keywords,jdbcType=VARCHAR}, '%')
  344. or kltu.contacts like concat('%', #{tradeReq.keywords,jdbcType=VARCHAR}, '%')
  345. )
  346. </if>
  347. </where>
  348. ) kll_distinct
  349. </select>
  350. <select id="selectSellIds" resultType="com.sckw.payment.model.dto.LedgerSellDto">
  351. select klt.id,
  352. klt.t_ledger_no tLedgerNo,
  353. klt.name,
  354. klt.start_time startTime,
  355. klt.end_time endTime,
  356. klt.tax_rate taxRate,
  357. klt.trading,
  358. klt.total_price totalPrice,
  359. klt.ex_tax_price exTaxPrice,
  360. klt.settle_price settlePrice,
  361. klt.actual_price actualPrice,
  362. klt.audit_phone auditPhone,
  363. klt.audit_user auditUser,
  364. klt.url,
  365. klt.generate_time generateTime,
  366. klt.receipt_time receiptTime,
  367. klt.remark,
  368. klt.status,
  369. kltu.contacts,
  370. kltu.phone,
  371. kltu.firm_name firmName,
  372. klt.order_count orderCount
  373. from kwp_ledger_trade klt
  374. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  375. <where>
  376. klt.del_flag = 0
  377. and kltu.unit_type = 1
  378. and klt.id in
  379. <foreach collection="ids" item="id" close=")" open="(" separator=",">
  380. #{id,jdbcType=BIGINT}
  381. </foreach>
  382. </where>
  383. order by klt.generate_time desc
  384. </select>
  385. <select id="selectPurchaseIds" resultType="com.sckw.payment.model.dto.LedgerPurchaseDto">
  386. select klt.id,
  387. klt.t_ledger_no tLedgerNo,
  388. klt.name,
  389. klt.start_time startTime,
  390. klt.end_time endTime,
  391. klt.tax_rate taxRate,
  392. klt.trading,
  393. klt.total_price totalPrice,
  394. klt.ex_tax_price exTaxPrice,
  395. klt.settle_price settlePrice,
  396. klt.actual_price actualPrice,
  397. klt.audit_phone auditPhone,
  398. klt.audit_user auditUser,
  399. klt.url,
  400. klt.generate_time generateTime,
  401. klt.receipt_time receiptTime,
  402. klt.remark,
  403. klt.status,
  404. kltu.contacts,
  405. kltu.phone,
  406. kltu.firm_name firmName,
  407. klt.order_count orderCount
  408. from kwp_ledger_trade klt
  409. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  410. <where>
  411. klt.del_flag = 0
  412. and kltu.unit_type = 2
  413. and klt.id in
  414. <foreach collection="ids" item="id" close=")" open="(" separator=",">
  415. #{id,jdbcType=BIGINT}
  416. </foreach>
  417. </where>
  418. order by klt.generate_time desc
  419. </select>
  420. <select id="selectId" resultType="com.sckw.payment.model.dto.LedgerTradeDto">
  421. select klt.id,
  422. klt.t_ledger_no tLedgerNo,
  423. klt.name,
  424. klt.start_time startTime,
  425. klt.end_time endTime,
  426. klt.tax_rate taxRate,
  427. klt.trading,
  428. klt.total_price totalPrice,
  429. klt.ex_tax_price exTaxPrice,
  430. klt.settle_price settlePrice,
  431. klt.actual_price actualPrice,
  432. klt.audit_phone auditPhone,
  433. klt.audit_user auditUser,
  434. klt.success_user successUser,
  435. klt.success_phone successPhone,
  436. klt.url,
  437. klt.generate_time generateTime,
  438. klt.receipt_time receiptTime,
  439. klt.remark,
  440. klt.status,
  441. kltu.contacts,
  442. kltu.top_ent_id purchaseEntId,
  443. kltu.phone,
  444. kltu.firm_name firmName,
  445. klt.order_count orderCount
  446. from kwp_ledger_trade klt
  447. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  448. <where>
  449. klt.del_flag = 0
  450. and kltu.unit_type = #{unitType,jdbcType=INTEGER}
  451. and klt.id = #{id,jdbcType=BIGINT}
  452. </where>
  453. </select>
  454. <update id="updatePrice">
  455. update kwp_ledger_trade
  456. set actual_price = IFNULL(actual_price,0) + #{totalPrice,jdbcType=DECIMAL}
  457. where id = #{id,jdbcType=BIGINT}
  458. </update>
  459. <select id="selectJoin" resultType="java.lang.String">
  460. SELECT klt.t_ledger_no
  461. from kwp_ledger_trade klt
  462. inner join kwp_ledger_trade_unit kltu
  463. on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  464. kltu.unit_type = 1
  465. inner join kwp_ledger_trade_unit kltu2
  466. on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and kltu2.unit_type = 2
  467. <where>
  468. klt.del_flag = 0
  469. and klt.status != 4
  470. and kltu.top_ent_id = #{entId,jdbcType=BIGINT}
  471. and kltu2.top_ent_id = #{entTarget,jdbcType=BIGINT}
  472. </where>
  473. </select>
  474. <select id="countSize" resultType="com.sckw.payment.model.dto.LedgerSize">
  475. select count(distinct if(kltu.unit_type = 2, klt.id, null)) send,
  476. count(distinct if(kltu.unit_type = 1, klt.id, null)) receive
  477. from kwp_ledger_trade klt
  478. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  479. <where>
  480. klt.del_flag = 0
  481. and klt.status != 1
  482. and kltu.top_ent_id = #{entId,jdbcType=BIGINT}
  483. </where>
  484. </select>
  485. </mapper>