ReceivableMapper.xml 88 KB

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