InsAreaCompanyMapper.xml 168 KB

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