ReportReceivableDataMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  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.jzg.console.mapper.ReportReceivableDataMapper">
  4. <resultMap id="ReceivableStatisticsResultMap" type="com.jzg.commons.entity.report.dto.ReportReceivableDataDto">
  5. <result column="year_and_month_time" property="yearAndMonthTime"/>
  6. <result column="total_receivable" property="accountsReceivableMoney"/>
  7. <result column="uninvoiced_money" property="uninvoicedMoney"/>
  8. <result column="invoiced_money" property="invoicedMoney"/>
  9. <result column="settled_money" property="settledMoney"/>
  10. <result column="unsettled_money" property="unsettledMoney"/>
  11. </resultMap>
  12. <resultMap id="ReceivableDetailResultMap" type="com.jzg.commons.entity.report.dto.ReportReceivableDetailDto">
  13. <result column="company_id" property="companyId"/>
  14. <result column="company_name" property="companyName"/>
  15. <result column="receivable_commission_fee" property="receivable.commissionFee"/>
  16. <result column="receivable_follow_fee" property="receivable.followFee"/>
  17. <result column="receivable_platform" property="receivable.platformReceivable"/>
  18. <result column="receivable_total" property="receivable.totalAmount"/>
  19. <result column="uninvoiced_commission_fee" property="uninvoiced.commissionFee"/>
  20. <result column="uninvoiced_follow_fee" property="uninvoiced.followFee"/>
  21. <result column="uninvoiced_platform" property="uninvoiced.platformReceivable"/>
  22. <result column="uninvoiced_total" property="uninvoiced.totalAmount"/>
  23. <result column="invoiced_commission_fee" property="invoiced.commissionFee"/>
  24. <result column="invoiced_follow_fee" property="invoiced.followFee"/>
  25. <result column="invoiced_platform" property="invoiced.platformReceivable"/>
  26. <result column="invoiced_total" property="invoiced.totalAmount"/>
  27. <result column="unsettled_commission_fee" property="unsettled.commissionFee"/>
  28. <result column="unsettled_follow_fee" property="unsettled.followFee"/>
  29. <result column="unsettled_platform" property="unsettled.platformReceivable"/>
  30. <result column="unsettled_total" property="unsettled.totalAmount"/>
  31. <result column="settled_commission_fee" property="settled.commissionFee"/>
  32. <result column="settled_follow_fee" property="settled.followFee"/>
  33. <result column="settled_platform" property="settled.platformReceivable"/>
  34. <result column="settled_total" property="settled.totalAmount"/>
  35. </resultMap>
  36. <select id="getReceivableStatisticsByMonth" resultMap="ReceivableStatisticsResultMap">
  37. SELECT
  38. r.year_and_month_time,
  39. r.total_receivable,
  40. (r.private_receivable - COALESCE(i.invoiced_money, 0)) AS uninvoiced_money,
  41. COALESCE(i.invoiced_money, 0) AS invoiced_money,
  42. COALESCE(s.settled_money, 0) AS settled_money,
  43. (r.total_receivable - COALESCE(s.settled_money, 0)) AS unsettled_money
  44. FROM (
  45. SELECT
  46. CONCAT(YEAR(ipi.signing_time), '-', LPAD(MONTH(ipi.signing_time), 2, '0')) AS year_and_month_time,
  47. SUM(COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) + COALESCE(ipi.jy_receivable_premium, 0)) AS total_receivable,
  48. SUM(
  49. COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) +
  50. COALESCE(ipi.jy_supervise_costs_premiums, 0) +
  51. COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0) +
  52. COALESCE(ipi.jy_other_costs_premiums, 0)
  53. ) AS private_receivable
  54. FROM ins_ply_income ipi
  55. WHERE ipi.is_delete = 0
  56. AND ipi.system_code = #{systemCode}
  57. AND YEAR(ipi.signing_time) between #{param.year[0]} and #{param.year[1]}
  58. GROUP BY CONCAT(YEAR(ipi.signing_time), '-', LPAD(MONTH(ipi.signing_time), 2, '0'))
  59. ) r
  60. LEFT JOIN (
  61. SELECT
  62. CONCAT(YEAR(ipii.create_time), '-', LPAD(MONTH(ipii.create_time), 2, '0')) AS year_and_month_time,
  63. SUM(COALESCE(ipii.receivable_supervise_premium, 0)) AS invoiced_money
  64. FROM ins_ply_income_invoice ipii
  65. WHERE ipii.is_delete = 0
  66. AND ipii.system_code = #{systemCode}
  67. AND ipii.invoice_type IN ('1','2','3','4')
  68. AND YEAR(ipii.create_time) between #{param.year[0]} and #{param.year[1]}
  69. GROUP BY CONCAT(YEAR(ipii.create_time), '-', LPAD(MONTH(ipii.create_time), 2, '0'))
  70. ) i ON r.year_and_month_time = i.year_and_month_time
  71. LEFT JOIN (
  72. SELECT
  73. CONCAT(YEAR(ipiis.create_time), '-', LPAD(MONTH(ipiis.create_time), 2, '0')) AS year_and_month_time,
  74. SUM(COALESCE(ipiis.actual_received_amount, 0)) AS settled_money
  75. FROM ins_ply_income_invoice_settlement ipiis
  76. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id AND ipii.is_delete = 0
  77. WHERE ipiis.is_delete = 0
  78. AND ipii.system_code = #{systemCode}
  79. AND ipii.invoice_type IN ('1','2','3','4','5','6')
  80. AND YEAR(ipiis.create_time) between #{param.year[0]} and #{param.year[1]}
  81. GROUP BY CONCAT(YEAR(ipiis.create_time), '-', LPAD(MONTH(ipiis.create_time), 2, '0'))
  82. ) s ON r.year_and_month_time = s.year_and_month_time
  83. ORDER BY r.year_and_month_time ASC
  84. </select>
  85. <select id="getReceivableStatisticsDetail" resultMap="ReceivableDetailResultMap">
  86. SELECT
  87. rc.company_id,
  88. (SELECT NAME FROM esm_ins_company WHERE id = rc.company_id) AS company_name,
  89. COALESCE(rc.receivable_commission, 0) AS receivable_commission_fee,
  90. COALESCE(rc.receivable_follow, 0) AS receivable_follow_fee,
  91. COALESCE(rc.receivable_platform, 0) AS receivable_platform,
  92. (COALESCE(rc.receivable_commission, 0) + COALESCE(rc.receivable_follow, 0) + COALESCE(rc.receivable_platform, 0)) AS receivable_total,
  93. (COALESCE(rc.receivable_commission, 0) - COALESCE(i.invoiced_commission, 0)) AS uninvoiced_commission_fee,
  94. (COALESCE(rc.receivable_follow, 0) - COALESCE(i.invoiced_follow, 0)) AS uninvoiced_follow_fee,
  95. 0 AS uninvoiced_platform,
  96. (COALESCE(rc.receivable_commission, 0) + COALESCE(rc.receivable_follow, 0) - COALESCE(i.invoiced_commission, 0) - COALESCE(i.invoiced_follow, 0)) AS uninvoiced_total,
  97. COALESCE(i.invoiced_commission, 0) AS invoiced_commission_fee,
  98. COALESCE(i.invoiced_follow, 0) AS invoiced_follow_fee,
  99. 0 AS invoiced_platform,
  100. (COALESCE(i.invoiced_commission, 0) + COALESCE(i.invoiced_follow, 0)) AS invoiced_total,
  101. COALESCE(us.unsettled_commission, 0) AS unsettled_commission_fee,
  102. COALESCE(us.unsettled_follow, 0) AS unsettled_follow_fee,
  103. COALESCE(us.unsettled_platform, 0) AS unsettled_platform,
  104. (COALESCE(us.unsettled_commission, 0) + COALESCE(us.unsettled_follow, 0) + COALESCE(us.unsettled_platform, 0)) AS unsettled_total,
  105. COALESCE(s.settled_commission, 0) AS settled_commission_fee,
  106. COALESCE(s.settled_follow, 0) AS settled_follow_fee,
  107. COALESCE(s.settled_platform, 0) AS settled_platform,
  108. COALESCE(s.settled_commission, 0) + COALESCE(s.settled_follow, 0) + COALESCE(s.settled_platform, 0) AS settled_total
  109. FROM (
  110. SELECT
  111. ipi.company_id AS company_id,
  112. SUM(COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) + COALESCE(ipi.jy_supervise_costs_premiums, 0)) AS receivable_commission,
  113. SUM(COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0) + COALESCE(ipi.jy_other_costs_premiums, 0)) AS receivable_follow,
  114. SUM(COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) + COALESCE(ipi.jy_receivable_premium, 0)) -
  115. SUM(COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) + COALESCE(ipi.jy_supervise_costs_premiums, 0) +
  116. COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0) + COALESCE(ipi.jy_other_costs_premiums, 0)) AS receivable_platform
  117. FROM ins_ply_income ipi
  118. WHERE ipi.is_delete = 0
  119. AND ipi.system_code = #{systemCode}
  120. AND YEAR(ipi.signing_time) between #{param.year[0]} and #{param.year[1]}
  121. GROUP BY ipi.company_id, ipi.company_name
  122. ) rc
  123. LEFT JOIN (
  124. SELECT
  125. ipii.company_id AS company_id,
  126. SUM(CASE WHEN ipii.invoice_type IN ('1','3') THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS invoiced_commission,
  127. SUM(CASE WHEN ipii.invoice_type IN ('2','4') THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS invoiced_follow
  128. FROM ins_ply_income_invoice ipii
  129. WHERE ipii.is_delete = 0
  130. AND ipii.system_code = #{systemCode}
  131. AND ipii.invoice_type IN ('1','2','3','4')
  132. AND YEAR(ipii.create_time) between #{param.year[0]} and #{param.year[1]}
  133. GROUP BY ipii.company_id
  134. ) i ON rc.company_id = i.company_id
  135. LEFT JOIN (
  136. SELECT
  137. t.company_id,
  138. t.settled_commission,
  139. t.settled_follow,
  140. t.settled_platform + plat.plat_amount AS settled_platform
  141. FROM (
  142. SELECT
  143. ipii.company_id AS company_id,
  144. SUM(CASE WHEN ipii.invoice_type IN ('1','3') THEN COALESCE(ipiis.actual_received_amount, 0) ELSE 0 END) AS settled_commission,
  145. SUM(CASE WHEN ipii.invoice_type IN ('2','4') THEN COALESCE(ipiis.actual_received_amount, 0) ELSE 0 END) AS settled_follow,
  146. SUM(CASE WHEN ipii.invoice_type IN ('5','6') THEN COALESCE(ipiis.actual_received_amount, 0) ELSE 0 END) AS settled_platform
  147. FROM ins_ply_income_invoice_settlement ipiis
  148. LEFT JOIN ins_ply_income_invoice ipii
  149. ON ipii.id = ipiis.invoice_id
  150. AND ipii.is_delete = 0
  151. AND ipii.system_code = #{systemCode}
  152. WHERE ipiis.is_delete = 0
  153. AND YEAR(ipiis.create_time) between #{param.year[0]} and #{param.year[1]}
  154. AND ipii.company_id IS NOT NULL
  155. GROUP BY ipii.company_id
  156. ) t
  157. CROSS JOIN (
  158. SELECT SUM(COALESCE(ipiis.actual_received_amount,0)) AS plat_amount
  159. FROM ins_ply_income_invoice_settlement ipiis
  160. LEFT JOIN ins_ply_income_invoice ipii
  161. ON ipii.id = ipiis.invoice_id
  162. AND ipii.is_delete = 0
  163. AND ipii.system_code = #{systemCode}
  164. WHERE ipiis.is_delete = 0
  165. AND YEAR(ipiis.create_time) between #{param.year[0]} and #{param.year[1]}
  166. AND ipii.company_id IS NULL
  167. ) plat
  168. ) s ON rc.company_id = s.company_id
  169. LEFT JOIN (
  170. SELECT
  171. ipii.company_id AS company_id,
  172. SUM(CASE WHEN ipii.invoice_type IN ('1','3') AND ipii.status = '0' THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS unsettled_commission,
  173. SUM(CASE WHEN ipii.invoice_type IN ('2','4') AND ipii.status = '0' THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS unsettled_follow,
  174. SUM(CASE WHEN ipii.invoice_type IN ('5','6') AND ipii.status = '0' THEN COALESCE(ipii.receivable_supervise_premium, 0) ELSE 0 END) AS unsettled_platform
  175. FROM ins_ply_income_invoice ipii
  176. WHERE ipii.is_delete = 0
  177. AND ipii.system_code = #{systemCode}
  178. AND ipii.invoice_type IN ('1','2','3','4','5','6')
  179. AND YEAR(ipii.create_time) between #{param.year[0]} and #{param.year[1]}
  180. GROUP BY ipii.company_id
  181. ) us ON rc.company_id = us.company_id
  182. </select>
  183. </mapper>