KwpSettlementTradeMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377
  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.KwpSettlementTradeMapper">
  4. <resultMap id="BaseResultMap" type="com.sckw.payment.model.KwpSettlementTrade">
  5. <!--@mbg.generated-->
  6. <!--@Table kwp_settlement_trade-->
  7. <id column="id" jdbcType="BIGINT" property="id"/>
  8. <result column="ent_id" jdbcType="BIGINT" property="entId"/>
  9. <result column="t_ledger_id" jdbcType="BIGINT" property="tLedgerId"/>
  10. <result column="st_order_no" jdbcType="VARCHAR" property="stOrderNo"/>
  11. <result column="name" jdbcType="VARCHAR" property="name"/>
  12. <result column="total_price" jdbcType="DECIMAL" property="totalPrice"/>
  13. <result column="actual_price" jdbcType="DECIMAL" property="actualPrice"/>
  14. <result column="receipt_time" jdbcType="TIMESTAMP" property="receiptTime"/>
  15. <result column="audit_user" jdbcType="VARCHAR" property="auditUser"/>
  16. <result column="audit_phone" jdbcType="VARCHAR" property="auditPhone"/>
  17. <result column="success_user" jdbcType="VARCHAR" property="successUser"/>
  18. <result column="success_phone" jdbcType="VARCHAR" property="successPhone"/>
  19. <result column="trading" jdbcType="VARCHAR" property="trading"/>
  20. <result column="remark" jdbcType="VARCHAR" property="remark"/>
  21. <result column="status" jdbcType="INTEGER" property="status"/>
  22. <result column="create_by" jdbcType="BIGINT" property="createBy"/>
  23. <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
  24. <result column="update_by" jdbcType="BIGINT" property="updateBy"/>
  25. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
  26. <result column="del_flag" jdbcType="INTEGER" property="delFlag"/>
  27. </resultMap>
  28. <sql id="Base_Column_List">
  29. <!--@mbg.generated-->
  30. id,
  31. ent_id,
  32. t_ledger_id,
  33. st_order_no,
  34. `name`,
  35. total_price,
  36. actual_price,
  37. receipt_time,
  38. audit_user,
  39. audit_phone,
  40. success_user,
  41. trading,
  42. success_phone,
  43. remark,
  44. `status`,
  45. create_by,
  46. create_time,
  47. update_by,
  48. update_time,
  49. del_flag
  50. </sql>
  51. <sql id="query">
  52. <where>
  53. kst.del_flag = 0
  54. and kltu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
  55. <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
  56. and (
  57. klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  58. or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  59. or kst.st_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  60. )
  61. </if>
  62. <if test="settlementReq.status != null">
  63. and kst.status = #{settlementReq.status,jdbcType=INTEGER}
  64. </if>
  65. <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
  66. and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
  67. </if>
  68. <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
  69. and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
  70. </if>
  71. </where>
  72. </sql>
  73. <select id="pageSelect" resultType="com.sckw.payment.model.dto.SettlementTradeDto">
  74. select kst.id,
  75. kst.status,
  76. kst.st_order_no,
  77. klt.t_ledger_no tLedgerNo,
  78. kst.create_time,
  79. kst.receipt_time,
  80. cast(kst.actual_price as char) actualPrice,
  81. cast(kst.total_price as char) totalPrice,
  82. cast((kst.total_price - kst.actual_price) as char) waitPrice,
  83. kst.audit_user auditUser,
  84. kst.audit_phone auditPhone,
  85. kst.success_user successUser,
  86. kst.success_phone successPhone,
  87. kst.create_time,
  88. kst.t_ledger_id,
  89. klt.id ledgerId,
  90. klt.name,
  91. klt.trading,
  92. kltu.firm_name firmName,
  93. kst.update_by
  94. from kwp_settlement_trade kst
  95. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  96. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  97. kltu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
  98. inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
  99. kltu2.unit_type =
  100. #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
  101. <where>
  102. kst.del_flag = 0
  103. and kltu2.top_ent_id = #{settlementReq.entId,jdbcType=INTEGER}
  104. <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
  105. and (
  106. klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  107. or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  108. or kst.st_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  109. )
  110. </if>
  111. <if test="settlementReq.trading != null and settlementReq.trading != ''">
  112. and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
  113. </if>
  114. <if test="settlementReq.status != null">
  115. and kst.status = #{settlementReq.status,jdbcType=INTEGER}
  116. </if>
  117. <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
  118. and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
  119. </if>
  120. <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
  121. and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
  122. </if>
  123. </where>
  124. order by kst.create_time desc
  125. </select>
  126. <select id="sumMoney" resultType="com.sckw.payment.model.vo.res.SettlementSumVo">
  127. select count(1) allCount,
  128. IFNULL(sum(kst.total_price), 0) receiveAll,
  129. IFNULL(sum(kst.actual_price), 0) alreadyReceive,
  130. IFNULL(sum(kst.total_price) - sum(kst.actual_price), 0) waitReceive
  131. from kwp_settlement_trade kst
  132. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  133. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  134. kltu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
  135. inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
  136. kltu2.unit_type =
  137. #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
  138. <where>
  139. kst.del_flag = 0
  140. and kltu2.top_ent_id = #{settlementReq.entId,jdbcType=INTEGER}
  141. <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
  142. and (
  143. klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  144. or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  145. or kst.st_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  146. )
  147. </if>
  148. <if test="settlementReq.status != null">
  149. and kst.status = #{settlementReq.status,jdbcType=INTEGER}
  150. </if>
  151. <if test="settlementReq.trading != null and settlementReq.trading != ''">
  152. and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
  153. </if>
  154. <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
  155. and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
  156. </if>
  157. <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
  158. and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
  159. </if>
  160. </where>
  161. </select>
  162. <select id="countOrder" resultType="java.util.Map">
  163. select count(1) "0",
  164. count(if(kst.status = 3, 1, null)) "3",
  165. count(if(kst.status = 2, 1, null)) "2",
  166. count(if(kst.status = 1, 1, null)) "1"
  167. from kwp_settlement_trade kst
  168. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  169. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  170. kltu.unit_type = #{settlementReq.unitType,jdbcType=INTEGER}
  171. inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
  172. kltu2.unit_type =
  173. #{settlementReq.unitTypeTwo,jdbcType=INTEGER}
  174. <where>
  175. kst.del_flag = 0
  176. and kltu2.top_ent_id = #{settlementReq.entId,jdbcType=INTEGER}
  177. <if test="settlementReq.keywords != null and settlementReq.keywords != ''">
  178. and (
  179. klt.name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  180. or kltu.firm_name like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  181. or kst.st_order_no like concat('%', #{settlementReq.keywords,jdbcType=VARCHAR}, '%')
  182. )
  183. </if>
  184. <if test="settlementReq.trading != null and settlementReq.trading != ''">
  185. and klt.trading = #{settlementReq.trading,jdbcType=VARCHAR}
  186. </if>
  187. <if test="settlementReq.status != null">
  188. and kst.status = #{settlementReq.status,jdbcType=INTEGER}
  189. </if>
  190. <if test="settlementReq.startCreateTime != null and settlementReq.startCreateTime != '' and settlementReq.endCreateTime != null and settlementReq.endCreateTime != ''">
  191. and kst.create_time between #{settlementReq.startCreateTime,jdbcType=TIMESTAMP} and #{settlementReq.endCreateTime,jdbcType=TIMESTAMP}
  192. </if>
  193. <if test="settlementReq.startReceiptTime != null and settlementReq.startReceiptTime != '' and settlementReq.endReceiptTime != null and settlementReq.endReceiptTime != ''">
  194. and kst.receipt_time between #{settlementReq.startReceiptTime,jdbcType=TIMESTAMP} and #{settlementReq.endReceiptTime,jdbcType=TIMESTAMP}
  195. </if>
  196. </where>
  197. </select>
  198. <select id="selectByIds" resultType="com.sckw.payment.model.dto.SettlementTradeDto">
  199. select kst.id,
  200. kst.status,
  201. kst.st_order_no,
  202. kst.create_time,
  203. kst.receipt_time,
  204. cast(kst.actual_price as char) actualPrice,
  205. cast(kst.total_price as char) totalPrice,
  206. cast((kst.total_price - kst.actual_price) as char) waitPrice,
  207. kst.audit_user auditUser,
  208. kst.audit_phone auditPhone,
  209. kst.success_user successUser,
  210. kst.success_phone successPhone,
  211. kst.create_time,
  212. kst.t_ledger_id,
  213. klt.id ledgerId,
  214. klt.name,
  215. klt.trading,
  216. kltu.firm_name
  217. from kwp_settlement_trade kst
  218. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  219. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  220. <where>
  221. kst.id in
  222. <foreach collection="ids" open="(" close=")" item="item">
  223. #{item,jdbcType=BIGINT}
  224. </foreach>
  225. and kltu.unit_type = #{unitType,jdbcType=INTEGER}
  226. </where>
  227. </select>
  228. <select id="getById" resultType="com.sckw.payment.model.dto.SettlementTradeDto">
  229. select kst.id,
  230. kst.status,
  231. kst.st_order_no,
  232. kst.create_time,
  233. kst.receipt_time,
  234. cast(kst.actual_price as char) actualPrice,
  235. cast(kst.total_price as char) totalPrice,
  236. cast((kst.total_price - kst.actual_price) as char) waitPrice,
  237. kst.audit_user auditUser,
  238. kst.audit_phone auditPhone,
  239. kst.success_user successUser,
  240. kst.success_phone successPhone,
  241. kst.create_time,
  242. kst.t_ledger_id,
  243. klt.id ledgerId,
  244. klt.name,
  245. klt.trading,
  246. kltu.firm_name
  247. from kwp_settlement_trade kst
  248. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  249. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  250. <where>
  251. kst.del_flag = 0
  252. and kst.id = #{id,jdbcType=BIGINT}
  253. and kltu.unit_type = #{unitType,jdbcType=INTEGER}
  254. </where>
  255. </select>
  256. <select id="getListById" resultType="com.sckw.payment.model.dto.LedgerUnitDto">
  257. select kltu.top_ent_id,
  258. kltu.ent_id,
  259. kltu.unit_type
  260. from kwp_settlement_trade kst
  261. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  262. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0
  263. <where>
  264. kst.del_flag = 0
  265. and kst.id = #{id,jdbcType=BIGINT}
  266. </where>
  267. </select>
  268. <select id="selectDetail" resultType="com.sckw.payment.model.dto.SettlementTradeDto">
  269. select kst.id,
  270. kst.status,
  271. kst.st_order_no,
  272. klt.t_ledger_no tLedgerNo,
  273. klt.id tLedgerId,
  274. kst.create_time,
  275. kst.receipt_time,
  276. cast(kst.actual_price as char) actualPrice,
  277. cast(kst.total_price as char) totalPrice,
  278. cast((kst.total_price - kst.actual_price) as char) waitPrice,
  279. kst.audit_user auditUser,
  280. kst.audit_phone auditPhone,
  281. kst.success_user successUser,
  282. kst.success_phone successPhone,
  283. kst.create_time,
  284. kst.t_ledger_id,
  285. klt.id ledgerId,
  286. klt.name,
  287. klt.trading,
  288. kltu.firm_name firmName,
  289. kst.update_by updateBy
  290. from kwp_settlement_trade kst
  291. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  292. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  293. kltu.unit_type = #{unitType,jdbcType=INTEGER}
  294. <where>
  295. kst.del_flag = 0
  296. and kst.id = #{id,jdbcType=BIGINT}
  297. </where>
  298. </select>
  299. <select id="selectJoin" resultType="java.lang.String">
  300. select kst.st_order_no
  301. from kwp_settlement_trade kst
  302. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  303. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  304. kltu.unit_type = 1
  305. inner join kwp_ledger_trade_unit kltu2 on klt.id = kltu2.t_ledger_id and kltu2.del_flag = 0 and
  306. kltu2.unit_type = 2
  307. <where>
  308. kst.del_flag = 0
  309. and kst.status != 3
  310. and kltu.top_ent_id = #{entId,jdbcType=BIGINT}
  311. and kltu2.top_ent_id = #{entTarget,jdbcType=BIGINT}
  312. </where>
  313. </select>
  314. <select id="sumMoneyType" resultType="com.sckw.payment.model.dto.MoneyType">
  315. select ifnull(sum(kst.total_price - kst.actual_price), '0') money,
  316. 1 type
  317. from kwp_settlement_trade kst
  318. inner join kwp_ledger_trade klt on kst.t_ledger_id = klt.id and klt.del_flag = 0
  319. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  320. kltu.unit_type = #{unitType,jdbcType=INTEGER}
  321. <where>
  322. kst.del_flag = 0
  323. and kltu.top_ent_id = #{entId,jdbcType=BIGINT}
  324. and kst.create_time
  325. <foreach collection="cur" item="item" open="between" close="" separator="and">
  326. #{item,jdbcType=TIMESTAMP}
  327. </foreach>
  328. </where>
  329. union all
  330. select ifnull(sum(kst.total_price - kst.actual_price), '0') money,
  331. 2 type
  332. from kwp_settlement_trade kst
  333. inner join kwp_ledger_trade klt
  334. on kst.t_ledger_id = klt.id and klt.del_flag = 0
  335. inner join kwp_ledger_trade_unit kltu on klt.id = kltu.t_ledger_id and kltu.del_flag = 0 and
  336. kltu.unit_type = #{unitType,jdbcType=INTEGER}
  337. <where>
  338. kst.del_flag = 0
  339. and kltu.top_ent_id = #{entId,jdbcType=BIGINT}
  340. and kst.create_time
  341. <foreach collection="pre" item="item" open="between" close="" separator="and">
  342. #{item,jdbcType=TIMESTAMP}
  343. </foreach>
  344. </where>
  345. </select>
  346. <select id="queryRecord" resultType="com.sckw.payment.model.KwpSettlementRecord">
  347. SELECT kltu.top_ent_id entId,
  348. sum(IF(kltu.unit_type = 2, kst.total_price, 0.0)) totalReceiveMoney,
  349. sum(IF(kltu.unit_type = 1, kst.total_price, 0.0)) totalPayMoney,
  350. sum(IF(kltu.unit_type = 2, kst.actual_price, 0.0)) receivedMoney,
  351. sum(IF(kltu.unit_type = 1, kst.actual_price, 0.0)) paidMoney,
  352. sum(IF(kltu.unit_type = 2, kst.total_price - kst.actual_price, 0.0)) exactMoney,
  353. sum(IF(kltu.unit_type = 1, kst.total_price - kst.actual_price, 0.0)) unpaidMoney,
  354. sum(
  355. IF
  356. (kst.receipt_time &lt; now() &amp;&amp; kltu.unit_type = 2,
  357. kst.total_price - kst.actual_price, 0.0)
  358. ) overdueExactMoney,
  359. sum(
  360. IF
  361. (kst.receipt_time &lt; now() &amp;&amp; kltu.unit_type = 2,
  362. kst.total_price - kst.actual_price, 0.0)
  363. ) overduePaidMoney
  364. FROM `kwp_settlement_trade` kst
  365. LEFT JOIN kwp_ledger_trade_unit kltu ON kst.t_ledger_id = kltu.t_ledger_id
  366. AND kltu.del_flag = 0
  367. WHERE kst.del_flag = 0
  368. GROUP BY kltu.top_ent_id
  369. </select>
  370. </mapper>