| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
- <mapper namespace="com.jzg.organization.mapper.ReceivableMapper">
- <resultMap id="InsPlyIncomeResultMap" type="com.jzg.commons.entity.finance.po.InsPlyIncome">
- <result column="order_no" property="orderNo"/>
- <result column="dept_id" property="deptId"/>
- <result column="dept_name" property="deptName"/>
- <!-- 其他字段可不写,会自动映射 -->
- </resultMap>
- <select id="getAuditedOrder" resultMap="InsPlyIncomeResultMap">
- SELECT
- iop.order_no,
- ioci.license_no,
- io.company_id,
- iop.jq_policy_no,
- iop.sy_policy_no,
- iop.jy_policy_no,
- ioc.jq_premium,
- ioc.sy_premium,
- ioc.jy_premium,
- ioc.tax_premium,
- sd.id AS dept_id,
- sd.NAME AS dept_name,
- ifo.jq_commission_ratio as jq_supervise_costs_proportion,
- ifo.sy_commission_ratio as sy_supervise_costs_proportion,
- ifo.jy_commission_ratio as jy_supervise_costs_proportion,
- ifo.jq_commission_premium as jq_supervise_costs_premiums,
- ifo.sy_commission_premium as sy_supervise_costs_premiums,
- ifo.jy_commission_premium as jy_supervise_costs_premiums,
- ifo.jq_follow_ratio as jq_other_costs_proportion,
- ifo.sy_follow_ratio as sy_other_costs_proportion,
- ifo.jy_follow_ratio as jy_other_costs_proportion,
- ifo.jq_follow_premium as jq_other_costs_premiums,
- ifo.sy_follow_premium as sy_other_costs_premiums,
- ifo.jy_follow_premium as jy_other_costs_premiums,
- ifo.jq_receivable_premium,
- ifo.sy_receivable_premium,
- ifo.jy_receivable_premium,
- eic.name_simple,
- pa.id AS agreement_id,
- pa.agreement_name,
- pa.agreement_type,
- io.product_id,
- io.product_name,
- io.pay_time,
- io.signing_time,
- ifa.audit_status
- FROM
- ins_orders io
- LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
- LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
- LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
- LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
- LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
- LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
- LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
- LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
- LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
- LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
- WHERE
- io.id = #{orderNo}
- <if test="orderStatus != null and orderStatus != ''">
- AND io.order_status = #{orderStatus}
- </if>
- <if test="auditStatus != null and auditStatus != ''">
- AND ifa.audit_status = #{auditStatus}
- </if>
- <if test="agreementType != null and agreementType != ''">
- AND pa.agreement_type = #{agreementType}
- </if>
- </select>
- <select id="getUnauditedOrder" resultMap="InsPlyIncomeResultMap">
- SELECT
- iop.order_no,
- ioci.license_no,
- io.company_id,
- iop.jq_policy_no,
- iop.sy_policy_no,
- iop.jy_policy_no,
- ioc.jq_premium,
- ioc.sy_premium,
- ioc.jy_premium,
- ioc.tax_premium,
- sd.id AS dept_id,
- sd.NAME AS dept_name,
- ifo.jq_commission_ratio as jq_supervise_costs_proportion,
- ifo.sy_commission_ratio as sy_supervise_costs_proportion,
- ifo.jy_commission_ratio as jy_supervise_costs_proportion,
- ifo.jq_commission_premium as jq_supervise_costs_premiums,
- ifo.sy_commission_premium as sy_supervise_costs_premiums,
- ifo.jy_commission_premium as jy_supervise_costs_premiums,
- ifo.jq_follow_ratio as jq_other_costs_proportion,
- ifo.sy_follow_ratio as sy_other_costs_proportion,
- ifo.jy_follow_ratio as jy_other_costs_proportion,
- ifo.jq_follow_premium as jq_other_costs_premiums,
- ifo.sy_follow_premium as sy_other_costs_premiums,
- ifo.jy_follow_premium as jy_other_costs_premiums,
- ifo.jq_receivable_premium,
- ifo.sy_receivable_premium,
- ifo.jy_receivable_premium,
- eic.name_simple,
- pa.id AS agreement_id,
- pa.agreement_name,
- pa.agreement_type,
- io.product_id,
- io.product_name,
- io.pay_time,
- io.signing_time,
- ifa.audit_status
- FROM
- ins_orders io
- LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
- LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
- LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
- LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
- LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
- LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
- LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
- LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
- LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
- LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
- WHERE
- io.id = #{orderNo}
- AND
- io.order_status = #{orderStatus}
- </select>
- <select id="getUnauditedOrderList" resultMap="InsPlyIncomeResultMap">
- SELECT
- iop.order_no,
- ioci.license_no,
- io.company_id,
- iop.jq_policy_no,
- iop.sy_policy_no,
- iop.jy_policy_no,
- ioc.jq_premium,
- ioc.sy_premium,
- ioc.jy_premium,
- ioc.tax_premium,
- sd.id AS dept_id,
- sd.NAME AS dept_name,
- ifo.jq_commission_ratio as jq_supervise_costs_proportion,
- ifo.sy_commission_ratio as sy_supervise_costs_proportion,
- ifo.jy_commission_ratio as jy_supervise_costs_proportion,
- ifo.jq_commission_premium as jq_supervise_costs_premiums,
- ifo.sy_commission_premium as sy_supervise_costs_premiums,
- ifo.jy_commission_premium as jy_supervise_costs_premiums,
- ifo.jq_follow_ratio as jq_other_costs_proportion,
- ifo.sy_follow_ratio as sy_other_costs_proportion,
- ifo.jy_follow_ratio as jy_other_costs_proportion,
- ifo.jq_follow_premium as jq_other_costs_premiums,
- ifo.sy_follow_premium as sy_other_costs_premiums,
- ifo.jy_follow_premium as jy_other_costs_premiums,
- ifo.jq_receivable_premium,
- ifo.sy_receivable_premium,
- ifo.jy_receivable_premium,
- eic.name_simple,
- pa.id AS agreement_id,
- pa.agreement_name,
- pa.agreement_type,
- io.product_id,
- io.product_name,
- io.pay_time,
- io.signing_time,
- ifa.audit_status,
- io.docking_person as contact_person,
- io.docking_person_phone as contact_person_phone,
- pa.system_code
- FROM
- ins_orders io
- LEFT JOIN ins_orders_policy iop ON io.id = iop.order_no
- LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no
- LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no
- LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no
- LEFT JOIN esm_ins_company eic ON io.company_id = eic.id
- LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id
- LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id
- LEFT JOIN sys_dept sd ON suji.dept_id = sd.id
- LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id
- LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id
- WHERE
- <if test="orderNo != null and orderNo.size > 0">
- io.id in
- <foreach collection="orderNo" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- AND
- </if>
- io.order_status = #{orderStatus}
- <if test="auditStatus != null and auditStatus != ''">
- AND ifa.audit_status = #{auditStatus}
- </if>
- </select>
- <!-- modify by lipf, 2026年5月18日14:56:29 和业务沟通后,业务王文琦,想要将开过票的订单也显示出来 -->
- <sql id="query">
- SELECT
- io.real_quote_user_id,
- io.real_quote_user_id as real_quote_user_name,
- io.signing_time,
- date(io.signing_time ) as sign_date,
- year(io.signing_time) as sign_year,
- ipi.id,
- io.id as 'orderNo',
- io.company_name,
- ipi.dept_name,
- ipi.agreement_name,
- ipi.agreement_id,
- io.product_name,
- io.entry_status,
- CASE io.entry_status
- WHEN 1 THEN '车险出单'
- WHEN 2 THEN '代客录单'
- WHEN 3 THEN '补录订单'
- ELSE ''
- END AS order_type,
- ipi.license_no,
- (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount, -- 总应收金额
- (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as superviseCostsPremiums, -- 总应收手续费
- (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as otherCostsPremiums, -- 总应收跟单费
- io.product_name,
- iocui.name AS insuredPerson,
- ipi.jq_premium,
- ipi.sy_premium,
- ipi.jy_premium,
- ipi.tax_premium,
- ipi.jq_supervise_costs_proportion,
- ipi.sy_supervise_costs_proportion,
- ipi.jy_supervise_costs_proportion,
- ipi.jq_other_costs_proportion,
- ipi.sy_other_costs_proportion,
- ipi.jy_other_costs_proportion,
- ipi.business_source,
- ipi.settlement_status,
- ipi.add_type,
- ior1.start_date as jq_start_date,
- ior2.start_date as sy_start_date,
- io.product_name AS productName,
- iop.jq_policy_no, -- 交强保单号
- iop.sy_policy_no, -- 商业保单号
- iop.jy_policy_no, -- 非车险保单号
- io.company_name,
- io.company_id,
- ipi.create_time,
- ipi.create_by,
- ipi.update_time,
- ipi.update_by,
- io.docking_person,
- eic.name_simple as companyNameSimple, ipi.contact_person , ipi.contact_person_phone
- FROM
- ins_ply_income ipi
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
- LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
- LEFT JOIN esm_ins_company eic on ipi.company_id = eic.id
- WHERE 1=1 and ipi.settlement_status = '0' and ipi.is_delete = 0
- </sql>
- <!--根据保司id和订单号进行过滤 2026年5月12日15:06:40 lipf -->
- <select id="queryIncomeDatasByOrderIds" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
- <include refid="query"/>
- <if test="companyId != null and companyId != ''">
- and io.company_id = #{companyId}
- </if>
- <if test="orderNos != null and orderNos.size() > 0">
- and io.id in
- <foreach collection="orderNos" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- ORDER BY ipi.create_time DESC
- </select>
- <select id="getReceivablePage" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
- <include refid="query"/>
- <if test="receivableQueryVo.invoiceId != null and receivableQueryVo.invoiceId != ''" >
- and ipi.id in (
- select ipiil.income_id from ins_ply_income_invoice_link ipiil where ipiil.invoice_id = #{receivableQueryVo.invoiceId}
- )
- </if>
- <if test="receivableQueryVo.typeAttr != null and receivableQueryVo.typeAttr != ''">
- and io.real_quote_user_id in (select su.username from sys_user_jzg_info_salesman sujis left join sys_user_jzg_info suji on sujis.sys_user_jzg_info_id = suji.id
- left join sys_user su on su.id = suji.user_id
- where sujis.type_attr =#{receivableQueryVo.typeAttr})
- </if>
- <if test = "receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{receivableQueryVo.agreementType}
- </if>
- <if test = "receivableQueryVo.ids != null and receivableQueryVo.ids.size > 0">
- AND ipi.id in
- <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
- AND ipi.supervise_settlement = 0
- </if>
- <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
- AND ipi.other_settlement = 0
- </if>
- <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
- AND ipi.jy_premium != 0
- AND ipi.jy_supervise_settlement = 0
- AND ipi.jy_other_settlement = 0
- </if>
- <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
- AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
- </if>
- <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
- AND ipi.company_id = #{receivableQueryVo.companyId}
- </if>
- <if test="receivableQueryVo.businessSource != null and receivableQueryVo.businessSource != ''">
- AND ipi.business_source = #{receivableQueryVo.businessSource}
- </if>
- <if test="receivableQueryVo.settlementStatus != null and receivableQueryVo.settlementStatus != ''">
- AND ipi.settlement_status = #{receivableQueryVo.settlementStatus}
- </if>
- <if test="receivableQueryVo.addType != null and receivableQueryVo.addType != ''">
- AND ipi.add_type = #{receivableQueryVo.addType}
- </if>
- <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
- AND ipi.order_no = #{receivableQueryVo.orderNo}
- </if>
- <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
- AND ipi.agreement_id = #{receivableQueryVo.agreementId}
- </if>
- <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
- AND ipi.dept_id = #{receivableQueryVo.deptId}
- </if>
- <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
- AND ipi.product_id = #{receivableQueryVo.productId}
- </if>
- <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
- AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
- </if>
- <if test="receivableQueryVo.insuredName != null and receivableQueryVo.insuredName != ''">
- AND iocui.name = #{receivableQueryVo.insuredName}
- </if>
- <if test="receivableQueryVo.orderType != null and receivableQueryVo.orderType != ''">
- AND io.entry_status = #{receivableQueryVo.orderType}
- </if>
- <if test="receivableQueryVo.productName != null and receivableQueryVo.productName != ''">
- AND io.product_name = #{receivableQueryVo.productName}
- </if>
- <if test="receivableQueryVo.jqPolicyNo != null and receivableQueryVo.jqPolicyNo != ''">
- AND iop.jq_policy_no = #{receivableQueryVo.jqPolicyNo}
- </if>
- <if test="receivableQueryVo.syPolicyNo != null and receivableQueryVo.syPolicyNo != ''">
- AND iop.sy_policy_no = #{receivableQueryVo.syPolicyNo}
- </if>
- <if test="receivableQueryVo.jyPolicyNo != null and receivableQueryVo.jyPolicyNo != ''">
- AND iop.jy_policy_no = #{receivableQueryVo.jyPolicyNo}
- </if>
- <if test="receivableQueryVo.dockingPerson != null and receivableQueryVo.dockingPerson != ''">
- AND io.docking_person = #{receivableQueryVo.dockingPerson}
- </if>
- <if test="receivableQueryVo.jqStartDate != null and receivableQueryVo.jqStartDate != ''">
- AND ior1.start_date between #{receivableQueryVo.jqStartDate} and #{receivableQueryVo.jqEndDate}
- </if>
- <if test="receivableQueryVo.syStartDate != null and receivableQueryVo.syStartDate != ''">
- AND ior2.start_date between #{receivableQueryVo.syStartDate} and #{receivableQueryVo.syStartDate}
- </if>
- ORDER BY ipi.create_time DESC
- </select>
- <select id="getReceivableList" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
- SELECT
- *,
- (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount, -- 总应收金额
- (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as superviseCostsPremiums, -- 总应收手续费
- iocui.name AS insuredPerson,
- ior1.start_date as jqStartDate,
- ior2.start_date as syStartDate,
- io.product_name AS productName,
- iop.jq_policy_no,
- iop.sy_policy_no,
- iop.jy_policy_no
- FROM
- ins_ply_income ipi
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
- LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no
- WHERE 1=1 and ipi.settlement_status = '0' and ipi.is_delete = 0
- <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
- AND ipi.supervise_settlement = 0
- </if>
- <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
- AND ipi.other_settlement = 1
- </if>
- <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
- AND ipi.jy_premium != 0
- </if>
- <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
- AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
- </if>
- <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
- AND ipi.company_id = #{receivableQueryVo.companyId}
- </if>
- <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
- AND ipi.order_no = #{receivableQueryVo.orderNo}
- </if>
- <if test="receivableQueryVo.ids != null and receivableQueryVo.ids != ''">
- AND ipi.id IN
- <foreach collection="receivableQueryVo.ids" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- <if test="receivableQueryVo.orderNos != null and receivableQueryVo.orderNos != ''">
- AND ipi.order_no IN
- <foreach collection="receivableQueryVo.orderNos" item="orderNo" open="(" separator="," close=")">
- #{orderNo}
- </foreach>
- </if>
- <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
- AND ipi.agreement_id = #{receivableQueryVo.agreementId}
- </if>
- <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
- AND ipi.dept_id = #{receivableQueryVo.deptId}
- </if>
- <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
- AND ipi.product_id = #{receivableQueryVo.productId}
- </if>
- <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
- AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
- </if>
- <if test="receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{receivableQueryVo.agreementType}
- </if>
- ORDER BY ipi.create_time DESC
- </select>
- <select id="getSuperviseJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseJyExcelDto">
- SELECT
- ipi.signing_time as signingTime,
- ipi.order_no as orderNo,
- ipi.company_name as companyName,
- ipi.dept_name as deptName,
- ipi.agreement_name as agreementName,
- io.entry_status as entryStatus,
- ipi.license_no as licenseNo,
- (ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium) as receivableAmount,
- io.product_name as productName,
- iocui.name AS insuredPerson,
- ipi.jy_premium as jqPremium,
- ipi.jy_supervise_costs_proportion as jqSuperviseCostsProportion,
- ipi.jy_policy_no as jyPolicyNo,
- ior1.start_date as jqStartDate,
- ior2.start_date as syStartDate,
- ipi.create_time as createTime,
- ipi.contact_person as contactPerson
- FROM
- ins_ply_income ipi
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
- WHERE
- 1=1
- AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id )
- <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
- AND ipi.supervise_settlement = 0
- </if>
- <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
- AND ipi.other_settlement = 1
- </if>
- <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
- AND ipi.jy_premium != 0
- </if>
- <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
- AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
- </if>
- <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
- AND ipi.company_id = #{receivableQueryVo.companyId}
- </if>
- <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
- AND ipi.order_no = #{receivableQueryVo.orderNo}
- </if>
- <if test="receivableQueryVo.orderNos != null and receivableQueryVo.orderNos != ''">
- AND ipi.order_no IN
- <foreach collection="receivableQueryVo.orderNos" item="orderNo" open="(" separator="," close=")">
- #{orderNo}
- </foreach>
- </if>
- <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
- AND ipi.agreement_id = #{receivableQueryVo.agreementId}
- </if>
- <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
- AND ipi.dept_id = #{receivableQueryVo.deptId}
- </if>
- <if test="receivableQueryVo.productId!= null and receivableQueryVo.productId!= ''">
- AND ipi.product_id = #{receivableQueryVo.productId}
- </if>
- <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
- AND ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
- </if>
- <if test="receivableQueryVo.agreementType != null and receivableQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{receivableQueryVo.agreementType}
- </if>
- ORDER BY ipi.create_time DESC
- </select>
- <select id="superviseSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">
- select
- ipiis.id as settlementId,
- ipiis.invoice_id as invoiceId,
- io.company_id,
- io.company_name,
- ipii.invoice_type,
- ipii.invoice_party,
- ipii.tax_point,
- ipi.order_no as orderNo,
- ipiis.actual_received_amount,
- ipii.receivable_supervise_premium,
- ipiis.receive_payment_date,
- ipiis.create_by ,
- ipiis.create_time
- FROM
- ins_ply_income_invoice_settlement ipiis
- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- left join ptl_agreement agree on io.agreement_id = agree.id
- WHERE
- 1=1
- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
- AND ipiis.id IN
- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
- #{settlementId}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
- and io.company_id = #{settlementQueryVo.companyId}
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- and ipii.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.invoiceRiskType != null and settlementQueryVo.invoiceRiskType != ''">
- and ipii.invoice_risk_type = #{settlementQueryVo.invoiceRiskType}
- </if>
- <if test="settlementQueryVo.status != null and settlementQueryVo.status != ''">
- and ipii.status = #{settlementQueryVo.status}
- </if>
- <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
- and ipiis.create_by = #{settlementQueryVo.settlementPerson}
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND (agree.agreement_type = #{settlementQueryVo.agreementType} or agree.agreement_type is null)
- </if>
- <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
- AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
- AND ipiis.id = #{settlementQueryVo.settlementId}
- </if>
- <if test="settlementQueryVo.settlementDateStart != null and settlementQueryVo.settlementDateStart != ''">
- and ipiis.create_time >= date(#{settlementQueryVo.settlementDateStart})
- </if>
- <if test="settlementQueryVo.settlementDateEndStr != null and settlementQueryVo.settlementDateEndStr != ''">
- and ipiis.create_time <= date(#{settlementQueryVo.settlementDateEndStr})
- </if>
- <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
- AND ipiis.id = #{settlementQueryVo.settlementId}
- </if>
- order by ipiis.create_time desc
- </select>
- <select id="platformSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">
- SELECT
- ipiis.id AS settlementId,
- -- 拼接需要合并的字段,DISTINCT 去重,SEPARATOR '、' 用顿号分隔
- GROUP_CONCAT(DISTINCT ipiis.invoice_id SEPARATOR ',') AS invoiceId,
- GROUP_CONCAT(DISTINCT io.company_id SEPARATOR ',') AS company_id,
- GROUP_CONCAT(DISTINCT io.company_name SEPARATOR ',') AS company_name,
- GROUP_CONCAT(DISTINCT ipii.invoice_type SEPARATOR ',') AS invoice_type,
- GROUP_CONCAT(DISTINCT ipii.invoice_party SEPARATOR ',') AS invoice_party,
- GROUP_CONCAT(DISTINCT ipii.tax_point SEPARATOR ',') AS tax_point,
- GROUP_CONCAT(DISTINCT ipi.order_no SEPARATOR ',') AS orderNo,
- -- 金额/日期这类同一settlementId相同的字段,直接取任意一个即可
- MAX(ipiis.actual_received_amount) AS actual_received_amount,
- MAX(ipiis.receive_payment_date) AS receive_payment_date,
- MAX(ipiis.create_by) AS create_by,
- MAX(ipiis.create_time) AS create_time
- FROM ins_ply_income_invoice_settlement ipiis
- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- LEFT JOIN ptl_agreement agree ON io.agreement_id = agree.id
- WHERE 1 = 1
- AND ipiis.is_delete = 0
- AND ipii.is_delete = 0
- AND ipi.is_delete = 0
- AND io.is_delete = 0
- AND agree.is_delete = 0
- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
- AND ipiis.id IN
- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
- #{settlementId}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
- and io.company_id = #{settlementQueryVo.companyId}
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- and ipii.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.invoiceRiskType != null and settlementQueryVo.invoiceRiskType != ''">
- and ipii.invoice_risk_type = #{settlementQueryVo.invoiceRiskType}
- </if>
- <if test="settlementQueryVo.status != null and settlementQueryVo.status != ''">
- and ipii.status = #{settlementQueryVo.status}
- </if>
- <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
- and ipiis.create_by = #{settlementQueryVo.settlementPerson}
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND (agree.agreement_type = #{settlementQueryVo.agreementType} or agree.agreement_type is null)
- </if>
- <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
- AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
- AND ipiis.id = #{settlementQueryVo.settlementId}
- </if>
- <if test="settlementQueryVo.settlementDateStart != null and settlementQueryVo.settlementDateStart != ''">
- and ipiis.create_time >= date(#{settlementQueryVo.settlementDateStart})
- </if>
- <if test="settlementQueryVo.settlementDateEndStr != null and settlementQueryVo.settlementDateEndStr != ''">
- and ipiis.create_time <= date(#{settlementQueryVo.settlementDateEndStr})
- </if>
- <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
- AND ipiis.id = #{settlementQueryVo.settlementId}
- </if>
- GROUP BY ipiis.id
- order by ipiis.create_time desc
- </select>
- <!-- <select id="getSuperviseSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">-->
- <!-- select-->
- <!-- ipiis.id as settlementId,-->
- <!-- ipiis.invoice_id as invoiceId,-->
- <!-- ipi.company_name as companyName,-->
- <!-- ipii.invoice_type as invoiceType,-->
- <!-- ipii.invoice_party as invoiceParty,-->
- <!-- ipii.tax_point as taxPoint,-->
- <!-- ipiis.actual_received_amount as actualReceivedAmount,-->
- <!-- ipiis.receive_payment_date as receivePaymentDate,-->
- <!-- ipiis.create_by as createBy,-->
- <!-- ipiis.create_time as createTime-->
- <!-- FROM-->
- <!-- ins_ply_income_invoice_settlement ipiis-->
- <!-- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id-->
- <!-- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id-->
- <!-- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id-->
- <!-- WHERE-->
- <!-- 1=1-->
- <!-- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">-->
- <!-- AND ipiis.id IN-->
- <!-- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">-->
- <!-- #{settlementId}-->
- <!-- </foreach>-->
- <!-- </if>-->
- <!-- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">-->
- <!-- AND ipi.invoice_type IN-->
- <!-- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">-->
- <!-- #{invoiceType}-->
- <!-- </foreach>-->
- <!-- </if>-->
- <!-- </select>-->
- <select id="getSuperviseSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
- select
- ipiis.id as settlementId, -- 结算记录编号
- ipiis.invoice_id as invoiceId, -- 开票记录编号
- io.company_name as companyName, -- 保险公司
- io.signing_time as signingTime, -- 签单时间
- ipii.status as status, -- 状态
- ipi.license_no as licenseNo, -- 车牌号
- io.product_name as productName, -- 险种
- ipii.invoice_type as invoiceType, -- 应收项
- ipii.invoice_party as invoiceParty, -- 开票方
- ipii.tax_point as taxPoint, -- 税点
- (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
- ipi.jq_premium as jqPremium, -- 交强保费
- ipi.jq_supervise_costs_proportion as jqSuperviseCostsProportion, -- 交强手续费比例
- ipi.jq_policy_no as jqPolicyNo, -- 交强保单号
- ipi.sy_premium as syPremium, -- 商业保费
- ipi.sy_supervise_costs_proportion as sySuperviseCostsProportion, -- 商业手续费比例
- ipi.sy_policy_no as syPolicyNo, -- 商业保单号
- ipi.jy_premium as jyPremium, -- 非车保费
- ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion, -- 非车手续费比例
- ipi.jy_policy_no as jyPolicyNo, -- 非车保单号
- ipi.tax_premium as taxPremium, -- 车船税
- ipii.create_by as invoicePerson, -- 开票人
- ipii.create_time as invoiceTime, -- 开票时间
- ipiis.create_by as settlementPerson, -- 结算人
- ipiis.create_time as settlementTime -- 结算时间
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipii.id
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- WHERE
- 1 = 1
- <if test="settlementQueryVo.settlementId != null and settlementQueryVo.settlementId != ''">
- and ipiis.id = #{settlementQueryVo.settlementId}
- </if>
- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
- AND ipiis.id IN
- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
- #{settlementId}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
- AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
- AND ipi.company_id = #{settlementQueryVo.companyId}
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
- AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
- </if>
- <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
- AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{settlementQueryVo.agreementType}
- </if>
- </select>
- <select id="getSuperviseSettlementDetailJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailJyExcelDto">
- select
- ipiis.id as settlementId, -- 结算记录编号
- ipiis.invoice_id as invoiceId, -- 开票记录编号
- ipi.company_name as companyName, -- 保险公司
- ipi.signing_time as signingTime, -- 签单时间
- ipii.status as status, -- 状态
- ipi.license_no as licenseNo, -- 车牌号
- io.product_name as productName, -- 险种
- ipii.invoice_type as invoiceType, -- 应收项
- ipii.invoice_party as invoiceParty, -- 开票方
- ipii.tax_point as taxPoint, -- 税点
- (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
- ipi.jy_premium as jqPremium, -- 驾意保费
- ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion, -- 驾意险手续费比例
- ipi.jy_policy_no as jqPolicyNo, -- 交强保单号
- ipi.sy_policy_no as syPolicyNo, -- 商业保单号
- ipii.create_by as invoicePerson, -- 开票人
- ipii.create_time as invoiceTime, -- 开票时间
- ipiis.create_by as settlementPerson, -- 结算人
- ipiis.create_time as settlementTime -- 结算时间
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- WHERE
- 1=1
- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
- AND ipiis.id IN
- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
- #{settlementId}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
- AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
- AND ipi.company_id = #{settlementQueryVo.companyId}
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
- AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
- </if>
- <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
- AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{settlementQueryVo.agreementType}
- </if>
- ORDER BY ipi.create_time DESC
- </select>
- <select id="getOtherExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherExcelDto">
- SELECT
- ipi.signing_time as signingTime,
- ipi.order_no as orderNo,
- ipi.company_name as companyName,
- ipi.dept_name as deptName,
- ipi.agreement_name as agreementName,
- io.entry_status as entryStatus,
- ipi.license_no as licenseNo,
- (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
- io.product_name as productName,
- iocui.name AS insuredPerson,
- ipi.jq_premium as jqPremium,
- ipi.jq_other_costs_proportion as jqSuperviseCostsProportion,
- ipi.jq_policy_no as jqPolicyNo,
- ior1.start_date as jqStartDate,
- ipi.sy_premium as syPremium,
- ipi.sy_other_costs_proportion as syqSuperviseCostsProportion,
- ipi.sy_policy_no as syPolicyNo,
- ior2.start_date as syStartDate,
- ipi.tax_premium as taxPremium,
- ipi.create_time as createTime,
- ipi.contact_person as contactPerson
- FROM ins_ply_income ipi
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
- WHERE
- 1=1
- <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
- AND ipi.supervise_settlement = 0
- </if>
- <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
- AND ipi.other_settlement = 1
- </if>
- <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
- AND ipi.jy_premium != 0
- </if>
- <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
- and ipi.licenseNo = #{receivableQueryVo.licenseNo}
- </if>
- <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
- and ipi.order_no = #{receivableQueryVo.orderNo}
- </if>
- <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
- and ipi.company_id = #{receivableQueryVo.companyId}
- </if>
- <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
- and ipi.dept_id = #{receivableQueryVo.deptId}
- </if>
- <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
- and ipi.agreement_id = #{receivableQueryVo.agreementId}
- </if>
- <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
- and ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
- </if>
- ORDER BY ipi.create_time DESC
- </select>
- <select id="getOtherJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherJyExcelDto">
- SELECT
- ipi.signing_time as signingTime,
- ipi.order_no as orderNo,
- ipi.company_name as companyName,
- ipi.dept_name as deptName,
- ipi.agreement_name as agreementName,
- io.entry_status as entryStatus,
- ipi.license_no as licenseNo,
- (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableAmount,
- ipi.product_name as productName,
- iocui.name AS insuredPerson,
- ipi.jy_premium as jyPremium,
- ipi.jy_other_costs_proportion as jySuperviseCostsProportion,
- ipi.jy_policy_no as jyPolicyNo,
- ior1.start_date as jqStartDate,
- ior2.start_date as syStartDate,
- ipi.create_time as createTime
- FROM ins_ply_income ipi
- LEFT JOIN ins_orders io ON ipi.order_no = io.order_no
- LEFT JOIN ins_orders_car_user_info iocui ON ipi.order_no = iocui.order_no and iocui.policy_person_type = '3'
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507'
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510'
- WHERE
- 1=1
- <if test="receivableQueryVo.queryType != null and receivableQueryVo.queryType == 1">
- AND ipi.supervise_settlement = 0
- </if>
- <if test="receivableQueryVo.queryType!= null and receivableQueryVo.queryType == 2">
- AND ipi.other_settlement = 1
- </if>
- <if test="receivableQueryVo.queryType!= null and (receivableQueryVo.queryType == 3 or receivableQueryVo.queryType == 4)">
- AND ipi.jy_premium != 0
- </if>
- <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
- and ipi.licenseNo = #{receivableQueryVo.licenseNo}
- </if>
- <if test="receivableQueryVo.orderNo != null and receivableQueryVo.orderNo != ''">
- and ipi.order_no = #{receivableQueryVo.orderNo}
- </if>
- <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
- and ipi.company_id = #{receivableQueryVo.companyId}
- </if>
- <if test="receivableQueryVo.deptId != null and receivableQueryVo.deptId != ''">
- and ipi.dept_id = #{receivableQueryVo.deptId}
- </if>
- <if test="receivableQueryVo.agreementId != null and receivableQueryVo.agreementId != ''">
- and ipi.agreement_id = #{receivableQueryVo.agreementId}
- </if>
- <if test="receivableQueryVo.signingTimeStart != null and receivableQueryVo.signingTimeStart != ''">
- and ipi.signing_time between #{receivableQueryVo.signingTimeStart} and #{receivableQueryVo.signingTimeEnd}
- </if>
- ORDER BY ipi.create_time DESC
- </select>
- <select id="getOtherSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementExcelDto">
- select
- ipiis.id as settlementId,
- ipiis.invoice_id as invoiceId,
- ipi.company_name as companyName,
- ipii.invoice_type as invoiceType,
- ipii.invoice_party as invoiceParty,
- ipii.tax_point as taxPoint,
- ipiis.actual_received_amount as actualReceivedAmount,
- ipiis.receive_payment_date as receivePaymentDate,
- ipiis.create_by as createBy,
- ipiis.create_time as createTime
- FROM
- ins_ply_income_invoice_settlement ipiis
- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
- WHERE
- 1=1
- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
- AND ipiis.id IN
- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
- #{settlementId}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND ipii.agreement_type = #{settlementQueryVo.agreementType}
- </if>
- </select>
- <select id="getOtherSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementDetailExcelDto">
- select
- ipiis.id as settlementId, -- 结算记录编号
- ipiis.invoice_id as invoiceId, -- 开票记录编号
- ipi.company_name as companyName, -- 保险公司
- ipi.signing_time as signingTime, -- 签单时间
- ipii.status as status, -- 状态
- ipi.license_no as licenseNo, -- 车牌号
- io.product_name as productName, -- 险种
- ipii.invoice_type as invoiceType, -- 应收项
- ipii.invoice_party as invoiceParty, -- 开票方
- ipii.tax_point as taxPoint, -- 税点
- (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableOtherCosts, -- 应收跟单费
- ipi.jq_premium as jqPremium, -- 交强保费
- ipi.jq_other_costs_proportion as jqOtherCostsProportion, -- 交强手续费比例
- ipi.jq_policy_no as jqPolicyNo, -- 交强保单号
- ipi.sy_premium as syPremium, -- 商业保费
- ipi.sy_other_costs_proportion as syOtherCostsProportion, -- 商业手续费比例
- ipi.sy_policy_no as syPolicyNo, -- 商业保单号
- ipi.tax_premium as taxPremium, -- 车船税
- ipii.create_by as invoicePerson, -- 开票人
- ipii.create_time as invoiceTime, -- 开票时间
- ipiis.create_by as settlementPerson, -- 结算人
- ipiis.create_time as settlementTime -- 结算时间
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- WHERE
- 1=1
- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
- AND ipiis.id IN
- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
- #{settlementId}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
- AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
- AND ipi.company_id = #{settlementQueryVo.companyId}
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
- AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
- </if>
- <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
- AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{settlementQueryVo.agreementType}
- </if>
- </select>
- <select id="getOtherSettlementDetailJyExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportOtherSettlementDetailJyExcelDto">
- select
- ipiis.id as settlementId, -- 结算记录编号
- ipiis.invoice_id as invoiceId, -- 开票记录编号
- ipi.company_name as companyName, -- 保险公司
- ipi.signing_time as signingTime, -- 签单时间
- ipii.status as status, -- 状态
- ipi.license_no as licenseNo, -- 车牌号
- io.product_name as productName, -- 险种
- ipii.invoice_type as invoiceType, -- 应收项
- ipii.invoice_party as invoiceParty, -- 开票方
- ipii.tax_point as taxPoint, -- 税点
- (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) as receivableSuperviseCosts, -- 应收手续费
- ipi.jy_premium as jqPremium, -- 驾意保费
- ipi.jy_other_costs_proportion as jqOtherCostsProportion, -- 驾意险跟单费比例
- ipi.jy_policy_no as jqPolicyNo, -- 交强保单号
- ipi.sy_policy_no as syPolicyNo, -- 商业保单号
- ipii.create_by as invoicePerson, -- 开票人
- ipii.create_time as invoiceTime, -- 开票时间
- ipiis.create_by as settlementPerson, -- 结算人
- ipiis.create_time as settlementTime -- 结算时间
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipiis.id
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id
- LEFT JOIN ins_orders io ON ipi.order_no = io.id
- WHERE
- 1=1
- <if test="settlementQueryVo.settlementIds != null and settlementQueryVo.settlementIds != ''">
- AND ipiis.id IN
- <foreach collection="settlementQueryVo.settlementIds" item="settlementId" open="(" separator="," close=")">
- #{settlementId}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceTypes != null and settlementQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="settlementQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
- AND ipiis.invoice_id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
- AND ipi.company_id = #{settlementQueryVo.companyId}
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- AND ipi.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.settlementPerson != null and settlementQueryVo.settlementPerson != ''">
- AND ipiis.create_by = #{settlementQueryVo.settlementPerson}
- </if>
- <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != ''">
- AND ipiis.create_time between #{settlementQueryVo.signingTimeStart} and #{settlementQueryVo.signingTimeEnd}
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{settlementQueryVo.agreementType}
- </if>
- </select>
- <select id="getReceivableCompany" resultType="com.jzg.commons.entity.po.EsmInsCompany">
- SELECT
- eic.id,
- eic.company_code,
- eic.`name`
- FROM
- ins_ply_income ipi
- LEFT JOIN esm_ins_company eic ON ipi.company_id = eic.id
- WHERE
- ipi.id IN
- <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- GROUP BY
- eic.company_code,
- eic.`name`,
- eic.id
- </select>
- <!-- 根据应收订单的编号,查询应收记录 lipf 2026年5月30日10:25:14 -->
- <select id="queryIncomeByIds" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">
- SELECT ipi.* FROM ins_ply_income ipi WHERE
- ipi.id IN
- <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </select>
- <select id="invoicingCheck" resultType="java.lang.Integer">
- SELECT count(id) AS count
- FROM ins_ply_income_invoice_link
- <where>
- <if test="invoicingVo.incomeIds != null and invoicingVo.incomeIds.size > 0">
- AND income_id IN
- <foreach collection="invoicingVo.incomeIds"
- item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- <if test="invoicingVo.invoiceType != null and invoicingVo.invoiceType != ''">
- AND invoice_type = #{invoicingVo.invoiceType}
- </if>
- </where>
- </select>
- <!-- 查询订单绑定的发票信息 lipf 2026年5月21日11:56:19 -->
- <select id="queryIncomeBindInvoice" resultType="com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceLink">
- SELECT * FROM
- ins_ply_income_invoice_link
- where
- income_id IN
- <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </select>
- <select id="getJqSumReceivable" resultType="java.util.Map">
- SELECT
- sum( jq_commission_premium ) AS jqCommissionPremium,
- sum( sy_commission_premium ) AS syCommissionPremium,
- sum( jy_commission_premium ) AS jyCommissionPremium,
- sum( jq_follow_premium ) AS jqFollowPremium,
- sum( sy_follow_premium ) AS syFollowPremium,
- sum( jy_follow_premium ) AS jyFollowPremium
- FROM
- ins_fee_orders
- WHERE
- order_no IN
- <foreach collection="orderNos" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </select>
- <select id="getInvoiceRecordList" resultType="com.jzg.commons.entity.finance.vo.InvoiceRecordResult">
- SELECT
- ipii.id,
- ipii.company_id,
- ipii.invoice_no,
- ipii.invoice_type,
- -- 应收项
- ipii.invoice_risk_type,
- CASE
- WHEN ipii.invoice_party = '1' THEN
- '我方开票' ELSE '保司开票'
- END as invoice_party,
- ipii.overinflated_amount,
- ipii.receivable_supervise_premium,
- ipii.tax_point,
- ipii.create_time,
- ipii.create_by,
- ipii.update_time,
- ipii.update_by,
- eic.name as company_name,
- eic.name_simple as companyNameSimple,
- sum( ipiis.actual_received_amount ) AS actual_received_amount,
- ipii.status,
- ipii.payment_reason
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id
- LEFT JOIN esm_ins_company eic on eic.id = ipii.company_id
- WHERE
- 1=1 and ipii.is_delete = 0
- <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
- AND ipii.invoice_type = #{invoiceRecordQueryVo.invoiceType}
- </if>
- <if test="invoiceRecordQueryVo.accountsReceivable != null and invoiceRecordQueryVo.accountsReceivable != ''">
- AND ipii.invoice_risk_type = #{invoiceRecordQueryVo.accountsReceivable}
- </if>
- <if test="invoiceRecordQueryVo.recordId != null and invoiceRecordQueryVo.recordId != ''">
- AND ipii.id = #{invoiceRecordQueryVo.recordId}
- </if>
- <if test="invoiceRecordQueryVo.companyId != null and invoiceRecordQueryVo.companyId != ''">
- AND ipii.company_id = #{invoiceRecordQueryVo.companyId}
- </if>
- <if test="invoiceRecordQueryVo.invoiceParty != null and invoiceRecordQueryVo.invoiceParty != ''">
- AND ipii.invoice_party = #{invoiceRecordQueryVo.invoiceParty}
- </if>
- <if test="invoiceRecordQueryVo.companyNameSimple != null and invoiceRecordQueryVo.companyNameSimple != ''">
- AND eic.id = #{invoiceRecordQueryVo.companyNameSimple}
- </if>
- <if test="invoiceRecordQueryVo.settlementStatus != null and invoiceRecordQueryVo.settlementStatus != ''">
- HAVING CASE
- WHEN ipii.receivable_supervise_premium = SUM(ipiis.actual_received_amount) THEN '1'
- ELSE '0'
- END = #{invoiceRecordQueryVo.settlementStatus}
- </if>
- GROUP BY
- ipii.id,
- ipii.receivable_supervise_premium,
- ipii.invoice_type,
- ipii.company_id,
- ipii.invoice_party
- ORDER BY ipii.create_time DESC
- </select>
- <!-- 基础结果集映射 -->
- <resultMap id="BaseResultMap" type="com.jzg.commons.entity.finance.dto.CompanySuperviseSettlementReportDto">
- <result column="company_id" property="companyId"/>
- <result column="company_name" property="companyName"/>
- <result column="total_receivable" property="totalReceivable"/>
- <result column="total_follow_fee" property="totalFollowFee"/>
- <result column="supervise_fee" property="superviseFee"/>
- <result column="follow_fee" property="followFee"/>
- <result column="invoiced_amount" property="invoicedAmount"/>
- <result column="settled_amount" property="settledAmount"/>
- <result column="un_invoiced_amount" property="unInvoicedAmount"/>
- <result column="un_settled_amount" property="unSettledAmount"/>
- </resultMap>
- <!-- 优化:一次性查询所有公司数据,替代递归查库 -->
- <select id="selectAllCompanies" resultMap="BaseResultMap">
- SELECT
- eic.id as company_id,
- eic.parent_id, <!-- 必须加这个,树形结构需要 -->
- eic.name as company_name,
- COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
- COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
- COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
- COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
- COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
- COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
- FROM
- esm_ins_company eic
- LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{agreementType}
- LEFT JOIN (
- SELECT
- ipiil.income_id,
- ipii.invoice_time,
- SUM(ipii.receivable_supervise_premium) as total_invoice,
- SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
- SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
- FROM ins_ply_income_invoice_link ipiil
- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiil.invoice_id
- <where>
- <if test="invoiceTypes != null and invoiceTypes.size() > 0">
- AND ipii.invoice_type IN
- <foreach item="item" collection="invoiceTypes" separator="," open="(" close=")">
- #{item}
- </foreach>
- </if>
- <if test="status != null and status != ''">
- and ipii.status = #{status}
- </if>
- </where>
- GROUP BY ipiil.income_id, ipii.invoice_time
- ) invoice_summary ON invoice_summary.income_id = ipi.id
- LEFT JOIN (
- SELECT
- ifo.order_no,
- SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
- FROM ins_fee_orders ifo
- GROUP BY ifo.order_no
- ) fee_summary ON ipi.order_no = fee_summary.order_no
- <where>
- <if test="companyId != null and companyId != ''">
- AND eic.id = #{companyId}
- </if>
- <if test="startTime != null and startTime != ''">
- AND ipi.signing_time BETWEEN #{startTime} AND #{endTime}
- AND (
- invoice_summary.invoice_time BETWEEN #{startTime} AND #{endTime}
- OR invoice_summary.invoice_time IS NULL
- )
- </if>
- </where>
- GROUP BY eic.id, eic.name, eic.parent_id;
- </select>
- <select id="selectAllCompanyReports" resultMap="BaseResultMap">
- SELECT
- eic.id AS company_id,
- eic.parent_id AS parent_id,
- eic.NAME AS company_name,
- COALESCE ( SUM( ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium ), 0 ) AS total_receivable,
- COALESCE ( SUM( ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums ), 0 ) AS supervise_fee,
- COALESCE ( SUM( ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums ), 0 ) AS follow_fee,
- COALESCE ( SUM( invoice_summary.total_invoice ), 0 ) AS invoiced_amount,
- COALESCE ( SUM( invoice_summary.settled_invoice ), 0 ) AS settled_amount,
- COALESCE ( SUM( invoice_summary.unsettled_invoice ), 0 ) AS un_settled_amount
- FROM
- esm_ins_company eic
- LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id AND ipi.agreement_type = #{queryVo.agreementType}
- LEFT JOIN (
- SELECT
- ipiil.income_id,
- SUM( ipii.receivable_supervise_premium ) AS total_invoice,
- SUM( CASE WHEN ipii.STATUS = 1 THEN ipii.receivable_supervise_premium ELSE 0 END ) AS settled_invoice,
- SUM( CASE WHEN ipii.STATUS = 0 THEN ipii.receivable_supervise_premium ELSE 0 END ) AS unsettled_invoice
- FROM
- ins_ply_income_invoice_link ipiil
- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiil.invoice_id
- <where>
- <if test="queryVo.invoiceTypes != null and queryVo.invoiceTypes.size() > 0">
- AND ipii.invoice_type IN
- <foreach item="item" collection="queryVo.invoiceTypes" separator="," open="(" close=")">
- #{item}
- </foreach>
- </if>
- </where>
- GROUP BY
- ipiil.income_id
- ) invoice_summary ON invoice_summary.income_id = ipi.id
- WHERE
- 1 =1
- <if test="queryVo.companyId != null and queryVo.companyId != ''">
- AND eic.id = #{queryVo.companyId}
- </if>
- GROUP BY
- eic.id,
- eic.parent_id,
- eic.name
- </select>
- <!-- 获取根级保险公司(parent_id为0) -->
- <select id="selectRootCompanies" resultMap="BaseResultMap">
- SELECT
- eic.id as company_id,
- eic.name as company_name,
- COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
- COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
- COALESCE(SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums), 0) as follow_fee,
- COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
- COALESCE(SUM(fee_summary.total_commission) - SUM(invoice_summary.total_invoice), 0) as un_invoiced_amount,
- COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
- COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
- FROM
- esm_ins_company eic
- LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{settlementReportQueryVo.agreementType}
- LEFT JOIN (
- SELECT
- ipiil.income_id,
- ipii.invoice_time,
- SUM(ipii.receivable_supervise_premium) as total_invoice,
- SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
- SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
- FROM ins_ply_income_invoice_link ipiil
- LEFT JOIN ins_ply_income_invoice ipii
- ON ipii.id = ipiil.invoice_id
- <where>
- <if test="settlementReportQueryVo.invoiceTypes != null and settlementReportQueryVo.invoiceTypes.size() > 0">
- AND ipii.invoice_type IN
- <foreach item="item" collection="settlementReportQueryVo.invoiceTypes" separator="," open="(" close=")">
- #{item}
- </foreach>
- </if>
- <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
- and ipii.status = #{settlementReportQueryVo.status}
- </if>
- </where>
- GROUP BY ipiil.income_id, ipii.invoice_time
- ) invoice_summary ON invoice_summary.income_id = ipi.id
- LEFT JOIN (
- SELECT
- ifo.order_no,
- SUM(DISTINCT (ifo.jq_commission_premium + ifo.sy_commission_premium + ifo.jy_commission_premium)) as total_commission
- FROM ins_fee_orders ifo
- GROUP BY ifo.order_no
- ) fee_summary ON ipi.order_no = fee_summary.order_no
- WHERE
- eic.parent_id = 0
- <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
- and eic.id = #{settlementReportQueryVo.companyId}
- </if>
- <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
- AND ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
- AND (
- invoice_summary.invoice_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
- OR invoice_summary.invoice_time IS NULL
- )
- </if>
- GROUP BY
- eic.id,
- eic.name;
- </select>
- <!-- 获取子公司 -->
- <select id="selectChildrenByParentId" resultMap="BaseResultMap">
- SELECT
- eic.id as company_id,
- eic.name as company_name,
- COALESCE(SUM(ipi.jq_receivable_premium + ipi.sy_receivable_premium + ipi.jy_receivable_premium), 0) as total_receivable,
- COALESCE(SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums), 0) as supervise_fee,
- COALESCE(SUM(invoice_summary.total_invoice), 0) as invoiced_amount,
- COALESCE(SUM(invoice_summary.settled_invoice), 0) as settled_amount,
- COALESCE(SUM(invoice_summary.unsettled_invoice), 0) as un_settled_amount
- FROM
- esm_ins_company eic
- LEFT JOIN ins_ply_income ipi ON eic.id = ipi.company_id and ipi.agreement_type = #{settlementReportQueryVo.agreementType}
- LEFT JOIN (
- SELECT
- ipiil.income_id,
- SUM(ipii.receivable_supervise_premium) as total_invoice,
- SUM(CASE WHEN ipii.status = 1 THEN ipii.receivable_supervise_premium ELSE 0 END) as settled_invoice,
- SUM(CASE WHEN ipii.status = 0 THEN ipii.receivable_supervise_premium ELSE 0 END) as unsettled_invoice
- FROM ins_ply_income_invoice_link ipiil
- LEFT JOIN ins_ply_income_invoice ipii
- ON ipii.id = ipiil.invoice_id
- <where>
- <if test="settlementReportQueryVo.invoiceTypes != null and settlementReportQueryVo.invoiceTypes.size() > 0">
- AND ipii.invoice_type IN
- <foreach item="item" collection="settlementReportQueryVo.invoiceTypes" separator="," open="(" close=")">
- #{item}
- </foreach>
- </if>
- <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
- and ipii.status = #{settlementReportQueryVo.status}
- </if>
- </where>
- GROUP BY ipiil.income_id
- ) invoice_summary ON invoice_summary.income_id = ipi.id
- WHERE
- eic.parent_id = #{parentId}
- <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
- and eic.id = #{settlementReportQueryVo.companyId}
- </if>
- <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
- AND ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
- AND (invoice_summary.invoiceTime BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
- OR invoice_summary.invoiceTime IS NULL)
- </if>
- <if test="settlementReportQueryVo.status != null and settlementReportQueryVo.status != ''">
- AND ipi.status = #{settlementReportQueryVo.status}
- </if>
- GROUP BY
- eic.id,
- eic.name;
- </select>
- <select id="getSuperviseAmount" resultType="com.jzg.commons.entity.finance.dto.InvoiceAmountDto">
- SELECT
- eic.id AS companyId,
- eic.name AS companyName,
- SUM(COALESCE(ifo.jq_commission_premium, 0) + COALESCE(ifo.sy_commission_premium, 0) + COALESCE(ifo.jy_commission_premium, 0)) AS superviseAmount
- FROM
- esm_ins_company eic
- LEFT JOIN
- ptl_agreement pa ON pa.company_id = CAST(eic.id AS CHAR) COLLATE utf8mb4_general_ci -- 统一为pa的排序规则
- LEFT JOIN
- ins_fee_orders ifo ON pa.id = ifo.agreement_id
- GROUP BY
- eic.id, eic.name
- ORDER BY eic.name
- </select>
- <select id="getReceiverSettlementReport" resultType="com.jzg.commons.entity.finance.dto.ReceiverSettlementReportDto">
- SELECT
- ipi.contact_person AS receiver,
- ipi.company_id,
- -- 原有的应收费用合计
- SUM(ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) AS superviseFee,
- SUM(ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums) AS followFee,
- SUM(
- (ipi.jq_supervise_costs_premiums + ipi.sy_supervise_costs_premiums + ipi.jy_supervise_costs_premiums) +
- (ipi.jq_other_costs_premiums + ipi.sy_other_costs_premiums + ipi.jy_other_costs_premiums)
- ) AS totalReceivable,
- -- 已结算费用统计
- SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledSuperviseFee,
- SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledFollowFee,
- SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledAmount,
- -- 未结算费用统计
- SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (1,3) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledSuperviseFee,
- SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (2,4) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledFollowFee,
- SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type IN (1,2) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledAmount
- FROM
- ins_ply_income ipi
- LEFT JOIN ins_ply_income_invoice_link ipil
- ON ipi.id = ipil.income_id
- LEFT JOIN ins_ply_income_invoice ipii
- ON ipil.invoice_id = ipii.id
- where ipi.agreement_type = '1'
- <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
- and ipi.company_id = #{settlementReportQueryVo.companyId}
- </if>
- <if test="settlementReportQueryVo.receiver != null and settlementReportQueryVo.receiver != ''">
- and ipi.contact_person = #{settlementReportQueryVo.receiver}
- </if>
- <if test="settlementReportQueryVo.startTime != null and settlementReportQueryVo.startTime != ''">
- and ipi.signing_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
- and (ipii.invoice_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime}
- OR ipii.invoice_time IS NULL)
- </if>
- GROUP BY
- ipi.contact_person,
- ipi.company_id
- </select>
- <!-- 根据发票序号查询结算明细 lipf 2026年5月15日10:58:36 -->
- <select id="queryInvoiceSettlementByInvoiceId"
- resultType="com.jzg.commons.entity.finance.po.InsPlyIncomeInvoiceSettlement">
- select * from ins_ply_income_invoice_settlement ipiis where ipiis.invoice_id = #{invoiceId}
- </select>
- <select id="queryCumulativeAccountsReceivable"
- resultType="com.jzg.commons.entity.finance.dto.CompanySuperviseSettlementReportDto">
- select
- eic.parent_id,
- ipi.company_id,
- ipi.system_code,
- sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_proportion,0 )+COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as totalReceivable , -- 累计应收 (含手续费和跟单费)
- sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_proportion,0 )+COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as totalFollowFee, -- 累计应收 (含手续费和跟单费)
- sum(COALESCE(ipi.jq_supervise_costs_premiums, 0)+ COALESCE(ipi.sy_supervise_costs_premiums,0)+coalesce(ipi.jy_supervise_costs_proportion,0 )) as superviseFee, -- 应收手续费
- sum(COALESCE(ipi.jq_other_costs_premiums, 0)+ COALESCE(ipi.sy_other_costs_premiums,0)+coalesce(ipi.jy_other_costs_premiums,0 )) as followFee -- 应收跟单费
- from
- ins_ply_income ipi
- left join esm_ins_company eic
- on eic.id = ipi.company_id
- group by
- eic.parent_id,
- ipi.company_id,
- ipi.system_code
- having company_id is not null
- and ipi.system_code = #{systemCode}
- </select>
- <!-- 查询已开票金额 lipf 2026年6月1日17:58:42 -->
- <select id="queryInvoicedAmount" resultType="com.jzg.organization.entity.dto.CalRes">
- select
- a.company_id as companyId, <!-- 加上别名,与 @MapKey 对应 -->
- sum(a.amount) as amount <!-- 加上别名,MyBatis 会自动映射为 Map 的 value -->
- from
- (
- select
- ipii.company_id,
- COALESCE(ipii.receivable_supervise_premium) as amount
- from
- ins_ply_income_invoice ipii
- where
- 1 = 1
- and ipii.id in (
- select
- ipiil.invoice_id
- from
- ins_ply_income_invoice_link ipiil
- <where>
- ipiil.income_id in (
- select
- ipi.id
- from
- ins_ply_income ipi
- where
- ipi.system_code = #{systemCode}) )
- <if test="invoiceType != null and !invoiceType.isEmpty()">
- AND ipii.invoice_type IN
- <foreach collection="invoiceType" item="item" open="(" separator="," close=")">
- ${item}
- </foreach>
- </if>
- <if test="invoiceStartDate != null and invoiceStartDate != ''">
- and ipii.invoice_time >= CAST('${invoiceStartDate}' AS DATETIME)
- </if>
- <if test="invoiceEndDate != null and invoiceEndDate != ''">
- and ipii.invoice_time < CAST('${invoiceEndDate}' AS DATETIME)
- </if>
- </where>
- ) a group by a.company_id
- </select>
- <!-- 查询已结算金额 lipf 2026年6月1日18:12:08 -->
- <select id="querySettledAmount" resultType="com.jzg.organization.entity.dto.CalRes">
- select
- a.company_id ,
- sum(COALESCE(a.jq_supervise_costs_premiums, 0)+ COALESCE(a.sy_supervise_costs_premiums, 0)+ coalesce(a.jy_supervise_costs_proportion, 0 )) as sxf_settlement,
- sum(COALESCE(a.jq_other_costs_premiums, 0)+ COALESCE(a.sy_other_costs_premiums, 0)+ coalesce(a.jy_other_costs_premiums, 0 )) as gdf_settlement
- from
- (
- select
- ipi.company_id ,
- ipi.jq_supervise_costs_premiums,
- ipi.sy_supervise_costs_premiums,
- ipi.jy_supervise_costs_proportion,
- ipi.jq_other_costs_premiums,
- ipi.sy_other_costs_premiums,
- ipi.jy_other_costs_premiums,
- ipi.settlement_status ,
- ipi.settlement_time
- from
- ins_ply_income ipi
- <where>
- ipi.settlement_status = 1
- <if test="settledStartDate != null and settledStartDate != ''">
- and ipi.settlement_time >= cast( '${settledStartDate}' as datetime)
- </if>
- <if test="settledEndDate != null and settledEndDate != ''">
- and ipi.settlement_time < cast('${settledEndDate}' as datetime)
- </if>
- </where> ) a
- group by a.company_id
- </select>
- <!-- <select id="getReceivableList" resultType="com.jzg.commons.entity.finance.po.InsPlyIncome">-->
- <!-- SELECT-->
- <!-- ipi.*,-->
- <!-- io.signing_time,-->
- <!-- io.company_name-->
- <!-- FROM-->
- <!-- ins_ply_income ipi-->
- <!-- LEFT JOIN ins_orders io ON ipi.order_no = io.id-->
- <!-- LEFT JOIN ins_ply_income_invoice_link ipiil on ipiil.income_id = ipi.id-->
- <!-- WHERE-->
- <!-- 1 = 1-->
- <!-- AND ipi.supervise_settlement = 0-->
- <!-- AND ipi.other_settlement = 0-->
- <!-- AND ipi.jy_supervise_settlement = 0-->
- <!-- AND ipi.jy_other_settlement = 0-->
- <!-- AND ipiil.income_id IS NULL-->
- <!-- </select>-->
- </mapper>
|