RepalBillMapper.xml 11 KB

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