ReceivableMapper.xml 90 KB

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