| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294 |
- <?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 AND iop.is_delete = 0
- LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no AND ioci.is_delete = 0
- LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no AND ioc.is_delete = 0
- LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no AND ifo.is_delete = 0
- LEFT JOIN esm_ins_company eic ON io.company_id = eic.id AND eic.is_delete = 0
- LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id AND su.is_delete = 0
- LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id AND suji.is_delete = 0
- LEFT JOIN sys_dept sd ON suji.dept_id = sd.id AND sd.is_delete = 0
- LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id AND pa.is_delete = 0
- LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id AND ifa.is_delete = 0
- <where>
- io.is_delete = 0
- AND 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>
- </where>
- </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 AND iop.is_delete = 0
- LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no AND ioci.is_delete = 0
- LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no AND ioc.is_delete = 0
- LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no AND ifo.is_delete = 0
- LEFT JOIN esm_ins_company eic ON io.company_id = eic.id AND eic.is_delete = 0
- LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id AND su.is_delete = 0
- LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id AND suji.is_delete = 0
- LEFT JOIN sys_dept sd ON suji.dept_id = sd.id AND sd.is_delete = 0
- LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id AND pa.is_delete = 0
- LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id AND ifa.is_delete = 0
- <where>
- io.is_delete = 0
- AND io.id = #{orderNo}
- AND io.order_status = #{orderStatus}
- </where>
- </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,
- pa.partner_company_id,
- 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 AND iop.is_delete = 0
- LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no AND ioci.is_delete = 0
- LEFT JOIN ins_orders_costs ioc ON io.id = ioc.order_no AND ioc.is_delete = 0
- LEFT JOIN ins_fee_orders ifo ON io.id = ifo.order_no AND ifo.is_delete = 0
- LEFT JOIN esm_ins_company eic ON io.company_id = eic.id AND eic.is_delete = 0
- LEFT JOIN sys_user su ON su.mobile = io.real_quote_user_id AND su.is_delete = 0
- LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id AND suji.is_delete = 0
- LEFT JOIN sys_dept sd ON suji.dept_id = sd.id AND sd.is_delete = 0
- LEFT JOIN ptl_agreement pa ON io.agreement_id = pa.id AND pa.is_delete = 0
- LEFT JOIN ins_fee_audit ifa on ifa.order_no = io.id AND ifa.is_delete = 0
- <where>
- io.is_delete = 0
- and io.system_code = #{systemCode}
- <if test="orderNo != null and orderNo.size > 0">
- AND io.id in
- <foreach collection="orderNo" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- AND io.order_status in (5,0)
- <if test="auditStatus != null and auditStatus != ''">
- AND ifa.audit_status = #{auditStatus}
- </if>
- </where>
- </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,
- DATE_FORMAT(io.signing_time,'%Y-%m') AS sign_month,
- ipi.id,
- io.id as 'orderNo',
- eic.name_simple as companyName,
- 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,
- -- 1. 总应收金额 (修复了多余的右括号)
- (COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) + COALESCE(ipi.jy_receivable_premium, 0)) AS receivableAmount,
- (COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) ) AS receivableAmount4Car,
- (COALESCE(ipi.jy_receivable_premium, 0)) AS receivableAmount4Other,
- -- 2. 总应收手续费 (为最后一个字段补充了默认值 0)
- (COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) + COALESCE(ipi.jy_supervise_costs_premiums, 0)) AS superviseCostsPremiums,
- -- 3. 总应收跟单费 (修复了括号位置错误,并为最后一个字段补充了默认值 0)
- (COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0) + COALESCE(ipi.jy_other_costs_premiums, 0)) AS otherCostsPremiums,
- (COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0)) AS carInsuranceSuperviseCostsPremiums,
- COALESCE(ipi.jy_supervise_costs_premiums, 0) AS nonCarInsuranceSuperviseCostsPremiums,
- (COALESCE(ipi.jq_other_costs_premiums, 0) + COALESCE(ipi.sy_other_costs_premiums, 0)) AS carInsuranceOtherCostsPremiums,
- COALESCE(ipi.jy_other_costs_premiums, 0) AS nonCarInsuranceOtherCostsPremiums,
- (COALESCE(ipi.jq_supervise_costs_proportion, 0) + COALESCE(ipi.jq_other_costs_proportion, 0)) AS jqTotalProportion,
- (COALESCE(ipi.sy_supervise_costs_proportion, 0) + COALESCE(ipi.sy_other_costs_proportion, 0)) AS syTotalProportion,
- (COALESCE(ipi.jy_supervise_costs_proportion, 0) + COALESCE(ipi.jy_other_costs_proportion, 0)) AS jyTotalProportion,
- 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,
- COALESCE(ipi.jy_supervise_costs_premiums, 0) + COALESCE(ipi.jy_other_costs_premiums,0) as jyTotalPremiums,
- io.product_name,
- iocui.name AS insuredPerson,
- ipi.jq_premium,
- ipi.sy_premium,
- ipi.jy_premium,
- ipi.tax_premium,
- ipi.jq_receivable_premium,
- ipi.sy_receivable_premium,
- ipi.jy_receivable_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_id,
- ipi.partner_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 AND io.is_delete = 0
- 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
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507' AND ior1.is_delete = 0
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510' AND ior2.is_delete = 0
- LEFT JOIN ins_orders_policy iop ON ipi.order_no = iop.order_no AND iop.is_delete = 0
- LEFT JOIN esm_ins_company eic on ipi.company_id = eic.id AND eic.is_delete = 0
- left join ptl_agreement pa on pa.id = io.agreement_id
- where
- ipi.is_delete = 0
- </sql>
- <!-- 查询应收订单总额 lipf 2026年6月4日10:22:57 -->
- <select id="queryAllTotalReceivablePremiumByOrderNo" resultType="java.math.BigDecimal">
- SELECT
- sum(COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) + COALESCE(ipi.jy_receivable_premium, 0) )
- from
- ins_ply_income ipi
- <where>
- ipi.order_no in
- <foreach collection="orders" item="order" open="(" separator="," close=")">
- #{order}
- </foreach>
- </where>
- </select>
- <!--根据保司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 ipi.partner_company_id = #{companyId}
- </if>
- <if test="agreementType != null and agreementType != ''">
- and ipi.agreement_type = #{agreementType}
- </if>
- <if test="invoiceType != null and invoiceType != ''">
- AND ipi.id not in (
- select ipiil.income_id from ins_ply_income_invoice_link ipiil where ipiil.invoice_type = #{invoiceType} and ipiil.is_delete = 0
- )
- </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"/>
- and ipi.system_code = #{receivableQueryVo.systemCode}
- <if test="receivableQueryVo.riskCode != null and receivableQueryVo.riskCode != '' ">
- and io.product_name = #{receivableQueryVo.riskCode}
- </if>
- <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} and ipiil.is_delete = 0
- )
- </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 and suji.is_delete = 0
- left join sys_user su on su.id = suji.user_id and su.is_delete = 0
- where sujis.type_attr =#{receivableQueryVo.typeAttr})
- </if>
- <if test="receivableQueryVo.invoiceSettlementStatus != null and receivableQueryVo.invoiceSettlementStatus != ''">
- <!-- 当状态为1时,查询已开票的数据 -->
- <if test="receivableQueryVo.invoiceSettlementStatus != 2">
- AND ipi.id in (
- select ipil.income_id from ins_ply_income_invoice_link ipil
- LEFT JOIN ins_ply_income_invoice ipii ON ipil.invoice_id = ipii.id AND ipii.is_delete = 0
- where ipii.status = #{receivableQueryVo.invoiceSettlementStatus} and ipil.is_delete = 0
- )
- </if>
- <!-- 当状态为2时,查询未开票的数据 -->
- <if test="receivableQueryVo.invoiceSettlementStatus == 2">
- AND NOT EXISTS (
- SELECT 1 FROM ins_ply_income_invoice_link link
- LEFT JOIN ins_ply_income_invoice inv ON link.invoice_id = inv.id AND inv.is_delete = 0
- WHERE link.income_id = ipi.id AND link.is_delete = 0
- )
- </if>
- </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.invoiceType!= null and (receivableQueryVo.invoiceType == 3 or receivableQueryVo.invoiceType == 4)">
- AND ipi.jy_premium != 0
- </if>
- <if test="receivableQueryVo.licenseNo != null and receivableQueryVo.licenseNo != ''">
- AND ipi.license_no LIKE CONCAT('%', #{receivableQueryVo.licenseNo}, '%')
- </if>
- <choose>
- <when test="receivableQueryVo.companyIds != null and receivableQueryVo.companyIds.size() > 0">
- AND ipi.partner_company_id in
- <foreach collection="receivableQueryVo.companyIds" item="companyId" open="(" close=")" separator=",">
- #{companyId}
- </foreach>
- </when>
- <otherwise>
- <if test="receivableQueryVo.companyId != null and receivableQueryVo.companyId != ''">
- AND (ipi.partner_company_id = #{receivableQueryVo.companyId} or ipi.company_id = #{receivableQueryVo.companyId})
- </if>
- </otherwise>
- </choose>
- <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">
- <include refid="query"/>
- and ipi.system_code = #{receivableQueryVo.systemCode}
- <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} and ipiil.is_delete = 0
- )
- </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 and suji.is_delete = 0
- left join sys_user su on su.id = suji.user_id and su.is_delete = 0
- 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="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,
- (COALESCE(ipi.jq_receivable_premium,0) + COALESCE(ipi.sy_receivable_premium,0) + COALESCE(ipi.jy_receivable_premium,0) ) 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 AND io.is_delete = 0
- 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
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507' AND ior1.is_delete = 0
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510' AND ior2.is_delete = 0
- <where>
- ipi.is_delete = 0
- AND ipi.system_code = #{receivableQueryVo.systemCode}
- AND NOT EXISTS ( SELECT 1 FROM ins_ply_income_invoice_link ipil WHERE ipil.income_id = ipi.id AND ipil.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.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>
- </where>
- 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.invoice_risk_type,
- ipii.tax_point,
- ipiis.actual_received_amount,
- ipii.receivable_supervise_premium,
- ipiis.receive_payment_date,
- ipiis.create_by ,
- ipiis.create_time,
- ipiis.settlement_payment_difference ,
- ipiis.settlement_payment_reason
- FROM
- ins_ply_income_invoice_settlement ipiis
- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id AND ipii.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- LEFT JOIN ins_orders io ON ipi.order_no = io.id AND io.is_delete = 0
- left join ptl_agreement agree on io.agreement_id = agree.id AND agree.is_delete = 0
- <where>
- ipiis.is_delete = 0
- AND ipiis.system_code = #{settlementQueryVo.systemCode}
- <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 ipi.partner_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 >= #{settlementQueryVo.settlementDateStart}
- </if>
- <if test="settlementQueryVo.settlementDateEnd != null and settlementQueryVo.settlementDateEnd != ''">
- AND ipiis.create_time < DATE_ADD(#{settlementQueryVo.settlementDateEnd}, INTERVAL 1 DAY)
- </if>
- </where>
- group by
- ipiis.id ,
- ipiis.invoice_id,
- io.company_id,
- io.company_name,
- ipii.invoice_type,
- ipii.invoice_party,
- ipii.tax_point,
- ipiis.actual_received_amount,
- ipii.receivable_supervise_premium,
- ipiis.receive_payment_date,
- ipiis.create_by ,
- ipiis.create_time
- order by ipiis.create_time desc
- </select>
- <select id="platformSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">
- SELECT
- ipiis.id AS settlementId,
- 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,
- GROUP_CONCAT(DISTINCT ipi.partner_company_id SEPARATOR ',') AS partnerCompanyId,
- 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,
- ipiis.settlement_payment_difference,
- ipiis.settlement_payment_reason,
- ipii.receivable_supervise_premium,
- ipii.contact_person,
- ipii.contact_person_phone
- FROM ins_ply_income_invoice_settlement ipiis
- LEFT JOIN ins_ply_income_invoice ipii ON ipii.id = ipiis.invoice_id AND ipii.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- LEFT JOIN ins_orders io ON ipi.order_no = io.id AND io.is_delete = 0
- LEFT JOIN ptl_agreement agree ON io.agreement_id = agree.id AND agree.is_delete = 0
- <where>
- ipiis.is_delete = 0
- AND ipiis.system_code = #{settlementQueryVo.systemCode}
- <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.contactPerson != null and settlementQueryVo.contactPerson != ''">
- AND io.docking_person = #{settlementQueryVo.contactPerson}
- </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.partnerCompanyId != null and settlementQueryVo.partnerCompanyId != ''">
- AND ipi.partner_company_id = #{settlementQueryVo.partnerCompanyId}
- </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>
- </where>
- GROUP BY ipiis.id
- order by ipiis.create_time desc
- </select>
- <select id="followSettlementExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementExcelDto">
- SELECT
- ipiis.id AS settlementId,
- GROUP_CONCAT(DISTINCT ipiis.invoice_id SEPARATOR ',') AS invoiceId,
- GROUP_CONCAT(DISTINCT ipii.company_id SEPARATOR ',') AS company_id,
- GROUP_CONCAT(DISTINCT eic.name SEPARATOR ',') AS company_name,
- GROUP_CONCAT(DISTINCT ipii.invoice_type SEPARATOR ',') AS invoice_type,
- GROUP_CONCAT(DISTINCT ipii.invoice_risk_type SEPARATOR ',') AS invoice_risk_type,
- GROUP_CONCAT(DISTINCT ipii.invoice_party SEPARATOR ',') AS invoice_party,
- GROUP_CONCAT(DISTINCT ipii.tax_point SEPARATOR ',') AS tax_point,
- GROUP_CONCAT(DISTINCT ipiis.settlement_payment_reason SEPARATOR ',') AS settlement_payment_reason,
- MAX(COALESCE(ipiis.settlement_payment_difference, 0)) AS settlement_payment_difference,
- MAX(COALESCE(ipiis.actual_received_amount, 0)) 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 AND ipii.is_delete = 0
- LEFT JOIN ins_ply_follow_invoice_link link ON link.invoice_id = ipiis.invoice_id AND link.is_delete = 0
- LEFT JOIN ins_fee_follow_order fo ON fo.id = link.follow_id AND fo.is_delete = 0
- LEFT JOIN esm_ins_company eic ON ipii.company_id = eic.id AND eic.is_delete = 0
- <where>
- ipiis.is_delete = 0
- AND ipiis.system_code = #{settlementQueryVo.systemCode}
- <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 ipii.company_id = #{settlementQueryVo.companyId}
- </if>
- <if test="settlementQueryVo.partnerCompanyId != null and settlementQueryVo.partnerCompanyId != ''">
- AND fo.partner_company_id = #{settlementQueryVo.partnerCompanyId}
- </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.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.settlementDateEnd != null and settlementQueryVo.settlementDateEnd != ''">
- AND ipiis.create_time <= date(#{settlementQueryVo.settlementDateEnd})
- </if>
- <if test="settlementQueryVo.signMonth != null and settlementQueryVo.signMonth != ''">
- AND fo.year = SUBSTRING(#{settlementQueryVo.signMonth},1,4)
- AND fo.month = SUBSTRING(#{settlementQueryVo.signMonth},6,2)
- </if>
- </where>
- GROUP BY ipiis.id
- order by ipiis.create_time desc
- </select>
- <select id="followSettlementDetailExcel" 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,
- GROUP_CONCAT(DISTINCT iffo.year SEPARATOR ',') AS year,
- GROUP_CONCAT(DISTINCT iffo.month SEPARATOR ',') AS month,
- iffo.partner_company_id,
- ( select cp.name from esm_ins_company cp where cp.id = iffo.partner_company_id) as partner_company_name
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_follow_invoice_link ipfii ON ipii.id = ipfii.invoice_id AND ipfii.is_delete = 0
- LEFT JOIN ins_fee_follow_order iffo ON iffo.id = ipfii.follow_id AND iffo.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id AND ipiis.is_delete = 0
- LEFT JOIN esm_ins_company eic on eic.id = ipii.company_id AND eic.is_delete = 0
- <where>
- ipii.is_delete = 0
- AND ipii.system_code = #{settlementQueryVo.systemCode}
- <if test="settlementQueryVo.invoicePerson != null and settlementQueryVo.invoicePerson != ''">
- AND ipiis.create_by like concat('%',#{settlementQueryVo.invoicePerson},'%')
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- AND ipii.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.invoiceId != null and settlementQueryVo.invoiceId != ''">
- AND ipii.id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.companyId != null and settlementQueryVo.companyId != ''">
- AND ipii.company_id = #{settlementQueryVo.companyId}
- </if>
- <!-- 这里重复了invoiceParty判断,可以删掉重复的if标签 -->
- <if test="settlementQueryVo.status != null and settlementQueryVo.status != ''">
- AND ipii.status = #{settlementQueryVo.status}
- </if>
- <if test="settlementQueryVo.partnerCompanyId != null and settlementQueryVo.partnerCompanyId != ''">
- AND iffo.partner_company_id = #{settlementQueryVo.partnerCompanyId}
- </if>
- <!-- 严重逻辑错误:时间字段对比了金额字段 -->
- <if test="settlementQueryVo.settlementTimeStart != null and settlementQueryVo.settlementTimeStart != '' and settlementQueryVo.settlementTimeEnd != null and settlementQueryVo.settlementTimeEnd != '' ">
- AND ipiis.create_time between #{settlementQueryVo.settlementTimeStart} and #{settlementQueryVo.settlementTimeEnd}
- </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>
- </where>
- <if test="settlementQueryVo.settlementStatus != null and settlementQueryVo.settlementStatus != ''">
- HAVING CASE
- WHEN ipii.receivable_supervise_premium = SUM(ipiis.actual_received_amount) THEN '1'
- ELSE '0'
- END = #{settlementQueryVo.settlementStatus}
- </if>
- GROUP BY
- ipii.id,
- ipii.receivable_supervise_premium,
- ipii.invoice_type,
- ipii.company_id,
- ipii.invoice_party,
- iffo.partner_company_id
- ORDER BY ipii.create_time DESC
- </select>
- <select id="getSuperviseSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
- select ipi.contact_person, ipi.contact_person_phone,
- io.company_name as companyName,
- io.signing_time as signingTime,
- ipii.id as invoiceId,
- 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,
- (COALESCE(ipi.jq_supervise_costs_premiums,0) + COALESCE(ipi.sy_supervise_costs_premiums,0) + COALESCE(ipi.jy_supervise_costs_premiums,0) ) as receivableSuperviseCosts,
- COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0) as superviseCostPremiums4Car,
- COALESCE(ipi.jy_supervise_costs_premiums, 0) as jy_supervise_costs_premiums,
- 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,
- (SELECT U.USERNAME FROM sys_user U WHERE U.mobile = ipii.create_by) as invoicePerson,
- ipii.invoice_time
- FROM ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipii.id = ipil.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- LEFT JOIN ins_orders io ON ipi.order_no = io.id AND io.is_delete = 0
- <where>
- ipii.is_delete = 0
- AND ipii.system_code = #{settlementQueryVo.systemCode}
- <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 ipii.id = #{settlementQueryVo.invoiceId}
- </if>
- <if test="settlementQueryVo.companyIdList != null and settlementQueryVo.companyIdList.size() > 0" >
- AND ipi.partner_company_id in
- <foreach collection="settlementQueryVo.companyIdList" item="item" open="(" separator="," close=")">
- #{item}
- </foreach>
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- AND ipii.invoice_party = #{settlementQueryVo.invoiceParty}
- </if>
- <if test="settlementQueryVo.agreementType != null and settlementQueryVo.agreementType != ''">
- AND ipi.agreement_type = #{settlementQueryVo.agreementType}
- </if>
- </where>
- </select>
- <select id="getPlatFormSettlementDetailExcelDtos" resultType="com.jzg.commons.entity.finance.dto.ExportSuperviseSettlementDetailExcelDto">
- select ipi.contact_person, ipi.contact_person_phone,
- 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,
- 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 receivableSuperviseCosts,
- ipi.jq_premium as jqPremium,
- ipi.jq_supervise_costs_proportion as jqSuperviseCostsProportion,
- ipi.jq_other_costs_proportion,
- ipi.jq_policy_no as jqPolicyNo,
- ipi.sy_premium as syPremium,
- ipi.sy_supervise_costs_proportion as sySuperviseCostsProportion,
- ipi.sy_other_costs_proportion,
- ipi.sy_policy_no as syPolicyNo,
- ipi.jy_premium as jyPremium,
- ipi.jy_supervise_costs_proportion as jySuperviseCostsProportion,
- ipi.jy_other_costs_proportion,
- 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,
- (SELECT U.USERNAME FROM sys_user U WHERE U.mobile = ipii.create_by) as invoicePerson,
- ipii.invoice_time
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipiis.invoice_id = ipii.id AND ipiis.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- LEFT JOIN ins_orders io ON ipi.order_no = io.id AND io.is_delete = 0
- <where>
- ipii.is_delete = 0
- AND ipii.system_code = #{settlementQueryVo.systemCode}
- <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.companyIdList != null and settlementQueryVo.companyIdList.size() > 0" >
- AND ipi.partner_company_id in
- <foreach collection="settlementQueryVo.companyIdList" item="item" open="(" separator="," close=")">
- #{item}
- </foreach>
- </if>
- <if test="settlementQueryVo.contactPerson != null and settlementQueryVo.contactPerson != ''">
- AND ipii.contact_person = #{settlementQueryVo.contactPerson}
- </if>
- <if test="settlementQueryVo.invoiceParty != null and settlementQueryVo.invoiceParty != ''">
- AND ipii.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>
- </where>
- </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,
- (COALESCE(ipi.jq_supervise_costs_premiums,0) + COALESCE(ipi.sy_supervise_costs_premiums,0) + COALESCE(ipi.jy_supervise_costs_premiums,0)) 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 = ipii.id AND ipiis.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- LEFT JOIN ins_orders io ON ipi.order_no = io.id AND io.is_delete = 0
- <where>
- ipii.is_delete = 0
- AND ipii.system_code = #{settlementQueryVo.systemCode}
- <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 ipii.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>
- </where>
- 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,
- (COALESCE(ipi.jq_other_costs_premiums,0) + COALESCE(ipi.sy_other_costs_premiums,0) + COALESCE(ipi.jy_other_costs_premiums,0) ) 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 AND io.is_delete = 0
- 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
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507' AND ior1.is_delete = 0
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510' AND ior2.is_delete = 0
- <where>
- ipi.is_delete = 0
- AND ipi.system_code = #{receivableQueryVo.systemCode}
- <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 = #{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>
- </where>
- 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,
- (COALESCE(ipi.jq_other_costs_premiums,0) + COALESCE(ipi.sy_other_costs_premiums,0) + COALESCE(ipi.jy_other_costs_premiums,0) ) 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.id AND io.is_delete = 0
- 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
- LEFT JOIN ins_orders_risk ior1 ON ipi.order_no = ior1.order_no and ior1.risk_code = '0507' AND ior1.is_delete = 0
- LEFT JOIN ins_orders_risk ior2 ON ipi.order_no = ior2.order_no and ior2.risk_code = '0510' AND ior2.is_delete = 0
- <where>
- ipi.is_delete = 0
- AND ipi.system_code = #{receivableQueryVo.systemCode}
- <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 = #{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>
- </where>
- 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 AND ipii.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- <where>
- ipiis.is_delete = 0
- AND ipiis.system_code = #{settlementQueryVo.systemCode}
- <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>
- </where>
- </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,
- (COALESCE(ipi.jq_other_costs_premiums,0) + COALESCE(ipi.sy_other_costs_premiums,0) + COALESCE(ipi.jy_other_costs_premiums,0) ) 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 = ipii.id AND ipiis.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- LEFT JOIN ins_orders io ON ipi.order_no = io.id AND io.is_delete = 0
- <where>
- ipii.is_delete = 0
- AND ipii.system_code = #{settlementQueryVo.systemCode}
- <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 ipii.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>
- </where>
- </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,
- (COALESCE(ipi.jq_other_costs_premiums,0) + COALESCE(ipi.sy_other_costs_premiums,0) + COALESCE(ipi.jy_other_costs_premiums,0) ) 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 = ipii.id AND ipiis.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipil.invoice_id = ipiis.invoice_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income ipi ON ipi.id = ipil.income_id AND ipi.is_delete = 0
- LEFT JOIN ins_orders io ON ipi.order_no = io.id AND io.is_delete = 0
- <where>
- ipii.is_delete = 0
- AND ipii.system_code = #{settlementQueryVo.systemCode}
- <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 ipii.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>
- </where>
- </select>
- <select id="getReceivableCompany" resultType="com.jzg.commons.entity.po.EsmInsCompany">
- SELECT
- distinct eic.id,
- eic.company_code,
- eic.`name`
- FROM
- ins_ply_income ipi
- LEFT JOIN esm_ins_company eic
- ON ipi.partner_company_id = eic.id
- AND eic.is_delete = 0
- <where>
- ipi.is_delete = 0
- AND ipi.id IN
- <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </where>
- 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.is_delete = 0
- AND ipi.id IN
- <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </where>
- </select>
- <select id="invoicingCheck" resultType="java.lang.Integer">
- SELECT count(id) AS count
- FROM ins_ply_income_invoice_link
- <where>
- is_delete = 0
- <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 ipiil
- <where>
- ipiil.is_delete = 0
- AND ipiil.income_id IN
- <foreach collection="invoicingVo.incomeIds" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </where>
- </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>
- is_delete = 0
- AND order_no IN
- <foreach collection="orderNos" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </where>
- </select>
- <select id="getIncomeJqSumReceivable" resultType="java.util.Map">
- SELECT
- sum( jq_supervise_costs_premiums ) AS jqCommissionPremium,
- sum( sy_supervise_costs_premiums ) AS syCommissionPremium,
- sum( jy_supervise_costs_premiums ) AS jyCommissionPremium,
- sum( jq_other_costs_premiums ) AS jqFollowPremium,
- sum( sy_other_costs_premiums ) AS syFollowPremium,
- sum( jy_other_costs_premiums ) AS jyFollowPremium
- FROM
- ins_ply_income
- <where>
- is_delete = 0
- AND order_no IN
- <foreach collection="orderNos" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </where>
- </select>
- <select id="getInvoiceRecordList" resultType="com.jzg.commons.entity.finance.vo.InvoiceRecordResult">
- SELECT
- ipii.id,
- ipii.company_id,
- ipii.invoice_no,
- ipii.invoice_time,
- 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,
- ipii.payment_reason ,
- sum(ipiis.actual_received_amount) AS actual_received_amount, GROUP_CONCAT(DISTINCT ipiis.settlement_payment_reason SEPARATOR ',') AS settlementPaymentReason,
- ipii.status
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id AND ipiis.is_delete = 0
- LEFT JOIN esm_ins_company eic on eic.id = ipii.company_id AND eic.is_delete = 0
- <where>
- ipii.is_delete = 0 AND ipii.system_code = #{invoiceRecordQueryVo.systemCode}
- <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.companyIds != null and invoiceRecordQueryVo.companyIds.size() > 0">
- AND ipii.company_id IN
- <foreach collection="invoiceRecordQueryVo.companyIds" open="(" close=")" item="companyId" separator=",">
- #{companyId}
- </foreach>
- </if>
- <if test="invoiceRecordQueryVo.invoiceNo != null and invoiceRecordQueryVo.invoiceNo != ''">
- AND ipii.invoice_no like concat('%',#{invoiceRecordQueryVo.invoiceNo},'%')
- </if>
- <if test="invoiceRecordQueryVo.invoiceType != null and invoiceRecordQueryVo.invoiceType != ''">
- AND ipii.invoice_type = #{invoiceRecordQueryVo.invoiceType}
- </if>
- <if test="invoiceRecordQueryVo.invoiceTypes != null and invoiceRecordQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="invoiceRecordQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </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.partnerCompanyId != null and invoiceRecordQueryVo.partnerCompanyId != ''">
- AND eic.id = #{invoiceRecordQueryVo.partnerCompanyId}
- </if>
- <if test="invoiceRecordQueryVo.settlementStatus != null and invoiceRecordQueryVo.settlementStatus != '' and invoiceRecordQueryVo.settlementStatus != '30'">
- AND ipii.status = #{invoiceRecordQueryVo.settlementStatus}
- </if>
- </where>
- GROUP BY
- ipii.id,
- ipii.receivable_supervise_premium,
- ipii.invoice_type,
- ipii.company_id,
- ipii.invoice_party
- ORDER BY ipii.create_time DESC
- </select>
- <select id="getFollowInvoiceRecordList" 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.invoice_time,
- 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,
- GROUP_CONCAT(DISTINCT ipiis.settlement_payment_reason SEPARATOR ',') as settlementPaymentReason,
- GROUP_CONCAT(DISTINCT iffo.year SEPARATOR ',') AS year,
- GROUP_CONCAT(DISTINCT iffo.month SEPARATOR ',') AS month,
- iffo.partner_company_id,
- ( select cp.name from esm_ins_company cp where cp.id = iffo.partner_company_id) as partner_company_name
- FROM
- ins_ply_income_invoice ipii
- LEFT JOIN ins_ply_follow_invoice_link ipfii ON ipii.id = ipfii.invoice_id AND ipfii.is_delete = 0
- LEFT JOIN ins_fee_follow_order iffo ON iffo.id = ipfii.follow_id AND iffo.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_settlement ipiis ON ipii.id = ipiis.invoice_id AND ipiis.is_delete = 0
- LEFT JOIN esm_ins_company eic on eic.id = ipii.company_id AND eic.is_delete = 0
- <where>
- ipii.is_delete = 0
- AND ipii.system_code = #{invoiceRecordQueryVo.systemCode}
- <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.invoiceNo != null and invoiceRecordQueryVo.invoiceNo != ''">
- AND ipii.invoice_no like concat('%',#{invoiceRecordQueryVo.invoiceNo},'%')
- </if>
- <if test="invoiceRecordQueryVo.companyId != null and invoiceRecordQueryVo.companyId != ''">
- AND ipii.company_id = #{invoiceRecordQueryVo.companyId}
- </if>
- <if test="invoiceRecordQueryVo.invoiceTypes != null and invoiceRecordQueryVo.invoiceTypes != ''">
- AND ipii.invoice_type IN
- <foreach collection="invoiceRecordQueryVo.invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- <if test="invoiceRecordQueryVo.invoiceParty != null and invoiceRecordQueryVo.invoiceParty != ''">
- AND ipii.invoice_party = #{invoiceRecordQueryVo.invoiceParty}
- </if>
- <if test="invoiceRecordQueryVo.settlementStatus != null and invoiceRecordQueryVo.settlementStatus != ''">
- AND ipii.status = #{invoiceRecordQueryVo.settlementStatus}
- </if>
- <if test="invoiceRecordQueryVo.companyNameSimple != null and invoiceRecordQueryVo.companyNameSimple != ''">
- AND eic.id = #{invoiceRecordQueryVo.companyNameSimple}
- </if>
- <if test="invoiceRecordQueryVo.partnerCompanyId != null and invoiceRecordQueryVo.partnerCompanyId != ''">
- AND iffo.partner_company_id = #{invoiceRecordQueryVo.partnerCompanyId}
- </if>
- <if test="invoiceRecordQueryVo.signMonth != null and invoiceRecordQueryVo.signMonth != ''">
- AND iffo.year = SUBSTRING(#{invoiceRecordQueryVo.signMonth},1,4)
- AND iffo.month = SUBSTRING(#{invoiceRecordQueryVo.signMonth},6,2)
- </if>
- </where>
- GROUP BY
- ipii.id,
- ipii.receivable_supervise_premium,
- ipii.invoice_type,
- ipii.company_id,
- ipii.invoice_party,
- iffo.partner_company_id
- 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(COALESCE(ipi.jq_receivable_premium,0) + COALESCE(ipi.sy_receivable_premium,0) + COALESCE(ipi.jy_receivable_premium,0) ), 0) as total_receivable,
- 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,
- 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,
- 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} AND ipi.is_delete = 0
- 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 AND ipii.is_delete = 0
- <where>
- ipiil.is_delete = 0
- <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 (COALESCE(ifo.jq_commission_premium,0) + COALESCE(ifo.sy_commission_premium,0) + COALESCE(ifo.jy_commission_premium,0) )) as total_commission
- FROM ins_fee_orders ifo
- WHERE ifo.is_delete = 0
- GROUP BY ifo.order_no
- ) fee_summary ON ipi.order_no = fee_summary.order_no
- <where>
- eic.is_delete = 0
- <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( COALESCE(ipi.jq_receivable_premium,0) + COALESCE(ipi.sy_receivable_premium,0) + COALESCE(ipi.jy_receivable_premium,0) ), 0 ) AS total_receivable,
- 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,
- 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,
- 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} AND ipi.is_delete = 0
- 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 AND ipii.is_delete = 0
- <where>
- ipiil.is_delete = 0
- <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>
- eic.is_delete = 0
- <if test="queryVo.companyId != null and queryVo.companyId != ''">
- AND eic.id = #{queryVo.companyId}
- </if>
- </where>
- 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(COALESCE(ipi.jq_receivable_premium,0) + COALESCE(ipi.sy_receivable_premium,0) + COALESCE(ipi.jy_receivable_premium,0) ), 0) as total_receivable,
- 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,
- 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,
- 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} AND ipi.is_delete = 0
- 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 AND ipii.is_delete = 0
- <where>
- ipiil.is_delete = 0
- <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 (COALESCE(ifo.jq_commission_premium,0) + COALESCE(ifo.sy_commission_premium,0) + COALESCE(ifo.jy_commission_premium,0) )) as total_commission
- FROM ins_fee_orders ifo
- WHERE ifo.is_delete = 0
- GROUP BY ifo.order_no
- ) fee_summary ON ipi.order_no = fee_summary.order_no
- <where>
- eic.parent_id = 0
- AND eic.is_delete = 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>
- </where>
- 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(COALESCE(ipi.jq_receivable_premium,0) + COALESCE(ipi.sy_receivable_premium,0) + COALESCE(ipi.jy_receivable_premium,0) ), 0) as total_receivable,
- 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,
- 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} AND ipi.is_delete = 0
- 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 AND ipii.is_delete = 0
- <where>
- ipiil.is_delete = 0
- <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.is_delete = 0
- AND 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>
- </where>
- 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 AND pa.is_delete = 0
- LEFT JOIN ins_fee_orders ifo ON pa.id = ifo.agreement_id AND ifo.is_delete = 0
- WHERE eic.is_delete = 0
- GROUP BY
- eic.id, eic.name
- ORDER BY eic.name
- </select>
- <!-- invoice 表是income表 聚合得到的,因此,不能将income left jion invoide, 后对invoice的金额进行求和 2026年6月22日15:39:34 -->
- <select id="getReceiverSettlementReport" resultType="com.jzg.commons.entity.finance.dto.ReceiverSettlementReportDto">
- SELECT
- ipi.contact_person AS receiver,
- -- ipi.company_id,
- SUM(COALESCE(ipi.jq_supervise_costs_premiums,0) +COALESCE(ipi.sy_supervise_costs_premiums,0) +COALESCE(ipi.jy_supervise_costs_premiums,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,
- 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,
- --SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledSuperviseFee,
- -- SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledFollowFee,
- -- SUM(CASE WHEN ipii.`status` = 1 AND ipii.invoice_type IN (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS settledAmount,
- -- SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledSuperviseFee
- -- ,SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type in (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledFollowFee,
- -- SUM(CASE WHEN ipii.`status` = 0 AND ipii.invoice_type IN (5,6) THEN ipii.receivable_supervise_premium ELSE 0 END) AS unSettledAmount,
- GROUP_CONCAT(distinct ipii.id) as invoice_ids
- FROM
- ins_ply_income ipi
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipi.id = ipil.income_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income_invoice ipii
- ON ipil.invoice_id = ipii.id AND ipii.is_delete = 0
- <if test="settlementReportQueryVo.invoiceTypes != null and settlementReportQueryVo.invoiceTypes.size() > 0" >
- and ipii.invoice_type in
- <foreach collection="settlementReportQueryVo.invoiceTypes" item="id" open="(" separator="," close=")">
- #{id}
- </foreach>
- </if>
- <where>
- ipi.is_delete = 0
- AND ipi.agreement_type = '1'
- AND ipi.system_code = #{settlementReportQueryVo.systemCode}
- <if test="settlementReportQueryVo.companyId != null and settlementReportQueryVo.companyId != ''">
- AND ipi.company_id = #{settlementReportQueryVo.companyId}
- </if>
- <if test="settlementReportQueryVo.settlementStatus != null ">
- <choose >
- <when test=" 1 == settlementReportQueryVo.settlementStatus">
- and ipi.settlement_status = 1
- </when>
- <otherwise>
- and ipi.settlement_status != 1
- </otherwise>
- </choose>
- </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 settlementReportQueryVo.endTime != null and settlementReportQueryVo.endTime != ''">
- AND ((ipii.invoice_time BETWEEN #{settlementReportQueryVo.startTime} AND #{settlementReportQueryVo.endTime})
- OR ipii.invoice_time IS NULL)
- </if>
- </where>
- 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.is_delete = 0
- AND ipiis.invoice_id = #{invoiceId}
- </where>
- </select>
- <select id="queryCumulativeAccountsReceivable"
- resultType="com.jzg.commons.entity.finance.dto.CompanySuperviseSettlementReportDto">
- SELECT ipi.id,
- ipi.company_id,
- eic.parent_id as secondCompanyId,
- ipi.partner_company_id,
- eic.name as partner_company_name,
- ipi.system_code,
- sum(COALESCE(ipi.jq_receivable_premium, 0) + COALESCE(ipi.sy_receivable_premium, 0) + coalesce(ipi.jy_receivable_premium, 0)) AS totalReceivable ,
- sum(coalesce(ipi.jy_supervise_costs_premiums, 0)) AS superviseFee4Other,
- sum(COALESCE(ipi.jq_supervise_costs_premiums, 0) + COALESCE(ipi.sy_supervise_costs_premiums, 0)) AS superviseFee
- from
- ins_ply_income ipi
- left join esm_ins_company eic on eic.id = ipi.partner_company_id AND eic.is_delete = 0
- <where>
- ipi.is_delete = 0
- and ipi.system_code = #{systemCode}
- <if test="vo.agreementType != null and vo.agreementType != ''">
- AND ipi.agreement_type = #{vo.agreementType}
- </if>
- <if test="vo.companyIdList != null and vo.companyIdList.size() > 0">
- AND ipi.partner_company_id in
- <foreach collection="vo.companyIdList" open="(" separator="," item="companyId" close=")">
- #{companyId}
- </foreach>
- </if>
- <if test="vo.status != null">
- <if test="vo.status == 1">
- AND ipi.settlement_time IS NOT NULL
- </if>
- <if test="vo.status == 0">
- AND ipi.settlement_time IS NULL
- </if>
- </if>
- <if test="vo.signingStartTime != null and vo.signingStartTime != '' and vo.signingEndTime != null and vo.signingEndTime != ''">
- AND DATE(ipi.signing_time) between #{vo.signingStartTime} and #{vo.signingEndTime}
- </if>
- <if test="vo.startTime != null and vo.startTime != '' and vo.endTime != null and vo.endTime != ''">
- AND DATE(ipi.create_time) between #{vo.startTime} and #{vo.endTime}
- </if>
- </where>
- group by
- ipi.id,
- eic.parent_id,
- ipi.company_id,
- ipi.partner_company_id,
- partner_company_name,
- ipi.system_code
- having company_id is not null and partner_company_id is not null
- order by company_id asc, parent_id asc, partner_company_id asc
- </select>
- <!-- 查询已开票金额 lipf 2026年6月1日17:58:42 -->
- <select id="queryInvoicedAmount" resultType="com.jzg.organization.entity.dto.CalRes">
- select
- a.company_id as companyId,
- sum(a.amount) as amount,
- sum(a.overinflatedAmount) as overinflatedAmount
- from
- (
- select
- ipii.company_id,
- COALESCE(ipii.receivable_supervise_premium) as amount,
- COALESCE(ipii.overinflated_amount) as overinflatedAmount
- from
- ins_ply_income_invoice ipii
- where
- ipii.is_delete = 0
- and ipii.id in (
- select
- ipiil.invoice_id
- from
- ins_ply_income_invoice_link ipiil
- <where>
- ipiil.is_delete = 0
- AND ipiil.income_id in (
- select
- ipi.id
- from
- ins_ply_income ipi
- where
- ipi.is_delete = 0
- and ipi.system_code = #{systemCode}
- <if test="agreementType != null and agreementType != ''">
- AND ipi.agreement_type = #{agreementType}
- </if>
- )
- <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 modify by lipf 2026年6月24日19:10:53 添加distinct ins.id 按照结算记录的值进行去重。 因为私有开票是按照公司维度开票,的所以 同一个 ins.id 关联的 ipi.icompany_id 肯定是一样的 -->
- <select id="querySettledAmount" resultType="com.jzg.organization.entity.dto.CalRes">
- select
- a.company_id ,
- sum(COALESCE(a.actual_received_amount, 0)) as settlement,sum(a.overinflatedAmount) overinflatedAmount
- from
- ( select distinct ins.id,
- ipi.partner_company_id as company_id,
- COALESCE(ins.actual_received_amount, 0) as actual_received_amount,
- COALESCE(ins.settlement_payment_difference,0) as overinflatedAmount
- from ins_ply_income_invoice_settlement ins
- inner join ins_ply_income_invoice inc
- on ins.invoice_id = inc.id
- AND inc.is_delete = 0
- inner join ins_ply_income_invoice_link link
- on link.invoice_id = inc.id
- AND link.is_delete = 0
- inner join ins_ply_income ipi
- on link.income_id = ipi.id
- AND ipi.is_delete = 0
- <where>
- ins.is_delete = 0
- <if test="settledStartDate != null">
- AND ins.receive_payment_date >= #{settledStartDate}
- </if>
- <if test="settledEndDate != null">
- AND ins.receive_payment_date < #{settledEndDate}
- </if>
- <if test="agreementType != null and agreementType != ''">
- AND ipi.agreement_type = #{agreementType}
- </if>
- <if test="invoiceTypes != null and invoiceTypes.size() > 0">
- AND inc.invoice_type IN
- <foreach collection="invoiceTypes" item="invoiceType" open="(" separator="," close=")">
- #{invoiceType}
- </foreach>
- </if>
- </where>
- ) a
- group by a.company_id
- </select>
- <select id="queryFollowIncome" resultType="com.jzg.commons.entity.finance.dto.InsPlyIncomeDto">
- SELECT
- a.*,
- date(a.signing_time ) as sign_date,
- year(a.signing_time) as sign_year,
- month(a.signing_time) as sign_month,
- b.partner_company_id,
- (SELECT eic.name FROM esm_ins_company eic WHERE b.partner_company_id = eic.id AND eic.is_delete = 0) AS partnerCompanyName,
- (SELECT eic.name FROM esm_ins_company eic WHERE a.company_id = eic.id AND eic.is_delete = 0) AS companyName
- FROM ins_ply_income a
- LEFT JOIN ptl_agreement b ON a.agreement_id = b.id AND b.is_delete = 0
- <where>
- a.is_delete=0
- AND a.agreement_type = 2
- <if test="query.startYear != null and query.endYear != null">
- AND YEAR(a.signing_time) BETWEEN #{query.startYear} AND #{query.endYear}
- </if>
- <if test="query.systemCode != null">
- AND a.system_code = #{query.systemCode}
- </if>
- <if test="query.companyId != null and query.companyId != ''">
- AND b.partner_company_id = #{query.companyId}
- </if>
- <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
- AND a.create_time between #{query.startTime} and #{query.endTime}
- </if>
- <if test="query.companyIdList != null and query.companyIdList.size() > 0" >
- AND b.partner_company_id in
- <foreach collection="query.companyIdList" item="item" open="(" separator="," close=")">
- #{item}
- </foreach>
- </if>
- <!-- 签单时间范围筛选(年月格式:YYYY-MM) -->
- <if test="query.signingStartTime != null and query.signingStartTime != '' and query.signingEndTime != null and query.signingEndTime != ''">
- AND CONCAT(YEAR(a.signing_time), '-', LPAD(MONTH(a.signing_time), 2, '0')) BETWEEN #{query.signingStartTime} AND #{query.signingEndTime}
- </if>
- </where>
- </select>
- <!-- 查询发票结算的金额 2026年6月22日15:48:33 lipf -->
- <select id="querySettledAmountByInvoiceIds" resultType="com.jzg.commons.entity.finance.vo.InsPlyIncomeInvoiceSettlementVo">
- select
- sum(ipiis.actual_received_amount ) as actual_received_amount,
- sum(ipiis.settlement_payment_difference ) as settlement_payment_difference
- from
- ins_ply_income_invoice_settlement ipiis
- <where>
- <if test="invoiceIdList != null and invoiceIdList.size() > 0">
- and ipiis.invoice_id in
- <foreach collection="invoiceIdList" item="item" open="(" separator="," close=")">
- ${item}
- </foreach>
- </if>
- </where>
- </select>
- <!-- 查询未结清发票数量(status=0的发票数量) -->
- <select id="countUnsettledInvoicesByInvoiceIds" resultType="int">
- select count(1)
- from ins_ply_income_invoice ipii
- <where>
- ipii.is_delete = 0
- and ipii.status = 0
- <if test="invoiceIdList != null and invoiceIdList.size() > 0">
- and ipii.id in
- <foreach collection="invoiceIdList" item="item" open="(" separator="," close=")">
- ${item}
- </foreach>
- </if>
- </where>
- </select>
- <select id="selectPlatformCompanySettlementReport" resultType="com.jzg.commons.entity.finance.vo.PlatformCompanyFeeVO">
- SELECT
- ipi.company_id,
- io.docking_person as contact_person ,
- io.docking_person_phone as contact_person_phone,
- SUM(COALESCE(ipi.jq_receivable_premium,0) + COALESCE(ipi.sy_receivable_premium,0) + COALESCE(ipi.jy_receivable_premium,0)) AS totalReceivable,
- group_concat(distinct sett.id) as settle_idsStr
- FROM ins_ply_income ipi
- LEFT JOIN ins_ply_income_invoice_link ipil ON ipi.id = ipil.income_id AND ipil.is_delete = 0
- LEFT JOIN ins_ply_income_invoice ipii ON ipil.invoice_id = ipii.id AND ipii.is_delete = 0
- LEFT JOIN ins_ply_income_invoice_settlement sett ON ipii.id = sett.invoice_id AND sett.is_delete = 0
- left join ins_orders io on ipi.order_no = io.id
- <where>
- ipi.is_delete = 0 and ipi.agreement_type = 1
- <if test="query.companyId != null and query.companyId != ''">
- AND ipi.company_id = #{query.companyId}
- </if>
- <if test="query.contactPersonPhone != null and query.contactPersonPhone != ''">
- AND io.docking_person_phone LIKE CONCAT('%', #{query.contactPersonPhone}, '%')
- </if>
- <if test="query.contactPerson != null and query.contactPerson != ''">
- AND io.docking_person LIKE CONCAT('%', #{query.contactPerson}, '%')
- </if>
- -- 跟单订单创建时间范围
- <if test="query.startTime != null and query.startTime != '' and query.endTime != null and query.endTime != ''">
- AND ipi.create_time BETWEEN #{query.startTime} AND #{query.endTime}
- </if>
- -- 开票时间范围
- <if test="query.invoiceStartTime != null and query.invoiceStartTime != '' and query.invoiceEndTime != null and query.invoiceEndTime != ''">
- AND ipii.invoice_time BETWEEN #{query.invoiceStartTime} AND #{query.invoiceEndTime}
- </if>
- -- 结算创建时间范围(子查询过滤结算时间)
- <if test="query.settlementStartTime != null and query.settlementStartTime != '' and query.settlementEndTime != null and query.settlementEndTime != ''">
- AND sett.create_time BETWEEN #{query.settlementStartTime} AND #{query.settlementEndTime}
- </if>
- </where>
- GROUP BY ipi.company_id, io.docking_person,io.docking_person_phone
- order by settle_idsStr desc
- </select>
- <!-- 查询应收涉及到的保险机构 lipf 2026年8月6日09:38:54 -->
- <select id="queryDistinctParternerCompanyId" resultType="java.lang.String">
- select distinct ipi.partner_company_id from ins_ply_income ipi
- <where>
- ipi.id in
- <foreach collection="incomeIds" separator="," close=")" open="(" item="id">
- #{id}
- </foreach>
- </where>
- </select>
- </mapper>
|