ReceivableMapper.xml 78 KB

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