RepalBillMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281
  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.winhc.repal.repository.RepalBillMapper">
  4. <select id="getRepalBillPage" resultType="com.winhc.repal.entity.RepalBill" parameterType="com.winhc.repal.model.bo.BillPageBO">
  5. SELECT bill.* FROM REPAL_BILL AS bill
  6. <if test="!param2.allFlag">
  7. LEFT JOIN REPAL_RESPONSIBLE_PERSON AS person ON person.REPAL_BILL_ID = bill.ID
  8. </if>
  9. <if test="param2.dynamicType != null">
  10. LEFT JOIN REPAL_REMIND_READ_INFO ri ON bill.id = ri.REPAL_BILL_ID AND ri.USER_ID = #{param2.userId}
  11. </if>
  12. <where>
  13. <if test="!param2.allFlag">
  14. AND person.USER_ID = #{param2.userId}
  15. AND person.DELETED = 0
  16. </if>
  17. AND bill.REPAL_BOOK_ID = #{param2.repalBookId}
  18. AND bill.REPAL_GROUP_ID = #{param2.repalGroupId}
  19. AND bill.DELETED = 0
  20. AND bill.REPAL_BILL_TYPE = #{param2.repalBillType}
  21. <if test="param2.overdueStatus != null">
  22. <if test="param2.overdueStatus == 1">
  23. AND bill.REPAL_BILL_STATUS = 1
  24. </if>
  25. <if test="param2.overdueStatus == 2">
  26. AND bill.REPAL_BILL_STATUS = 1 AND bill.END_DATE <![CDATA[<=]]> date_add(CURDATE(), interval 7 day) and bill.END_DATE >= CURDATE()
  27. </if>
  28. <if test="param2.overdueStatus == 3">
  29. AND bill.REPAL_BILL_STATUS = 2
  30. </if>
  31. <if test="param2.overdueStatus == 4">
  32. AND bill.REPAL_BILL_STATUS = 3
  33. </if>
  34. <if test="param2.overdueStatus == 5">
  35. AND bill.REPAL_BILL_STATUS = 4
  36. </if>
  37. </if>
  38. <if test="param2.diagnosisGrade != null">
  39. AND bill.DIAGNOSIS_GRADE = #{param2.diagnosisGrade}
  40. </if>
  41. <if test="param2.startDate != null">
  42. AND bill.END_DATE >= #{param2.startDate}
  43. </if>
  44. <if test="param2.endDate != null">
  45. AND bill.END_DATE <![CDATA[<=]]> #{param2.endDate}
  46. </if>
  47. <if test="param2.dynamicType != null">
  48. AND EXISTS (SELECT 1 FROM REPAL_REMIND_HISTORY his WHERE
  49. <if test="param2.dynamicType == 1">
  50. his.REMIND_TYPE = 'RISK' AND his.id > ri.RISK_REMIND_ID
  51. </if>
  52. <if test="param2.dynamicType == 2">
  53. his.REMIND_TYPE = 'FINANCE' AND his.id > ri.FINANCE_REMIND_ID
  54. </if>
  55. <if test="param2.dynamicType == 3">
  56. his.REMIND_TYPE = 'RANK' AND his.id > ri.RANK_REMIND_ID
  57. </if>
  58. <if test="param2.dynamicType == 4">
  59. his.REMIND_TYPE = 'OVERDUE' AND his.id > ri.OVERDUE_REMIND_ID
  60. </if>
  61. AND his.REPAL_BILL_ID = bill.ID)
  62. </if>
  63. </where>
  64. <if test="param2.sortedType != null">
  65. <if test="param2.sortedType == 1">
  66. ORDER BY bill.END_DATE, bill.ID
  67. </if>
  68. <if test="param2.sortedType == 2">
  69. ORDER BY bill.END_DATE DESC, bill.ID DESC
  70. </if>
  71. <if test="param2.sortedType == 3">
  72. ORDER BY bill.TOTAL_MONEY, bill.ID
  73. </if>
  74. <if test="param2.sortedType == 4">
  75. ORDER BY bill.TOTAL_MONEY DESC, bill.ID DESC
  76. </if>
  77. </if>
  78. <if test="param2.sortedType == null">
  79. ORDER BY bill.ID DESC
  80. </if>
  81. </select>
  82. <select id="searchPage" parameterType="com.winhc.repal.model.bo.SearchBillPageBO" resultType="com.winhc.repal.entity.RepalBill">
  83. SELECT bill.* FROM REPAL_BILL AS bill
  84. <if test="!param2.receivableFlag or !param2.receiptFlag">
  85. <if test="!param2.receivableFlag">
  86. LEFT JOIN REPAL_RESPONSIBLE_PERSON AS aPerson ON aPerson.REPAL_BILL_ID = bill.ID and bill.REPAL_BILL_TYPE = 1
  87. </if>
  88. <if test="!param2.receiptFlag">
  89. LEFT JOIN REPAL_RESPONSIBLE_PERSON AS bPerson ON bPerson.REPAL_BILL_ID = bill.ID and bill.REPAL_BILL_TYPE = 2
  90. </if>
  91. </if>
  92. <where>
  93. <if test="!param2.receivableFlag">
  94. aPerson.USER_ID = #{param2.userId} and aPerson.DELETED = 0 AND
  95. </if>
  96. <if test="!param2.receiptFlag">
  97. bPerson.USER_ID = #{param2.userId} and bPerson.DELETED = 0 AND
  98. </if>
  99. AND bill.REPAL_BOOK_ID = #{param2.repalBookId}
  100. AND bill.REPAL_GROUP_ID = #{param2.repalGroupId}
  101. AND bill.DELETED = 0
  102. <if test="param2.keyword != null and param2.keyword != ''">
  103. AND bill.CUSTOMER_NAME LIKE concat('%', #{param2.keyword}, '%')
  104. </if>
  105. </where>
  106. ORDER BY bill.ID DESC
  107. </select>
  108. <select id="getTotalMoneyByGroup" resultType="com.winhc.repal.model.bo.TotalMoneyBO">
  109. SELECT COUNT(*) AS totalCount, IFNULL(SUM(RECEIVABLE),0) AS totalMoney FROM REPAL_BILL
  110. WHERE REPAL_GROUP_ID = #{repalGroupId}
  111. <if test="repalBillStatus != null">
  112. AND REPAL_BILL_STATUS = #{repalBillStatus}
  113. </if>
  114. AND REPAL_BILL_TYPE = #{repalBillType}
  115. AND REPAL_BOOK_ID = #{repalBookId}
  116. </select>
  117. <select id="getTotalMoneyByUser" resultType="com.winhc.repal.model.bo.TotalMoneyBO">
  118. SELECT COUNT(*) AS totalCount, IFNULL(SUM(bill.RECEIVABLE), 0) AS totalMoney FROM REPAL_RESPONSIBLE_PERSON AS person
  119. LEFT JOIN REPAL_BILL AS bill ON person.REPAL_BILL_ID = bill.ID
  120. WHERE person.USER_ID = #{userId} AND person.DELETED = 0
  121. <if test="repalBillStatus != null">
  122. AND bill.REPAL_BILL_STATUS = #{repalBillStatus}
  123. </if>
  124. AND bill.REPAL_GROUP_ID = #{repalGroupId}
  125. AND bill.REPAL_BOOK_ID = #{repalBookId}
  126. AND bill.REPAL_BILL_TYPE = #{repalGroupType}
  127. </select>
  128. <select id="getCustRepalBillPage" resultType="com.winhc.repal.entity.RepalBill">
  129. SELECT bill.* FROM REPAL_BILL AS bill
  130. <where>
  131. AND bill.CUSTOMER_ID = #{custId}
  132. AND bill.DELETED = 0
  133. </where>
  134. ORDER BY bill.ID DESC
  135. </select>
  136. <select id="getManageBillInfo" resultType="com.winhc.repal.model.bo.ManageBillInfoBO">
  137. select (SELECT count(*) FROM REPAL_BILL A WHERE
  138. REPAL_GROUP_ID = #{groupId}
  139. AND DELETED = 0
  140. AND REPAL_BILL_STATUS = 2
  141. <if test="!allFlag">
  142. AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
  143. </if>
  144. ) as totalOverdueCount,
  145. (SELECT IFNULL(sum(RECEIVABLE),0) FROM REPAL_BILL A
  146. WHERE REPAL_GROUP_ID = #{groupId}
  147. AND DELETED = 0
  148. AND REPAL_BILL_STATUS = 2
  149. <if test="!allFlag">
  150. AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
  151. </if>
  152. ) as totalOverdue,
  153. (SELECT IFNULL( sum( RECEIVABLE ), 0 ) FROM REPAL_BILL A
  154. WHERE REPAL_GROUP_ID = #{groupId}
  155. AND DELETED = 0
  156. AND REPAL_BILL_STATUS = 1
  157. AND END_DATE <![CDATA[<=]]> #{startTime}
  158. <if test="!allFlag">
  159. AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
  160. </if>
  161. ) as totalOverdueWeek,
  162. (SELECT count(*) FROM REPAL_BILL A
  163. WHERE
  164. REPAL_GROUP_ID = #{groupId}
  165. AND DELETED = 0
  166. AND REPAL_BILL_STATUS = 1
  167. AND END_DATE <![CDATA[<=]]> #{startTime}
  168. <if test="!allFlag">
  169. AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
  170. </if>
  171. ) as totalOverdueWeekCount,
  172. (SELECT IFNULL( sum( TOTAL_MONEY ), 0 ) FROM REPAL_BILL A
  173. WHERE
  174. REPAL_GROUP_ID = #{groupId}
  175. AND DELETED = 0
  176. AND REPAL_BILL_STATUS in (1,2)
  177. <if test="!allFlag">
  178. AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON B WHERE B.REPAL_BILL_ID = A.ID AND B.USER_ID = #{userId})
  179. </if>
  180. ) as totalMoney from dual
  181. </select>
  182. <select id="getManageBillPage" resultType="com.winhc.repal.model.bo.RepalManageBillPageBO">
  183. SELECT
  184. A.ID AS repalBillId,
  185. A.REPAL_BOOK_ID AS repalBookId,
  186. B.REPAL_BOOK_NAME AS repalBookName,
  187. A.REPAL_BILL_STATUS AS repalBillStatus,
  188. A.END_DATE AS endDate,
  189. C.CUST_PROPERTY AS custProperty,
  190. C.CUST_NAME AS customerName,
  191. A.TOTAL_MONEY AS totalMoney,
  192. A.RECEIVABLE AS receivable
  193. FROM
  194. REPAL_BILL A
  195. LEFT JOIN REPAL_BOOK B ON A.REPAL_BOOK_ID = B.ID
  196. LEFT JOIN REPAL_CUSTOMER C ON A.CUSTOMER_ID = C.CUST_ID
  197. WHERE
  198. A.REPAL_GROUP_ID = #{groupId}
  199. AND A.DELETED = 0
  200. AND ((A.REPAL_BILL_STATUS = 1
  201. AND A.END_DATE <![CDATA[<=]]> #{startTime}) or A.REPAL_BILL_STATUS = 2)
  202. <if test="!allFlag">
  203. AND EXISTS ( SELECT 1 FROM REPAL_RESPONSIBLE_PERSON D WHERE D.REPAL_BILL_ID = A.ID AND D.USER_ID = #{userId})
  204. </if>
  205. </select>
  206. <select id="getBillIdListByBookId" resultType="java.lang.Long">
  207. SELECT bill.ID FROM REPAL_BILL AS bill
  208. <if test="userId != null">
  209. LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON bill.ID = rPerson.REPAL_BILL_ID
  210. </if>
  211. WHERE bill.REPAL_BOOK_ID = #{repalBookId}
  212. <if test="userId != null">
  213. AND rPerson.USER_ID = #{userId}
  214. </if>
  215. </select>
  216. <select id="getBillGradeByBookId" resultType="java.lang.String">
  217. SELECT bill.DIAGNOSIS_GRADE FROM REPAL_BILL AS bill
  218. <if test="userId != null">
  219. LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON bill.ID = rPerson.REPAL_BILL_ID
  220. </if>
  221. WHERE bill.REPAL_BOOK_ID = #{repalBookId}
  222. <if test="start != null">
  223. AND bill.DIAGNOSIS_DATETIME >= #{start}
  224. </if>
  225. <if test="end != null">
  226. AND bill.DIAGNOSIS_DATETIME <![CDATA[<=]]>#{end}
  227. </if>
  228. <if test="userId != null">
  229. AND rPerson.USER_ID = #{userId}
  230. </if>
  231. </select>
  232. <select id="getBillTotal" resultType="com.winhc.repal.model.bo.HomeReceivableBO">
  233. SELECT
  234. <if test="repalBillStatus == null">
  235. IFNULL(SUM(bill.RECEIVABLE), 0) AS billMoney,
  236. IFNULL(SUM(bill.RECEIPT), 0) AS receiptMoney,
  237. IFNULL(SUM(bill.TOTAL_MONEY), 0) AS totalBillMoney,
  238. IFNULL(COUNT(bill.ID), 0) AS billCount
  239. </if>
  240. <if test="repalBillStatus == 2">
  241. IFNULL(SUM(bill.RECEIPT), 0) AS overdueTotal,
  242. IFNULL(COUNT(bill.ID), 0) AS overdueTotalCount
  243. </if>
  244. FROM REPAL_BILL AS bill
  245. <if test="userId != null">
  246. LEFT JOIN REPAL_RESPONSIBLE_PERSON AS rPerson ON bill.ID = rPerson.REPAL_BILL_ID
  247. </if>
  248. WHERE bill.REPAL_BOOK_ID = #{repalBookId}
  249. <if test="repalBillStatus == 2">
  250. AND bill.REPAL_BILL_STATUS = 2
  251. </if>
  252. AND bill.REPAL_BILL_TYPE = #{repalBillType}
  253. <if test="userId != null">
  254. AND rPerson.USER_ID = #{userId}
  255. </if>
  256. <if test="start != null">
  257. AND bill.TIME_CREATED >= #{start}
  258. </if>
  259. <if test="end != null">
  260. AND bill.TIME_CREATED <![CDATA[<=]]>#{end}
  261. </if>
  262. </select>
  263. </mapper>