ReceivableMapper.xml 83 KB

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