InvReceivableMapper.xml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ydtech.modules.inv.dao.InvReceivableMapper">
  6. <resultMap id="BaseResultMap" type="com.ydtech.modules.inv.model.vo.ReceivableResultVo">
  7. </resultMap>
  8. <select id="getReceivableList" resultType="com.ydtech.modules.inv.model.vo.ReceivableResultVo">
  9. SELECT
  10. DATE_FORMAT( signing_time, '%d' ) AS DAY,
  11. DATE_FORMAT( signing_time, '%Y-%m' ) AS yearmonth,
  12. DATE_FORMAT( signing_time, '%Y-%m-%d' ),
  13. insurance_id,
  14. insurance_name,
  15. sum( jq_premium_tax ) AS jq_premium_tax,
  16. sum( jq_premium ) AS jq_premium,
  17. sum( sy_premium_tax ) AS sy_premium_tax,
  18. sum( sy_premium ) AS sy_premium,
  19. sum( taxamount ) AS taxamount,
  20. sum( non_car_premium_tax ) AS non_car_premium_tax,
  21. sum( non_car_premium ) AS non_car_premium,
  22. sum( premium ) AS premium,
  23. sum( non_copying ) AS non_copying,
  24. sum( jq_premium_tax + sy_premium_tax + non_car_premium_tax ) AS total_permium,
  25. sum( premium + non_copying ) AS total_receivable,
  26. sum( subsidy_amount ) AS subsidy_amount,
  27. sum( total_receivable_amount ) AS total_receivable_amount
  28. FROM
  29. inv_source
  30. WHERE
  31. signing_time BETWEEN #{startTime}
  32. AND #{endTime}
  33. and insurance_id = #{insuranceId}
  34. GROUP BY
  35. insurance_id,
  36. insurance_name,
  37. DATE_FORMAT( signing_time,'%Y-%m-%d'),
  38. DATE_FORMAT( signing_time, '%d' ),
  39. DATE_FORMAT( signing_time, '%Y-%m' )
  40. </select>
  41. <select id="getSigningSourceResult" resultType="com.ydtech.modules.inv.model.vo.SigningSourceResultVo">
  42. SELECT
  43. DATE_FORMAT( signing_time, '%m') as day,
  44. DATE_FORMAT( signing_time, '%Y-%m' ) as yearmonth,
  45. insurance_name,
  46. sum( jq_premium_tax ) as jq_premium_tax,
  47. sum(jq_premium) as jq_premium,
  48. sum(sy_premium_tax) as sy_premium_tax,
  49. sum(sy_premium) as sy_premium,
  50. sum(taxamount) as taxamount,
  51. sum(non_car_premium_tax) as non_car_premium_tax,
  52. sum(non_car_premium) as non_car_premium,
  53. sum(premium) as premium,
  54. sum(non_copying) as non_copying,
  55. sum(jq_premium_tax + sy_premium_tax + non_car_premium_tax) as written_premium,
  56. sum(premium + non_copying) as total_receivable,
  57. sum(receivable) as total_amount_receivable
  58. FROM
  59. inv_source
  60. WHERE
  61. signing_time BETWEEN #{startTime}
  62. AND #{endTime}
  63. <!--and insurance_id = '123'-->
  64. GROUP BY
  65. insurance_id,
  66. insurance_name,
  67. DATE_FORMAT(
  68. signing_time,
  69. '%Y-%m'),
  70. DATE_FORMAT( signing_time, '%m')
  71. </select>
  72. <select id="getSigningSourceDayResult" resultType="com.ydtech.modules.inv.model.vo.SigningSourceResultVo">
  73. SELECT
  74. DATE_FORMAT( signing_time, '%d') as day,
  75. DATE_FORMAT( signing_time, '%Y-%m-%d' ) as yearmonth,
  76. insurance_name,
  77. sum( jq_premium_tax ) as jq_premium_tax,
  78. sum(jq_premium) as jq_premium,
  79. sum(sy_premium_tax) as sy_premium_tax,
  80. sum(sy_premium) as sy_premium,
  81. sum(taxamount) as taxamount,
  82. sum(non_car_premium_tax) as non_car_premium_tax,
  83. sum(non_car_premium) as non_car_premium,
  84. sum(premium) as premium,
  85. sum(non_copying) as non_copying,
  86. sum(jq_premium_tax + sy_premium_tax + non_car_premium_tax) as written_premium,
  87. sum(premium + non_copying) as total_receivable,
  88. sum(receivable) as total_amount_receivable
  89. FROM
  90. inv_source
  91. WHERE
  92. signing_time BETWEEN #{startTime}
  93. AND #{endTime}
  94. <if test="insuranceId != null and insuranceId != ''">
  95. and insurance_id = #{insuranceId}
  96. </if>
  97. GROUP BY
  98. insurance_id,
  99. insurance_name,
  100. DATE_FORMAT(
  101. signing_time,
  102. '%Y-%m-%d'),
  103. DATE_FORMAT( signing_time, '%d' )
  104. </select>
  105. <select id="getSettlementSourceResult" resultType="com.ydtech.modules.inv.model.vo.SettlementSourceDataVo">
  106. SELECT
  107. DATE_FORMAT( agency_settlement_time, '%m' ) AS DAY,
  108. DATE_FORMAT( agency_settlement_time, '%Y-%m' ) AS settlement_date,
  109. insurance_company,
  110. sum( jq_premium_tax + sy_premium_tax + non_car_premium_tax ) AS settlement_premium,
  111. sum( settlement_amount ) AS agent_commission
  112. FROM
  113. inv_settlement_source
  114. WHERE
  115. sign_date = #{signDate}
  116. AND
  117. agency_settlement_time BETWEEN #{startTime}
  118. AND #{endTime}
  119. GROUP BY
  120. insurance_company,
  121. DATE_FORMAT(
  122. agency_settlement_time,
  123. '%Y-%m'),
  124. DATE_FORMAT( agency_settlement_time, '%m' )
  125. </select>
  126. <select id="getInsureCompany" resultType="com.ydtech.modules.esm.model.EsmInsCompany">
  127. SELECT
  128. eic.*
  129. FROM
  130. esm_ins_company eic,
  131. ptl_agreement pa
  132. WHERE
  133. eic.id = pa.insurance_company_id
  134. GROUP BY
  135. eic.id
  136. </select>
  137. <select id="getMaxReceivable" resultType="HashMap">
  138. SELECT
  139. DATE_FORMAT(
  140. signing_time,
  141. '%Y-%m-%d') as yeatmonth,
  142. sum( receivable ) as receivable
  143. FROM
  144. inv_source
  145. WHERE
  146. signing_time BETWEEN #{startTime} and #{endTime}
  147. GROUP BY
  148. DATE_FORMAT(
  149. signing_time,
  150. '%Y-%m-%d')
  151. </select>
  152. <select id="getUnsettledProfitCalculation" resultType="HashMap">
  153. SELECT
  154. DATE_FORMAT(
  155. signing_time,
  156. '%Y-%m-%d') as yeatmonth,
  157. sum( receivable ) - sum(max_receivable) as unsettled_profit_calculation
  158. FROM
  159. inv_source
  160. WHERE
  161. clearing_state = 0 and
  162. signing_time BETWEEN '2024-01-01' and '2024-01-31'
  163. GROUP BY
  164. DATE_FORMAT(
  165. signing_time,
  166. '%Y-%m-%d')
  167. </select>
  168. </mapper>