InsAreaCompanyMapper.xml 188 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.ydtech.modules.order.dao.InsAreaCompanyMapper">
  6. <resultMap id="BaseResultMap" type="com.ydtech.modules.order.entity.InsAreaCompany">
  7. <id property="id" column="id" jdbcType="VARCHAR"/>
  8. <result property="reqtxt" column="reqtxt" javaType="com.alibaba.fastjson.JSONObject"
  9. typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
  10. <result property="reptxt" column="reptxt" javaType="com.alibaba.fastjson.JSONObject"
  11. typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
  12. <result property="riskinfo" column="riskinfo" javaType="com.alibaba.fastjson.JSONArray"
  13. typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
  14. <result property="kindinfo" column="kindinfo" javaType="com.alibaba.fastjson.JSONArray"
  15. typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
  16. <result property="accidentInfo" column="accident_info" javaType="com.alibaba.fastjson.JSONArray"
  17. typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
  18. <result property="taxArrears" column="tax_arrears" javaType="com.alibaba.fastjson.JSONArray"
  19. typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
  20. <result property="crossInsurance" column="cross_insurance" javaType="com.alibaba.fastjson.JSONArray"
  21. typeHandler="com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler" jdbcType="VARCHAR"/>
  22. <result property="orderno" column="orderno" jdbcType="VARCHAR"/>
  23. <result property="agreementId" column="agreement_id" jdbcType="BIGINT"/>
  24. <result property="apiType" column="api_type" jdbcType="TINYINT"/>
  25. <result property="orderstatus" column="orderstatus" jdbcType="VARCHAR"/>
  26. <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
  27. <result property="inscompany" column="inscompany" jdbcType="VARCHAR"/>
  28. <result property="jqapplyno" column="jqapplyno" jdbcType="VARCHAR"/>
  29. <result property="jqpolicyno" column="jqpolicyno" jdbcType="VARCHAR"/>
  30. <result property="syapplyno" column="syapplyno" jdbcType="VARCHAR"/>
  31. <result property="sypolicyno" column="sypolicyno" jdbcType="VARCHAR"/>
  32. <result property="jqpremium" column="jqpremium" jdbcType="DECIMAL"/>
  33. <result property="sypremium" column="sypremium" jdbcType="DECIMAL"/>
  34. <result property="jypremium" column="jypremium" jdbcType="DECIMAL"/>
  35. <result property="sumpremium" column="sumpremium" jdbcType="DECIMAL"/>
  36. <result property="taxamount" column="taxamount" jdbcType="DECIMAL"/>
  37. <result property="jqdiscountrate" column="jqdiscountrate" jdbcType="DOUBLE"/>
  38. <result property="sydiscountrate" column="sydiscountrate" jdbcType="DOUBLE"/>
  39. <result property="feerate" column="feerate" jdbcType="DOUBLE"/>
  40. <result property="disrate" column="disrate" jdbcType="DOUBLE"/>
  41. <result property="auditid" column="auditid" jdbcType="VARCHAR"/>
  42. <result property="auditname" column="auditname" jdbcType="VARCHAR"/>
  43. <result property="audittime" column="audittime" jdbcType="TIMESTAMP"/>
  44. <result property="auditopinion" column="auditopinion" jdbcType="VARCHAR"/>
  45. <result property="jqappoint" column="jqappoint" jdbcType="VARCHAR"/>
  46. <result property="syappoint" column="syappoint" jdbcType="VARCHAR"/>
  47. <result property="createtime" column="createtime" jdbcType="TIMESTAMP"/>
  48. <result property="payDate" column="pay_date" jdbcType="TIMESTAMP"/>
  49. <result property="paymentLink" column="payment_link" jdbcType="VARCHAR"/>
  50. <result property="insOrderNo" column="ins_order_no" jdbcType="VARCHAR"/>
  51. <result property="attributionId" column="attribution_id" jdbcType="VARCHAR"/>
  52. <result property="jqStartDate" column="jq_start_date" jdbcType="VARCHAR"/>
  53. <result property="jqEndDate" column="jq_end_date" jdbcType="VARCHAR"/>
  54. <result property="syStartDate" column="sy_start_date" jdbcType="VARCHAR"/>
  55. <result property="syEndDate" column="sy_end_date" jdbcType="VARCHAR"/>
  56. <result property="accidentStrInfo" column="accident_str_info" jdbcType="VARCHAR"/>
  57. <result property="score" column="score" jdbcType="VARCHAR"/>
  58. <result property="jqScore" column="jq_score" jdbcType="VARCHAR"/>
  59. <result property="syScore" column="sy_score" jdbcType="VARCHAR"/>
  60. <result property="lossRation" column="loss_ration" jdbcType="DOUBLE"/>
  61. <result property="jqLossRation" column="jq_loss_ration" jdbcType="DOUBLE"/>
  62. <result property="syLossRation" column="sy_loss_ration" jdbcType="DOUBLE"/>
  63. <result property="totalAdjustRate" column="total_adjust_rate" jdbcType="DOUBLE"/>
  64. <result property="jqAdjustRate" column="jq_adjust_rate" jdbcType="DOUBLE"/>
  65. <result property="syAdjustRate" column="sy_adjust_rate" jdbcType="DOUBLE"/>
  66. <result property="insideOrderStatus" column="inside_order_status" jdbcType="TINYINT"/>
  67. <result property="insidePayTime" column="inside_pay_time" jdbcType="TIMESTAMP"/>
  68. <result property="signingTime" column="signing_time" jdbcType="TIMESTAMP"/>
  69. <result property="jqRenewal" column="jq_renewal" jdbcType="VARCHAR"/>
  70. <result property="syRenewal" column="sy_renewal" jdbcType="VARCHAR"/>
  71. <result property="jqClaims" column="jq_claims" jdbcType="VARCHAR"/>
  72. <result property="syClaims" column="sy_claims" jdbcType="VARCHAR"/>
  73. <result property="feeMatchErrMsg" column="fee_match_err_msg" jdbcType="VARCHAR"/>
  74. <result property="quoteErrMsg" column="quote_err_msg" jdbcType="VARCHAR"/>
  75. </resultMap>
  76. <resultMap id="InsAreaCompanyQueryDto" type="com.ydtech.modules.order.entity.dto.InsAreaCompanyQueryDto"
  77. extends="BaseResultMap">
  78. <result property="agreementName" column="agreement_name" jdbcType="VARCHAR"/>
  79. <result property="fileStatus" column="fileStatus" jdbcType="VARCHAR"/>
  80. </resultMap>
  81. <sql id="Base_Column_List">
  82. id,orderno,inscompany,
  83. reqtxt,reptxt,jqapplyno,
  84. jqpolicyno,syapplyno,sypolicyno,
  85. riskinfo,kindinfo,jqpremium,
  86. sypremium,taxamount,sumpremium,
  87. jqdiscountrate,sydiscountrate,feerate,
  88. disrate,auditid,auditname,
  89. audittime,auditopinion,jqappoint,
  90. syappoint,createtime,payment_link
  91. </sql>
  92. <select id="selectByOrderNo" resultMap="InsAreaCompanyQueryDto">
  93. SELECT iac.*, pa.agreement_name,
  94. (select IF(count(0)>0,'true','false') from pingan_sh_uploafile where sub_order_no=iac.id AND status=0) as fileStatus
  95. FROM ins_area_company as iac
  96. left join ptl_agreement as pa on pa.id = iac.agreement_id
  97. INNER JOIN (SELECT company_id, max(createtime) AS max_createtime
  98. FROM ins_area_company
  99. WHERE orderno = #{orderNo}
  100. GROUP BY company_id) t ON t.company_id = iac.company_id
  101. AND t.max_createtime = iac.createtime
  102. WHERE iac.orderno = #{orderNo}
  103. </select>
  104. <select id="selectAcceptInsurance" resultMap="InsAreaCompanyQueryDto">
  105. SELECT iac.*, pa.agreement_name,io.is_external,
  106. (select IF(count(0)>0,'true','false') from pingan_sh_uploafile where sub_order_no=iac.id AND status=0) as fileStatus
  107. FROM ins_area_company as iac
  108. left join ptl_agreement as pa on pa.id = iac.agreement_id
  109. left join ins_orders io on iac.orderno=io.orderno
  110. WHERE iac.orderstatus = 3
  111. and iac.orderno = #{orderNo};
  112. </select>
  113. <select id="queryLatestStatus" resultType="java.lang.String">
  114. SELECT iac.orderstatus
  115. FROM ins_area_company as iac
  116. INNER JOIN (SELECT company_id, max(createtime) AS max_createtime
  117. FROM ins_area_company
  118. WHERE orderno = #{orderNo}
  119. GROUP BY company_id) t ON t.company_id = iac.company_id
  120. AND t.max_createtime = iac.createtime
  121. WHERE iac.orderno = #{orderNo}
  122. ORDER BY orderstatus DESC
  123. LIMIT 1
  124. </select>
  125. <select id="getorDerIds" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  126. SELECT a.id as "id",
  127. a.orderno as "orderno"
  128. FROM ins_area_company a
  129. LEFT JOIN ins_fee_order_new b ON a.id = b.ins_order_no
  130. WHERE a.orderstatus = '3'
  131. or a.orderstatus = '2'
  132. and b.id is not null
  133. </select>
  134. <select id="getAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
  135. SELECT
  136. iac.id as orderno,
  137. io.quoteno,
  138. io.orderstatus,
  139. io.company_id,
  140. io.ins_company,
  141. io.carinfo,
  142. io.userid,
  143. io.username,
  144. io.deptid,
  145. io.deptname,
  146. io.agreeid,
  147. iac.productid,
  148. iac.product,
  149. iac.createtime,
  150. io.frameno,
  151. io.licenseno,
  152. JSON_UNQUOTE(json_extract(io.insureinfo, '$.name')) as insuredname,
  153. io.is_external,
  154. iac.jq_start_date as jqstartdate,
  155. iac.jq_end_date as jqenddate,
  156. iac.sy_start_date as systartdate,
  157. iac.sy_end_date as syenddate,
  158. io.vehicle_and_vessel_tax,
  159. io.operatorid,
  160. iac.operator_name,
  161. sd.management_source,
  162. iac.problem_order,
  163. CASE ifa.audituser
  164. WHEN '自动审核' THEN ifa.audituser
  165. ELSE su2.name END
  166. AS auditUser,
  167. CASE ifa.audituser
  168. WHEN '自动审核' THEN '2'
  169. ELSE '1' END
  170. AS checkType,
  171. ifa.audittime as auditTime,
  172. ifa.auditstatus as auditStatus,
  173. eic.namesimple as partnerCompaniesName,
  174. iac.id as subOrderId,
  175. iac.signing_time as signingTime,
  176. iac.pay_date as payDate,
  177. pa.agreement_code as agreementCode,
  178. pa.agreement_name as agreementName,
  179. pa.business_description as businessDescription,
  180. pa.job_description as jobDescription,
  181. pa.agreement_title as agreementTitle,
  182. pa.docking_person as dockingPerson,
  183. io.entry_status
  184. FROM
  185. ins_fee_audit ifa
  186. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  187. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  188. AND iac.orderstatus = 3
  189. LEFT JOIN sys_user su ON su.id = io.userid
  190. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  191. LEFT JOIN sys_user su2 ON ifa.audituser = su2.id
  192. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  193. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  194. WHERE
  195. iac.id = ifa.ins_order_no
  196. AND iac.orderstatus = 3
  197. <if test="params.auditStatus != null and params.auditStatus != ''">
  198. and ifa.auditstatus = #{params.auditStatus}
  199. </if>
  200. <if test="params.quoteStartDateStr != null and params.quoteStartDateStr != '' and params.quoteEndDateStr != null and params.quoteEndDateStr != ''">
  201. and DATE_FORMAT(iac.createtime, '%Y-%m-%d') between #{params.quoteStartDateStr} AND
  202. #{params.quoteEndDateStr}
  203. </if>
  204. <if test="params.orderNo != null and params.orderNo != ''">
  205. AND iac.id= #{params.orderNo}
  206. </if>
  207. <if test="params.licenseNo != null and params.licenseNo != ''">
  208. AND io.licenseno = #{params.licenseNo}
  209. </if>
  210. <if test="params.frameNo != null and params.frameNo != ''">
  211. AND io.frameno = #{params.frameNo}
  212. </if>
  213. <if test="params.insuredName != null and params.insuredName != ''">
  214. AND json_extract(io.insureinfo, '$.name') = #{params.insuredName}
  215. </if>
  216. <if test="params.companyId != null and params.companyId != ''">
  217. AND io.company_id = #{params.companyId}
  218. </if>
  219. <if test="params.engineNo != null and params.engineNo != ''">
  220. and JSON_EXTRACT( io.carinfo, '$.engineNo' ) = #{params.engineNo}
  221. </if>
  222. <if test="params.riskCode != null and params.riskCode != ''">
  223. and iac.product = #{params.riskCode}
  224. </if>
  225. <if test="params.attachStartDateStr != null and params.attachStartDateStr != '' and params.attachStartDateStr != null and params.attachStartDateStr != '' ">
  226. and ((
  227. DATE_FORMAT(iac.jq_start_date, '%Y-%m-%d') BETWEEN #{params.attachStartDateStr}
  228. AND #{params.attachEndDateStr}
  229. )
  230. OR ( DATE_FORMAT(iac.sy_start_date, '%Y-%m-%d') BETWEEN #{params.attachStartDateStr} AND
  231. #{params.attachEndDateStr} )
  232. )
  233. </if>
  234. <if test="params.provinceId != null and params.provinceId != ''">
  235. and io.deptid like "${params.provinceId}%"
  236. </if>
  237. <if test="params.problemOrder != null and params.problemOrder != ''">
  238. and iac.problem_order like "${params.problemOrder}%"
  239. </if>
  240. <if test="params.cityId != null and params.cityId != ''">
  241. and io.deptid like "${params.cityId}%"
  242. </if>
  243. <if test="params.countyId != null and params.countyId != ''">
  244. and io.deptid like "${params.countyId}%"
  245. </if>
  246. <if test="params.houseId != null and params.houseId != ''">
  247. and io.deptid like "${params.houseId}%"
  248. </if>
  249. <if test="params.operatorId != null and params.operatorId != ''">
  250. and io.userid = #{params.operatorId}
  251. </if>
  252. <if test="params.operatorName != null and params.operatorName != ''">
  253. and io.username = #{params.operatorName}
  254. </if>
  255. <if test="params.auditId != null and params.auditId != ''">
  256. and iac.new_operator_id = #{params.auditId}
  257. </if>
  258. <if test="params.agreeId != null and params.agreeId != ''">
  259. and iac.agreement_id = #{params.agreeId}
  260. </if>
  261. <if test="params.managementSource != null and params.managementSource.size > 0">
  262. and sd.management_source in
  263. <foreach item="source" collection="params.managementSource" open="(" separator="," close=")">
  264. #{source}
  265. </foreach>
  266. </if>
  267. <if test="params.signStartDateStr != null and params.signStartDateStr != '' and params.signEndDateStr != null and params.signEndDateStr != ''">
  268. and DATE_FORMAT(iac.signing_time, '%Y-%m-%d') between #{params.signStartDateStr} AND
  269. #{params.signEndDateStr}
  270. </if>
  271. <if test="params.payStartDateStr != null and params.payStartDateStr != '' and params.payEndDateStr != null and params.payEndDateStr != ''">
  272. and iac.pay_date between #{params.payStartDateStr} AND #{params.payEndDateStr}
  273. </if>
  274. <if test="params.isExternal != null and params.isExternal != ''">
  275. and io.is_external = #{params.isExternal}
  276. </if>
  277. <if test="params.jqPolicyNo != null and params.jqPolicyNo != ''">
  278. and iac.jqpolicyno = #{params.jqPolicyNo}
  279. </if>
  280. <if test="params.syPolicyNo != null and params.syPolicyNo != ''">
  281. and iac.sypolicyno = #{params.syPolicyNo}
  282. </if>
  283. <if test="params.noPolicyNo != null and params.noPolicyNo != ''">
  284. and iac.cross_insurance like concat('%', #{params.noPolicyNo}, '%')
  285. </if>
  286. <if test="params.checkUser != null and params.checkUser != ''">
  287. and CASE ifa.audituser WHEN '自动审核' THEN ifa.audituser
  288. ELSE su2.name END = #{params.checkUser}
  289. </if>
  290. <if test="params.checkType != null and params.checkType != ''">
  291. and CASE ifa.audituser
  292. WHEN '自动审核' THEN '2'
  293. ELSE '1' END = #{params.checkType}
  294. </if>
  295. order by iac.createtime desc
  296. </select>
  297. <select id="getByUserId" resultType="com.ydtech.modules.order.entity.InsOrders">
  298. SELECT
  299. io.*,
  300. sd.management_source
  301. FROM
  302. ins_orders io left join sys_user su on su.id = io.userid left join sys_dept sd on sd.id = su.dept_id
  303. WHERE
  304. orderno IN (
  305. SELECT
  306. orderno
  307. FROM
  308. ins_area_company
  309. WHERE
  310. id IN ( SELECT ins_order_no FROM ins_fee_order_new WHERE id NOT IN ( SELECT ins_order_no FROM ins_fee_audit ) )
  311. AND orderstatus = 3
  312. )
  313. AND
  314. io.orderstatus= 3
  315. <if test="orderNo != null and orderNo != ''">
  316. AND orderno = #{orderNo}
  317. </if>
  318. <if test="licenseNo != null and licenseNo != ''">
  319. AND licenseno = #{licenseNo}
  320. </if>
  321. <if test="frameNo != null and frameNo != ''">
  322. AND frameno = #{frameNo}
  323. </if>
  324. <if test="userId != null and userId != ''">
  325. AND userid = #{userId}
  326. </if>
  327. <if test="insuredname != null and insuredname != ''">
  328. AND insuredname = #{insuredname}
  329. </if>
  330. <if test="startDateStr != null and startDateStr != ''">
  331. AND createtime BETWEEN #{startDateStr} and #{endDateStr}
  332. </if>
  333. </select>
  334. <select id="selectFirstPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
  335. SELECT
  336. sum(a.first_detail_premiums) as "willFirstPremiums"
  337. FROM
  338. ins_fee_order_new a
  339. LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
  340. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  341. WHERE
  342. iff.auditstatus=0
  343. AND iac.orderstatus =3
  344. <if test="firstUserId != null and firstUserId != ''">
  345. AND a.first_level_user_id = #{firstUserId}
  346. </if>
  347. <if test="secondUserId != null and secondUserId != ''">
  348. AND a.two_level_user_id = #{secondUserId}
  349. </if>
  350. <if test="thirdUserId != null and thirdUserId != ''">
  351. AND a.three_level_user_id = #{thirdUserId}
  352. </if>
  353. <if test="id != null and id != ''">
  354. AND a.id = #{id}
  355. </if>
  356. </select>
  357. <select id="selectSecondPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
  358. SELECT
  359. sum( fee.p ) as "willFirstPremiums"
  360. FROM
  361. (
  362. SELECT
  363. sum( a.first_detail_premiums ) AS p
  364. FROM
  365. ins_fee_order_new a
  366. LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
  367. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  368. <where>
  369. iff.auditstatus=0
  370. and iac.orderstatus = '3'
  371. <if test="userId!=null and userId!= ''">
  372. AND a.first_level_user_id = #{userId}
  373. </if>
  374. <if test="id != null and id!=''">
  375. AND a.id =#{id}
  376. </if>
  377. </where>
  378. UNION
  379. SELECT
  380. sum( a.third_detail_premiums ) AS p
  381. FROM
  382. ins_fee_order_new a
  383. LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
  384. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  385. <where>
  386. iff.auditstatus=0
  387. and iac.orderstatus = '3'
  388. <if test="userId!=null and userId!= ''">
  389. AND a.three_level_user_id = #{userId}
  390. </if>
  391. <if test="id != null and id!=''">
  392. AND a.id =#{id}
  393. </if>
  394. </where>
  395. UNION
  396. SELECT
  397. sum( a.second_detail_premiums ) AS p
  398. FROM
  399. ins_fee_order_new a
  400. LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
  401. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  402. <where>
  403. iff.auditstatus=0
  404. and iac.orderstatus = '3'
  405. <if test="userId!=null and userId!= ''">
  406. AND a.two_level_user_id = #{userId}
  407. </if>
  408. <if test="id != null and id!=''">
  409. AND a.id =#{id}
  410. </if>
  411. </where>
  412. ) AS fee
  413. </select>
  414. <select id="selectThirdPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
  415. SELECT
  416. sum(a.third_detail_premiums) as "willThreePremiums"
  417. FROM
  418. ins_fee_order_new a
  419. LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
  420. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  421. WHERE
  422. iff.auditstatus=0
  423. AND iac.orderstatus =3
  424. <if test="firstUserId != null and firstUserId != ''">
  425. AND a.first_level_user_id = #{firstUserId}
  426. </if>
  427. <if test="secondUserId != null and secondUserId != ''">
  428. AND a.two_level_user_id = #{secondUserId}
  429. </if>
  430. <if test="thirdUserId != null and thirdUserId != ''">
  431. AND a.three_level_user_id = #{thirdUserId}
  432. </if>
  433. <if test="id != null and id != ''">
  434. AND a.id = #{id}
  435. </if>
  436. </select>
  437. <select id="getAlreadyAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
  438. SELECT
  439. io.*,
  440. sd.management_source,
  441. su2.name AS auditUser,
  442. ifa.audittime as auditTime
  443. FROM
  444. ins_orders io
  445. LEFT JOIN ins_fee_audit ifa ON ifa.orderno = io.orderno
  446. LEFT JOIN sys_user su ON su.id = io.userid
  447. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  448. LEFT JOIN sys_user su2 on ifa.audituser = su2.id
  449. WHERE
  450. io.orderno IN (
  451. SELECT
  452. orderno
  453. FROM
  454. ins_area_company
  455. WHERE
  456. id IN (
  457. SELECT
  458. ifon.ins_order_no
  459. FROM
  460. ins_fee_order_new ifon
  461. RIGHT JOIN ins_fee_audit ifa ON ifon.ins_order_no = ifa.ins_order_no
  462. WHERE
  463. ifa.auditstatus = #{params.auditStatus}
  464. )
  465. )
  466. AND orderstatus = 3
  467. <!-- <if test="params.orderNo != null and params.orderNo != ''">-->
  468. <!-- AND orderno = #{params.orderNo}-->
  469. <!-- </if>-->
  470. <if test="params.licenseNo != null and params.licenseNo != ''">
  471. AND licenseno = #{params.licenseNo}
  472. </if>
  473. <if test="params.frameNo != null and params.frameNo != ''">
  474. AND frameno = #{params.frameNo}
  475. </if>
  476. <if test="params.insuredName != null and params.insuredName != ''">
  477. AND insuredname = #{params.insuredName}
  478. </if>
  479. <if test="params.companyId != null and params.companyId != ''">
  480. AND company_id = #{params.companyId}
  481. </if>
  482. <if test="params.startDateStr != null and params.startDateStr != ''">
  483. AND createtime BETWEEN #{params.startDateStr} and #{params.endDateStr}
  484. </if>
  485. </select>
  486. <select id="selectListByDateStr" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  487. -- 查询订单信息
  488. SELECT
  489. iac.*
  490. FROM
  491. ins_area_company iac
  492. left JOIN ins_orders AS io ON io.orderno = iac.orderno
  493. WHERE
  494. 1=1
  495. <if test="dateStr != null and dateStr != ''">
  496. AND DATE_FORMAT(io.createtime, '%Y-%m') =#{dateStr}
  497. </if>
  498. </select>
  499. <select id="selectListById" resultMap="BaseResultMap">
  500. SELECT
  501. iac.*
  502. FROM
  503. ins_area_company iac
  504. WHERE
  505. 1=1
  506. <if test="id != null and id != ''">
  507. AND iac.id =#{id}
  508. </if>
  509. </select>
  510. <select id="selectSecondPromotionByNew" resultType="com.ydtech.modules.order.entity.InsOrders">
  511. SELECT
  512. sum( fee.p ) as "willFirstPremiums"
  513. FROM
  514. (
  515. SELECT
  516. sum( a.first_detail_premiums ) AS p
  517. FROM
  518. ins_fee_order_new a
  519. LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
  520. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  521. <where>
  522. <choose>
  523. <when test='type == "1"'>
  524. iff.auditstatus=0
  525. </when>
  526. <otherwise>
  527. iff.auditstatus=1
  528. </otherwise>
  529. </choose>
  530. and iac.orderstatus = '3'
  531. <if test="userId!=null and userId!= ''">
  532. AND a.first_level_user_id = #{userId}
  533. </if>
  534. <if test="id != null and id!=''">
  535. AND a.id =#{id}
  536. </if>
  537. </where>
  538. UNION
  539. SELECT
  540. sum( a.third_detail_premiums ) AS p
  541. FROM
  542. ins_fee_order_new a
  543. LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
  544. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  545. <where>
  546. <choose>
  547. <when test='type == "1"'>
  548. iff.auditstatus=0
  549. </when>
  550. <otherwise>
  551. iff.auditstatus=1
  552. </otherwise>
  553. </choose>
  554. and iac.orderstatus = '3'
  555. <if test="userId!=null and userId!= ''">
  556. AND a.three_level_user_id = #{userId}
  557. </if>
  558. <if test="id != null and id!=''">
  559. AND a.id =#{id}
  560. </if>
  561. </where>
  562. UNION
  563. SELECT
  564. sum( a.second_detail_premiums ) AS p
  565. FROM
  566. ins_fee_order_new a
  567. LEFT JOIN ins_area_company iac ON iac.id = a.ins_order_no
  568. left join ins_fee_audit iff on a.ins_order_no=iff.ins_order_no
  569. <where>
  570. <choose>
  571. <when test='type == "1"'>
  572. iff.auditstatus=0
  573. </when>
  574. <otherwise>
  575. iff.auditstatus=1
  576. </otherwise>
  577. </choose>
  578. and iac.orderstatus = '3'
  579. <if test="userId!=null and userId!= ''">
  580. AND a.two_level_user_id = #{userId}
  581. </if>
  582. <if test="id != null and id!=''">
  583. AND a.id =#{id}
  584. </if>
  585. </where>
  586. ) AS fee
  587. </select>
  588. <select id="getSubOrderDetails" resultType="com.ydtech.modules.admin.model.vo.SubOrder">
  589. SELECT
  590. iac.id as subOrderId,
  591. iac.signing_time as signingTime,
  592. iac.jqpremium as jqpremium,
  593. iac.sypremium as sypremium,
  594. iac.jypremium as jypremium,
  595. io.licenseno as licenseno,
  596. io.userid as userId
  597. FROM
  598. ins_area_company iac
  599. LEFT JOIN ins_orders AS io ON io.orderno = iac.orderno
  600. WHERE
  601. iac.id=#{subOrderId}
  602. </select>
  603. <select id="premiumReportYear" resultType="com.ydtech.modules.admin.model.dto.PremiumReportDto">
  604. SELECT
  605. CONCAT(YEAR(iac.createtime),'-',LPAD(MONTH(iac.createtime), 2, '0')) reportDate,
  606. sum(jqpremium) jqpremium,
  607. sum(sypremium) sypremium,
  608. sum(sumpremium) sumpremium
  609. FROM
  610. ins_area_company iac left join ins_orders io on iac.orderno=io.orderno
  611. WHERE
  612. iac.orderstatus = 3 and
  613. iac.createtime &gt;= #{beginTime} and iac.createtime &lt;= #{endTime}
  614. and io.userid=#{userId}
  615. GROUP BY CONCAT(YEAR(iac.createtime),'-',LPAD(MONTH(iac.createtime), 2, '0'))
  616. </select>
  617. <select id="premiumReportMonth" resultType="com.ydtech.modules.admin.model.dto.PremiumReportDto">
  618. SELECT
  619. CONCAT(YEAR(iac.createtime),'-',LPAD(MONTH(iac.createtime), 2, '0'),'-',LPAD(Day(iac.createtime), 2, '0')) reportDate,
  620. sum(jqpremium) jqpremium,
  621. sum(sypremium) sypremium,
  622. sum(sumpremium) sumpremium
  623. FROM
  624. ins_area_company iac left join ins_orders io on iac.orderno=io.orderno
  625. WHERE
  626. iac.orderstatus = 3 and
  627. iac.createtime &gt;= #{beginTime} and iac.createtime &lt;= #{endTime}
  628. and io.userid=#{userId}
  629. GROUP BY CONCAT(YEAR(iac.createtime),'-',LPAD(MONTH(iac.createtime), 2, '0'),'-',LPAD(Day(iac.createtime), 2, '0'))
  630. </select>
  631. <select id="premiumReportDay" resultType="com.ydtech.modules.admin.model.dto.PremiumReportDto">
  632. SELECT
  633. CONCAT(YEAR ( iac.createtime ),'-',LPAD( MONTH ( iac.createtime ), 2, '0' ),'-',LPAD( DAY ( iac.createtime ), 2, '0' ),' ',LPAD( HOUR ( iac.createtime ), 2, '0' ))
  634. reportDate,
  635. sum( jqpremium ) jqpremium,
  636. sum( sypremium ) sypremium,
  637. sum( sumpremium ) sumpremium
  638. FROM
  639. ins_area_company iac left join ins_orders io on iac.orderno=io.orderno
  640. WHERE
  641. iac.orderstatus = 3 and
  642. iac.createtime &gt;= #{beginTime} and iac.createtime &lt;= #{endTime}
  643. and io.userid=#{userId}
  644. GROUP BY CONCAT(YEAR ( iac.createtime ),'-',LPAD( MONTH ( iac.createtime ), 2, '0' ),'-',LPAD( DAY ( iac.createtime ), 2, '0' ),' ',LPAD( HOUR ( iac.createtime ), 2, '0' ))
  645. </select>
  646. <select id="getAllpremium" resultType="com.ydtech.modules.admin.model.dto.AllpremiumDto">
  647. SELECT
  648. ifnull(sum( iac.jqpremium + iac.sypremium + iac.jypremium ),0) as sumPremium,
  649. count( 0 ) as sumCount
  650. FROM
  651. ins_area_company iac left join ins_orders io on iac.orderno=io.orderno
  652. WHERE
  653. iac.orderstatus = 3
  654. and io.userid=#{userId}
  655. AND YEAR (iac.createtime) = #{year}
  656. </select>
  657. <select id="getRejectOrder" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  658. select
  659. iac.id,
  660. iac.orderno,
  661. iac.agreement_id,
  662. iac.jqpremium,
  663. iac.sypremium,
  664. iac.jypremium,
  665. iac.taxamount,
  666. iac.sumpremium,
  667. io.licenseno,
  668. ifa.audittime,
  669. ifa.audituser as auditname,
  670. ifa.rejectinfo,
  671. "1" as orderExternalStatus
  672. FROM
  673. ins_fee_audit ifa
  674. LEFT JOIN
  675. ins_area_company iac on iac.id = ifa.ins_order_no
  676. LEFT JOIN
  677. ins_orders io on iac.orderno = io.orderno
  678. left join
  679. sys_user su on su.id= ifa.audituser
  680. WHERE
  681. iac.operator_id = #{userId}
  682. AND
  683. ifa.auditstatus = 2 and IFNULL(iac.del_flag,'') != '0'
  684. <if test="vo.id != null and vo.id!=''">
  685. and iac.id = #{vo.id}
  686. </if>
  687. <if test="vo.licenseno != null and vo.licenseno!='' ">
  688. and io.licenseno like CONCAT('%', #{vo.licenseno}, '%')
  689. </if>
  690. <if test="vo.auditname != null and vo.auditname!='' ">
  691. and su.name like CONCAT('%', #{vo.auditname}, '%')
  692. </if>
  693. </select>
  694. <select id="queryBusinessDataPage"
  695. resultType="com.ydtech.modules.admin.model.report.opetationData.BusinessDataDto">
  696. SELECT
  697. <if test="flag != null and flag!='' and flag='1'">
  698. o.userid as userId,
  699. o.username as userName,
  700. </if>
  701. sum( iac.sumpremium ) as signeSumPremiumAmount,
  702. sum( iac.jqpremium ) as jqPremiumAmount,
  703. sum( iac.sypremium ) as syPremiumAmount,
  704. sum( iac.taxamount ) as taxAmount,
  705. sum( ion.no_premium ) as fcFeeAmount
  706. FROM
  707. ins_area_company iac
  708. LEFT JOIN ins_orders o ON iac.orderno = o.orderno
  709. LEFT JOIN ins_fee_order_new ion ON iac.id = ion.ins_order_no
  710. where iac.orderstatus = 3 and ion.id is not null
  711. <if test="userList != null and userList.size()>0 ">
  712. and o.userid IN
  713. <foreach item="item" collection="userList" open="(" separator="," close=")">
  714. #{item}
  715. </foreach>
  716. </if>
  717. <if test="flag != null and flag!='' and flag='1'">
  718. group by o.userid,o.username
  719. </if>
  720. </select>
  721. <select id="queryQuotationSubOrderCountDataPage"
  722. resultType="com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto">
  723. SELECT
  724. <if test="flag != null and flag!='' and flag='1'">
  725. o.userid as userId,
  726. o.username as userName,
  727. </if>
  728. iac.orderstatus as orderStatus
  729. FROM
  730. ins_area_company iac
  731. LEFT JOIN ins_orders o ON iac.orderno = o.orderno
  732. where (iac.orderstatus = 0 or iac.orderstatus = 2 or iac.orderstatus = 3 )
  733. <if test="userList != null and userList.size()>0 ">
  734. and o.userid IN
  735. <foreach item="item" collection="userList" open="(" separator="," close=")">
  736. #{item}
  737. </foreach>
  738. </if>
  739. <if test="flag != null and flag!='' and flag='1'">
  740. group by o.userid,o.username,iac.orderstatus
  741. </if>
  742. </select>
  743. <select id="queryQuotationOrderCountDataPage"
  744. resultType="com.ydtech.modules.admin.model.report.opetationData.QuotationCountDataDto">
  745. SELECT
  746. a.userId as userId,
  747. a.userName as userName,
  748. b.qutationCount AS insOrderQutationCount,
  749. b.qutationInsureCount as insOrderQutationInsureCount,
  750. b.closeRate AS insOrderCloseRate as insOrderCloseRate,
  751. a.qutationCount as subOrderQutationCount,
  752. a.underwritingCount as subOrderUnderwritingCount,
  753. a.qutationInsureCount as subOrderQutationInsureCount,
  754. a.passRate as subOrderCloseRate,
  755. a.closeRate as subOrderPassRate,
  756. a.contributionRate as subOrderContributionRate
  757. FROM
  758. (
  759. SELECT
  760. inso.userid AS userId,
  761. inso.username AS userName,
  762. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
  763. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  764. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  765. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END )/ count( iac.orderstatus ) AS passRate,
  766. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ count( iac.orderstatus ) AS closeRate,
  767. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS contributionRate
  768. FROM
  769. ins_area_company iac
  770. LEFT JOIN ins_orders inso ON iac.orderno = inso.orderno
  771. <where>
  772. <if test="userList != null and userList.size()>0 ">
  773. and o.userid IN
  774. <foreach item="item" collection="userList" open="(" separator="," close=")">
  775. #{item}
  776. </foreach>
  777. </if>
  778. </where>
  779. GROUP BY
  780. inso.userid,
  781. inso.username
  782. ) a
  783. LEFT JOIN (
  784. SELECT
  785. inso.userid AS userId,
  786. inso.username AS userName,
  787. count( inso.orderstatus ) AS qutationCount,
  788. count( CASE WHEN inso.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  789. COUNT( CASE WHEN inso.orderstatus = 3 THEN 1 END )/ count( inso.orderstatus ) AS closeRate
  790. FROM
  791. ins_orders inso
  792. <where>
  793. <if test="userList != null and userList.size()>0 ">
  794. and o.userid IN
  795. <foreach item="item" collection="userList" open="(" separator="," close=")">
  796. #{item}
  797. </foreach>
  798. </if>
  799. </where>
  800. GROUP BY
  801. inso.userid,
  802. inso.username
  803. ) b ON a.userId = b.userId
  804. </select>
  805. <select id="queryCompanyPremiumDataPage"
  806. resultType="com.ydtech.modules.admin.model.report.company.CompanyPremiumDataDto">
  807. SELECT
  808. agree.insurance_company_id AS companyId,
  809. agree.insurance_company AS companyName,
  810. agree.partner_companies_id AS parterCompanyId,
  811. ins.NAME AS parterCompanyName,
  812. sum( iac.sumpremium ) AS signeSumPremiumAmount
  813. FROM
  814. ins_area_company iac
  815. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  816. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  817. WHERE
  818. iac.orderstatus = 3
  819. and
  820. agree.id is not null
  821. <if test="vo.companyId != null and vo.companyId!='' ">
  822. agree.insurance_company_id = #{vo.companyId}
  823. </if>
  824. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  825. agree.insurance_company_id = #{vo.parterCompanyId}
  826. </if>
  827. GROUP BY
  828. agree.insurance_company_id,
  829. agree.insurance_company,
  830. agree.partner_companies_id,
  831. ins.NAME
  832. </select>
  833. <select id="queryCompanyQutationCountDataPage"
  834. resultType="com.ydtech.modules.admin.model.report.company.CompanyQutationCountDataDto">
  835. SELECT
  836. a.* ,
  837. (select ins.namesimple from esm_ins_company
  838. ins where a.parterCompanyId = ins.id) as "parterCompanyName"
  839. FROM
  840. (
  841. SELECT
  842. agree.insurance_company AS companyName,
  843. agree.partner_companies_id AS parterCompanyId,
  844. iac.company_id as "companyId",
  845. count( iac.orderstatus ) AS qutationCount,
  846. count( iac.id ) AS allNumber,
  847. count( CASE WHEN iac.orderstatus != '10' THEN 1 END ) AS orderSuccessNumber,
  848. count( CASE WHEN iac.orderstatus != '10' THEN 1 END ) / count( iac.id ) as "orderSuccessNumberRate",
  849. count( CASE WHEN iac.orderstatus = '10' THEN 1 END ) AS areaCompanyErrNumber,
  850. COUNT( CASE WHEN iac.orderstatus = '2' THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS underwritingCount,
  851. COUNT( CASE WHEN iac.orderstatus = '3' THEN 1 END ) AS qutationInsureCount,
  852. (COUNT( CASE WHEN iac.orderstatus = '2' THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )) / count( iac.orderstatus ) AS passRate,
  853. COUNT( CASE WHEN iac.orderstatus = '3' THEN 1 END ) / (COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )) AS closeRate,
  854. COUNT( CASE WHEN iac.orderstatus = '3' THEN 1 END ) / count( iac.orderstatus ) AS contributionRate,
  855. COUNT(CASE WHEN agree.audit_type ='1' and ifa.auditstatus =1 and iac.orderstatus =3 THEN 1 END) as "numberManual"
  856. FROM
  857. ins_area_company iac
  858. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  859. LEFT JOIN ins_orders io ON iac.orderno = io.orderno
  860. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  861. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no =iac.id
  862. WHERE
  863. agree.id IS NOT NULL
  864. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  865. <if test="vo.companyId != null and vo.companyId!='' ">
  866. AND agree.insurance_company_id = #{vo.companyId}
  867. </if>
  868. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  869. AND agree.partner_companies_id = #{vo.parterCompanyId}
  870. </if>
  871. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  872. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  873. </if>
  874. <if test="vo.signingTimeStart !=null and vo.signingTimeStart != '' and vo.signingTimeEnd !=null and vo.signingTimeEnd != ''">
  875. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{vo.signingTimeEnd}, '%Y-%m-%d')
  876. </if>
  877. <if test="vo.managementSource != null and vo.managementSource!=''">
  878. AND sd.management_source =#{vo.managementSource}
  879. </if>
  880. <if test="vo.userId != null and vo.userId !=''">
  881. AND io.userid =#{vo.userId}
  882. </if>
  883. <if test="vo.deptId != null and vo.deptId !=''">
  884. AND io.deptId like concat('%',#{vo.deptId},'%')
  885. </if>
  886. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  887. AND sd.id in
  888. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  889. #{item}
  890. </foreach>
  891. </if>
  892. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  893. AND io.userid in
  894. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  895. #{item}
  896. </foreach>
  897. </if>
  898. GROUP BY
  899. agree.insurance_company,
  900. iac.company_id,
  901. agree.partner_companies_id
  902. ) a
  903. order by a.parterCompanyId
  904. </select>
  905. <select id="quotationDetailsExcel" resultType="com.ydtech.modules.admin.model.dto.QuotationDetailsExcel">
  906. select
  907. iac.id as "orderno",
  908. io.orderno as "bigOrderno",
  909. iac.agreement_id as "agreementId",
  910. iac.orderstatus as "orderstatus",
  911. iac.company_id as "companyId",
  912. agree.partner_companies_id as "partnerCompaniesId",
  913. ins.namesimple as "partnerCompaniesName",
  914. agree.insurance_company as "inscompany",
  915. iac.jqpolicyno as "jqpolicyno",
  916. iac.sypolicyno as "sypolicyno",
  917. iac.sumpremium as "sumpremium",
  918. iac.jqpremium as "jqpremium",
  919. iac.sypremium as "sypremium",
  920. iac.jypremium as "jypremium",
  921. iac.createtime as "createtime",
  922. iac.signing_time as "signingTime",
  923. sd.management_source as "managementSource",
  924. agree.audit_type as "auditType",
  925. ifa.auditstatus as "auditstatus",
  926. io.licenseno as "licenseno",
  927. su1.name as "userName",
  928. su1.leader_name as "leaderName"
  929. from
  930. ins_area_company iac
  931. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  932. LEFT JOIN ins_orders io ON iac.orderno = io.orderno
  933. LEFT JOIN sys_user su1 on su1.id=io.userid
  934. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  935. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no = iac.id
  936. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  937. <where>
  938. agree.id IS NOT NULL
  939. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  940. <if test="vo.companyId != null and vo.companyId!='' ">
  941. AND agree.insurance_company_id = #{vo.companyId}
  942. </if>
  943. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  944. AND agree.partner_companies_id = #{vo.parterCompanyId}
  945. </if>
  946. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  947. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  948. </if>
  949. <if test="vo.managementSource != null and vo.managementSource!=''">
  950. AND sd.management_source =#{vo.managementSource}
  951. </if>
  952. <if test="vo.userId != null and vo.userId !=''">
  953. AND io.userid =#{vo.userId}
  954. </if>
  955. <if test="vo.deptId != null and vo.deptId !=''">
  956. AND io.deptId like concat('%',#{vo.deptId},'%')
  957. </if>
  958. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  959. AND sd.id in
  960. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  961. #{item}
  962. </foreach>
  963. </if>
  964. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  965. AND io.userid in
  966. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  967. #{item}
  968. </foreach>
  969. </if>
  970. </where>
  971. </select>
  972. <select id="getInsAreaCompanyError"
  973. resultType="com.ydtech.modules.admin.model.report.company.CompanyQutationCountDataDto">
  974. SELECT
  975. count(iace.id) as "areaCompanyErrNumber"
  976. FROM
  977. ins_area_company_error iace
  978. LEFT JOIN ptl_agreement agree ON iace.agreement_id = agree.id
  979. <where>
  980. 1=1
  981. <if test="vo.companyId != null and vo.companyId!='' ">
  982. AND agree.insurance_company_id = #{vo.companyId}
  983. </if>
  984. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  985. AND agree.partner_companies_id = #{vo.parterCompanyId}
  986. </if>
  987. <if test="vo.userId != null and vo.userId!=''">
  988. AND iace.user_id =#{vo.userId}
  989. </if>
  990. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  991. AND iace.create_time BETWEEN #{vo.beginDate} AND #{vo.endDate}
  992. </if>
  993. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  994. AND iace.dept_id in
  995. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  996. #{item}
  997. </foreach>
  998. </if>
  999. <if test="vo.deptId != null and vo.deptId !=''">
  1000. AND iace.dept_id like concat('%',#{vo.deptId},'%')
  1001. </if>
  1002. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1003. AND iace.user_id in
  1004. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1005. #{item}
  1006. </foreach>
  1007. </if>
  1008. </where>
  1009. </select>
  1010. <select id="queryCompanyQutationCountDataPageTotal"
  1011. resultType="java.lang.Long">
  1012. SELECT
  1013. count(0)
  1014. FROM
  1015. (
  1016. SELECT
  1017. agree.partner_companies_id
  1018. FROM
  1019. ins_area_company iac
  1020. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  1021. LEFT JOIN ins_orders io ON iac.orderno = io.orderno
  1022. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1023. WHERE
  1024. agree.id IS NOT NULL
  1025. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1026. <if test="vo.companyId != null and vo.companyId!='' ">
  1027. AND agree.insurance_company_id = #{vo.companyId}
  1028. </if>
  1029. <if test="vo.signingTimeStart !=null and vo.signingTimeStart != '' and vo.signingTimeEnd !=null and vo.signingTimeEnd != ''">
  1030. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{vo.signingTimeEnd}, '%Y-%m-%d')
  1031. </if>
  1032. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  1033. AND agree.partner_companies_id = #{vo.parterCompanyId}
  1034. </if>
  1035. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  1036. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  1037. </if>
  1038. <if test="vo.managementSource != null and vo.managementSource!=''">
  1039. AND sd.management_source =#{vo.managementSource}
  1040. </if>
  1041. <if test="vo.userId != null and vo.userId !=''">
  1042. AND io.userid =#{vo.userId}
  1043. </if>
  1044. <if test="vo.deptId != null and vo.deptId !=''">
  1045. AND io.deptId like concat('%',#{vo.deptId},'%')
  1046. </if>
  1047. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  1048. AND sd.id in
  1049. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  1050. #{item}
  1051. </foreach>
  1052. </if>
  1053. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  1054. AND io.userid in
  1055. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1056. #{item}
  1057. </foreach>
  1058. </if>
  1059. GROUP BY
  1060. agree.partner_companies_id
  1061. ) a
  1062. </select>
  1063. <select id="getStageOrder" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  1064. select
  1065. iac.id,
  1066. iac.orderno,
  1067. iac.agreement_id,
  1068. iac.jqpremium,
  1069. iac.sypremium,
  1070. iac.jypremium,
  1071. iac.taxamount,
  1072. iac.sumpremium,
  1073. io.licenseno,
  1074. iac.createtime,
  1075. "0" as orderExternalStatus
  1076. FROM
  1077. ins_area_company iac
  1078. LEFT JOIN
  1079. ins_orders io on iac.orderno = io.orderno
  1080. left join ptl_agreement agree on iac.agreement_id =agree.id
  1081. WHERE
  1082. iac.operator_id = #{userId}
  1083. AND
  1084. iac.orderstatus = 0
  1085. and agree.is_external =1
  1086. AND
  1087. io.del_flag is null
  1088. <if test="vo.id != null and vo.id!='' ">
  1089. and iac.id = #{vo.id}
  1090. </if>
  1091. <if test="vo.licenseno != null and vo.licenseno!='' ">
  1092. and io.licenseno like CONCAT('%', #{vo.licenseno}, '%')
  1093. </if>
  1094. </select>
  1095. <select id="queryPageTaskStatistics" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1096. select a.*, su.name as "userName",
  1097. inf.url as "logo",
  1098. sui.sex as "sex",
  1099. su.leader_name as "leaderName",
  1100. su2.mobile as "leaderMobile"
  1101. from (
  1102. SELECT
  1103. sd.NAME AS "deptName",
  1104. io.userid AS "userId",
  1105. sd.parent_id as "deptId",
  1106. sd.management_source as "managementSource",
  1107. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS qutationCount,
  1108. COUNT( CASE WHEN iot.order_status ='2' THEN 1 END ) AS underwritingCount,
  1109. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) AS qutationInsureCount,
  1110. COUNT( CASE WHEN iot.order_status = '4' THEN 1 END ) AS underwritingReturn,
  1111. COUNT( CASE WHEN iot.order_status ='2' THEN 1 END ) / COUNT( CASE WHEN iot.order_status ='0' THEN 1 END ) AS "passingRate",
  1112. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) / COUNT( CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) AS "closeRate",
  1113. (COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) + COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ))/ COUNT(CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END) AS "contributionRate",
  1114. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) / COUNT(CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) AS "quotationRate",
  1115. COUNT(CASE WHEN io.order_source = 0 and iot.order_status ='0' THEN 1 END) as "pcOrderSource",
  1116. COUNT(CASE WHEN io.order_source = 1 and iot.order_status ='0' THEN 1 END) as "appOrderSource",
  1117. COUNT(CASE WHEN iac.entry_status = '2' THEN 1 END) as "sumEntryStatus",
  1118. COUNT( CASE WHEN iot.order_status = '1' THEN 1 END ) AS "auditOrder"
  1119. FROM
  1120. (
  1121. select iot.suborder,iot.order_status from `ins_orders_track` iot
  1122. GROUP BY iot.suborder ,iot.order_status
  1123. ) iot
  1124. left join ins_area_company iac ON iac.id = iot.suborder
  1125. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1126. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1127. <where>
  1128. sd.management_source = '1'
  1129. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1130. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1131. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1132. </if>
  1133. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1134. and io.deptid like "${taskStatisticsVo.cityId}%"
  1135. </if>
  1136. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1137. and io.deptid like "${taskStatisticsVo.countyId}%"
  1138. </if>
  1139. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1140. and io.deptid like "${taskStatisticsVo.houseId}%"
  1141. </if>
  1142. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1143. and io.userid =#{taskStatisticsVo.userId}
  1144. </if>
  1145. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1146. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1147. </if>
  1148. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1149. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1150. </if>
  1151. <if test="taskStatisticsVo.signingTimeStart !=null and taskStatisticsVo.signingTimeStart != '' and taskStatisticsVo.signingTimeEnd !=null and taskStatisticsVo.signingTimeEnd != ''">
  1152. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.signingTimeEnd}, '%Y-%m-%d')
  1153. </if>
  1154. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1155. AND sd.id in
  1156. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1157. #{item}
  1158. </foreach>
  1159. </if>
  1160. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1161. AND io.userid in
  1162. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1163. #{item}
  1164. </foreach>
  1165. </if>
  1166. </where>
  1167. GROUP BY
  1168. io.userid,
  1169. sd.NAME,
  1170. sd.id,
  1171. sd.management_source
  1172. ) a
  1173. left join sys_user su on su.id =a.userId
  1174. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1175. LEFT JOIN sys_user_info sui on sui .id =su.id
  1176. LEFT JOIN sys_user su2 on su2.id =su.leader_id
  1177. <where>
  1178. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1179. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1180. </if>
  1181. <!-- <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>-->
  1182. <!-- and su.leader_id =#{taskStatisticsVo.leaderId}-->
  1183. <!-- </if>-->
  1184. <if test="taskStatisticsVo.leaderIds != null and taskStatisticsVo.leaderIds != '' and taskStatisticsVo.leaderIds.size() > 0">
  1185. AND su.leader_id in
  1186. <foreach collection="taskStatisticsVo.leaderIds" item="item" open="(" separator="," close=")">
  1187. #{item}
  1188. </foreach>
  1189. </if>
  1190. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  1191. and su.id =#{taskStatisticsVo.userId}
  1192. </if>
  1193. </where>
  1194. </select>
  1195. <select id="queryPageElectric" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1196. select a.*, su.name as "userName",
  1197. inf.url as "logo",
  1198. sui.sex as "sex",
  1199. su.leader_name as "leaderName",
  1200. su2.mobile as "leaderMobile"
  1201. from (
  1202. SELECT
  1203. sd.NAME AS "deptName",
  1204. io.userid AS "userId",
  1205. sd.parent_id as "deptId",
  1206. sd.management_source as "managementSource",
  1207. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS qutationCount,
  1208. COUNT( CASE WHEN iot.order_status ='2' THEN 1 END ) AS underwritingCount,
  1209. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) AS qutationInsureCount,
  1210. COUNT( CASE WHEN iot.order_status = '4' THEN 1 END ) AS underwritingReturn,
  1211. COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ) / COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS "passingRate",
  1212. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) / COUNT( CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END) AS "closeRate",
  1213. (COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) + COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ))/ COUNT(CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END) AS "contributionRate",
  1214. COUNT( CASE WHEN iot.order_status ='0' THEN 1 END ) / COUNT(CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) AS "quotationRate",
  1215. COUNT(CASE WHEN io.order_source = 0 and iot.order_status = '0' THEN 1 END) as "pcOrderSource",
  1216. COUNT(CASE WHEN io.order_source = 1 and iot.order_status = '0' THEN 1 END) as "appOrderSource",
  1217. COUNT( CASE WHEN iot.order_status ='1' THEN 1 END ) AS "auditOrder"
  1218. FROM
  1219. (
  1220. select iot.suborder,iot.order_status from `ins_orders_track` iot
  1221. GROUP BY iot.suborder ,iot.order_status
  1222. ) iot
  1223. left join ins_area_company iac ON iac.id = iot.suborder
  1224. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1225. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1226. <where>
  1227. sd.management_source = '3'
  1228. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1229. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1230. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1231. </if>
  1232. <if test="taskStatisticsVo.signingTimeStart !=null and taskStatisticsVo.signingTimeStart != '' and taskStatisticsVo.signingTimeEnd !=null and taskStatisticsVo.signingTimeEnd != ''">
  1233. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.signingTimeEnd}, '%Y-%m-%d')
  1234. </if>
  1235. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1236. and io.deptid like "${taskStatisticsVo.cityId}%"
  1237. </if>
  1238. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1239. and io.deptid like "${taskStatisticsVo.countyId}%"
  1240. </if>
  1241. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1242. and io.deptid like "${taskStatisticsVo.houseId}%"
  1243. </if>
  1244. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1245. and io.userid =#{taskStatisticsVo.userId}
  1246. </if>
  1247. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1248. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1249. </if>
  1250. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1251. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1252. </if>
  1253. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1254. AND sd.id in
  1255. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1256. #{item}
  1257. </foreach>
  1258. </if>
  1259. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1260. AND io.userid in
  1261. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1262. #{item}
  1263. </foreach>
  1264. </if>
  1265. </where>
  1266. GROUP BY
  1267. io.userid,
  1268. sd.NAME,
  1269. sd.id,
  1270. sd.management_source
  1271. ) a
  1272. left join sys_user su on su.id =a.userId
  1273. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1274. LEFT JOIN sys_user_info sui on sui .id =su.id
  1275. LEFT JOIN sys_user su2 on su2.id =su.leader_id
  1276. <where>
  1277. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1278. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1279. </if>
  1280. <!-- <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>-->
  1281. <!-- and su.leader_id =#{taskStatisticsVo.leaderId}-->
  1282. <!-- </if>-->
  1283. <if test="taskStatisticsVo.leaderIds != null and taskStatisticsVo.leaderIds != '' and taskStatisticsVo.leaderIds.size() > 0">
  1284. AND su.leader_id in
  1285. <foreach collection="taskStatisticsVo.leaderIds" item="item" open="(" separator="," close=")">
  1286. #{item}
  1287. </foreach>
  1288. </if>
  1289. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  1290. and su.id =#{taskStatisticsVo.userId}
  1291. </if>
  1292. </where>
  1293. </select>
  1294. <select id="queryPageElectricTotal" resultType="java.lang.Long">
  1295. select count(0) from (
  1296. SELECT
  1297. io.userid
  1298. FROM
  1299. ins_area_company iac
  1300. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1301. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1302. <where>
  1303. sd.management_source = '3'
  1304. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1305. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1306. </if>
  1307. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1308. and io.deptid like "${taskStatisticsVo.cityId}%"
  1309. </if>
  1310. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1311. and io.deptid like "${taskStatisticsVo.countyId}%"
  1312. </if>
  1313. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1314. and io.deptid like "${taskStatisticsVo.houseId}%"
  1315. </if>
  1316. <if test="taskStatisticsVo.leaderIds != null and taskStatisticsVo.leaderIds != '' and taskStatisticsVo.leaderIds.size() > 0">
  1317. AND su.leader_id in
  1318. <foreach collection="taskStatisticsVo.leaderIds" item="item" open="(" separator="," close=")">
  1319. #{item}
  1320. </foreach>
  1321. </if>
  1322. <if test="taskStatisticsVo.signingTimeStart !=null and taskStatisticsVo.signingTimeStart != '' and taskStatisticsVo.signingTimeEnd !=null and taskStatisticsVo.signingTimeEnd != ''">
  1323. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.signingTimeEnd}, '%Y-%m-%d')
  1324. </if>
  1325. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1326. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1327. </if>
  1328. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1329. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1330. </if>
  1331. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1332. and io.userid =#{taskStatisticsVo.userId}
  1333. </if>
  1334. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1335. AND sd.id in
  1336. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1337. #{item}
  1338. </foreach>
  1339. </if>
  1340. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1341. AND io.userid in
  1342. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1343. #{item}
  1344. </foreach>
  1345. </if>
  1346. </where>
  1347. GROUP BY
  1348. io.userid
  1349. ) a
  1350. </select>
  1351. <select id="queryPageTaskStatisticsTotal" resultType="java.lang.Long">
  1352. select count(0) from (
  1353. SELECT
  1354. io.userid
  1355. FROM
  1356. ins_area_company iac
  1357. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1358. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1359. left join sys_user su on su.id = io.userid
  1360. <where>
  1361. sd.management_source = '1'
  1362. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1363. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1364. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1365. </if>
  1366. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1367. and io.deptid like "${taskStatisticsVo.cityId}%"
  1368. </if>
  1369. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1370. and io.deptid like "${taskStatisticsVo.countyId}%"
  1371. </if>
  1372. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1373. and io.deptid like "${taskStatisticsVo.houseId}%"
  1374. </if>
  1375. <if test="taskStatisticsVo.signingTimeStart !=null and taskStatisticsVo.signingTimeStart != '' and taskStatisticsVo.signingTimeEnd !=null and taskStatisticsVo.signingTimeEnd != ''">
  1376. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.signingTimeEnd}, '%Y-%m-%d')
  1377. </if>
  1378. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1379. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1380. </if>
  1381. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1382. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1383. </if>
  1384. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1385. and io.userid =#{taskStatisticsVo.userId}
  1386. </if>
  1387. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1388. AND sd.id in
  1389. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1390. #{item}
  1391. </foreach>
  1392. </if>
  1393. <if test="taskStatisticsVo.leaderIds != null and taskStatisticsVo.leaderIds != '' and taskStatisticsVo.leaderIds.size() > 0">
  1394. AND su.leader_id in
  1395. <foreach collection="taskStatisticsVo.leaderIds" item="item" open="(" separator="," close=")">
  1396. #{item}
  1397. </foreach>
  1398. </if>
  1399. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1400. AND io.userid in
  1401. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1402. #{item}
  1403. </foreach>
  1404. </if>
  1405. </where>
  1406. GROUP BY
  1407. io.userid
  1408. ) a
  1409. </select>
  1410. <select id="insuranceCompanyQueryPage" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1411. select
  1412. a.*,
  1413. ( SELECT eic.namesimple FROM esm_ins_company eic WHERE eic.id = a.partner_companies_id ) AS "partnerCompaniesName"
  1414. FROM
  1415. (
  1416. SELECT
  1417. pa.insurance_company_id,
  1418. pa.partner_companies_id,
  1419. pa.insurance_company AS "insuranceCompanyName",
  1420. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS qutationCount,
  1421. COUNT( CASE WHEN iot.order_status = '1' THEN 1 END ) AS "auditOrder",
  1422. COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ) AS underwritingCount,
  1423. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) AS qutationInsureCount,
  1424. COUNT( CASE WHEN iot.order_status = '4' THEN 1 END ) AS underwritingReturn,
  1425. COUNT( CASE WHEN iot.order_status ='2' THEN 1 END ) / COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS "passingRate",
  1426. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) / COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS "closeRate",
  1427. (COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) + COUNT( CASE WHEN iot.order_status = '2' THEN 1 END )) / COUNT( iot.order_status ) AS "contributionRate",
  1428. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) / COUNT( iot.order_status ) AS "quotationRate"
  1429. FROM
  1430. (
  1431. select iot.suborder,iot.order_status from `ins_orders_track` iot
  1432. GROUP BY iot.suborder ,iot.order_status
  1433. ) iot
  1434. LEFT JOIN ins_area_company iac ON iac.id = iot.suborder
  1435. LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
  1436. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1437. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1438. <where>
  1439. pa.insurance_company_id IS NOT NULL
  1440. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1441. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1442. and io.deptid like concat('%', #{taskStatisticsVo.provinceId}, '%')
  1443. </if>
  1444. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1445. and io.deptid like concat('%', #{taskStatisticsVo.cityId}, '%')
  1446. </if>
  1447. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1448. and io.deptid like concat('%', #{taskStatisticsVo.countyId}, '%')
  1449. </if>
  1450. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1451. and io.deptid like concat('%', #{taskStatisticsVo.houseId}, '%')
  1452. </if>
  1453. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1454. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{taskStatisticsVo.createtimeStart},'%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1455. </if>
  1456. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1457. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1458. </if>
  1459. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId != ''">
  1460. AND iac.company_id =#{taskStatisticsVo.companyId}
  1461. </if>
  1462. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1463. AND io.deptid in
  1464. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1465. #{item}
  1466. </foreach>
  1467. </if>
  1468. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1469. AND io.userid in
  1470. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1471. #{item}
  1472. </foreach>
  1473. </if>
  1474. </where>
  1475. GROUP BY
  1476. pa.insurance_company_id,
  1477. pa.partner_companies_id,
  1478. pa.insurance_company
  1479. ) a
  1480. </select>
  1481. <select id="insuranceCompanyQueryTotal" resultType="java.lang.Long">
  1482. SELECT
  1483. COUNT(0)
  1484. FROM
  1485. (
  1486. SELECT
  1487. pa.insurance_company_id,
  1488. pa.partner_companies_id
  1489. FROM
  1490. ins_area_company iac
  1491. LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
  1492. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1493. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1494. <where>
  1495. pa.insurance_company_id IS NOT NULL
  1496. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1497. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1498. and io.deptid like concat('%', #{taskStatisticsVo.provinceId}, '%')
  1499. </if>
  1500. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1501. and io.deptid like concat('%', #{taskStatisticsVo.cityId}, '%')
  1502. </if>
  1503. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1504. and io.deptid like concat('%', #{taskStatisticsVo.countyId}, '%')
  1505. </if>
  1506. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId != ''">
  1507. AND iac.company_id =#{taskStatisticsVo.companyId}
  1508. </if>
  1509. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1510. and io.deptid like concat('%', #{taskStatisticsVo.houseId}, '%')
  1511. </if>
  1512. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1513. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{taskStatisticsVo.createtimeStart},'%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1514. </if>
  1515. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1516. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1517. </if>
  1518. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1519. AND io.deptid in
  1520. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1521. #{item}
  1522. </foreach>
  1523. </if>
  1524. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1525. AND io.userid in
  1526. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1527. #{item}
  1528. </foreach>
  1529. </if>
  1530. </where>
  1531. GROUP BY
  1532. pa.insurance_company_id,
  1533. pa.partner_companies_id
  1534. ) total
  1535. </select>
  1536. <select id="agentStatisticsQueryPage" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1537. SELECT
  1538. sd.name as "deptName",
  1539. su.name as "userName",
  1540. io.userid as "userId",
  1541. sd.id as "deptId",
  1542. suLeader.name as "leaderName",
  1543. suLeader.mobile as "leaderMobile",
  1544. sd.management_source as "managementSource",
  1545. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS qutationCount,
  1546. COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ) AS underwritingCount,
  1547. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) AS qutationInsureCount,
  1548. COUNT( CASE WHEN iot.order_status = '4' THEN 1 END ) AS underwritingReturn,
  1549. COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ) / COUNT( CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) as "passingRate",
  1550. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) / COUNT( CASE WHEN iot.order_status ='0' THEN 1 END ) as "closeRate",
  1551. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) / COUNT( CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) as "contributionRate",
  1552. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) / COUNT( CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) as "quotationRate",
  1553. COUNT( CASE WHEN iot.order_status = '1' THEN 1 END ) as "auditOrder"
  1554. FROM
  1555. (
  1556. select DISTINCT iot.suborder,iot.order_status from `ins_orders_track` iot
  1557. ) iot
  1558. LEFT JOIN ins_area_company iac ON iac.id = iot.suborder
  1559. left join ins_orders io on io.orderno = iac.orderno
  1560. left join sys_dept sd on sd.id=io.deptid
  1561. left join sys_user su on su.id=io.userid
  1562. left join sys_user suLeader on suLeader.id =su.leader_id
  1563. <where>
  1564. sd.management_source = '2'
  1565. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1566. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1567. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1568. </if>
  1569. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1570. and io.deptid like "${taskStatisticsVo.cityId}%"
  1571. </if>
  1572. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1573. and io.deptid like "${taskStatisticsVo.countyId}%"
  1574. </if>
  1575. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1576. and io.deptid like "${taskStatisticsVo.houseId}%"
  1577. </if>
  1578. <if test="taskStatisticsVo.userId !=null and taskStatisticsVo.userId!='' ">
  1579. and io.userid =#{taskStatisticsVo.userId}
  1580. </if>
  1581. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1582. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1583. </if>
  1584. <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>
  1585. and su.leader_id =#{taskStatisticsVo.leaderId}
  1586. </if>
  1587. <!-- -->
  1588. <!-- <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>-->
  1589. <!-- and su.id =#{taskStatisticsVo.userId}-->
  1590. <!-- </if>-->
  1591. <if test="taskStatisticsVo.leaderIds != null and taskStatisticsVo.leaderIds != '' and taskStatisticsVo.leaderIds.size() > 0">
  1592. AND su.leader_id in
  1593. <foreach collection="taskStatisticsVo.leaderIds" item="item" open="(" separator="," close=")">
  1594. #{item}
  1595. </foreach>
  1596. </if>
  1597. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1598. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1599. </if>
  1600. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1601. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1602. </if>
  1603. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1604. AND sd.id in
  1605. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1606. #{item}
  1607. </foreach>
  1608. </if>
  1609. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1610. AND io.userid in
  1611. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1612. #{item}
  1613. </foreach>
  1614. </if>
  1615. </where>
  1616. GROUP BY io.userid , su.name, sd.id , sd.name,suLeader.name,suLeader.mobile,sd.management_source
  1617. </select>
  1618. <select id="agentStatisticsQueryPageTotal" resultType="java.lang.Long">
  1619. select count(0) from (
  1620. SELECT
  1621. io.userid as "userId"
  1622. FROM
  1623. ins_area_company iac
  1624. left join ins_orders io on io.orderno = iac.orderno
  1625. left join sys_dept sd on sd.id=io.deptid
  1626. left join sys_user su on su.id=io.userid
  1627. <where>
  1628. sd.management_source = '2'
  1629. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1630. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1631. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1632. </if>
  1633. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1634. and io.deptid like "${taskStatisticsVo.cityId}%"
  1635. </if>
  1636. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1637. and io.deptid like "${taskStatisticsVo.countyId}%"
  1638. </if>
  1639. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1640. and io.deptid like "${taskStatisticsVo.houseId}%"
  1641. </if>
  1642. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1643. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1644. </if>
  1645. <!-- <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>-->
  1646. <!-- and su.leader_id =#{taskStatisticsVo.leaderId}-->
  1647. <!-- </if>-->
  1648. <if test="taskStatisticsVo.leaderIds != null and taskStatisticsVo.leaderIds != '' and taskStatisticsVo.leaderIds.size() > 0">
  1649. AND su.leader_id in
  1650. <foreach collection="taskStatisticsVo.leaderIds" item="item" open="(" separator="," close=")">
  1651. #{item}
  1652. </foreach>
  1653. </if>
  1654. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  1655. and su.id =#{taskStatisticsVo.userId}
  1656. </if>
  1657. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1658. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1659. </if>
  1660. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1661. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1662. </if>
  1663. <if test="taskStatisticsVo.userId !=null and taskStatisticsVo.userId!='' ">
  1664. and io.userid =#{taskStatisticsVo.userId}
  1665. </if>
  1666. </where>
  1667. GROUP BY io.userid
  1668. ) a
  1669. </select>
  1670. <select id="costCenter" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1671. SELECT
  1672. iac.company_id,
  1673. iac.inscompany as "insuranceCompanyName",
  1674. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "auditstatusOrders",
  1675. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "auditOrder",
  1676. COUNT( CASE WHEN ifa.auditstatus = 1 and ifa.audituser != '自动审核' THEN 1 END ) AS "persionAudit",
  1677. COUNT( CASE WHEN ifa.audituser = '自动审核' THEN 1 END ) AS "automaticAudit"
  1678. FROM
  1679. ins_fee_audit ifa
  1680. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1681. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1682. AND iac.orderstatus = 3
  1683. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1684. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1685. left join sys_user su on su.id =ifa.audituser
  1686. <where>
  1687. 1=1
  1688. and iac.id = ifa.ins_order_no
  1689. AND iac.orderstatus = 3
  1690. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1691. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1692. and su.name =#{taskStatisticsVo.reviewer}
  1693. </if>
  1694. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1695. and ifa.audittime =#{taskStatisticsVo.audittime}
  1696. </if>
  1697. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1698. and iac.company_id =#{taskStatisticsVo.companyId}
  1699. </if>
  1700. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1701. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1702. </if>
  1703. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1704. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1705. </if>
  1706. <if test="taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != '' and taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != ''">
  1707. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.auditTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.auditTimeEnd}, '%Y-%m-%d')
  1708. </if>
  1709. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1710. AND io.deptid in
  1711. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1712. #{item}
  1713. </foreach>
  1714. </if>
  1715. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1716. AND su.id in
  1717. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1718. #{item}
  1719. </foreach>
  1720. </if>
  1721. <choose>
  1722. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1723. and iac.product = #{taskStatisticsVo.riskCode}
  1724. </when>
  1725. </choose>
  1726. </where>
  1727. GROUP BY
  1728. iac.company_id,
  1729. iac.inscompany
  1730. </select>
  1731. <select id="costCenterDetails" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1732. SELECT
  1733. ifa.audituser as "audituser",
  1734. su.name as "audituserName",
  1735. su.mobile as "audituserMobile",
  1736. iac.inscompany as "insuranceCompanyName",
  1737. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "auditstatusOrders",
  1738. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "auditOrder"
  1739. FROM
  1740. ins_fee_audit ifa
  1741. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1742. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1743. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1744. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1745. left join sys_user su on su.id =ifa.audituser
  1746. <where>
  1747. 1=1
  1748. and iac.id = ifa.ins_order_no
  1749. AND iac.orderstatus = 3
  1750. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  1751. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1752. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1753. and su.name =#{taskStatisticsVo.reviewer}
  1754. </if>
  1755. <if test="taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != '' and taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != ''">
  1756. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.auditTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.auditTimeEnd}, '%Y-%m-%d')
  1757. </if>
  1758. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1759. and iac.company_id =#{taskStatisticsVo.companyId}
  1760. </if>
  1761. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1762. and ifa.audittime =#{taskStatisticsVo.audittime}
  1763. </if>
  1764. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1765. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1766. </if>
  1767. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1768. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1769. </if>
  1770. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1771. AND io.deptid in
  1772. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1773. #{item}
  1774. </foreach>
  1775. </if>
  1776. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1777. AND su.id in
  1778. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1779. #{item}
  1780. </foreach>
  1781. </if>
  1782. <choose>
  1783. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1784. and iac.product = #{taskStatisticsVo.riskCode}
  1785. </when>
  1786. </choose>
  1787. </where>
  1788. GROUP BY
  1789. ifa.audituser,su.name,su.mobile,iac.inscompany
  1790. </select>
  1791. <select id="costCenterDetailsExcel" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDtoExcel">
  1792. SELECT
  1793. ifa.audituser as "audituser",
  1794. su.name as "audituserName",
  1795. su.mobile as "audituserMobile",
  1796. iac.inscompany as "insuranceCompanyName",
  1797. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "auditstatusOrders",
  1798. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "auditOrder"
  1799. FROM
  1800. ins_fee_audit ifa
  1801. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1802. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1803. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1804. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1805. left join sys_user su on su.id =ifa.audituser
  1806. <where>
  1807. 1=1
  1808. and iac.id = ifa.ins_order_no
  1809. AND iac.orderstatus = 3
  1810. AND ifa.audituser != '自动审核'
  1811. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1812. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1813. and su.name =#{taskStatisticsVo.reviewer}
  1814. </if>
  1815. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1816. and iac.company_id =#{taskStatisticsVo.companyId}
  1817. </if>
  1818. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1819. and ifa.audittime =#{taskStatisticsVo.audittime}
  1820. </if>
  1821. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1822. and iac.company_id =#{taskStatisticsVo.companyId}
  1823. </if>
  1824. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1825. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1826. </if>
  1827. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1828. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1829. </if>
  1830. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1831. AND io.deptid in
  1832. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1833. #{item}
  1834. </foreach>
  1835. </if>
  1836. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1837. AND su.id in
  1838. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1839. #{item}
  1840. </foreach>
  1841. </if>
  1842. <choose>
  1843. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1844. and iac.product = #{taskStatisticsVo.riskCode}
  1845. </when>
  1846. </choose>
  1847. </where>
  1848. GROUP BY
  1849. ifa.audituser,su.name,su.mobile,iac.inscompany
  1850. </select>
  1851. <select id="costCenterDetailsLicense" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1852. SELECT
  1853. io.licenseno as "licenseno",
  1854. iot.createTime as "createTime",
  1855. ifa.audittime as "auditTime",
  1856. IFNULL(TIMESTAMPDIFF(SECOND, iot.createTime, ifa.audittime),0) as "timeDifference"
  1857. FROM
  1858. ins_fee_audit ifa
  1859. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1860. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1861. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1862. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1863. left join (
  1864. SELECT
  1865. suborder AS "suborder",
  1866. min(create_time) AS "createTime"
  1867. FROM
  1868. ins_orders_track iot_
  1869. WHERE
  1870. order_status =3
  1871. GROUP BY
  1872. suborder
  1873. ) iot on iot.suborder = iac.id
  1874. left join sys_user su on su.id =ifa.audituser
  1875. <where>
  1876. 1=1
  1877. and iac.id = ifa.ins_order_no
  1878. AND iac.orderstatus = 3
  1879. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1880. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1881. and su.name =#{taskStatisticsVo.reviewer}
  1882. </if>
  1883. <if test="taskStatisticsVo.audituser !=null and taskStatisticsVo.audituser !=''">
  1884. and ifa.audituser =#{taskStatisticsVo.audituser}
  1885. </if>
  1886. <if test="taskStatisticsVo.reviewType ==null">
  1887. AND ifa.audituser != '自动审核'
  1888. </if>
  1889. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1890. and iac.company_id =#{taskStatisticsVo.companyId}
  1891. </if>
  1892. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1893. and ifa.audittime =#{taskStatisticsVo.audittime}
  1894. </if>
  1895. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1896. and iac.company_id =#{taskStatisticsVo.companyId}
  1897. </if>
  1898. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1899. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1900. </if>
  1901. <if test="taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != '' and taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != ''">
  1902. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.auditTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.auditTimeEnd}, '%Y-%m-%d')
  1903. </if>
  1904. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1905. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1906. </if>
  1907. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1908. AND io.deptid in
  1909. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1910. #{item}
  1911. </foreach>
  1912. </if>
  1913. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1914. AND su.id in
  1915. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1916. #{item}
  1917. </foreach>
  1918. </if>
  1919. <choose>
  1920. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1921. and iac.product = #{taskStatisticsVo.riskCode}
  1922. </when>
  1923. </choose>
  1924. </where>
  1925. </select>
  1926. <select id="costCenterSecond" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDtoNew">
  1927. SELECT
  1928. IFNULL(count(io.licenseno),0) as "orderNumber",
  1929. IFNULL(sum(TIMESTAMPDIFF(SECOND, iot.createTime, ifa.audittime)),0) as "sumSecond",
  1930. ROUND(IFNULL(sum(TIMESTAMPDIFF(SECOND, iot.createTime, ifa.audittime)),0) / count(io.licenseno),2) as "averageSecond"
  1931. FROM
  1932. ins_fee_audit ifa
  1933. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1934. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1935. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1936. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1937. left join sys_user su on su.id =ifa.audituser
  1938. left join (
  1939. SELECT
  1940. suborder AS "suborder",
  1941. min(create_time) AS "createTime"
  1942. FROM
  1943. ins_orders_track iot_
  1944. WHERE
  1945. order_status =3
  1946. GROUP BY
  1947. suborder
  1948. ) iot on iot.suborder = iac.id
  1949. <where>
  1950. 1=1
  1951. and iac.id = ifa.ins_order_no
  1952. AND iac.orderstatus = 3
  1953. AND ifa.audituser != '自动审核'
  1954. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1955. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1956. and su.name =#{taskStatisticsVo.reviewer}
  1957. </if>
  1958. <if test="taskStatisticsVo.audituser !=null and taskStatisticsVo.audituser !=''">
  1959. and ifa.audituser =#{taskStatisticsVo.audituser}
  1960. </if>
  1961. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1962. and iac.company_id =#{taskStatisticsVo.companyId}
  1963. </if>
  1964. <if test="taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != '' and taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != ''">
  1965. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.auditTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.auditTimeEnd}, '%Y-%m-%d')
  1966. </if>
  1967. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1968. and ifa.audittime =#{taskStatisticsVo.audittime}
  1969. </if>
  1970. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1971. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1972. </if>
  1973. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1974. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1975. </if>
  1976. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1977. AND io.deptid in
  1978. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1979. #{item}
  1980. </foreach>
  1981. </if>
  1982. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1983. AND su.id in
  1984. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1985. #{item}
  1986. </foreach>
  1987. </if>
  1988. <choose>
  1989. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1990. and iac.product = #{taskStatisticsVo.riskCode}
  1991. </when>
  1992. </choose>
  1993. </where>
  1994. </select>
  1995. <select id="getOrderManpower" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1996. SELECT
  1997. count( a.numberUserId ) as "orderManpower",
  1998. sum( a.orderAmount ) as "totalPremium",
  1999. sum( a.orderAmount )/ count( a.numberUserId ) as "averagePremium"
  2000. FROM
  2001. (
  2002. SELECT
  2003. count( io.userid ) AS "numberUserId",
  2004. SUM(IFNULL(iac.jqpremium, 0)) +
  2005. SUM(IFNULL(iac.sypremium, 0)) +
  2006. SUM(IFNULL(iac.jypremium, 0)) AS "orderAmount"
  2007. FROM
  2008. `ins_area_company` iac
  2009. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2010. <where>
  2011. iac.orderstatus = '3'
  2012. <if test="ids != null and ids.size()>0 ">
  2013. AND io.userid IN
  2014. <foreach item="item" collection="ids" open="(" separator="," close=")">
  2015. #{item}
  2016. </foreach>
  2017. </if>
  2018. </where>
  2019. GROUP BY
  2020. io.userid
  2021. ) a
  2022. </select>
  2023. <select id="getOrderManpowerNew" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  2024. SELECT
  2025. count( a.numberUserId ) as "orderManpower",
  2026. IFNULL(sum( a.orderAmount ),0) as "totalPremium",
  2027. ROUND(sum( a.orderAmount )/ sum(a.ordernoNumber),2) AS "averagePremium"
  2028. FROM
  2029. (
  2030. SELECT
  2031. count( io.userid ) AS "numberUserId",
  2032. count( iac.orderno ) AS "ordernoNumber",
  2033. SUM(IFNULL(iac.jqpremium, 0)
  2034. +IFNULL(iac.sypremium, 0)
  2035. +IFNULL(iac.jypremium, 0)
  2036. ) AS "orderAmount"
  2037. FROM
  2038. `ins_area_company` iac
  2039. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2040. <where>
  2041. iac.orderstatus = '3'
  2042. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2043. <if test="vo.ids != null and vo.ids.size()>0 ">
  2044. AND io.userid IN
  2045. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  2046. #{item}
  2047. </foreach>
  2048. </if>
  2049. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2050. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  2051. </if>
  2052. </where>
  2053. GROUP BY
  2054. io.userid
  2055. ) a
  2056. <where>
  2057. <if test="vo.outThere != null and vo.outThere!=''">
  2058. <choose>
  2059. <when test=" vo.outThere == 0">
  2060. AND IFNULL(a.orderAmount,0) = 0
  2061. </when>
  2062. <when test="vo.outThere == 1">
  2063. AND IFNULL(a.orderAmount,0) > 0
  2064. </when>
  2065. </choose>
  2066. </if>
  2067. </where>
  2068. order by sum( a.orderAmount ) desc
  2069. </select>
  2070. <select id="getChannelOrderManpowerNew" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  2071. SELECT
  2072. a.userId as "userId",
  2073. a.userName as "name",
  2074. a.orderNumber as "orderNumber",
  2075. a.underwritingCount as "underwritingCount",
  2076. a.qutationInsureCount as "qutationInsureCount",
  2077. IFNULL(a.jqpremium,0) + IFNULL(a.sypremium,0) + IFNULL(a.jypremium,0) as "totalPremium",
  2078. a.isFactorVerify as "isFactorVerify",
  2079. a.isNotFactorVerify as "isNotFactorVerify"
  2080. FROM
  2081. (
  2082. SELECT
  2083. io.userid as "userId",
  2084. io.username as "userName",
  2085. count( iac.orderno ) AS "orderNumber",
  2086. sum(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium END ) AS jqpremium,
  2087. sum(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium END ) AS sypremium,
  2088. sum(CASE WHEN iac.orderstatus = 3 THEN iac.jypremium END ) AS jypremium,
  2089. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2090. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2091. COUNT( CASE WHEN su.factor_verify = 1 THEN 1 END ) AS isFactorVerify,
  2092. COUNT( CASE WHEN su.factor_verify = 0 THEN 1 END ) AS isNotFactorVerify
  2093. FROM
  2094. `ins_area_company` iac
  2095. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2096. left join sys_user su on su.id=io.userid
  2097. <where>
  2098. (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2099. <if test="vo.ids != null and vo.ids.size()>0 ">
  2100. AND io.userid IN
  2101. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  2102. #{item}
  2103. </foreach>
  2104. </if>
  2105. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2106. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  2107. </if>
  2108. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2109. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2110. </if>
  2111. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2112. AND io.deptid in
  2113. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2114. #{item}
  2115. </foreach>
  2116. </if>
  2117. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2118. AND io.userid in
  2119. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2120. #{item}
  2121. </foreach>
  2122. </if>
  2123. </where>
  2124. GROUP BY
  2125. io.userid,
  2126. io.username
  2127. ) a
  2128. left join sys_user su on su.id=a.userId
  2129. </select>
  2130. <select id="NumberQuotations" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2131. SELECT
  2132. count(iac.id) as "orderNumber",
  2133. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2134. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2135. sum( CASE WHEN iac.orderstatus = 3 THEN IFNULL(iac.jqpremium, 0) + IFNULL(iac.sypremium, 0) + IFNULL(iac.jypremium, 0) END ) AS totalPremium
  2136. FROM
  2137. ins_area_company iac
  2138. left join ins_orders io on io.orderno = iac.orderno
  2139. left join sys_dept sd on sd.id=io.deptid
  2140. left join sys_user su on su.id=io.userid
  2141. left join ins_fee_audit ifa on ifa .ins_order_no =iac.id
  2142. <where>
  2143. sd.management_source = '2'
  2144. <if test="userId !=null and userId !=''">
  2145. and io.userId =#{userId}
  2146. </if>
  2147. </where>
  2148. </select>
  2149. <select id="totalQuotation" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2150. SELECT
  2151. agree.insurance_company_id AS companyId,
  2152. agree.insurance_company AS companyName,
  2153. agree.partner_companies_id AS parterCompanyId,
  2154. ins.namesimple AS parterCompanyName,
  2155. count(iac.orderstatus) AS orderNumber,
  2156. '-' as bigQutationCount,
  2157. '-' as bigUnderwritingCount,
  2158. '-' as bigCloseRate,
  2159. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2160. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2161. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END )/ count(iac.orderstatus) AS passRate,
  2162. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END )/ count(iac.orderstatus) AS underwritingCountRate,
  2163. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ count(iac.orderstatus) AS closeRate,
  2164. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS
  2165. contributionRate
  2166. FROM
  2167. ins_area_company iac
  2168. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2169. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2170. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  2171. WHERE
  2172. agree.id IS NOT NULL
  2173. <if test="vo.companyId != null and vo.companyId!='' ">
  2174. agree.insurance_company_id = #{vo.companyId}
  2175. </if>
  2176. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2177. agree.partner_companies_id = #{vo.parterCompanyId}
  2178. </if>
  2179. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2180. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2181. </if>
  2182. <if test="vo.provinceId != null and vo.provinceId != ''">
  2183. and io.deptid like "${vo.provinceId}%"
  2184. </if>
  2185. <if test="vo.cityId != null and vo.cityId != ''">
  2186. and io.deptid like "${vo.cityId}%"
  2187. </if>
  2188. <if test="vo.countyId != null and vo.countyId != ''">
  2189. and io.deptid like "${vo.countyId}%"
  2190. </if>
  2191. <if test="taskStatisticsVo.houseId != null and vo.houseId != ''">
  2192. and io.deptid like "${vo.houseId}%"
  2193. </if>
  2194. GROUP BY
  2195. agree.insurance_company_id,
  2196. agree.insurance_company,
  2197. agree.partner_companies_id,
  2198. ins.NAME
  2199. </select>
  2200. <select id="getBusinessData" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2201. select
  2202. a.dockingPerson as "dockingPerson",
  2203. a.dockingPhone as "dockingPhone",
  2204. a.agreementType as "agreementType",
  2205. a.logo as "logo",
  2206. a.companyId as "companyId",
  2207. a.insuranceCompanyName as "insuranceCompanyName",
  2208. a.parterCompanyId as "parterCompanyId",
  2209. a.partnerCompaniesName as "partnerCompaniesName",
  2210. sum(a.totalPremium) as "totalPremium",
  2211. sum(a.qutationInsureCount) as "qutationInsureCount",
  2212. ROUND(sum(a.totalPremium) / sum(a.qutationInsureCount), 2) AS "averagePremium",
  2213. ROUND(sum(a.totalPremium) / sum(a.userNumber),2) as "perCapitaAmount",
  2214. sum(a.userNumber) as "userNumber"
  2215. from (
  2216. select
  2217. a.companyId as "companyId",
  2218. a.insuranceCompanyName as "insuranceCompanyName",
  2219. a.parterCompanyId as "parterCompanyId",
  2220. a.partnerCompaniesName as "partnerCompaniesName",
  2221. a.totalPremium as "totalPremium",
  2222. a.qutationInsureCount as "qutationInsureCount",
  2223. a.userNumber as "userNumber",
  2224. c.docking_person as "dockingPerson",
  2225. c.docking_phone as "dockingPhone",
  2226. c.agreement_type as "agreementType",
  2227. b.logo as "logo"
  2228. from (
  2229. SELECT
  2230. agree.insurance_company_id AS "companyId",
  2231. agree.insurance_company AS "insuranceCompanyName",
  2232. agree.partner_companies_id AS "parterCompanyId",
  2233. ins.namesimple AS "partnerCompaniesName",
  2234. agree.id as "agreeId",
  2235. IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
  2236. COUNT(0 ) AS "qutationInsureCount",
  2237. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0 ) AS "averagePremium",
  2238. COUNT(DISTINCT io.userId) AS "userNumber",
  2239. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId) as "perCapitaAmount"
  2240. FROM
  2241. ins_area_company iac
  2242. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2243. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2244. LEFT JOIN sys_user su on io.userid =su.id
  2245. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no =iac.id
  2246. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  2247. WHERE
  2248. agree.id IS NOT NULL
  2249. and iac.orderstatus = '3'
  2250. and ifa.auditstatus != '2'
  2251. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2252. <if test="vo.companyId != null and vo.companyId!='' ">
  2253. and agree.insurance_company_id = #{vo.companyId}
  2254. </if>
  2255. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2256. and agree.partner_companies_id = #{vo.parterCompanyId}
  2257. </if>
  2258. <if test="vo.signingTimeStart != null and vo.signingTimeStart!='' and vo.signingTimeEnd != null and vo.signingTimeEnd != ''">
  2259. AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.signingTimeEnd}, '%Y-%m-%d')
  2260. </if>
  2261. <if test="vo.enterTimeStart != null and vo.enterTimeStart!='' and vo.enterTimeEnd != null and vo.enterTimeEnd != ''">
  2262. AND DATE_FORMAT(iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.enterTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.enterTimeEnd}, '%Y-%m-%d')
  2263. </if>
  2264. <if test="vo.provinceId != null and vo.provinceId != '' and vo.cityId == null and vo.countyId == null and vo.houseId == null ">
  2265. and io.deptid like concat('%',#{vo.provinceId},'%')
  2266. </if>
  2267. <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and vo.houseId ==null">
  2268. and io.deptid like concat('%',#{vo.cityId},'%')
  2269. </if>
  2270. <if test="vo.countyId != null and vo.countyId != '' and vo.houseId ==null">
  2271. and io.deptid like concat('%',#{vo.countyId},'%')
  2272. </if>
  2273. <if test="vo.houseId != null and vo.houseId != ''">
  2274. and io.deptid like concat('%',#{vo.houseId},'%')
  2275. </if>
  2276. <if test="vo.parterProvinceId != null and vo.parterProvinceId != '' and vo.parterCityId == null and vo.parterCountyId == null ">
  2277. and agree.partner_companies_id like concat('%',#{vo.parterProvinceId},'%')
  2278. </if>
  2279. <if test="vo.parterCityId != null and vo.parterCityId != '' and vo.parterCountyId ==null ">
  2280. and agree.partner_companies_id like concat('%',#{vo.parterCityId},'%')
  2281. </if>
  2282. <if test="vo.parterCountyId != null and vo.parterCountyId != '' ">
  2283. and agree.partner_companies_id like concat('%',#{vo.parterCountyId},'%')
  2284. </if>
  2285. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2286. AND io.deptid in
  2287. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2288. #{item}
  2289. </foreach>
  2290. </if>
  2291. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2292. AND su.leader_id in
  2293. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2294. #{item}
  2295. </foreach>
  2296. </if>
  2297. GROUP BY
  2298. agree.insurance_company_id,
  2299. agree.insurance_company,
  2300. agree.partner_companies_id,
  2301. agree.id
  2302. <choose>
  2303. <when test="vo.orderSort != null and vo.orderSort != '' and vo.userNumberSort == null ">
  2304. order by
  2305. sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
  2306. </when>
  2307. <when test="vo.userNumberSort != null and vo.userNumberSort != '' and vo.orderSort == null ">
  2308. order by
  2309. COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'}
  2310. </when>
  2311. <when test="vo.userNumberSort != null and vo.userNumberSort != '' and vo.orderSort != null and vo.orderSort != '' ">
  2312. order by
  2313. COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'}, sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
  2314. </when>
  2315. </choose>
  2316. ) a
  2317. left join esm_ins_company b on b.id =a.companyId
  2318. left join ptl_agreement c on c.id =a.agreeId
  2319. ) a
  2320. group by a.companyId,a.insuranceCompanyName,a.parterCompanyId,a.partnerCompaniesName,a.logo,a.dockingPerson,a.dockingPhone,a.agreementType
  2321. </select>
  2322. <select id="getCountBusinessData" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2323. select
  2324. sum(a.totalPremium) as "totalPremium",
  2325. sum(a.qutationInsureCount) as "qutationInsureCount",
  2326. ROUND(sum( a.totalPremium ) / sum( a.qutationInsureCount ),2) AS "averagePremium",
  2327. sum(a.userNumber) as "userNumber",
  2328. count(DISTINCT a.insuranceCompanyName) as "insuranceCompanyNumber",
  2329. ROUND(sum(a.totalPremium)/sum(a.userNumber),0) as "perCapitaAmount"
  2330. from (
  2331. SELECT
  2332. agree.insurance_company AS "insuranceCompanyName",
  2333. IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
  2334. COUNT(0 ) AS "qutationInsureCount",
  2335. COUNT(DISTINCT io.userId) AS "userNumber"
  2336. FROM
  2337. ins_area_company iac
  2338. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2339. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2340. LEFT JOIN sys_user su on io.userid =su.id
  2341. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no =iac.id
  2342. WHERE
  2343. agree.id IS NOT NULL
  2344. and iac.orderstatus = '3'
  2345. and ifa.auditstatus != '2'
  2346. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2347. <if test="vo.companyId != null and vo.companyId!='' ">
  2348. and agree.insurance_company_id = #{vo.companyId}
  2349. </if>
  2350. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2351. and agree.partner_companies_id = #{vo.parterCompanyId}
  2352. </if>
  2353. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2354. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
  2355. </if>
  2356. <if test="vo.signingTimeStart != null and vo.signingTimeStart!='' and vo.signingTimeEnd != null and vo.signingTimeEnd != ''">
  2357. AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.signingTimeEnd}, '%Y-%m-%d')
  2358. </if>
  2359. <if test="vo.enterTimeStart != null and vo.enterTimeStart!='' and vo.enterTimeEnd != null and vo.enterTimeEnd != ''">
  2360. AND DATE_FORMAT(iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.enterTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.enterTimeEnd}, '%Y-%m-%d')
  2361. </if>
  2362. <if test="vo.provinceId != null and vo.provinceId != '' and vo.cityId == null and vo.countyId == null and vo.houseId == null ">
  2363. and io.deptid like concat('%',#{vo.provinceId},'%')
  2364. </if>
  2365. <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and vo.houseId ==null">
  2366. and io.deptid like concat('%',#{vo.cityId},'%')
  2367. </if>
  2368. <if test="vo.countyId != null and vo.countyId != '' and vo.houseId ==null">
  2369. and io.deptid like concat('%',#{vo.countyId},'%')
  2370. </if>
  2371. <if test="vo.houseId != null and vo.houseId != ''">
  2372. and io.deptid like concat('%',#{vo.houseId},'%')
  2373. </if>
  2374. <if test="vo.parterProvinceId != null and vo.parterProvinceId != '' and vo.parterCityId == null and vo.parterCountyId == null ">
  2375. and agree.partner_companies_id like concat('%',#{vo.parterProvinceId},'%')
  2376. </if>
  2377. <if test="vo.parterCityId != null and vo.parterCityId != '' and vo.parterCountyId ==null ">
  2378. and agree.partner_companies_id like concat('%',#{vo.parterCityId},'%')
  2379. </if>
  2380. <if test="vo.parterCountyId != null and vo.parterCountyId != '' ">
  2381. and agree.partner_companies_id like concat('%',#{vo.parterCountyId},'%')
  2382. </if>
  2383. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2384. AND io.deptid in
  2385. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2386. #{item}
  2387. </foreach>
  2388. </if>
  2389. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2390. AND su.leader_id in
  2391. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2392. #{item}
  2393. </foreach>
  2394. </if>
  2395. group by
  2396. agree.insurance_company,
  2397. agree.partner_companies_id
  2398. ) a
  2399. </select>
  2400. <select id="getUserNumber" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2401. SELECT
  2402. COUNT(DISTINCT io.userId) AS "userNumber"
  2403. FROM
  2404. ins_area_company iac
  2405. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2406. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2407. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no =iac.id
  2408. LEFT JOIN sys_user su on io.userid =su.id
  2409. WHERE
  2410. agree.id IS NOT NULL
  2411. and iac.orderstatus = '3'
  2412. and ifa.auditstatus != '2'
  2413. and iac.del_flag = '1'
  2414. <if test="vo.companyId != null and vo.companyId!='' ">
  2415. and agree.insurance_company_id = #{vo.companyId}
  2416. </if>
  2417. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2418. and agree.partner_companies_id = #{vo.parterCompanyId}
  2419. </if>
  2420. <if test="vo.signingTimeStart != null and vo.signingTimeStart!='' and vo.signingTimeEnd != null and vo.signingTimeEnd != ''">
  2421. AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.signingTimeEnd}, '%Y-%m-%d')
  2422. </if>
  2423. <if test="vo.enterTimeStart != null and vo.enterTimeStart!='' and vo.enterTimeEnd != null and vo.enterTimeEnd != ''">
  2424. AND DATE_FORMAT(iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.enterTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.enterTimeEnd}, '%Y-%m-%d')
  2425. </if>
  2426. <if test="vo.provinceId != null and vo.provinceId != '' and vo.cityId == null and vo.countyId == null and vo.houseId == null ">
  2427. and io.deptid like concat('%',#{vo.provinceId},'%')
  2428. </if>
  2429. <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and vo.houseId ==null">
  2430. and io.deptid like concat('%',#{vo.cityId},'%')
  2431. </if>
  2432. <if test="vo.countyId != null and vo.countyId != '' and vo.houseId ==null">
  2433. and io.deptid like concat('%',#{vo.countyId},'%')
  2434. </if>
  2435. <if test="vo.houseId != null and vo.houseId != ''">
  2436. and io.deptid like concat('%',#{vo.houseId},'%')
  2437. </if>
  2438. <if test="vo.parterProvinceId != null and vo.parterProvinceId != '' and vo.parterCityId == null and vo.parterCountyId == null ">
  2439. and agree.partner_companies_id like concat('%',#{vo.parterProvinceId},'%')
  2440. </if>
  2441. <if test="vo.parterCityId != null and vo.parterCityId != '' and vo.parterCountyId ==null ">
  2442. and agree.partner_companies_id like concat('%',#{vo.parterCityId},'%')
  2443. </if>
  2444. <if test="vo.parterCountyId != null and vo.parterCountyId != '' ">
  2445. and agree.partner_companies_id like concat('%',#{vo.parterCountyId},'%')
  2446. </if>
  2447. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2448. AND io.deptid in
  2449. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2450. #{item}
  2451. </foreach>
  2452. </if>
  2453. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2454. AND su.leader_id in
  2455. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2456. #{item}
  2457. </foreach>
  2458. </if>
  2459. </select>
  2460. <select id="getDistribution" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2461. SELECT
  2462. agree.insurance_company_id AS "companyId",
  2463. agree.insurance_company AS "insuranceCompanyName",
  2464. agree.partner_companies_id AS "parterCompanyId",
  2465. ins.namesimple AS "partnerCompaniesName",
  2466. IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
  2467. COUNT(0) AS "qutationInsureCount",
  2468. ROUND((IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0), 2) AS "averagePremium",
  2469. COUNT(DISTINCT io.userId) AS "userNumber",
  2470. ROUND((IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId) ,2) as "perCapitaAmount"
  2471. FROM
  2472. ins_area_company iac
  2473. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2474. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2475. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  2476. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no =iac.id
  2477. WHERE
  2478. agree.id IS NOT NULL
  2479. and ifa.auditstatus != '2'
  2480. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2481. <if test="vo.companyId != null and vo.companyId!='' ">
  2482. and agree.insurance_company_id = #{vo.companyId}
  2483. </if>
  2484. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2485. and agree.partner_companies_id = #{vo.parterCompanyId}
  2486. </if>
  2487. <if test="vo.signingTimeStart != null and vo.signingTimeStart!='' and vo.signingTimeEnd != null and vo.signingTimeEnd != ''">
  2488. AND DATE_FORMAT(iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.signingTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.signingTimeEnd}, '%Y-%m-%d')
  2489. </if>
  2490. <if test="vo.enterTimeStart != null and vo.enterTimeStart!='' and vo.enterTimeEnd != null and vo.enterTimeEnd != ''">
  2491. AND DATE_FORMAT(iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{vo.enterTimeStart}, '%Y-%m-%d') AND DATE_FORMAT(#{vo.enterTimeEnd}, '%Y-%m-%d')
  2492. </if>
  2493. <if test="vo.provinceId != null and vo.provinceId != ''">
  2494. and io.deptid like "${vo.provinceId}%"
  2495. </if>
  2496. <if test="vo.cityId != null and vo.cityId != ''">
  2497. and io.deptid like "${vo.cityId}%"
  2498. </if>
  2499. <if test="vo.countyId != null and vo.countyId != ''">
  2500. and io.deptid like "${vo.countyId}%"
  2501. </if>
  2502. <if test="vo.houseId != null and vo.houseId != ''">
  2503. and io.deptid like "${vo.houseId}%"
  2504. </if>
  2505. <if test="vo.quotationStatus != null and vo.quotationStatus != ''">
  2506. and iac.orderstatus =#{vo.quotationStatus}
  2507. </if>
  2508. <if test="vo.dockingPerson != null and vo.dockingPerson != ''">
  2509. and agree.docking_person =#{vo.dockingPerson}
  2510. </if>
  2511. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2512. AND io.deptid in
  2513. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2514. #{item}
  2515. </foreach>
  2516. </if>
  2517. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2518. AND io.userid in
  2519. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2520. #{item}
  2521. </foreach>
  2522. </if>
  2523. <if test="vo.riskCode != null and vo.riskCode != '' and vo.riskCode != 'all'">
  2524. and iac.product = #{vo.riskCode}
  2525. </if>
  2526. GROUP BY
  2527. agree.insurance_company_id,
  2528. agree.insurance_company,
  2529. agree.partner_companies_id,
  2530. ins.namesimple
  2531. </select>
  2532. <select id="getOrderPremiumByUserIds" resultType="Double">
  2533. SELECT
  2534. IFNULL(
  2535. SUM( IFNULL( iac.jqpremium, 0 ) + IFNULL( iac.sypremium, 0 ) + IFNULL( iac.jypremium, 0 ) ),
  2536. 0
  2537. ) AS "totalPremium"
  2538. FROM
  2539. `ins_area_company` iac
  2540. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2541. <where>
  2542. iac.orderstatus = '3'
  2543. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2544. <if test="vo.ids != null and vo.ids.size()>0 ">
  2545. AND io.userid IN
  2546. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  2547. #{item}
  2548. </foreach>
  2549. </if>
  2550. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2551. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  2552. </if>
  2553. </where>
  2554. </select>
  2555. <select id="querOrdersDataPage" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2556. SELECT
  2557. count( 0 ) AS "orderNumber",
  2558. b.licenseno as "licenseno",
  2559. b.frameno as "frameno",
  2560. b.modelCode as "modelCode",
  2561. b.modelcname as "modelcname"
  2562. FROM
  2563. (
  2564. SELECT
  2565. io.frameno AS frameno,
  2566. REPLACE(JSON_EXTRACT(io.carinfo, '$.engineNo'), '"', '') as "modelCode",
  2567. REPLACE(JSON_EXTRACT(io.carinfo, '$.modelcname'), '"', '') as "modelcname",
  2568. ifnull(io.licenseno, '') AS licenseno
  2569. FROM
  2570. ins_orders io
  2571. LEFT JOIN sys_user su on io.userid=su.id
  2572. <where>
  2573. 1=1
  2574. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2575. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2576. </if>
  2577. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2578. AND io.licenseno =#{vo.licenseno}
  2579. </if>
  2580. <if test="vo.userId != null and vo.userId!='' ">
  2581. AND io.userid =#{vo.userId}
  2582. </if>
  2583. <if test="vo.userName != null and vo.userName!='' ">
  2584. AND su.name =#{vo.userName}
  2585. </if>
  2586. <if test="vo.mobile != null and vo.mobile!='' ">
  2587. AND su.mobile =#{vo.mobile}
  2588. </if>
  2589. <if test="vo.frameno != null and vo.frameno!='' ">
  2590. AND io.frameno =#{vo.frameno}
  2591. </if>
  2592. <if test="vo.deptId != null and vo.deptId!='' ">
  2593. and io.deptid like concat('%', #{vo.deptId}, '%')
  2594. </if>
  2595. <if test="vo.year != null and vo.year!='' ">
  2596. AND DATE_FORMAT( io.createtime, '%Y') =#{vo.year}
  2597. </if>
  2598. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2599. AND io.deptid in
  2600. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2601. #{item}
  2602. </foreach>
  2603. </if>
  2604. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2605. AND io.userid in
  2606. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2607. #{item}
  2608. </foreach>
  2609. </if>
  2610. </where>
  2611. ) b
  2612. GROUP BY
  2613. b.licenseno,
  2614. b.frameno,
  2615. b.modelCode,
  2616. b.modelcname
  2617. </select>
  2618. <select id="getOrdersGroupByLicenseno" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2619. SELECT
  2620. io.licenseno AS "licenseno",
  2621. io.frameno AS "frameno",
  2622. io.orderstatus as "orderstatus",
  2623. io.orderno as "orderno"
  2624. FROM
  2625. ins_orders io
  2626. LEFT JOIN sys_user su on io.userid=su.id
  2627. <where>
  2628. io.licenseno is not null
  2629. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2630. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2631. </if>
  2632. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2633. AND io.licenseno =#{vo.licenseno}
  2634. </if>
  2635. <if test="vo.userId != null and vo.userId!='' ">
  2636. AND io.userId =#{vo.userId}
  2637. </if>
  2638. <if test="vo.userName != null and vo.userName!='' ">
  2639. AND su.name =#{vo.userName}
  2640. </if>
  2641. <if test="vo.mobile != null and vo.mobile!='' ">
  2642. AND su.mobile =#{vo.mobile}
  2643. </if>
  2644. <if test="vo.frameno != null and vo.frameno!='' ">
  2645. AND su.frameno =#{vo.frameno}
  2646. </if>
  2647. <if test="vo.deptId != null and vo.deptId!='' ">
  2648. and io.deptid like concat('%', #{vo.deptId}, '%')
  2649. </if>
  2650. </where>
  2651. </select>
  2652. <select id="querOrdersamountTo" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2653. select sum(a.orderNumber) as "orderNumber",
  2654. count(a.licenseno) as "b.frameno"
  2655. from (
  2656. SELECT
  2657. count( 0 ) AS "orderNumber",
  2658. b.licenseno as "licenseno",
  2659. b.frameno as "frameno"
  2660. FROM
  2661. (
  2662. SELECT
  2663. io.orderstatus AS orderstatus,
  2664. io.frameno AS frameno,
  2665. ifnull(io.licenseno, '') AS licenseno
  2666. FROM
  2667. ins_orders io
  2668. LEFT JOIN sys_user su on io.userid=su.id
  2669. <where>
  2670. 1=1
  2671. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2672. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2673. </if>
  2674. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2675. AND io.licenseno =#{vo.licenseno}
  2676. </if>
  2677. <if test="vo.userId != null and vo.userId!='' ">
  2678. AND io.userid =#{vo.userId}
  2679. </if>
  2680. <if test="vo.userName != null and vo.userName!='' ">
  2681. AND su.name =#{vo.userName}
  2682. </if>
  2683. <if test="vo.mobile != null and vo.mobile!='' ">
  2684. AND su.mobile =#{vo.mobile}
  2685. </if>
  2686. <if test="vo.frameno != null and vo.frameno!='' ">
  2687. AND io.frameno =#{vo.frameno}
  2688. </if>
  2689. <if test="vo.deptId != null and vo.deptId!='' ">
  2690. and io.deptid like concat('%', #{vo.deptId}, '%')
  2691. </if>
  2692. </where>
  2693. ) b
  2694. GROUP BY
  2695. b.licenseno,
  2696. b.frameno
  2697. ) a
  2698. </select>
  2699. <select id="querResultOrderNumber" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2700. SELECT
  2701. count( io.orderno ) AS "orderNumber",
  2702. IFNULL(count(CASE WHEN io.orderstatus = '3' THEN 1 ELSE 0 END),0) / (IFNULL(count(CASE WHEN io.orderstatus = '2' THEN 1 ELSE 0 END),0) + IFNULL(count(CASE WHEN io.orderstatus = '3' THEN 1 ELSE 0 END),0)) AS "closeRate"
  2703. FROM
  2704. ins_orders io
  2705. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  2706. LEFT JOIN sys_user su ON io.userid = su.id
  2707. <where>
  2708. 1=1
  2709. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2710. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2711. </if>
  2712. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2713. AND io.licenseno =#{vo.licenseno}
  2714. </if>
  2715. <if test="vo.userId != null and vo.userId!='' ">
  2716. AND io.userid =#{vo.userId}
  2717. </if>
  2718. <if test="vo.userName != null and vo.userName!='' ">
  2719. AND su.name =#{vo.userName}
  2720. </if>
  2721. <if test="vo.mobile != null and vo.mobile!='' ">
  2722. AND su.mobile =#{vo.mobile}
  2723. </if>
  2724. <if test="vo.frameno != null and vo.frameno!='' ">
  2725. AND su.frameno =#{vo.frameno}
  2726. </if>
  2727. <if test="vo.deptId != null and vo.deptId!='' ">
  2728. and io.deptid like concat('%', #{vo.deptId}, '%')
  2729. </if>
  2730. </where>
  2731. </select>
  2732. <select id="numberQuotationsByUserIds" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2733. SELECT
  2734. count(iac.id) as "orderNumber",
  2735. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2736. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2737. sum( CASE WHEN iac.orderstatus = 3 THEN IFNULL(iac.jqpremium, 0) + IFNULL(iac.sypremium, 0) + IFNULL(iac.jypremium, 0) END ) AS totalPremium
  2738. FROM
  2739. ins_area_company iac
  2740. left join ins_orders io on io.orderno = iac.orderno
  2741. <where>
  2742. (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2743. <if test="ids != null and ids.size()>0 ">
  2744. AND io.userid IN
  2745. <foreach item="item" collection="ids" open="(" separator="," close=")">
  2746. #{item}
  2747. </foreach>
  2748. </if>
  2749. <if test="month != null and month!='' ">
  2750. AND DATE_FORMAT(iac.createtime, '%Y-%m') =#{month}
  2751. </if>
  2752. </where>
  2753. </select>
  2754. <select id="selectByOrdersDataVo" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2755. select
  2756. iac.inscompany as "namesimple"
  2757. from
  2758. ins_area_company iac
  2759. <where>
  2760. 1=1
  2761. <if test="vo.orderstatus != null and vo.orderstatus != '' ">
  2762. AND iac.orderstatus =#{vo.orderstatus}
  2763. </if>
  2764. <if test="vo.orderno !=null and vo.orderno !='' ">
  2765. AND iac.orderno =#{vo.orderno}
  2766. </if>
  2767. </where>
  2768. </select>
  2769. <select id="channelExcel" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsExcel">
  2770. select a.*,(select name from sys_user where id =a.userId) as "userName"
  2771. from (
  2772. SELECT
  2773. sd.NAME AS "deptName",
  2774. io.userid AS "userId",
  2775. sd.parent_id as "deptId",
  2776. sd.management_source as "managementSource",
  2777. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS qutationCount,
  2778. COUNT( CASE WHEN iot.order_status ='2' THEN 1 END ) AS underwritingCount,
  2779. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) AS qutationInsureCount,
  2780. COUNT( CASE WHEN iot.order_status = '4' THEN 1 END ) AS underwritingReturn,
  2781. COUNT( CASE WHEN iot.order_status ='2' THEN 1 END ) / COUNT( CASE WHEN iot.order_status ='0' THEN 1 END ) AS "passingRate",
  2782. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) / COUNT( CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) AS "closeRate",
  2783. (COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) + COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ))/ COUNT(CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END) AS "contributionRate",
  2784. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) / COUNT(CASE WHEN iot.order_status in ('0','1','2','3','4') THEN 1 END ) AS "quotationRate",
  2785. COUNT(CASE WHEN io.order_source = 0 and iot.order_status ='0' THEN 1 END) as "pcOrderSource",
  2786. COUNT(CASE WHEN io.order_source = 1 and iot.order_status ='0' THEN 1 END) as "appOrderSource",
  2787. COUNT( CASE WHEN iot.order_status = '1' THEN 1 END ) AS "auditOrder"
  2788. FROM
  2789. (
  2790. select iot.suborder,iot.order_status from `ins_orders_track` iot
  2791. GROUP BY iot.suborder ,iot.order_status
  2792. ) iot
  2793. left join ins_area_company iac ON iac.id = iot.suborder
  2794. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2795. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  2796. <where>
  2797. (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2798. <if test="taskStatisticsVo.managementSource != null and taskStatisticsVo.managementSource!=''">
  2799. AND sd.management_source =#{taskStatisticsVo.managementSource}
  2800. </if>
  2801. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  2802. and io.deptid like "${taskStatisticsVo.provinceId}%"
  2803. </if>
  2804. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  2805. and io.deptid like "${taskStatisticsVo.cityId}%"
  2806. </if>
  2807. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  2808. and io.deptid like "${taskStatisticsVo.countyId}%"
  2809. </if>
  2810. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  2811. and io.deptid like "${taskStatisticsVo.houseId}%"
  2812. </if>
  2813. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  2814. and io.userid =#{taskStatisticsVo.userId}
  2815. </if>
  2816. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  2817. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  2818. </if>
  2819. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  2820. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  2821. </if>
  2822. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  2823. AND sd.id in
  2824. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  2825. #{item}
  2826. </foreach>
  2827. </if>
  2828. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  2829. AND io.userid in
  2830. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  2831. #{item}
  2832. </foreach>
  2833. </if>
  2834. </where>
  2835. GROUP BY
  2836. io.userid,
  2837. sd.NAME,
  2838. sd.id,
  2839. sd.management_source
  2840. ) a
  2841. left join sys_user su on su.id =a.userId
  2842. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  2843. LEFT JOIN sys_user_info sui on sui .id =su.id
  2844. LEFT JOIN sys_user su2 on su2.id =su.leader_id
  2845. <where>
  2846. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  2847. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  2848. </if>
  2849. <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>
  2850. and su.leader_id =#{taskStatisticsVo.leaderId}
  2851. </if>
  2852. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  2853. and su.id =#{taskStatisticsVo.userId}
  2854. </if>
  2855. </where>
  2856. </select>
  2857. <select id="insuranceCompanyExcel" resultType="com.ydtech.modules.admin.model.dto.InsuranceCompanyExcel">
  2858. SELECT
  2859. a.*,
  2860. ( SELECT eic.namesimple FROM esm_ins_company eic WHERE eic.id = a.partner_companies_id ) AS "partnerCompaniesName"
  2861. FROM
  2862. (
  2863. SELECT
  2864. pa.insurance_company_id,
  2865. pa.partner_companies_id,
  2866. pa.insurance_company AS "insuranceCompanyName",
  2867. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS qutationCount,
  2868. COUNT( CASE WHEN iot.order_status = '1' THEN 1 END ) AS "auditOrder",
  2869. COUNT( CASE WHEN iot.order_status = '2' THEN 1 END ) AS underwritingCount,
  2870. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) AS qutationInsureCount,
  2871. COUNT( CASE WHEN iot.order_status = '4' THEN 1 END ) AS underwritingReturn,
  2872. COUNT( CASE WHEN iot.order_status ='2' THEN 1 END ) / COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS "passingRate",
  2873. COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) / COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) AS "closeRate",
  2874. (COUNT( CASE WHEN iot.order_status = '3' THEN 1 END ) + COUNT( CASE WHEN iot.order_status = '2' THEN 1 END )) / COUNT( iot.order_status ) AS "contributionRate",
  2875. COUNT( CASE WHEN iot.order_status = '0' THEN 1 END ) / COUNT( iot.order_status ) AS "quotationRate"
  2876. FROM
  2877. (
  2878. select iot.suborder,iot.order_status from `ins_orders_track` iot
  2879. GROUP BY iot.suborder ,iot.order_status
  2880. ) iot
  2881. LEFT JOIN ins_area_company iac ON iac.id = iot.suborder
  2882. LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
  2883. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  2884. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2885. <where>
  2886. pa.insurance_company_id IS NOT NULL
  2887. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  2888. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  2889. and io.deptid like concat('%', #{taskStatisticsVo.provinceId}, '%')
  2890. </if>
  2891. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  2892. and io.deptid like concat('%', #{taskStatisticsVo.cityId}, '%')
  2893. </if>
  2894. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  2895. and io.deptid like concat('%', #{taskStatisticsVo.countyId}, '%')
  2896. </if>
  2897. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  2898. and io.deptid like concat('%', #{taskStatisticsVo.houseId}, '%')
  2899. </if>
  2900. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  2901. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{taskStatisticsVo.createtimeStart},'%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  2902. </if>
  2903. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  2904. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  2905. </if>
  2906. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId != ''">
  2907. AND iac.company_id =#{taskStatisticsVo.companyId}
  2908. </if>
  2909. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  2910. AND io.deptid in
  2911. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  2912. #{item}
  2913. </foreach>
  2914. </if>
  2915. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  2916. AND io.userid in
  2917. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  2918. #{item}
  2919. </foreach>
  2920. </if>
  2921. </where>
  2922. GROUP BY
  2923. pa.insurance_company_id,
  2924. pa.partner_companies_id,
  2925. pa.insurance_company
  2926. ) a
  2927. </select>
  2928. <select id="getSumBigOrderCount" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2929. select count(0) as "orderNumber",
  2930. GROUP_CONCAT(inscompany ORDER BY inscompany SEPARATOR ',') as "namesimple"
  2931. from ins_area_company iac
  2932. left join ins_orders io on io.orderno = iac.orderno
  2933. <where>
  2934. iac.orderstatus ='3'
  2935. <if test="vo.licenseno !=null and vo.licenseno!=''">
  2936. AND io.licenseno =#{vo.licenseno}
  2937. </if>
  2938. <if test="vo.frameno !=null and vo.frameno!=''">
  2939. AND io.frameno =#{vo.frameno}
  2940. </if>
  2941. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2942. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2943. </if>
  2944. <if test="vo.year != null and vo.year!='' ">
  2945. AND DATE_FORMAT( io.createtime, '%Y') =#{vo.year}
  2946. </if>
  2947. </where>
  2948. limit 10
  2949. </select>
  2950. <select id="queryAgencyUserInsAreaPage" resultType="com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo">
  2951. select
  2952. io.userid as userId,
  2953. io.username as userName,
  2954. io.licenseno as licenseno,
  2955. iac.id as companyId,
  2956. iac.jqpremium as jqpremium,
  2957. iac.sypremium as sypremium,
  2958. iac.jypremium as jypremium,
  2959. iac.createtime as createtime,
  2960. iac.orderstatus as orderstatus
  2961. from ins_area_company iac
  2962. left join ins_orders io on io.orderno = iac.orderno
  2963. <where>
  2964. iac.orderstatus=3
  2965. <if test="dto.userId !=null and dto.userId !=''">
  2966. and io.userid = #{dto.userId}
  2967. </if>
  2968. <if test="dto.deptId !=null and dto.deptId !=''">
  2969. and io.deptid like concat( #{dto.deptId}, '%')
  2970. </if>
  2971. <if test="dto.startTime !=null and dto.startTime !=''">
  2972. and io.createtime >= #{dto.startTime}
  2973. </if>
  2974. </where>
  2975. ORDER BY iac.createtime
  2976. </select>
  2977. <select id="querOrdersDataListExcel" resultType="com.ydtech.modules.admin.model.dto.OrdersDataExcel">
  2978. SELECT
  2979. count( 0 ) AS "orderNumber",
  2980. b.licenseno as "licenseno",
  2981. b.frameno as "frameno",
  2982. b.modelCode as "modelCode",
  2983. b.modelcname as "modelcname"
  2984. FROM
  2985. (
  2986. SELECT
  2987. io.orderstatus AS orderstatus,
  2988. io.frameno AS frameno,
  2989. REPLACE(JSON_EXTRACT(io.carinfo, '$.engineNo'), '"', '') as "modelCode",
  2990. REPLACE(JSON_EXTRACT(io.carinfo, '$.modelcname'), '"', '') as "modelcname",
  2991. ifnull(io.licenseno, '') AS licenseno
  2992. FROM
  2993. ins_orders io
  2994. LEFT JOIN sys_user su on io.userid=su.id
  2995. <where>
  2996. 1=1
  2997. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2998. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2999. </if>
  3000. <if test="vo.licenseno != null and vo.licenseno!='' ">
  3001. AND io.licenseno =#{vo.licenseno}
  3002. </if>
  3003. <if test="vo.userId != null and vo.userId!='' ">
  3004. AND io.userid =#{vo.userId}
  3005. </if>
  3006. <if test="vo.userName != null and vo.userName!='' ">
  3007. AND su.name =#{vo.userName}
  3008. </if>
  3009. <if test="vo.mobile != null and vo.mobile!='' ">
  3010. AND su.mobile =#{vo.mobile}
  3011. </if>
  3012. <if test="vo.frameno != null and vo.frameno!='' ">
  3013. AND io.frameno =#{vo.frameno}
  3014. </if>
  3015. <if test="vo.deptId != null and vo.deptId!='' ">
  3016. and io.deptid like concat('%', #{vo.deptId}, '%')
  3017. </if>
  3018. <if test="vo.year != null and vo.year!='' ">
  3019. AND DATE_FORMAT( io.createtime, '%Y') =#{vo.year}
  3020. </if>
  3021. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  3022. AND io.deptid in
  3023. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  3024. #{item}
  3025. </foreach>
  3026. </if>
  3027. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  3028. AND io.userid in
  3029. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  3030. #{item}
  3031. </foreach>
  3032. </if>
  3033. </where>
  3034. ) b
  3035. GROUP BY
  3036. b.licenseno,
  3037. b.frameno,
  3038. b.modelCode,
  3039. b.modelcname
  3040. </select>
  3041. <select id="orderCheckPage" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  3042. select
  3043. iac.id,
  3044. iac.orderno,
  3045. iac.agreement_id,
  3046. iac.jqpremium,
  3047. iac.sypremium,
  3048. iac.jypremium,
  3049. iac.taxamount,
  3050. iac.sumpremium,
  3051. io.licenseno,
  3052. iac.createtime,
  3053. su.name as auditname
  3054. FROM
  3055. ins_area_company iac
  3056. LEFT JOIN
  3057. ins_orders io on iac.orderno = io.orderno
  3058. left join ptl_agreement agree on iac.agreement_id =agree.id
  3059. left join ins_fee_audit ifa on iac.id = ifa.ins_order_no
  3060. left join sys_user su on su.id= ifa.audituser
  3061. WHERE
  3062. iac.operator_id = #{userId}
  3063. AND
  3064. iac.orderstatus = 3
  3065. and agree.is_external =1
  3066. and auditstatus =1
  3067. <if test="vo.id != null and vo.id!='' ">
  3068. and iac.id = #{vo.id}
  3069. </if>
  3070. <if test="vo.licenseno != null and vo.licenseno!='' ">
  3071. and io.licenseno like CONCAT('%', #{vo.licenseno}, '%')
  3072. </if>
  3073. </select>
  3074. <select id="costCenterTotal" resultType="java.util.HashMap">
  3075. SELECT
  3076. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "allAuditstatusOrders",
  3077. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "allAuditOrder",
  3078. COUNT( CASE WHEN ifa.auditstatus = 1 and ifa.audituser != '自动审核' THEN 1 END ) AS "allPersionAudit",
  3079. COUNT( CASE WHEN ifa.audituser = '自动审核' THEN 1 END ) AS "allAutomaticAudit"
  3080. FROM
  3081. ins_fee_audit ifa
  3082. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  3083. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  3084. AND iac.orderstatus = 3
  3085. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  3086. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  3087. left join sys_user su on su.id =ifa.audituser
  3088. <where>
  3089. 1=1
  3090. and iac.id = ifa.ins_order_no
  3091. AND iac.orderstatus = 3
  3092. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  3093. and su.name =#{taskStatisticsVo.reviewer}
  3094. </if>
  3095. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  3096. and ifa.audittime =#{taskStatisticsVo.audittime}
  3097. </if>
  3098. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  3099. and iac.company_id =#{taskStatisticsVo.companyId}
  3100. </if>
  3101. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  3102. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  3103. </if>
  3104. <if test="taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != '' and taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != ''">
  3105. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.auditTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.auditTimeEnd}, '%Y-%m-%d')
  3106. </if>
  3107. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  3108. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  3109. </if>
  3110. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  3111. AND io.deptid in
  3112. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  3113. #{item}
  3114. </foreach>
  3115. </if>
  3116. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  3117. AND su.id in
  3118. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  3119. #{item}
  3120. </foreach>
  3121. </if>
  3122. <choose>
  3123. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  3124. and iac.product = #{taskStatisticsVo.riskCode}
  3125. </when>
  3126. </choose>
  3127. </where>
  3128. </select>
  3129. <select id="getSubOrderCountDTO" resultType="com.ydtech.modules.order.entity.dto.SubOrderCountDTO">
  3130. select orderno, orderstatus, count(*)as count
  3131. from (select orderno, company_id, orderstatus
  3132. from ins_area_company
  3133. where orderno in
  3134. <foreach collection="orderNo" open="(" separator="," close=")" item="item" index="index">
  3135. #{item,jdbcType=VARCHAR}
  3136. </foreach>
  3137. and del_flag = '1'
  3138. group by orderno, company_id, orderstatus) as iac
  3139. group by orderno, orderstatus
  3140. </select>
  3141. <select id="getAllRejectOrders" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  3142. select
  3143. iac.id,
  3144. iac.orderno,
  3145. iac.agreement_id,
  3146. iac.jqpremium,
  3147. iac.sypremium,
  3148. iac.jypremium,
  3149. iac.taxamount,
  3150. iac.sumpremium,
  3151. io.licenseno,
  3152. ifa.audittime,
  3153. ifa.audituser as auditname,
  3154. ifa.rejectinfo,
  3155. "1" as orderExternalStatus,
  3156. iac.operator_name as recorder
  3157. FROM
  3158. ins_fee_audit ifa
  3159. LEFT JOIN
  3160. ins_area_company iac on iac.id = ifa.ins_order_no
  3161. LEFT JOIN
  3162. ins_orders io on iac.orderno = io.orderno
  3163. left join
  3164. sys_user su on su.id= ifa.audituser
  3165. WHERE
  3166. ifa.auditstatus = 2 and IFNULL(iac.del_flag,'') != '0'
  3167. <if test="vo.id != null and vo.id!=''">
  3168. and iac.id = #{vo.id}
  3169. </if>
  3170. <if test="vo.licenseno != null and vo.licenseno!='' ">
  3171. and io.licenseno like CONCAT('%', #{vo.licenseno}, '%')
  3172. </if>
  3173. <if test="vo.auditname != null and vo.auditname!='' ">
  3174. and su.name like CONCAT('%', #{vo.auditname}, '%')
  3175. </if>
  3176. order by ifa.audittime desc
  3177. </select>
  3178. <select id="queryPageOrderCB" resultType="com.ydtech.modules.order.entity.InsOrders">
  3179. SELECT
  3180. iac.id as orderno,
  3181. io.quoteno,
  3182. iac.orderstatus,
  3183. iac.company_id,
  3184. iac.inscompany,
  3185. io.carinfo,
  3186. io.userid,
  3187. io.username,
  3188. io.deptid,
  3189. io.deptname,
  3190. io.agreeid,
  3191. iac.productid,
  3192. iac.product,
  3193. iac.createtime,
  3194. io.frameno,
  3195. io.licenseno,
  3196. JSON_UNQUOTE(json_extract(io.insureinfo, '$.name')) as insuredname,
  3197. io.is_external,
  3198. iac.jq_start_date as jqstartdate,
  3199. iac.jq_end_date as jqenddate,
  3200. iac.sy_start_date as systartdate,
  3201. iac.sy_end_date as syenddate,
  3202. io.vehicle_and_vessel_tax,
  3203. io.operatorid,
  3204. iac.operator_name,
  3205. sd.management_source,
  3206. iac.problem_order,
  3207. eic.namesimple as partnerCompaniesName,
  3208. iac.id as subOrderId,
  3209. iac.signing_time as signingTime,
  3210. iac.pay_date as payDate,
  3211. pa.agreement_code as agreementCode,
  3212. pa.agreement_name as agreementName,
  3213. pa.business_description as businessDescription,
  3214. pa.job_description as jobDescription,
  3215. pa.agreement_title as agreementTitle,
  3216. pa.docking_person as dockingPerson,
  3217. io.entry_status
  3218. FROM
  3219. ins_area_company iac
  3220. LEFT JOIN ins_orders io ON iac.orderno = io.orderno
  3221. LEFT JOIN sys_user su ON su.id = io.userid
  3222. LEFT JOIN sys_dept sd ON sd.id = su.dept_id
  3223. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  3224. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  3225. WHERE
  3226. iac.orderstatus = 3
  3227. <if test="params.quoteStartDateStr != null and params.quoteStartDateStr != '' and params.quoteEndDateStr != null and params.quoteEndDateStr != ''">
  3228. and DATE_FORMAT(iac.createtime, '%Y-%m-%d') between #{params.quoteStartDateStr} AND
  3229. #{params.quoteEndDateStr}
  3230. </if>
  3231. <if test="params.orderNo != null and params.orderNo != ''">
  3232. AND iac.id= #{params.orderNo}
  3233. </if>
  3234. <if test="params.licenseNo != null and params.licenseNo != ''">
  3235. AND io.licenseno = #{params.licenseNo}
  3236. </if>
  3237. <if test="params.frameNo != null and params.frameNo != ''">
  3238. AND io.frameno = #{params.frameNo}
  3239. </if>
  3240. <if test="params.insuredName != null and params.insuredName != ''">
  3241. AND json_extract(io.insureinfo, '$.name') = #{params.insuredName}
  3242. </if>
  3243. <if test="params.companyId != null and params.companyId != ''">
  3244. AND iac.company_id = #{params.companyId}
  3245. </if>
  3246. <if test="params.engineNo != null and params.engineNo != ''">
  3247. and JSON_EXTRACT( io.carinfo, '$.engineNo' ) = #{params.engineNo}
  3248. </if>
  3249. <if test="params.riskCode != null and params.riskCode != ''">
  3250. and iac.product = #{params.riskCode}
  3251. </if>
  3252. <if test="params.attachStartDateStr != null and params.attachStartDateStr != '' and params.attachStartDateStr != null and params.attachStartDateStr != '' ">
  3253. and ((
  3254. DATE_FORMAT(iac.jq_start_date, '%Y-%m-%d') BETWEEN #{params.attachStartDateStr}
  3255. AND #{params.attachEndDateStr}
  3256. )
  3257. OR ( DATE_FORMAT(iac.sy_start_date, '%Y-%m-%d') BETWEEN #{params.attachStartDateStr} AND
  3258. #{params.attachEndDateStr} )
  3259. )
  3260. </if>
  3261. <if test="params.provinceId != null and params.provinceId != ''">
  3262. and io.deptid like "${params.provinceId}%"
  3263. </if>
  3264. <if test="params.problemOrder != null and params.problemOrder != ''">
  3265. and iac.problem_order like "${params.problemOrder}%"
  3266. </if>
  3267. <if test="params.cityId != null and params.cityId != ''">
  3268. and io.deptid like "${params.cityId}%"
  3269. </if>
  3270. <if test="params.countyId != null and params.countyId != ''">
  3271. and io.deptid like "${params.countyId}%"
  3272. </if>
  3273. <if test="params.houseId != null and params.houseId != ''">
  3274. and io.deptid like "${params.houseId}%"
  3275. </if>
  3276. <if test="params.operatorId != null and params.operatorId != ''">
  3277. and io.userid = #{params.operatorId}
  3278. </if>
  3279. <if test="params.operatorName != null and params.operatorName != ''">
  3280. and io.username = #{params.operatorName}
  3281. </if>
  3282. <if test="params.auditId != null and params.auditId != ''">
  3283. and iac.new_operator_id = #{params.auditId}
  3284. </if>
  3285. <if test="params.agreeId != null and params.agreeId != ''">
  3286. and iac.agreement_id = #{params.agreeId}
  3287. </if>
  3288. <if test="params.managementSource != null and params.managementSource != ''">
  3289. and sd.management_source = #{params.managementSource}
  3290. </if>
  3291. <if test="params.signStartDateStr != null and params.signStartDateStr != '' and params.signEndDateStr != null and params.signEndDateStr != ''">
  3292. and DATE_FORMAT(iac.signing_time, '%Y-%m-%d') between #{params.signStartDateStr} AND
  3293. #{params.signEndDateStr}
  3294. </if>
  3295. <if test="params.payStartDateStr != null and params.payStartDateStr != '' and params.payEndDateStr != null and params.payEndDateStr != ''">
  3296. and iac.pay_date between #{params.payStartDateStr} AND #{params.payEndDateStr}
  3297. </if>
  3298. <if test="params.isExternal != null and params.isExternal != ''">
  3299. and io.is_external = #{params.isExternal}
  3300. </if>
  3301. <if test="params.jqPolicyNo != null and params.jqPolicyNo != ''">
  3302. and iac.jqpolicyno = #{params.jqPolicyNo}
  3303. </if>
  3304. <if test="params.syPolicyNo != null and params.syPolicyNo != ''">
  3305. and iac.sypolicyno = #{params.syPolicyNo}
  3306. </if>
  3307. <if test="params.noPolicyNo != null and params.noPolicyNo != ''">
  3308. and iac.cross_insurance like concat('%', #{params.noPolicyNo}, '%')
  3309. </if>
  3310. order by iac.createtime desc
  3311. </select>
  3312. <select id="getExpectNetProfit" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  3313. select
  3314. ROUND(sum(IFNULL(ifon.jq_costs_premiums,0) + IFNULL(ifon.sy_costs_premiums,0) + IFNULL (ifon.no_costs_premiums,0)),2) as "entranceAllFee",
  3315. ROUND(sum(IFNULL(jq_export_other_costs_premiums,0) + IFNULL(jq_export_supervise_costs_premiums,0)
  3316. +IFNULL(sy_export_other_costs_premiums,0) +IFNULL(sy_export_supervise_costs_premiums,0)
  3317. +IFNULL(no_export_other_costs_premiums,0)+IFNULL(no_export_supervise_costs_premiums,0) ),2) as
  3318. "exportAllFee",
  3319. ROUND(sum(IFNULL(b.distributionAmount,0)),2) as "distributionAmount"
  3320. from ins_area_company iac
  3321. left join ins_orders io on io.orderno = iac.orderno
  3322. LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
  3323. LEFT JOIN (
  3324. select IFNULL(a.firstDetailPremiums,0) + IFNULL(b.secondDetailPremiums,0) +IFNULL(c.thirdDetailPremiums,0) as "distributionAmount",
  3325. a.firstLevelUserId
  3326. from (
  3327. select
  3328. sum(ifon.first_detail_premiums) as "firstDetailPremiums",
  3329. ifon.first_level_user_id as "firstLevelUserId"
  3330. from ins_area_company iac
  3331. left join ins_orders io on io.orderno = iac.orderno
  3332. LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
  3333. <where>
  3334. iac.orderstatus = 3
  3335. <if test="vo.userId !=null and vo.userId !=''">
  3336. AND ifon.first_level_user_id =#{vo.userId}
  3337. </if>
  3338. <if test="vo.ids != null and vo.ids.size()>0 ">
  3339. AND ifon.first_level_user_id IN
  3340. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  3341. #{item}
  3342. </foreach>
  3343. </if>
  3344. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3345. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  3346. </if>
  3347. </where>
  3348. group by ifon.first_level_user_id
  3349. ) a
  3350. left join (
  3351. select
  3352. sum(IFNULL(second_detail_premiums,0)) as "secondDetailPremiums",
  3353. ifon.two_level_user_id as "twoLevelUserId"
  3354. from ins_area_company iac
  3355. left join ins_orders io on io.orderno = iac.orderno
  3356. LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
  3357. <where>
  3358. iac.orderstatus = 3
  3359. <if test="vo.userId !=null and vo.userId !=''">
  3360. AND ifon.two_level_user_id =#{vo.userId}
  3361. </if>
  3362. <if test="vo.ids != null and vo.ids.size()>0 ">
  3363. AND ifon.two_level_user_id IN
  3364. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  3365. #{item}
  3366. </foreach>
  3367. </if>
  3368. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3369. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  3370. </if>
  3371. </where>
  3372. group by ifon.two_level_user_id
  3373. ) b on b.twoLevelUserId =a.firstLevelUserId
  3374. left join (
  3375. select
  3376. sum(IFNULL(third_detail_premiums,0)) as "thirdDetailPremiums",
  3377. ifon.three_level_user_id as "threeLevelUserId"
  3378. from ins_area_company iac
  3379. left join ins_orders io on io.orderno = iac.orderno
  3380. LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
  3381. <where>
  3382. iac.orderstatus = 3
  3383. <if test="vo.userId !=null and vo.userId !=''">
  3384. AND ifon.three_level_user_id =#{vo.userId}
  3385. </if>
  3386. <if test="vo.ids != null and vo.ids.size()>0 ">
  3387. AND ifon.three_level_user_id IN
  3388. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  3389. #{item}
  3390. </foreach>
  3391. </if>
  3392. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3393. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  3394. </if>
  3395. </where>
  3396. group by ifon.three_level_user_id
  3397. ) c on c.threeLevelUserId = a.firstLevelUserId
  3398. ) b on b.firstLevelUserId =iac.leader_id
  3399. <where>
  3400. iac.orderstatus = 3
  3401. <if test="vo.userId !=null and vo.userId !=''">
  3402. AND io.userid =#{vo.userId}
  3403. </if>
  3404. <if test="vo.ids != null and vo.ids.size()>0 ">
  3405. AND io.userid IN
  3406. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  3407. #{item}
  3408. </foreach>
  3409. </if>
  3410. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3411. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  3412. </if>
  3413. </where>
  3414. </select>
  3415. <select id="getDistributionAllAmount" resultType="java.util.HashMap">
  3416. select IFNULL(a.firstDetailPremiums,0) + IFNULL(b.secondDetailPremiums,0) +IFNULL(c.thirdDetailPremiums,0) as "distributionAmount",
  3417. a.firstLevelUserId
  3418. from (
  3419. select
  3420. sum(ifon.first_detail_premiums) as "firstDetailPremiums",
  3421. ifon.first_level_user_id as "firstLevelUserId"
  3422. from ins_area_company iac
  3423. left join ins_orders io on io.orderno = iac.orderno
  3424. LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
  3425. <where>
  3426. <if test="vo.userId !=null and vo.userId !=''">
  3427. ifon.first_level_user_id =#{vo.userId}
  3428. </if>
  3429. <if test="vo.ids != null and vo.ids.size()>0 ">
  3430. AND io.userid IN
  3431. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  3432. #{item}
  3433. </foreach>
  3434. </if>
  3435. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3436. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  3437. </if>
  3438. </where>
  3439. group by ifon.first_level_user_id
  3440. ) a
  3441. left join (
  3442. select
  3443. sum(IFNULL(second_detail_premiums,0)) as "secondDetailPremiums",
  3444. ifon.two_level_user_id as "twoLevelUserId"
  3445. from ins_area_company iac
  3446. left join ins_orders io on io.orderno = iac.orderno
  3447. LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
  3448. <where>
  3449. <if test="vo.userId !=null and vo.userId !=''">
  3450. ifon.two_level_user_id =#{vo.userId}
  3451. </if>
  3452. <if test="vo.ids != null and vo.ids.size()>0 ">
  3453. AND io.userid IN
  3454. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  3455. #{item}
  3456. </foreach>
  3457. </if>
  3458. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3459. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  3460. </if>
  3461. </where>
  3462. group by ifon.two_level_user_id
  3463. ) b on b.twoLevelUserId =a.firstLevelUserId
  3464. left join (
  3465. select
  3466. sum(IFNULL(third_detail_premiums,0)) as "thirdDetailPremiums",
  3467. ifon.three_level_user_id as "threeLevelUserId"
  3468. from ins_area_company iac
  3469. left join ins_orders io on io.orderno = iac.orderno
  3470. LEFT JOIN ins_fee_order_new ifon ON iac.id = ifon.ins_order_no
  3471. <where>
  3472. <if test="vo.userId !=null and vo.userId !=''">
  3473. ifon.three_level_user_id =#{vo.userId}
  3474. </if>
  3475. <if test="vo.ids != null and vo.ids.size()>0 ">
  3476. AND io.userid IN
  3477. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  3478. #{item}
  3479. </foreach>
  3480. </if>
  3481. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3482. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  3483. </if>
  3484. </where>
  3485. group by ifon.three_level_user_id
  3486. ) c on c.threeLevelUserId = a.firstLevelUserId
  3487. </select>
  3488. <select id="findListByDate" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  3489. SELECT
  3490. iac.*
  3491. FROM ins_area_company as iac
  3492. <where>
  3493. iac.orderstatus = 3
  3494. and iac.signing_time IS NULL
  3495. <if test="benginDate != null and benginDate!='' and endDate != null and endDate!=''">
  3496. AND iac.createtime BETWEEN #{benginDate} AND #{endDate}
  3497. </if>
  3498. </where>
  3499. order by iac.createtime
  3500. </select>
  3501. <select id="getSumEntryStatus" resultType="java.util.HashMap">
  3502. select ifnull( COUNT( CASE WHEN io.entry_status = '2' THEN 1 END ),0) as "entryStatus",
  3503. ifnull(COUNT( CASE WHEN io.entry_status = '3' THEN 1 END ),0) as "outStatus"
  3504. from ins_area_company iac
  3505. left join ins_orders io on iac.orderno =io.orderno
  3506. <where>
  3507. iac.orderstatus ='3'
  3508. <if test="taskStatisticsVo.userId !=null and taskStatisticsVo.userId != ''">
  3509. and io.userid =#{taskStatisticsVo.userId}
  3510. </if>
  3511. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  3512. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  3513. </if>
  3514. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  3515. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  3516. </if>
  3517. </where>
  3518. </select>
  3519. <select id="getBusinessDataList" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  3520. select
  3521. a.dockingPerson as "dockingPerson",
  3522. a.dockingPhone as "dockingPhone",
  3523. a.agreementType as "agreementType",
  3524. a.logo as "logo",
  3525. a.companyId as "companyId",
  3526. a.insuranceCompanyName as "insuranceCompanyName",
  3527. a.parterCompanyId as "parterCompanyId",
  3528. a.partnerCompaniesName as "partnerCompaniesName",
  3529. sum(a.totalPremium) as "totalPremium",
  3530. sum(a.qutationInsureCount) as "qutationInsureCount",
  3531. sum(a.totalPremium) / sum(a.qutationInsureCount) AS "averagePremium",
  3532. sum(a.totalPremium) / sum(a.userNumber) as "perCapitaAmount",
  3533. sum(a.userNumber) as "userNumber"
  3534. from (
  3535. select
  3536. a.companyId as "companyId",
  3537. a.insuranceCompanyName as "insuranceCompanyName",
  3538. a.parterCompanyId as "parterCompanyId",
  3539. a.partnerCompaniesName as "partnerCompaniesName",
  3540. a.totalPremium as "totalPremium",
  3541. a.qutationInsureCount as "qutationInsureCount",
  3542. a.userNumber as "userNumber",
  3543. c.docking_person as "dockingPerson",
  3544. c.docking_phone as "dockingPhone",
  3545. c.agreement_type as "agreementType",
  3546. b.logo as "logo"
  3547. from (
  3548. SELECT
  3549. agree.insurance_company_id AS "companyId",
  3550. agree.insurance_company AS "insuranceCompanyName",
  3551. agree.partner_companies_id AS "parterCompanyId",
  3552. ins.namesimple AS "partnerCompaniesName",
  3553. agree.id as "agreeId",
  3554. IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
  3555. COUNT(0 ) AS "qutationInsureCount",
  3556. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0 ) AS "averagePremium",
  3557. COUNT(DISTINCT io.userId) AS "userNumber",
  3558. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId) as "perCapitaAmount"
  3559. FROM
  3560. ins_area_company iac
  3561. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  3562. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  3563. LEFT JOIN sys_user su on io.userid =su.id
  3564. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no =iac.id
  3565. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  3566. WHERE
  3567. agree.id IS NOT NULL
  3568. and iac.orderstatus = '3'
  3569. and ifa.auditstatus != '2'
  3570. <if test="vo.companyId != null and vo.companyId!='' ">
  3571. and agree.insurance_company_id = #{vo.companyId}
  3572. </if>
  3573. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  3574. and agree.partner_companies_id = #{vo.parterCompanyId}
  3575. </if>
  3576. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  3577. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{vo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{vo.createtimeEnd}, '%Y-%m-%d')
  3578. </if>
  3579. <if test="vo.provinceId != null and vo.provinceId != '' and vo.cityId == null and vo.countyId == null and vo.houseId == null ">
  3580. and io.deptid like concat('%',#{vo.provinceId},'%')
  3581. </if>
  3582. <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and vo.houseId ==null">
  3583. and io.deptid like concat('%',#{vo.cityId},'%')
  3584. </if>
  3585. <if test="vo.countyId != null and vo.countyId != '' and vo.houseId ==null">
  3586. and io.deptid like concat('%',#{vo.countyId},'%')
  3587. </if>
  3588. <if test="vo.houseId != null and vo.houseId != ''">
  3589. and io.deptid like concat('%',#{vo.houseId},'%')
  3590. </if>
  3591. <if test="vo.parterProvinceId != null and vo.parterProvinceId != '' and vo.parterCityId == null and vo.parterCountyId == null ">
  3592. and agree.partner_companies_id like concat('%',#{vo.parterProvinceId},'%')
  3593. </if>
  3594. <if test="vo.parterCityId != null and vo.parterCityId != '' and vo.parterCountyId ==null ">
  3595. and agree.partner_companies_id like concat('%',#{vo.parterCityId},'%')
  3596. </if>
  3597. <if test="vo.parterCountyId != null and vo.parterCountyId != '' ">
  3598. and agree.partner_companies_id like concat('%',#{vo.parterCountyId},'%')
  3599. </if>
  3600. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  3601. AND io.deptid in
  3602. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  3603. #{item}
  3604. </foreach>
  3605. </if>
  3606. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  3607. AND su.leader_id in
  3608. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  3609. #{item}
  3610. </foreach>
  3611. </if>
  3612. GROUP BY
  3613. agree.insurance_company_id,
  3614. agree.insurance_company,
  3615. agree.partner_companies_id,
  3616. agree.id
  3617. <choose>
  3618. <when test="vo.orderSort != null and vo.orderSort != '' and vo.userNumberSort == null ">
  3619. order by
  3620. sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
  3621. </when>
  3622. <when test="vo.userNumberSort != null and vo.userNumberSort != '' and vo.orderSort == null ">
  3623. order by
  3624. COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'}
  3625. </when>
  3626. <when test="vo.userNumberSort != null and vo.userNumberSort != '' and vo.orderSort != null and vo.orderSort != '' ">
  3627. order by
  3628. COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'}, sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
  3629. </when>
  3630. </choose>
  3631. ) a
  3632. left join esm_ins_company b on b.id =a.companyId
  3633. left join ptl_agreement c on c.id =a.agreeId
  3634. ) a
  3635. group by a.companyId,a.insuranceCompanyName,a.parterCompanyId,a.partnerCompaniesName,a.logo,a.dockingPerson,a.dockingPhone,a.agreementType
  3636. </select>
  3637. <select id="costReviewer" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  3638. SELECT
  3639. ifa.audituser as "audituser",
  3640. su.name as "audituserName",
  3641. su.mobile as "mobile",
  3642. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "auditstatusOrders",
  3643. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "auditOrder",
  3644. COUNT( CASE WHEN ifa.auditstatus = 1 and ifa.audituser != '自动审核' THEN 1 END ) AS "persionAudit",
  3645. COUNT( CASE WHEN ifa.audituser = '自动审核' THEN 1 END ) AS "automaticAudit"
  3646. FROM
  3647. ins_fee_audit ifa
  3648. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  3649. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  3650. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  3651. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  3652. left join sys_user su on su.id =ifa.audituser
  3653. <where>
  3654. 1=1
  3655. and iac.id = ifa.ins_order_no
  3656. and iac.orderstatus = 3
  3657. and (iac.del_flag = '1' or io.del_flag IS NULL or io.del_flag = 1)
  3658. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  3659. and su.name =#{taskStatisticsVo.reviewer}
  3660. </if>
  3661. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  3662. and ifa.audittime =#{taskStatisticsVo.audittime}
  3663. </if>
  3664. <if test="taskStatisticsVo.audituserName !=null and taskStatisticsVo.audituserName !=''">
  3665. AND su.name like concat('%',#{taskStatisticsVo.audituserName},'%')
  3666. </if>
  3667. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  3668. and iac.company_id =#{taskStatisticsVo.companyId}
  3669. </if>
  3670. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  3671. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  3672. </if>
  3673. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  3674. AND DATE_FORMAT( iac.signing_time, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  3675. </if>
  3676. <if test="taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != '' and taskStatisticsVo.auditTimeStart !=null and taskStatisticsVo.auditTimeEnd != ''">
  3677. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.auditTimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.auditTimeEnd}, '%Y-%m-%d')
  3678. </if>
  3679. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  3680. AND io.deptid in
  3681. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  3682. #{item}
  3683. </foreach>
  3684. </if>
  3685. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  3686. AND su.id in
  3687. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  3688. #{item}
  3689. </foreach>
  3690. </if>
  3691. <choose>
  3692. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  3693. and iac.product = #{taskStatisticsVo.riskCode}
  3694. </when>
  3695. </choose>
  3696. </where>
  3697. GROUP BY
  3698. ifa.audituser
  3699. </select>
  3700. </mapper>