ReceivableMapper.xml 78 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539
  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.organization.mapper.ReceivableMapper">
  4. <resultMap id="InsPlyIncomeResultMap" type="com.jzg.commons.entity.finance.po.InsPlyIncome">
  5. <result column="order_no" property="orderNo"/>
  6. <result column="dept_id" property="deptId"/>
  7. <result column="dept_name" property="deptName"/>
  8. <!-- 其他字段可不写,会自动映射 -->
  9. </resultMap>
  10. <select id="getAuditedOrder" resultMap="InsPlyIncomeResultMap">
  11. SELECT
  12. iop.order_no,
  13. ioci.license_no,
  14. io.company_id,
  15. iop.jq_policy_no,
  16. iop.sy_policy_no,
  17. iop.jy_policy_no,
  18. ioc.jq_premium,
  19. ioc.sy_premium,
  20. ioc.jy_premium,
  21. ioc.tax_premium,
  22. sd.id AS dept_id,
  23. sd.NAME AS dept_name,
  24. ifo.jq_commission_ratio as jq_supervise_costs_proportion,
  25. ifo.sy_commission_ratio as sy_supervise_costs_proportion,
  26. ifo.jy_commission_ratio as jy_supervise_costs_proportion,
  27. ifo.jq_commission_premium as jq_supervise_costs_premiums,
  28. ifo.sy_commission_premium as sy_supervise_costs_premiums,
  29. ifo.jy_commission_premium as jy_supervise_costs_premiums,
  30. ifo.jq_follow_ratio as jq_other_costs_proportion,
  31. ifo.sy_follow_ratio as sy_other_costs_proportion,
  32. ifo.jy_follow_ratio as jy_other_costs_proportion,
  33. ifo.jq_follow_premium as jq_other_costs_premiums,
  34. ifo.sy_follow_premium as sy_other_costs_premiums,
  35. ifo.jy_follow_premium as jy_other_costs_premiums,
  36. ifo.jq_receivable_premium,
  37. ifo.sy_receivable_premium,
  38. ifo.jy_receivable_premium,
  39. eic.name_simple,
  40. pa.id AS agreement_id,
  41. pa.agreement_name,
  42. pa.agreement_type,
  43. io.product_id,
  44. io.product_name,
  45. io.pay_time,
  46. io.signing_time,
  47. ifa.audit_status
  48. FROM
  49. ins_orders io
  50. LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
  51. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
  52. LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
  53. LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
  54. LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
  55. LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
  56. LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
  57. LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
  58. LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
  59. LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
  60. WHERE
  61. io.id = #{orderNo}
  62. <if test="orderStatus != null and orderStatus != ''">
  63. AND io.order_status = #{orderStatus}
  64. </if>
  65. <if test="auditStatus != null and auditStatus != ''">
  66. AND ifa.audit_status = #{auditStatus}
  67. </if>
  68. <if test="agreementType != null and agreementType != ''">
  69. AND pa.agreement_type = #{agreementType}
  70. </if>
  71. </select>
  72. <select id="getUnauditedOrder" resultMap="InsPlyIncomeResultMap">
  73. SELECT
  74. iop.order_no,
  75. ioci.license_no,
  76. io.company_id,
  77. iop.jq_policy_no,
  78. iop.sy_policy_no,
  79. iop.jy_policy_no,
  80. ioc.jq_premium,
  81. ioc.sy_premium,
  82. ioc.jy_premium,
  83. ioc.tax_premium,
  84. sd.id AS dept_id,
  85. sd.NAME AS dept_name,
  86. ifo.jq_commission_ratio as jq_supervise_costs_proportion,
  87. ifo.sy_commission_ratio as sy_supervise_costs_proportion,
  88. ifo.jy_commission_ratio as jy_supervise_costs_proportion,
  89. ifo.jq_commission_premium as jq_supervise_costs_premiums,
  90. ifo.sy_commission_premium as sy_supervise_costs_premiums,
  91. ifo.jy_commission_premium as jy_supervise_costs_premiums,
  92. ifo.jq_follow_ratio as jq_other_costs_proportion,
  93. ifo.sy_follow_ratio as sy_other_costs_proportion,
  94. ifo.jy_follow_ratio as jy_other_costs_proportion,
  95. ifo.jq_follow_premium as jq_other_costs_premiums,
  96. ifo.sy_follow_premium as sy_other_costs_premiums,
  97. ifo.jy_follow_premium as jy_other_costs_premiums,
  98. ifo.jq_receivable_premium,
  99. ifo.sy_receivable_premium,
  100. ifo.jy_receivable_premium,
  101. eic.name_simple,
  102. pa.id AS agreement_id,
  103. pa.agreement_name,
  104. pa.agreement_type,
  105. io.product_id,
  106. io.product_name,
  107. io.pay_time,
  108. io.signing_time,
  109. ifa.audit_status
  110. FROM
  111. ins_orders io
  112. LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
  113. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
  114. LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
  115. LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
  116. LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
  117. LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
  118. LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
  119. LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
  120. LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
  121. LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
  122. WHERE
  123. io.id = #{orderNo}
  124. AND
  125. io.order_status = #{orderStatus}
  126. </select>
  127. <select id="getUnauditedOrderList" resultMap="InsPlyIncomeResultMap">
  128. SELECT
  129. iop.order_no,
  130. ioci.license_no,
  131. io.company_id,
  132. iop.jq_policy_no,
  133. iop.sy_policy_no,
  134. iop.jy_policy_no,
  135. ioc.jq_premium,
  136. ioc.sy_premium,
  137. ioc.jy_premium,
  138. ioc.tax_premium,
  139. sd.id AS dept_id,
  140. sd.NAME AS dept_name,
  141. ifo.jq_commission_ratio as jq_supervise_costs_proportion,
  142. ifo.sy_commission_ratio as sy_supervise_costs_proportion,
  143. ifo.jy_commission_ratio as jy_supervise_costs_proportion,
  144. ifo.jq_commission_premium as jq_supervise_costs_premiums,
  145. ifo.sy_commission_premium as sy_supervise_costs_premiums,
  146. ifo.jy_commission_premium as jy_supervise_costs_premiums,
  147. ifo.jq_follow_ratio as jq_other_costs_proportion,
  148. ifo.sy_follow_ratio as sy_other_costs_proportion,
  149. ifo.jy_follow_ratio as jy_other_costs_proportion,
  150. ifo.jq_follow_premium as jq_other_costs_premiums,
  151. ifo.sy_follow_premium as sy_other_costs_premiums,
  152. ifo.jy_follow_premium as jy_other_costs_premiums,
  153. ifo.jq_receivable_premium,
  154. ifo.sy_receivable_premium,
  155. ifo.jy_receivable_premium,
  156. eic.name_simple,
  157. pa.id AS agreement_id,
  158. pa.agreement_name,
  159. pa.agreement_type,
  160. io.product_id,
  161. io.product_name,
  162. io.pay_time,
  163. io.signing_time,
  164. ifa.audit_status
  165. FROM
  166. ins_orders io
  167. LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
  168. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
  169. LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
  170. LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
  171. LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
  172. LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
  173. LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
  174. LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
  175. LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
  176. LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
  177. WHERE
  178. <if test="orderNo != null and orderNo.size > 0">
  179. io.id in
  180. <foreach collection="orderNo" item="id" open="(" separator="," close=")">
  181. #{id}
  182. </foreach>
  183. AND
  184. </if>
  185. io.order_status = #{orderStatus}
  186. <if test="auditStatus != null and auditStatus != ''">
  187. AND ifa.audit_status = #{auditStatus}
  188. </if>
  189. </select>
  190. <!-- modify by lipf, 2026年5月18日14:56:29 和业务沟通后,业务王文琦,想要将开过票的订单也显示出来 -->
  191. <sql id="query">
  192. SELECT
  193. io.real_quote_user_id,
  194. io.real_quote_user_id as real_quote_user_name,
  195. io.signing_time,
  196. date(io.signing_time ) as sign_date,
  197. year(io.signing_time) as sign_year,
  198. ipi.id,
  199. io.id as 'orderNo',
  200. io.company_name,
  201. ipi.dept_name,
  202. ipi.agreement_name,
  203. ipi.agreement_id,
  204. io.product_name,
  205. io.entry_status,
  206. CASE io.entry_status
  207. WHEN 1 THEN '车险出单'
  208. WHEN 2 THEN '代客录单'
  209. WHEN 3 THEN '补录订单'
  210. ELSE ''
  211. END AS order_type,
  212. ipi.license_no,
  213. (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount, -- 总应收金额
  214. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as superviseCostsPremiums, -- 总应收手续费
  215. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as otherCostsPremiums, -- 总应收跟单费
  216. io.product_name,
  217. iocui.name AS insuredPerson,
  218. ipi.jq_premium,
  219. ipi.sy_premium,
  220. ipi.jy_premium,
  221. ipi.tax_premium,
  222. ipi.jq_supervise_costs_proportion,
  223. ipi.sy_supervise_costs_proportion,
  224. ipi.jy_supervise_costs_proportion,
  225. ipi.jq_other_costs_proportion,
  226. ipi.sy_other_costs_proportion,
  227. ipi.jy_other_costs_proportion,
  228. ipi.business_source,
  229. ipi.settlement_status,
  230. ipi.add_type,
  231. ior1.start_date as jq_start_date,
  232. ior2.start_date as sy_start_date,
  233. io.product_name AS productName,
  234. iop.jq_policy_no, -- 交强保单号
  235. iop.sy_policy_no, -- 商业保单号
  236. iop.jy_policy_no, -- 非车险保单号
  237. io.company_name,
  238. io.company_id,
  239. ipi.create_time,
  240. ipi.create_by,
  241. ipi.update_time,
  242. ipi.update_by,
  243. io.docking_person,
  244. eic.name_simple as companyNameSimple
  245. FROM
  246. ins_ply_income ipi
  247. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  248. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  249. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  250. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  251. LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
  252. LEFT JOIN esm_ins_company eic on ipi.company_id = eic.id
  253. WHERE 1=1 and ipi.settlement_status = '0' and ipi.is_delete = 0
  254. </sql>
  255. <!--根据保司id和订单号进行过滤 2026年5月12日15:06:40 lipf -->
  256. <select id="queryIncomeDatasByOrderIds" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
  257. <include refid="query"/>
  258. <if test="companyId != null and companyId != ''">
  259. and io.company_id = #{companyId}
  260. </if>
  261. <if test="orderNos != null and orderNos.size() > 0">
  262. and io.id in
  263. <foreach collection="orderNos" item="id" open="(" separator="," close=")">
  264. #{id}
  265. </foreach>
  266. </if>
  267. ORDER BY ipi.create_time DESC
  268. </select>
  269. <select id="getReceivablePage" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
  270. <include refid="query"/>
  271. <if test="receivableQueryVo.invoiceId != null and receivableQueryVo.invoiceId != ''" >
  272. and ipi.id in (
  273. select ipiil.income_id from ins_ply_income_invoice_link ipiil where ipiil.invoice_id = #{receivableQueryVo.invoiceId}
  274. )
  275. </if>
  276. <if test="receivableQueryVo.typeAttr != null and receivableQueryVo.typeAttr != ''">
  277. and io.real_quote_user_id in (select su.username from sys_user_jzg_info_salesman sujis left join sys_user_jzg_info suji on sujis.sys_user_jzg_info_id = suji.id
  278. left join sys_user su on su.id = suji.user_id
  279. where sujis.type_attr =#{receivableQueryVo.typeAttr})
  280. </if>
  281. <if test = "receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
  282. AND ipi.agreement_type = #{receivableQueryVo.agreementType}
  283. </if>
  284. <if test = "receivableQueryVo.ids != null and receivableQueryVo.ids.size > 0">
  285. AND ipi.id in
  286. <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
  287. #{id}
  288. </foreach>
  289. </if>
  290. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  291. AND ipi.supervise_settlement = 0
  292. </if>
  293. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  294. AND ipi.other_settlement = 0
  295. </if>
  296. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  297. AND ipi.jy_premium != 0
  298. AND ipi.jy_supervise_settlement = 0
  299. AND ipi.jy_other_settlement = 0
  300. </if>
  301. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  302. AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
  303. </if>
  304. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  305. AND ipi.company_id = #{receivableQueryVo.companyId}
  306. </if>
  307. <if test="receivableQueryVo.businessSource != null and receivableQueryVo.businessSource != ''">
  308. AND ipi.business_source = #{receivableQueryVo.businessSource}
  309. </if>
  310. <if test="receivableQueryVo.settlementStatus != null and receivableQueryVo.settlementStatus != ''">
  311. AND ipi.settlement_status = #{receivableQueryVo.settlementStatus}
  312. </if>
  313. <if test="receivableQueryVo.addType != null and receivableQueryVo.addType != ''">
  314. AND ipi.add_type = #{receivableQueryVo.addType}
  315. </if>
  316. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  317. AND ipi.order_no = #{receivableQueryVo.orderNo}
  318. </if>
  319. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  320. AND ipi.agreement_id = #{receivableQueryVo.agreementId}
  321. </if>
  322. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  323. AND ipi.dept_id = #{receivableQueryVo.deptId}
  324. </if>
  325. <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
  326. AND ipi.product_id = #{receivableQueryVo.productId}
  327. </if>
  328. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  329. AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  330. </if>
  331. <if test="receivableQueryVo.insuredName != null and receivableQueryVo.insuredName != ''">
  332. AND iocui.name = #{receivableQueryVo.insuredName}
  333. </if>
  334. <if test="receivableQueryVo.orderType != null and receivableQueryVo.orderType != ''">
  335. AND io.entry_status = #{receivableQueryVo.orderType}
  336. </if>
  337. <if test="receivableQueryVo.productName != null and receivableQueryVo.productName != ''">
  338. AND io.product_name = #{receivableQueryVo.productName}
  339. </if>
  340. <if test="receivableQueryVo.jqPolicyNo != null and receivableQueryVo.jqPolicyNo != ''">
  341. AND iop.jq_policy_no = #{receivableQueryVo.jqPolicyNo}
  342. </if>
  343. <if test="receivableQueryVo.syPolicyNo != null and receivableQueryVo.syPolicyNo != ''">
  344. AND iop.sy_policy_no = #{receivableQueryVo.syPolicyNo}
  345. </if>
  346. <if test="receivableQueryVo.jyPolicyNo != null and receivableQueryVo.jyPolicyNo != ''">
  347. AND iop.jy_policy_no = #{receivableQueryVo.jyPolicyNo}
  348. </if>
  349. <if test="receivableQueryVo.dockingPerson != null and receivableQueryVo.dockingPerson != ''">
  350. AND io.docking_person = #{receivableQueryVo.dockingPerson}
  351. </if>
  352. <if test="receivableQueryVo.jqStartDate != null and receivableQueryVo.jqStartDate != ''">
  353. AND ior1.start_date between #{receivableQueryVo.jqStartDate} and #{receivableQueryVo.jqEndDate}
  354. </if>
  355. <if test="receivableQueryVo.syStartDate != null and receivableQueryVo.syStartDate != ''">
  356. AND ior2.start_date between #{receivableQueryVo.syStartDate} and #{receivableQueryVo.syStartDate}
  357. </if>
  358. ORDER BY ipi.create_time DESC
  359. </select>
  360. <select id="getReceivableList" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
  361. SELECT
  362. *,
  363. (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount, -- 总应收金额
  364. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as superviseCostsPremiums, -- 总应收手续费
  365. iocui.name AS insuredPerson,
  366. ior1.start_date as jqStartDate,
  367. ior2.start_date as syStartDate,
  368. io.product_name AS productName,
  369. iop.jq_policy_no,
  370. iop.sy_policy_no,
  371. iop.jy_policy_no
  372. FROM
  373. ins_ply_income ipi
  374. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  375. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  376. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  377. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  378. LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
  379. WHERE 1=1 and ipi.settlement_status = '0' and ipi.is_delete = 0
  380. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  381. AND ipi.supervise_settlement = 0
  382. </if>
  383. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  384. AND ipi.other_settlement = 1
  385. </if>
  386. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  387. AND ipi.jy_premium != 0
  388. </if>
  389. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  390. AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
  391. </if>
  392. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  393. AND ipi.company_id = #{receivableQueryVo.companyId}
  394. </if>
  395. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  396. AND ipi.order_no = #{receivableQueryVo.orderNo}
  397. </if>
  398. <if test="receivableQueryVo.ids != null and receivableQueryVo.ids != ''">
  399. AND ipi.id IN
  400. <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
  401. #{id}
  402. </foreach>
  403. </if>
  404. <if test="receivableQueryVo.orderNos != null and receivableQueryVo.orderNos != ''">
  405. AND ipi.order_no IN
  406. <foreach collection="receivableQueryVo.orderNos" item="orderNo" open="(" separator="," close=")">
  407. #{orderNo}
  408. </foreach>
  409. </if>
  410. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  411. AND ipi.agreement_id = #{receivableQueryVo.agreementId}
  412. </if>
  413. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  414. AND ipi.dept_id = #{receivableQueryVo.deptId}
  415. </if>
  416. <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
  417. AND ipi.product_id = #{receivableQueryVo.productId}
  418. </if>
  419. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  420. AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  421. </if>
  422. <if test="receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
  423. AND ipi.agreement_type = #{receivableQueryVo.agreementType}
  424. </if>
  425. ORDER BY ipi.create_time DESC
  426. </select>
  427. <select id="getSuperviseJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseJyExcelDto">
  428. SELECT
  429. ipi.signing_time as signingTime,
  430. ipi.order_no as orderNo,
  431. ipi.company_name as companyName,
  432. ipi.dept_name as deptName,
  433. ipi.agreement_name as agreementName,
  434. io.entry_status as entryStatus,
  435. ipi.license_no as licenseNo,
  436. (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount,
  437. io.product_name as productName,
  438. iocui.name AS insuredPerson,
  439. ipi.jy_premium as jqPremium,
  440. ipi.jy_supervise_costs_proportion as jqSuperviseCostsProportion,
  441. ipi.jy_policy_no as jyPolicyNo,
  442. ior1.start_date as jqStartDate,
  443. ior2.start_date as syStartDate,
  444. ipi.create_time as createTime,
  445. ipi.contact_person as contactPerson
  446. FROM
  447. ins_ply_income ipi
  448. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  449. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  450. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  451. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  452. WHERE
  453. 1=1
  454. AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
  455. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  456. AND ipi.supervise_settlement = 0
  457. </if>
  458. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  459. AND ipi.other_settlement = 1
  460. </if>
  461. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  462. AND ipi.jy_premium != 0
  463. </if>
  464. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  465. AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
  466. </if>
  467. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  468. AND ipi.company_id = #{receivableQueryVo.companyId}
  469. </if>
  470. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  471. AND ipi.order_no = #{receivableQueryVo.orderNo}
  472. </if>
  473. <if test="receivableQueryVo.orderNos != null and receivableQueryVo.orderNos != ''">
  474. AND ipi.order_no IN
  475. <foreach collection="receivableQueryVo.orderNos" item="orderNo" open="(" separator="," close=")">
  476. #{orderNo}
  477. </foreach>
  478. </if>
  479. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  480. AND ipi.agreement_id = #{receivableQueryVo.agreementId}
  481. </if>
  482. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  483. AND ipi.dept_id = #{receivableQueryVo.deptId}
  484. </if>
  485. <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
  486. AND ipi.product_id = #{receivableQueryVo.productId}
  487. </if>
  488. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  489. AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  490. </if>
  491. <if test="receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
  492. AND ipi.agreement_type = #{receivableQueryVo.agreementType}
  493. </if>
  494. ORDER BY ipi.create_time DESC
  495. </select>
  496. <select id="superviseSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">
  497. select
  498. ipiis.id as settlementId,
  499. ipiis.invoice_id as invoiceId,
  500. io.company_id,
  501. io.company_name,
  502. ipii.invoice_type,
  503. ipii.invoice_party,
  504. ipii.tax_point,
  505. ipi.order_no as orderNo,
  506. ipiis.actual_received_amount,
  507. ipii.receivable_supervise_premium,
  508. ipiis.receive_payment_date,
  509. ipiis.create_by ,
  510. ipiis.create_time
  511. FROM
  512. ins_ply_income_invoice_settlement ipiis
  513. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
  514. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  515. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  516. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  517. left join ptl_agreement agree on io.agreement_id = agree.id
  518. WHERE
  519. 1=1
  520. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  521. AND ipiis.id IN
  522. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  523. #{settlementId}
  524. </foreach>
  525. </if>
  526. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  527. AND ipii.invoice_type IN
  528. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  529. #{invoiceType}
  530. </foreach>
  531. </if>
  532. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  533. and io.company_id = #{settlementQueryVo.companyId}
  534. </if>
  535. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  536. and ipii.invoice_party = #{settlementQueryVo.invoiceParty}
  537. </if>
  538. <if test="settlementQueryVo.invoiceRiskType != null and settlementQueryVo.invoiceRiskType != ''">
  539. and ipii.invoice_risk_type = #{settlementQueryVo.invoiceRiskType}
  540. </if>
  541. <if test="settlementQueryVo.status != null and settlementQueryVo.status != ''">
  542. and ipii.status = #{settlementQueryVo.status}
  543. </if>
  544. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  545. and ipiis.create_by = #{settlementQueryVo.settlementPerson}
  546. </if>
  547. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  548. AND (agree.agreement_type = #{settlementQueryVo.agreementType} or agree.agreement_type is null)
  549. </if>
  550. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  551. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  552. </if>
  553. <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
  554. AND ipiis.id = #{settlementQueryVo.settlementId}
  555. </if>
  556. <if test="settlementQueryVo.settlementDateStart != null and settlementQueryVo.settlementDateStart != ''">
  557. and ipiis.create_time >= date(#{settlementQueryVo.settlementDateStart})
  558. </if>
  559. <if test="settlementQueryVo.settlementDateEndStr != null and settlementQueryVo.settlementDateEndStr != ''">
  560. and ipiis.create_time &lt;= date(#{settlementQueryVo.settlementDateEndStr})
  561. </if>
  562. <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
  563. AND ipiis.id = #{settlementQueryVo.settlementId}
  564. </if>
  565. order by ipiis.create_time desc
  566. </select>
  567. <select id="platformSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">
  568. SELECT
  569. ipiis.id AS settlementId,
  570. -- 拼接需要合并的字段,DISTINCT 去重,SEPARATOR '、' 用顿号分隔
  571. GROUP_CONCAT(DISTINCT ipiis.invoice_id SEPARATOR ',') AS invoiceId,
  572. GROUP_CONCAT(DISTINCT io.company_id SEPARATOR ',') AS company_id,
  573. GROUP_CONCAT(DISTINCT io.company_name SEPARATOR ',') AS company_name,
  574. GROUP_CONCAT(DISTINCT ipii.invoice_type SEPARATOR ',') AS invoice_type,
  575. GROUP_CONCAT(DISTINCT ipii.invoice_party SEPARATOR ',') AS invoice_party,
  576. GROUP_CONCAT(DISTINCT ipii.tax_point SEPARATOR ',') AS tax_point,
  577. GROUP_CONCAT(DISTINCT ipi.order_no SEPARATOR ',') AS orderNo,
  578. -- 金额/日期这类同一settlementId相同的字段,直接取任意一个即可
  579. MAX(ipiis.actual_received_amount) AS actual_received_amount,
  580. MAX(ipiis.receive_payment_date) AS receive_payment_date,
  581. MAX(ipiis.create_by) AS create_by,
  582. MAX(ipiis.create_time) AS create_time
  583. FROM ins_ply_income_invoice_settlement ipiis
  584. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
  585. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  586. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  587. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  588. LEFT JOIN ptl_agreement agree ON io.agreement_id = agree.id
  589. WHERE 1 = 1
  590. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  591. AND ipiis.id IN
  592. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  593. #{settlementId}
  594. </foreach>
  595. </if>
  596. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  597. AND ipii.invoice_type IN
  598. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  599. #{invoiceType}
  600. </foreach>
  601. </if>
  602. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  603. and io.company_id = #{settlementQueryVo.companyId}
  604. </if>
  605. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  606. and ipii.invoice_party = #{settlementQueryVo.invoiceParty}
  607. </if>
  608. <if test="settlementQueryVo.invoiceRiskType != null and settlementQueryVo.invoiceRiskType != ''">
  609. and ipii.invoice_risk_type = #{settlementQueryVo.invoiceRiskType}
  610. </if>
  611. <if test="settlementQueryVo.status != null and settlementQueryVo.status != ''">
  612. and ipii.status = #{settlementQueryVo.status}
  613. </if>
  614. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  615. and ipiis.create_by = #{settlementQueryVo.settlementPerson}
  616. </if>
  617. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  618. AND (agree.agreement_type = #{settlementQueryVo.agreementType} or agree.agreement_type is null)
  619. </if>
  620. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  621. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  622. </if>
  623. <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
  624. AND ipiis.id = #{settlementQueryVo.settlementId}
  625. </if>
  626. <if test="settlementQueryVo.settlementDateStart != null and settlementQueryVo.settlementDateStart != ''">
  627. and ipiis.create_time >= date(#{settlementQueryVo.settlementDateStart})
  628. </if>
  629. <if test="settlementQueryVo.settlementDateEndStr != null and settlementQueryVo.settlementDateEndStr != ''">
  630. and ipiis.create_time &lt;= date(#{settlementQueryVo.settlementDateEndStr})
  631. </if>
  632. <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
  633. AND ipiis.id = #{settlementQueryVo.settlementId}
  634. </if>
  635. GROUP BY ipiis.id
  636. order by ipiis.create_time desc
  637. </select>
  638. <!-- <select id="getSuperviseSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">-->
  639. <!-- select-->
  640. <!-- ipiis.id as settlementId,-->
  641. <!-- ipiis.invoice_id as invoiceId,-->
  642. <!-- ipi.company_name as companyName,-->
  643. <!-- ipii.invoice_type as invoiceType,-->
  644. <!-- ipii.invoice_party as invoiceParty,-->
  645. <!-- ipii.tax_point as taxPoint,-->
  646. <!-- ipiis.actual_received_amount as actualReceivedAmount,-->
  647. <!-- ipiis.receive_payment_date as receivePaymentDate,-->
  648. <!-- ipiis.create_by as createBy,-->
  649. <!-- ipiis.create_time as createTime-->
  650. <!-- FROM-->
  651. <!-- ins_ply_income_invoice_settlement ipiis-->
  652. <!-- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id-->
  653. <!-- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id-->
  654. <!-- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id-->
  655. <!-- WHERE-->
  656. <!-- 1=1-->
  657. <!-- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">-->
  658. <!-- AND ipiis.id IN-->
  659. <!-- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">-->
  660. <!-- #{settlementId}-->
  661. <!-- </foreach>-->
  662. <!-- </if>-->
  663. <!-- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">-->
  664. <!-- AND ipi.invoice_type IN-->
  665. <!-- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">-->
  666. <!-- #{invoiceType}-->
  667. <!-- </foreach>-->
  668. <!-- </if>-->
  669. <!-- </select>-->
  670. <select id="getSuperviseSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
  671. select
  672. ipiis.id as settlementId, -- 结算记录编号
  673. ipiis.invoice_id as invoiceId, -- 开票记录编号
  674. io.company_name as companyName, -- 保险公司
  675. io.signing_time as signingTime, -- 签单时间
  676. ipii.status as status, -- 状态
  677. ipi.license_no as licenseNo, -- 车牌号
  678. io.product_name as productName, -- 险种
  679. ipii.invoice_type as invoiceType, -- 应收项
  680. ipii.invoice_party as invoiceParty, -- 开票方
  681. ipii.tax_point as taxPoint, -- 税点
  682. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
  683. ipi.jq_premium as jqPremium, -- 交强保费
  684. ipi.jq_supervise_costs_proportion as jqSuperviseCostsProportion, -- 交强手续费比例
  685. ipi.jq_policy_no as jqPolicyNo, -- 交强保单号
  686. ipi.sy_premium as syPremium, -- 商业保费
  687. ipi.sy_supervise_costs_proportion as sySuperviseCostsProportion, -- 商业手续费比例
  688. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  689. ipi.jy_premium as jyPremium, -- 非车保费
  690. ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion, -- 非车手续费比例
  691. ipi.jy_policy_no as jyPolicyNo, -- 非车保单号
  692. ipi.tax_premium as taxPremium, -- 车船税
  693. ipii.create_by as invoicePerson, -- 开票人
  694. ipii.create_time as invoiceTime, -- 开票时间
  695. ipiis.create_by as settlementPerson, -- 结算人
  696. ipiis.create_time as settlementTime -- 结算时间
  697. FROM
  698. ins_ply_income_invoice ipii
  699. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipii.id
  700. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  701. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  702. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  703. WHERE
  704. 1 = 1
  705. <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
  706. and ipiis.id = #{settlementQueryVo.settlementId}
  707. </if>
  708. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  709. AND ipiis.id IN
  710. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  711. #{settlementId}
  712. </foreach>
  713. </if>
  714. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  715. AND ipii.invoice_type IN
  716. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  717. #{invoiceType}
  718. </foreach>
  719. </if>
  720. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  721. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  722. </if>
  723. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  724. AND ipi.company_id = #{settlementQueryVo.companyId}
  725. </if>
  726. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  727. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  728. </if>
  729. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  730. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  731. </if>
  732. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  733. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  734. </if>
  735. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  736. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  737. </if>
  738. </select>
  739. <select id="getSuperviseSettlementDetailJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailJyExcelDto">
  740. select
  741. ipiis.id as settlementId, -- 结算记录编号
  742. ipiis.invoice_id as invoiceId, -- 开票记录编号
  743. ipi.company_name as companyName, -- 保险公司
  744. ipi.signing_time as signingTime, -- 签单时间
  745. ipii.status as status, -- 状态
  746. ipi.license_no as licenseNo, -- 车牌号
  747. io.product_name as productName, -- 险种
  748. ipii.invoice_type as invoiceType, -- 应收项
  749. ipii.invoice_party as invoiceParty, -- 开票方
  750. ipii.tax_point as taxPoint, -- 税点
  751. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
  752. ipi.jy_premium as jqPremium, -- 驾意保费
  753. ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion, -- 驾意险手续费比例
  754. ipi.jy_policy_no as jqPolicyNo, -- 交强保单号
  755. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  756. ipii.create_by as invoicePerson, -- 开票人
  757. ipii.create_time as invoiceTime, -- 开票时间
  758. ipiis.create_by as settlementPerson, -- 结算人
  759. ipiis.create_time as settlementTime -- 结算时间
  760. FROM
  761. ins_ply_income_invoice ipii
  762. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
  763. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  764. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  765. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  766. WHERE
  767. 1=1
  768. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  769. AND ipiis.id IN
  770. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  771. #{settlementId}
  772. </foreach>
  773. </if>
  774. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  775. AND ipii.invoice_type IN
  776. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  777. #{invoiceType}
  778. </foreach>
  779. </if>
  780. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  781. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  782. </if>
  783. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  784. AND ipi.company_id = #{settlementQueryVo.companyId}
  785. </if>
  786. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  787. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  788. </if>
  789. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  790. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  791. </if>
  792. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  793. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  794. </if>
  795. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  796. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  797. </if>
  798. ORDER BY ipi.create_time DESC
  799. </select>
  800. <select id="getOtherExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherExcelDto">
  801. SELECT
  802. ipi.signing_time as signingTime,
  803. ipi.order_no as orderNo,
  804. ipi.company_name as companyName,
  805. ipi.dept_name as deptName,
  806. ipi.agreement_name as agreementName,
  807. io.entry_status as entryStatus,
  808. ipi.license_no as licenseNo,
  809. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
  810. io.product_name as productName,
  811. iocui.name AS insuredPerson,
  812. ipi.jq_premium as jqPremium,
  813. ipi.jq_other_costs_proportion as jqSuperviseCostsProportion,
  814. ipi.jq_policy_no as jqPolicyNo,
  815. ior1.start_date as jqStartDate,
  816. ipi.sy_premium as syPremium,
  817. ipi.sy_other_costs_proportion as syqSuperviseCostsProportion,
  818. ipi.sy_policy_no as syPolicyNo,
  819. ior2.start_date as syStartDate,
  820. ipi.tax_premium as taxPremium,
  821. ipi.create_time as createTime,
  822. ipi.contact_person as contactPerson
  823. FROM ins_ply_income ipi
  824. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  825. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  826. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  827. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  828. WHERE
  829. 1=1
  830. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  831. AND ipi.supervise_settlement = 0
  832. </if>
  833. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  834. AND ipi.other_settlement = 1
  835. </if>
  836. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  837. AND ipi.jy_premium != 0
  838. </if>
  839. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  840. and ipi.licenseNo = #{receivableQueryVo.licenseNo}
  841. </if>
  842. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  843. and ipi.order_no = #{receivableQueryVo.orderNo}
  844. </if>
  845. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  846. and ipi.company_id = #{receivableQueryVo.companyId}
  847. </if>
  848. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  849. and ipi.dept_id = #{receivableQueryVo.deptId}
  850. </if>
  851. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  852. and ipi.agreement_id = #{receivableQueryVo.agreementId}
  853. </if>
  854. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  855. and ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  856. </if>
  857. ORDER BY ipi.create_time DESC
  858. </select>
  859. <select id="getOtherJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherJyExcelDto">
  860. SELECT
  861. ipi.signing_time as signingTime,
  862. ipi.order_no as orderNo,
  863. ipi.company_name as companyName,
  864. ipi.dept_name as deptName,
  865. ipi.agreement_name as agreementName,
  866. io.entry_status as entryStatus,
  867. ipi.license_no as licenseNo,
  868. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
  869. ipi.product_name as productName,
  870. iocui.name AS insuredPerson,
  871. ipi.jy_premium as jyPremium,
  872. ipi.jy_other_costs_proportion as jySuperviseCostsProportion,
  873. ipi.jy_policy_no as jyPolicyNo,
  874. ior1.start_date as jqStartDate,
  875. ior2.start_date as syStartDate,
  876. ipi.create_time as createTime
  877. FROM ins_ply_income ipi
  878. LEFT JOIN ins_orders io ON ipi.order_no = io.order_no
  879. LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
  880. LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
  881. LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
  882. WHERE
  883. 1=1
  884. <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
  885. AND ipi.supervise_settlement = 0
  886. </if>
  887. <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
  888. AND ipi.other_settlement = 1
  889. </if>
  890. <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
  891. AND ipi.jy_premium != 0
  892. </if>
  893. <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
  894. and ipi.licenseNo = #{receivableQueryVo.licenseNo}
  895. </if>
  896. <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
  897. and ipi.order_no = #{receivableQueryVo.orderNo}
  898. </if>
  899. <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
  900. and ipi.company_id = #{receivableQueryVo.companyId}
  901. </if>
  902. <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
  903. and ipi.dept_id = #{receivableQueryVo.deptId}
  904. </if>
  905. <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
  906. and ipi.agreement_id = #{receivableQueryVo.agreementId}
  907. </if>
  908. <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
  909. and ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
  910. </if>
  911. ORDER BY ipi.create_time DESC
  912. </select>
  913. <select id="getOtherSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementExcelDto">
  914. select
  915. ipiis.id as settlementId,
  916. ipiis.invoice_id as invoiceId,
  917. ipi.company_name as companyName,
  918. ipii.invoice_type as invoiceType,
  919. ipii.invoice_party as invoiceParty,
  920. ipii.tax_point as taxPoint,
  921. ipiis.actual_received_amount as actualReceivedAmount,
  922. ipiis.receive_payment_date as receivePaymentDate,
  923. ipiis.create_by as createBy,
  924. ipiis.create_time as createTime
  925. FROM
  926. ins_ply_income_invoice_settlement ipiis
  927. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
  928. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  929. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  930. WHERE
  931. 1=1
  932. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  933. AND ipiis.id IN
  934. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  935. #{settlementId}
  936. </foreach>
  937. </if>
  938. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  939. AND ipii.invoice_type IN
  940. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  941. #{invoiceType}
  942. </foreach>
  943. </if>
  944. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  945. AND ipii.agreement_type = #{settlementQueryVo.agreementType}
  946. </if>
  947. </select>
  948. <select id="getOtherSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementDetailExcelDto">
  949. select
  950. ipiis.id as settlementId, -- 结算记录编号
  951. ipiis.invoice_id as invoiceId, -- 开票记录编号
  952. ipi.company_name as companyName, -- 保险公司
  953. ipi.signing_time as signingTime, -- 签单时间
  954. ipii.status as status, -- 状态
  955. ipi.license_no as licenseNo, -- 车牌号
  956. io.product_name as productName, -- 险种
  957. ipii.invoice_type as invoiceType, -- 应收项
  958. ipii.invoice_party as invoiceParty, -- 开票方
  959. ipii.tax_point as taxPoint, -- 税点
  960. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableOtherCosts, -- 应收跟单费
  961. ipi.jq_premium as jqPremium, -- 交强保费
  962. ipi.jq_other_costs_proportion as jqOtherCostsProportion, -- 交强手续费比例
  963. ipi.jq_policy_no as jqPolicyNo, -- 交强保单号
  964. ipi.sy_premium as syPremium, -- 商业保费
  965. ipi.sy_other_costs_proportion as syOtherCostsProportion, -- 商业手续费比例
  966. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  967. ipi.tax_premium as taxPremium, -- 车船税
  968. ipii.create_by as invoicePerson, -- 开票人
  969. ipii.create_time as invoiceTime, -- 开票时间
  970. ipiis.create_by as settlementPerson, -- 结算人
  971. ipiis.create_time as settlementTime -- 结算时间
  972. FROM
  973. ins_ply_income_invoice ipii
  974. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
  975. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  976. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  977. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  978. WHERE
  979. 1=1
  980. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  981. AND ipiis.id IN
  982. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  983. #{settlementId}
  984. </foreach>
  985. </if>
  986. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  987. AND ipii.invoice_type IN
  988. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  989. #{invoiceType}
  990. </foreach>
  991. </if>
  992. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  993. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  994. </if>
  995. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  996. AND ipi.company_id = #{settlementQueryVo.companyId}
  997. </if>
  998. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  999. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  1000. </if>
  1001. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  1002. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  1003. </if>
  1004. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  1005. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  1006. </if>
  1007. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  1008. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  1009. </if>
  1010. </select>
  1011. <select id="getOtherSettlementDetailJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementDetailJyExcelDto">
  1012. select
  1013. ipiis.id as settlementId, -- 结算记录编号
  1014. ipiis.invoice_id as invoiceId, -- 开票记录编号
  1015. ipi.company_name as companyName, -- 保险公司
  1016. ipi.signing_time as signingTime, -- 签单时间
  1017. ipii.status as status, -- 状态
  1018. ipi.license_no as licenseNo, -- 车牌号
  1019. io.product_name as productName, -- 险种
  1020. ipii.invoice_type as invoiceType, -- 应收项
  1021. ipii.invoice_party as invoiceParty, -- 开票方
  1022. ipii.tax_point as taxPoint, -- 税点
  1023. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
  1024. ipi.jy_premium as jqPremium, -- 驾意保费
  1025. ipi.jy_other_costs_proportion as jqOtherCostsProportion, -- 驾意险跟单费比例
  1026. ipi.jy_policy_no as jqPolicyNo, -- 交强保单号
  1027. ipi.sy_policy_no as syPolicyNo, -- 商业保单号
  1028. ipii.create_by as invoicePerson, -- 开票人
  1029. ipii.create_time as invoiceTime, -- 开票时间
  1030. ipiis.create_by as settlementPerson, -- 结算人
  1031. ipiis.create_time as settlementTime -- 结算时间
  1032. FROM
  1033. ins_ply_income_invoice ipii
  1034. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
  1035. LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
  1036. LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
  1037. LEFT JOIN ins_orders io ON ipi.order_no = io.id
  1038. WHERE
  1039. 1=1
  1040. <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
  1041. AND ipiis.id IN
  1042. <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
  1043. #{settlementId}
  1044. </foreach>
  1045. </if>
  1046. <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
  1047. AND ipii.invoice_type IN
  1048. <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
  1049. #{invoiceType}
  1050. </foreach>
  1051. </if>
  1052. <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
  1053. AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
  1054. </if>
  1055. <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
  1056. AND ipi.company_id = #{settlementQueryVo.companyId}
  1057. </if>
  1058. <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
  1059. AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
  1060. </if>
  1061. <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
  1062. AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
  1063. </if>
  1064. <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
  1065. AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
  1066. </if>
  1067. <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
  1068. AND ipi.agreement_type = #{settlementQueryVo.agreementType}
  1069. </if>
  1070. </select>
  1071. <select id="getReceivableCompany" resultType="com.jzg.commons.entity.po.EsmInsCompany">
  1072. SELECT
  1073. eic.id,
  1074. eic.company_code,
  1075. eic.`name`
  1076. FROM
  1077. ins_ply_income ipi
  1078. LEFT JOIN esm_ins_company eic ON ipi.company_id = eic.id
  1079. WHERE
  1080. ipi.id IN
  1081. <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
  1082. #{id}
  1083. </foreach>
  1084. GROUP BY
  1085. eic.company_code,
  1086. eic.`name`,
  1087. eic.id
  1088. </select>
  1089. <select id="invoicingCheck" resultType="java.lang.Integer">
  1090. SELECT count(id) AS count
  1091. FROM ins_ply_income_invoice_link
  1092. <where>
  1093. <if test="invoicingVo.incomeIds != null and invoicingVo.incomeIds.size > 0">
  1094. AND income_id IN
  1095. <foreach collection="invoicingVo.incomeIds"
  1096. item="id" open="(" separator="," close=")">
  1097. #{id}
  1098. </foreach>
  1099. </if>
  1100. <if test="invoicingVo.invoiceType != null and invoicingVo.invoiceType != ''">
  1101. AND invoice_type = #{invoicingVo.invoiceType}
  1102. </if>
  1103. </where>
  1104. </select>
  1105. <!-- 查询订单绑定的发票信息 lipf 2026年5月21日11:56:19 -->
  1106. <select id="queryIncomeBindInvoice" resultType="com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceLink">
  1107. SELECT * FROM
  1108. ins_ply_income_invoice_link
  1109. where
  1110. income_id IN
  1111. <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
  1112. #{id}
  1113. </foreach>
  1114. </select>
  1115. <select id="getJqSumReceivable" resultType="java.util.Map">
  1116. SELECT
  1117. sum( jq_commission_premium ) AS jqCommissionPremium,
  1118. sum( sy_commission_premium ) AS syCommissionPremium,
  1119. sum( jy_commission_premium ) AS jyCommissionPremium,
  1120. sum( jq_follow_premium ) AS jqFollowPremium,
  1121. sum( sy_follow_premium ) AS syFollowPremium,
  1122. sum( jy_follow_premium ) AS jyFollowPremium
  1123. FROM
  1124. ins_fee_orders
  1125. WHERE
  1126. order_no IN
  1127. <foreach collection="orderNos" item="id" open="(" separator="," close=")">
  1128. #{id}
  1129. </foreach>
  1130. </select>
  1131. <select id="getInvoiceRecordList" resultType="com.jzg.commons.entity.finance.vo.InvoiceRecordResult">
  1132. SELECT
  1133. ipii.id,
  1134. ipii.company_id,
  1135. ipii.invoice_no,
  1136. ipii.invoice_type,
  1137. -- 应收项
  1138. ipii.invoice_risk_type,
  1139. CASE
  1140. WHEN ipii.invoice_party = '1' THEN
  1141. '我方开票' ELSE '保司开票'
  1142. END as invoice_party,
  1143. ipii.overinflated_amount,
  1144. ipii.receivable_supervise_premium,
  1145. ipii.tax_point,
  1146. ipii.create_time,
  1147. ipii.create_by,
  1148. ipii.update_time,
  1149. ipii.update_by,
  1150. eic.name as company_name,
  1151. eic.name_simple as companyNameSimple,
  1152. sum( ipiis.actual_received_amount ) AS actual_received_amount,
  1153. ipii.status,
  1154. ipii.payment_reason
  1155. FROM
  1156. ins_ply_income_invoice ipii
  1157. LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id
  1158. LEFT JOIN esm_ins_company eic on eic.id = ipii.company_id
  1159. WHERE
  1160. 1=1 and ipii.is_delete = 0
  1161. <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
  1162. AND ipii.invoice_type = #{invoiceRecordQueryVo.invoiceType}
  1163. </if>
  1164. <if test="invoiceRecordQueryVo.accountsReceivable != null and invoiceRecordQueryVo.accountsReceivable != ''">
  1165. AND ipii.invoice_risk_type = #{invoiceRecordQueryVo.accountsReceivable}
  1166. </if>
  1167. <if test="invoiceRecordQueryVo.recordId != null and invoiceRecordQueryVo.recordId != ''">
  1168. AND ipii.id = #{invoiceRecordQueryVo.recordId}
  1169. </if>
  1170. <if test="invoiceRecordQueryVo.companyId != null and invoiceRecordQueryVo.companyId != ''">
  1171. AND ipii.company_id = #{invoiceRecordQueryVo.companyId}
  1172. </if>
  1173. <if test="invoiceRecordQueryVo.invoiceParty != null and invoiceRecordQueryVo.invoiceParty != ''">
  1174. AND ipii.invoice_party = #{invoiceRecordQueryVo.invoiceParty}
  1175. </if>
  1176. <if test="invoiceRecordQueryVo.companyNameSimple != null and invoiceRecordQueryVo.companyNameSimple != ''">
  1177. AND eic.id = #{invoiceRecordQueryVo.companyNameSimple}
  1178. </if>
  1179. <if test="invoiceRecordQueryVo.settlementStatus != null and invoiceRecordQueryVo.settlementStatus != ''">
  1180. HAVING CASE
  1181. WHEN ipii.receivable_supervise_premium = SUM(ipiis.actual_received_amount) THEN '1'
  1182. ELSE '0'
  1183. END = #{invoiceRecordQueryVo.settlementStatus}
  1184. </if>
  1185. GROUP BY
  1186. ipii.id,
  1187. ipii.receivable_supervise_premium,
  1188. ipii.invoice_type,
  1189. ipii.company_id,
  1190. ipii.invoice_party
  1191. ORDER BY ipii.create_time DESC
  1192. </select>
  1193. <!-- 基础结果集映射 -->
  1194. <resultMap id="BaseResultMap" type="com.jzg.commons.entity.finance.dto.CompanySuperviseSettlementReportDto">
  1195. <result column="company_id" property="companyId"/>
  1196. <result column="company_name" property="companyName"/>
  1197. <result column="total_receivable" property="totalReceivable"/>
  1198. <result column="total_follow_fee" property="totalFollowFee"/>
  1199. <result column="supervise_fee" property="superviseFee"/>
  1200. <result column="follow_fee" property="followFee"/>
  1201. <result column="invoiced_amount" property="invoicedAmount"/>
  1202. <result column="settled_amount" property="settledAmount"/>
  1203. <result column="un_invoiced_amount" property="unInvoicedAmount"/>
  1204. <result column="un_settled_amount" property="unSettledAmount"/>
  1205. </resultMap>
  1206. <!-- 优化:一次性查询所有公司数据,替代递归查库 -->
  1207. <select id="selectAllCompanies" resultMap="BaseResultMap">
  1208. SELECT
  1209. eic.id as company_id,
  1210. eic.parent_id, <!-- 必须加这个,树形结构需要 -->
  1211. eic.name as company_name,
  1212. COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
  1213. COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
  1214. COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
  1215. COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
  1216. COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
  1217. COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
  1218. FROM
  1219. esm_ins_company eic
  1220. LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{agreementType}
  1221. LEFT JOIN (
  1222. SELECT
  1223. ipiil.income_id,
  1224. ipii.invoice_time,
  1225. SUM(ipii.receivable_supervise_premium) as total_invoice,
  1226. SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
  1227. SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
  1228. FROM ins_ply_income_invoice_link ipiil
  1229. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiil.invoice_id
  1230. <where>
  1231. <if test="invoiceTypes != null and invoiceTypes.size() > 0">
  1232. AND ipii.invoice_type IN
  1233. <foreach item="item" collection="invoiceTypes" separator="," open="(" close=")">
  1234. #{item}
  1235. </foreach>
  1236. </if>
  1237. <if test="status != null and status != ''">
  1238. and ipii.status = #{status}
  1239. </if>
  1240. </where>
  1241. GROUP BY ipiil.income_id, ipii.invoice_time
  1242. ) invoice_summary ON invoice_summary.income_id = ipi.id
  1243. LEFT JOIN (
  1244. SELECT
  1245. ifo.order_no,
  1246. SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
  1247. FROM ins_fee_orders ifo
  1248. GROUP BY ifo.order_no
  1249. ) fee_summary ON ipi.order_no = fee_summary.order_no
  1250. <where>
  1251. <if test="companyId != null and companyId != ''">
  1252. AND eic.id = #{companyId}
  1253. </if>
  1254. <if test="startTime != null and startTime != ''">
  1255. AND ipi.signing_time BETWEEN #{startTime} AND #{endTime}
  1256. AND (
  1257. invoice_summary.invoice_time BETWEEN #{startTime} AND #{endTime}
  1258. OR invoice_summary.invoice_time IS NULL
  1259. )
  1260. </if>
  1261. </where>
  1262. GROUP BY eic.id, eic.name, eic.parent_id;
  1263. </select>
  1264. <select id="selectAllCompanyReports" resultMap="BaseResultMap">
  1265. SELECT
  1266. eic.id AS company_id,
  1267. eic.parent_id AS parent_id,
  1268. eic.NAME AS company_name,
  1269. COALESCE ( SUM( ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium ), 0 ) AS total_receivable,
  1270. COALESCE ( SUM( ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums ), 0 ) AS supervise_fee,
  1271. COALESCE ( SUM( ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums ), 0 ) AS follow_fee,
  1272. COALESCE ( SUM( invoice_summary.total_invoice ), 0 ) AS invoiced_amount,
  1273. COALESCE ( SUM( invoice_summary.settled_invoice ), 0 ) AS settled_amount,
  1274. COALESCE ( SUM( invoice_summary.unsettled_invoice ), 0 ) AS un_settled_amount
  1275. FROM
  1276. esm_ins_company eic
  1277. LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id AND ipi.agreement_type = #{queryVo.agreementType}
  1278. LEFT JOIN (
  1279. SELECT
  1280. ipiil.income_id,
  1281. SUM( ipii.receivable_supervise_premium ) AS total_invoice,
  1282. SUM( CASE WHEN ipii.STATUS = 1 THEN ipii.receivable_supervise_premium ELSE 0 END ) AS settled_invoice,
  1283. SUM( CASE WHEN ipii.STATUS = 0 THEN ipii.receivable_supervise_premium ELSE 0 END ) AS unsettled_invoice
  1284. FROM
  1285. ins_ply_income_invoice_link ipiil
  1286. LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiil.invoice_id
  1287. <where>
  1288. <if test="queryVo.invoiceTypes != null and queryVo.invoiceTypes.size() > 0">
  1289. AND ipii.invoice_type IN
  1290. <foreach item="item" collection="queryVo.invoiceTypes" separator="," open="(" close=")">
  1291. #{item}
  1292. </foreach>
  1293. </if>
  1294. </where>
  1295. GROUP BY
  1296. ipiil.income_id
  1297. ) invoice_summary ON invoice_summary.income_id = ipi.id
  1298. WHERE
  1299. 1 =1
  1300. <if test="queryVo.companyId != null and queryVo.companyId != ''">
  1301. AND eic.id = #{queryVo.companyId}
  1302. </if>
  1303. GROUP BY
  1304. eic.id,
  1305. eic.parent_id,
  1306. eic.name
  1307. </select>
  1308. <!-- 获取根级保险公司(parent_id为0) -->
  1309. <select id="selectRootCompanies" resultMap="BaseResultMap">
  1310. SELECT
  1311. eic.id as company_id,
  1312. eic.name as company_name,
  1313. COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
  1314. COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
  1315. COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
  1316. COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
  1317. COALESCE(SUM(fee_summary.total_commission) - SUM(invoice_summary.total_invoice), 0) as un_invoiced_amount,
  1318. COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
  1319. COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
  1320. FROM
  1321. esm_ins_company eic
  1322. LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{settlementReportQueryVo.agreementType}
  1323. LEFT JOIN (
  1324. SELECT
  1325. ipiil.income_id,
  1326. ipii.invoice_time,
  1327. SUM(ipii.receivable_supervise_premium) as total_invoice,
  1328. SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
  1329. SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
  1330. FROM ins_ply_income_invoice_link ipiil
  1331. LEFT JOIN ins_ply_income_invoice ipii
  1332. ON ipii.id = ipiil.invoice_id
  1333. <where>
  1334. <if test="settlementReportQueryVo.invoiceTypes != null and settlementReportQueryVo.invoiceTypes.size() > 0">
  1335. AND ipii.invoice_type IN
  1336. <foreach item="item" collection="settlementReportQueryVo.invoiceTypes" separator="," open="(" close=")">
  1337. #{item}
  1338. </foreach>
  1339. </if>
  1340. <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
  1341. and ipii.status = #{settlementReportQueryVo.status}
  1342. </if>
  1343. </where>
  1344. GROUP BY ipiil.income_id, ipii.invoice_time
  1345. ) invoice_summary ON invoice_summary.income_id = ipi.id
  1346. LEFT JOIN (
  1347. SELECT
  1348. ifo.order_no,
  1349. SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
  1350. FROM ins_fee_orders ifo
  1351. GROUP BY ifo.order_no
  1352. ) fee_summary ON ipi.order_no = fee_summary.order_no
  1353. WHERE
  1354. eic.parent_id = 0
  1355. <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
  1356. and eic.id = #{settlementReportQueryVo.companyId}
  1357. </if>
  1358. <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
  1359. AND ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1360. AND (
  1361. invoice_summary.invoice_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1362. OR invoice_summary.invoice_time IS NULL
  1363. )
  1364. </if>
  1365. GROUP BY
  1366. eic.id,
  1367. eic.name;
  1368. </select>
  1369. <!-- 获取子公司 -->
  1370. <select id="selectChildrenByParentId" resultMap="BaseResultMap">
  1371. SELECT
  1372. eic.id as company_id,
  1373. eic.name as company_name,
  1374. COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
  1375. COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
  1376. COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
  1377. COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
  1378. COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
  1379. FROM
  1380. esm_ins_company eic
  1381. LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{settlementReportQueryVo.agreementType}
  1382. LEFT JOIN (
  1383. SELECT
  1384. ipiil.income_id,
  1385. SUM(ipii.receivable_supervise_premium) as total_invoice,
  1386. SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
  1387. SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
  1388. FROM ins_ply_income_invoice_link ipiil
  1389. LEFT JOIN ins_ply_income_invoice ipii
  1390. ON ipii.id = ipiil.invoice_id
  1391. <where>
  1392. <if test="settlementReportQueryVo.invoiceTypes != null and settlementReportQueryVo.invoiceTypes.size() > 0">
  1393. AND ipii.invoice_type IN
  1394. <foreach item="item" collection="settlementReportQueryVo.invoiceTypes" separator="," open="(" close=")">
  1395. #{item}
  1396. </foreach>
  1397. </if>
  1398. <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
  1399. and ipii.status = #{settlementReportQueryVo.status}
  1400. </if>
  1401. </where>
  1402. GROUP BY ipiil.income_id
  1403. ) invoice_summary ON invoice_summary.income_id = ipi.id
  1404. WHERE
  1405. eic.parent_id = #{parentId}
  1406. <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
  1407. and eic.id = #{settlementReportQueryVo.companyId}
  1408. </if>
  1409. <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
  1410. AND ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1411. AND (invoice_summary.invoiceTime BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1412. OR invoice_summary.invoiceTime IS NULL)
  1413. </if>
  1414. <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
  1415. AND ipi.status = #{settlementReportQueryVo.status}
  1416. </if>
  1417. GROUP BY
  1418. eic.id,
  1419. eic.name;
  1420. </select>
  1421. <select id="getSuperviseAmount" resultType="com.jzg.commons.entity.finance.dto.InvoiceAmountDto">
  1422. SELECT
  1423. eic.id AS companyId,
  1424. eic.name AS companyName,
  1425. SUM(COALESCE(ifo.jq_commission_premium, 0) + COALESCE(ifo.sy_commission_premium, 0) + COALESCE(ifo.jy_commission_premium, 0)) AS superviseAmount
  1426. FROM
  1427. esm_ins_company eic
  1428. LEFT JOIN
  1429. ptl_agreement pa ON pa.company_id = CAST(eic.id AS CHAR) COLLATE utf8mb4_general_ci -- 统一为pa的排序规则
  1430. LEFT JOIN
  1431. ins_fee_orders ifo ON pa.id = ifo.agreement_id
  1432. GROUP BY
  1433. eic.id, eic.name
  1434. ORDER BY eic.name
  1435. </select>
  1436. <select id="getReceiverSettlementReport" resultType="com.jzg.commons.entity.finance.dto.ReceiverSettlementReportDto">
  1437. SELECT
  1438. ipi.contact_person AS receiver,
  1439. ipi.company_id,
  1440. -- 原有的应收费用合计
  1441. SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) AS superviseFee,
  1442. SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) AS followFee,
  1443. SUM(
  1444. (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) +
  1445. (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums)
  1446. ) AS totalReceivable,
  1447. -- 已结算费用统计
  1448. SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledSuperviseFee,
  1449. SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledFollowFee,
  1450. SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledAmount,
  1451. -- 未结算费用统计
  1452. SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledSuperviseFee,
  1453. SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledFollowFee,
  1454. SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledAmount
  1455. FROM
  1456. ins_ply_income ipi
  1457. LEFT JOIN ins_ply_income_invoice_link ipil
  1458. ON ipi.id = ipil.income_id
  1459. LEFT JOIN ins_ply_income_invoice ipii
  1460. ON ipil.invoice_id = ipii.id
  1461. where ipi.agreement_type = '1'
  1462. <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
  1463. and ipi.company_id = #{settlementReportQueryVo.companyId}
  1464. </if>
  1465. <if test="settlementReportQueryVo.receiver != null and settlementReportQueryVo.receiver != ''">
  1466. and ipi.contact_person = #{settlementReportQueryVo.receiver}
  1467. </if>
  1468. <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
  1469. and ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1470. and (ipii.invoice_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
  1471. OR ipii.invoice_time IS NULL)
  1472. </if>
  1473. GROUP BY
  1474. ipi.contact_person,
  1475. ipi.company_id
  1476. </select>
  1477. <!-- 根据发票序号查询结算明细 lipf 2026年5月15日10:58:36 -->
  1478. <select id="queryInvoiceSettlementByInvoiceId"
  1479. resultType="com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceSettlement">
  1480. select * from ins_ply_income_invoice_settlement ipiis where ipiis.invoice_id = #{invoiceId}
  1481. </select>
  1482. <!-- <select id="getReceivableList" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">-->
  1483. <!-- SELECT-->
  1484. <!-- ipi.*,-->
  1485. <!-- io.signing_time,-->
  1486. <!-- io.company_name-->
  1487. <!-- FROM-->
  1488. <!-- ins_ply_income ipi-->
  1489. <!-- LEFT JOIN ins_orders io ON ipi.order_no = io.id-->
  1490. <!-- LEFT JOIN ins_ply_income_invoice_link ipiil on ipiil.income_id = ipi.id-->
  1491. <!-- WHERE-->
  1492. <!-- 1 = 1-->
  1493. <!-- AND ipi.supervise_settlement = 0-->
  1494. <!-- AND ipi.other_settlement = 0-->
  1495. <!-- AND ipi.jy_supervise_settlement = 0-->
  1496. <!-- AND ipi.jy_other_settlement = 0-->
  1497. <!-- AND ipiil.income_id IS NULL-->
  1498. <!-- </select>-->
  1499. </mapper>