InvReceivableMapper.xml 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272
  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. <select id="getReceivableAndSettlementPage" resultType="com.ydtech.modules.inv.model.vo.ReceivableAndSettlementVo">
  169. SELECT
  170. iss.operations_team,
  171. iss.channel_classification,
  172. ivs.signing_time as sign_date,
  173. iss.channel,
  174. ivs.licenseno,
  175. ivs.insured_name,
  176. ivs.insurance_id,
  177. ivs.insurance_name as insurance_company,
  178. ivs.insurance_dept_id,
  179. ivs.insurance_dept,
  180. ivs.risk as insurance_type,
  181. iss.business_owner,
  182. ivs.jq_policy_id,
  183. ivs.jq_premium_tax,
  184. ivs.jq_premium,
  185. ivs.sy_policy_id,
  186. ivs.sy_premium_tax,
  187. ivs.sy_premium,
  188. ivs.non_car_policy_id,
  189. ivs.non_car_premium_tax,
  190. ivs.non_car_premium,
  191. iss.agency_settlement_time,
  192. ivs.taxamount,
  193. ivs.jq_receivable_ratio,
  194. ivs.jq_premium_ratio,
  195. ivs.jq_non_copying_ratio,
  196. ivs.sy_receivable_ratio,
  197. ivs.sy_premium_ratio,
  198. ivs.sy_non_copying_ratio,
  199. ivs.non_car_receivable_ratio,
  200. ivs.non_car_premium_ratio,
  201. ivs.non_car_non_copying_ratio,
  202. ivs.premium,
  203. ivs.non_copying,
  204. ivs.receivable,
  205. ivs.subsidy_ratio,
  206. ivs.subsidy_amount,
  207. ivs.max_jq_receivable_ratio,
  208. ivs.max_sy_receivable_ratio,
  209. ivs.max_non_car_receivable_ratio,
  210. (CASE ivs.clearing_state
  211. WHEN 1 THEN '已结算'
  212. WHEN 0 THEN '未结算'
  213. WHEN 3 THEN '孤儿单'
  214. END) as clearing_state,
  215. (CASE ivs.insurance_clearing_state
  216. WHEN 1 THEN '已结算'
  217. WHEN 0 THEN '未结算'
  218. WHEN 3 THEN '孤儿单'
  219. END) as insurance_clearing_state
  220. FROM
  221. inv_source ivs
  222. LEFT JOIN inv_settlement_source iss ON ivs.licenseno = iss.licenseno
  223. AND ivs.jq_policy_id = iss.jq_policy_id
  224. AND ivs.sy_policy_id = iss.sy_policy_id
  225. AND ivs.non_car_policy_id = iss.non_car_policy_id
  226. WHERE
  227. 1=1
  228. <if test="param.signDateStartTime != null and param.signDateStartTime != ''">
  229. and iss.sign_date between #{param.signDateStartTime} and #{param.signDateEndTime}
  230. </if>
  231. <if test="param.agencySettlementTimeStartTime != null and param.agencySettlementTimeStartTime != ''">
  232. and iss.agency_settlement_time between #{param.agencySettlementTimeStartTime} and #{param.agencySettlementTimeEndTime}
  233. </if>
  234. <if test="param.operationsTeam != null and param.operationsTeam != ''">
  235. and iss.operations_team = #{param.operationsTeam}
  236. </if>
  237. <if test="param.channelClassification != null and param.channelClassification != ''">
  238. and iss.channel_classification = #{param.channelClassification}
  239. </if>
  240. <if test="param.channel != null and param.channel != ''">
  241. and iss.channel = #{param.channel}
  242. </if>
  243. <if test="param.licenseNo != null and param.licenseNo != ''">
  244. and iss.licenseno = #{param.licenseNo}
  245. </if>
  246. <if test="param.insuredName != null and param.insuredName != ''">
  247. and iss.insured_name = #{param.insuredName}
  248. </if>
  249. <if test="param.insuranceId != null and param.insuranceId != ''">
  250. and ivs.insurance_id = #{param.insuranceId}
  251. </if>
  252. <if test="param.insuranceDeptId != null and param.insuranceDeptId != ''">
  253. and ivs.insurance_dept_id = #{param.insuranceDeptId}
  254. </if>
  255. <if test="param.clearingState != null and param.clearingState != ''">
  256. and iss.clearing_state = #{param.clearingState}
  257. </if>
  258. </select>
  259. </mapper>