InsAreaCompanyMapper.xml 144 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146
  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. count(agree.partner_companies_id) as "orderSuccessNumber",
  840. agree.insurance_company AS companyName,
  841. agree.partner_companies_id AS parterCompanyId,
  842. iac.company_id as "companyId",
  843. count( iac.orderstatus ) AS qutationCount,
  844. count( iac.id ) AS orderSuccessNumberRate,
  845. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS underwritingCount,
  846. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  847. (COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )) / count( iac.orderstatus ) AS passRate,
  848. 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,
  849. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ count( iac.orderstatus ) AS contributionRate,
  850. COUNT(CASE WHEN agree.audit_type =1 and ifa.auditstatus =1 and iac.orderstatus =3 THEN 1 END) as "numberManual"
  851. FROM
  852. ins_area_company iac
  853. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  854. LEFT JOIN ins_orders io ON iac.orderno = io.orderno
  855. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  856. LEFT JOIN ins_fee_audit ifa on ifa.ins_order_no =iac.id
  857. WHERE
  858. agree.id IS NOT NULL
  859. <if test="vo.companyId != null and vo.companyId!='' ">
  860. AND agree.insurance_company_id = #{vo.companyId}
  861. </if>
  862. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  863. AND agree.partner_companies_id = #{vo.parterCompanyId}
  864. </if>
  865. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  866. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  867. </if>
  868. <if test="vo.managementSource != null and vo.managementSource!=''">
  869. AND sd.management_source =#{vo.managementSource}
  870. </if>
  871. <if test="vo.userId != null and vo.userId !=''">
  872. AND io.userid =#{vo.userId}
  873. </if>
  874. <if test="vo.deptId != null and vo.deptId !=''">
  875. AND io.deptId like concat('%',#{vo.deptId},'%')
  876. </if>
  877. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  878. AND sd.id in
  879. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  880. #{item}
  881. </foreach>
  882. </if>
  883. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  884. AND io.userid in
  885. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  886. #{item}
  887. </foreach>
  888. </if>
  889. GROUP BY
  890. agree.insurance_company,
  891. iac.company_id,
  892. agree.partner_companies_id
  893. ) a
  894. order by a.parterCompanyId
  895. </select>
  896. <select id="getInsAreaCompanyError"
  897. resultType="com.ydtech.modules.admin.model.report.company.CompanyQutationCountDataDto">
  898. SELECT
  899. count(iace.id) as "areaCompanyErrNumber"
  900. FROM
  901. ins_area_company_error iace
  902. LEFT JOIN ptl_agreement agree ON iace.agreement_id = agree.id
  903. <where>
  904. 1=1
  905. <if test="vo.companyId != null and vo.companyId!='' ">
  906. AND agree.insurance_company_id = #{vo.companyId}
  907. </if>
  908. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  909. AND agree.partner_companies_id = #{vo.parterCompanyId}
  910. </if>
  911. <if test="vo.userId != null and vo.userId!=''">
  912. AND iace.user_id =#{vo.userId}
  913. </if>
  914. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  915. AND iace.create_time BETWEEN #{vo.beginDate} AND #{vo.endDate}
  916. </if>
  917. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  918. AND iace.dept_id in
  919. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  920. #{item}
  921. </foreach>
  922. </if>
  923. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  924. AND iace.user_id in
  925. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  926. #{item}
  927. </foreach>
  928. </if>
  929. </where>
  930. </select>
  931. <select id="queryCompanyQutationCountDataPageTotal"
  932. resultType="java.lang.Long">
  933. SELECT
  934. count(0)
  935. FROM
  936. (
  937. SELECT
  938. agree.partner_companies_id
  939. FROM
  940. ins_area_company iac
  941. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  942. LEFT JOIN ins_orders io ON iac.orderno = io.orderno
  943. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  944. WHERE
  945. agree.id IS NOT NULL
  946. <if test="vo.companyId != null and vo.companyId!='' ">
  947. AND agree.insurance_company_id = #{vo.companyId}
  948. </if>
  949. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  950. AND agree.partner_companies_id = #{vo.parterCompanyId}
  951. </if>
  952. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  953. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  954. </if>
  955. <if test="vo.managementSource != null and vo.managementSource!=''">
  956. AND sd.management_source =#{vo.managementSource}
  957. </if>
  958. <if test="vo.userId != null and vo.userId !=''">
  959. AND io.userid =#{vo.userId}
  960. </if>
  961. <if test="vo.deptId != null and vo.deptId !=''">
  962. AND io.deptId like concat('%',#{vo.deptId},'%')
  963. </if>
  964. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  965. AND sd.id in
  966. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  967. #{item}
  968. </foreach>
  969. </if>
  970. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  971. AND io.userid in
  972. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  973. #{item}
  974. </foreach>
  975. </if>
  976. GROUP BY
  977. agree.partner_companies_id
  978. ) a
  979. </select>
  980. <select id="getStageOrder" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  981. select
  982. iac.id,
  983. iac.orderno,
  984. iac.agreement_id,
  985. iac.jqpremium,
  986. iac.sypremium,
  987. iac.jypremium,
  988. iac.taxamount,
  989. iac.sumpremium,
  990. io.licenseno,
  991. iac.createtime,
  992. "0" as orderExternalStatus
  993. FROM
  994. ins_area_company iac
  995. LEFT JOIN
  996. ins_orders io on iac.orderno = io.orderno
  997. left join ptl_agreement agree on iac.agreement_id =agree.id
  998. WHERE
  999. iac.operator_id = #{userId}
  1000. AND
  1001. iac.orderstatus = 0
  1002. and agree.is_external =1
  1003. <if test="vo.id != null and vo.id!='' ">
  1004. and iac.id = #{vo.id}
  1005. </if>
  1006. <if test="vo.licenseno != null and vo.licenseno!='' ">
  1007. and io.licenseno like CONCAT('%', #{vo.licenseno}, '%')
  1008. </if>
  1009. </select>
  1010. <select id="queryPageTaskStatistics" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1011. select a.*, su.name as "userName",
  1012. inf.url as "logo",
  1013. sui.sex as "sex",
  1014. su.leader_name as "leaderName",
  1015. su2.mobile as "leaderMobile"
  1016. from (
  1017. SELECT
  1018. sd.NAME AS "deptName",
  1019. io.userid AS "userId",
  1020. sd.parent_id as "deptId",
  1021. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
  1022. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  1023. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  1024. COUNT( CASE WHEN iac.orderstatus = 4 THEN 1 END ) AS underwritingReturn,
  1025. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS "passingRate",
  1026. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( iac.orderstatus ) AS "closeRate",
  1027. (COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ))/ COUNT( iac.orderstatus ) AS "contributionRate",
  1028. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) / COUNT( iac.orderstatus ) AS "quotationRate",
  1029. COUNT(CASE WHEN io.order_source = 0 and iac.orderstatus = 0 THEN 1 END) as "pcOrderSource",
  1030. COUNT(CASE WHEN io.order_source = 1 and iac.orderstatus = 0 THEN 1 END) as "appOrderSource",
  1031. COUNT( CASE WHEN iac.orderstatus = 1 THEN 1 END ) AS "auditOrder"
  1032. FROM
  1033. ins_area_company iac
  1034. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1035. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1036. <where>
  1037. sd.management_source = '1'
  1038. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1039. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1040. </if>
  1041. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1042. and io.deptid like "${taskStatisticsVo.cityId}%"
  1043. </if>
  1044. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1045. and io.deptid like "${taskStatisticsVo.countyId}%"
  1046. </if>
  1047. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1048. and io.deptid like "${taskStatisticsVo.houseId}%"
  1049. </if>
  1050. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1051. and io.userid =#{taskStatisticsVo.userId}
  1052. </if>
  1053. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1054. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1055. </if>
  1056. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1057. 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')
  1058. </if>
  1059. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1060. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  1061. </if>
  1062. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1063. AND sd.id in
  1064. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1065. #{item}
  1066. </foreach>
  1067. </if>
  1068. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1069. AND io.userid in
  1070. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1071. #{item}
  1072. </foreach>
  1073. </if>
  1074. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1075. <choose>
  1076. <when test="taskStatisticsVo.days =='1'">
  1077. and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
  1078. </when>
  1079. <when test="taskStatisticsVo.days =='7'">
  1080. and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
  1081. </when>
  1082. <when test="taskStatisticsVo.days =='30'">
  1083. and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
  1084. </when>
  1085. </choose>
  1086. </if>
  1087. </where>
  1088. GROUP BY
  1089. io.userid,
  1090. sd.NAME,
  1091. sd.id
  1092. ) a
  1093. left join sys_user su on su.id =a.userId
  1094. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1095. LEFT JOIN sys_user_info sui on sui .id =su.id
  1096. LEFT JOIN sys_user su2 on su2.id =su.leader_id
  1097. <where>
  1098. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1099. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1100. </if>
  1101. <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>
  1102. and su.leader_id =#{taskStatisticsVo.leaderId}
  1103. </if>
  1104. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  1105. and su.id =#{taskStatisticsVo.userId}
  1106. </if>
  1107. </where>
  1108. </select>
  1109. <select id="queryPageElectric" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1110. select a.*, su.name as "userName",
  1111. inf.url as "logo",
  1112. sui.sex as "sex",
  1113. su.leader_name as "leaderName",
  1114. su2.mobile as "leaderMobile"
  1115. from (
  1116. SELECT
  1117. sd.NAME AS "deptName",
  1118. io.userid AS "userId",
  1119. sd.parent_id as "deptId",
  1120. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
  1121. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  1122. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  1123. COUNT( CASE WHEN iac.orderstatus = 4 THEN 1 END ) AS underwritingReturn,
  1124. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS "passingRate",
  1125. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( iac.orderstatus ) AS "closeRate",
  1126. (COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ))/ COUNT( iac.orderstatus ) AS "contributionRate",
  1127. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) / COUNT( iac.orderstatus ) AS "quotationRate",
  1128. COUNT(CASE WHEN io.order_source = 0 and iac.orderstatus = 0 THEN 1 END) as "pcOrderSource",
  1129. COUNT(CASE WHEN io.order_source = 1 and iac.orderstatus = 0 THEN 1 END) as "appOrderSource",
  1130. COUNT( CASE WHEN iac.orderstatus = 1 THEN 1 END ) AS "auditOrder"
  1131. FROM
  1132. ins_area_company iac
  1133. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1134. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1135. <where>
  1136. sd.management_source = '3'
  1137. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1138. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1139. </if>
  1140. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1141. and io.deptid like "${taskStatisticsVo.cityId}%"
  1142. </if>
  1143. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1144. and io.deptid like "${taskStatisticsVo.countyId}%"
  1145. </if>
  1146. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1147. and io.deptid like "${taskStatisticsVo.houseId}%"
  1148. </if>
  1149. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1150. and io.userid =#{taskStatisticsVo.userId}
  1151. </if>
  1152. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1153. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1154. </if>
  1155. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1156. 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')
  1157. </if>
  1158. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1159. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  1160. </if>
  1161. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1162. AND sd.id in
  1163. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1164. #{item}
  1165. </foreach>
  1166. </if>
  1167. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1168. AND io.userid in
  1169. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1170. #{item}
  1171. </foreach>
  1172. </if>
  1173. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1174. <choose>
  1175. <when test="taskStatisticsVo.days =='1'">
  1176. and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
  1177. </when>
  1178. <when test="taskStatisticsVo.days =='7'">
  1179. and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
  1180. </when>
  1181. <when test="taskStatisticsVo.days =='30'">
  1182. and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
  1183. </when>
  1184. </choose>
  1185. </if>
  1186. </where>
  1187. GROUP BY
  1188. io.userid,
  1189. sd.NAME,
  1190. sd.id
  1191. ) a
  1192. left join sys_user su on su.id =a.userId
  1193. LEFT JOIN ins_upload_files inf on su.head_sculpture =inf.id
  1194. LEFT JOIN sys_user_info sui on sui .id =su.id
  1195. LEFT JOIN sys_user su2 on su2.id =su.leader_id
  1196. <where>
  1197. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1198. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1199. </if>
  1200. <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>
  1201. and su.leader_id =#{taskStatisticsVo.leaderId}
  1202. </if>
  1203. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  1204. and su.id =#{taskStatisticsVo.userId}
  1205. </if>
  1206. </where>
  1207. </select>
  1208. <select id="queryPageElectricTotal" resultType="java.lang.Long">
  1209. select count(0) from (
  1210. SELECT
  1211. io.userid
  1212. FROM
  1213. ins_area_company iac
  1214. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1215. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1216. <where>
  1217. sd.management_source = '3'
  1218. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1219. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1220. </if>
  1221. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1222. and io.deptid like "${taskStatisticsVo.cityId}%"
  1223. </if>
  1224. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1225. and io.deptid like "${taskStatisticsVo.countyId}%"
  1226. </if>
  1227. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1228. and io.deptid like "${taskStatisticsVo.houseId}%"
  1229. </if>
  1230. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1231. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1232. </if>
  1233. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1234. 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')
  1235. </if>
  1236. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1237. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  1238. </if>
  1239. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1240. and io.userid =#{taskStatisticsVo.userId}
  1241. </if>
  1242. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1243. AND sd.id in
  1244. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1245. #{item}
  1246. </foreach>
  1247. </if>
  1248. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1249. AND io.userid in
  1250. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1251. #{item}
  1252. </foreach>
  1253. </if>
  1254. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1255. <choose>
  1256. <when test="taskStatisticsVo.days =='1'">
  1257. and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
  1258. </when>
  1259. <when test="taskStatisticsVo.days =='7'">
  1260. and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
  1261. </when>
  1262. <when test="taskStatisticsVo.days =='30'">
  1263. and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
  1264. </when>
  1265. </choose>
  1266. </if>
  1267. </where>
  1268. GROUP BY
  1269. io.userid
  1270. ) a
  1271. </select>
  1272. <select id="queryPageTaskStatisticsTotal" resultType="java.lang.Long">
  1273. select count(0) from (
  1274. SELECT
  1275. io.userid
  1276. FROM
  1277. ins_area_company iac
  1278. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1279. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  1280. <where>
  1281. sd.management_source = '1'
  1282. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1283. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1284. </if>
  1285. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1286. and io.deptid like "${taskStatisticsVo.cityId}%"
  1287. </if>
  1288. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1289. and io.deptid like "${taskStatisticsVo.countyId}%"
  1290. </if>
  1291. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1292. and io.deptid like "${taskStatisticsVo.houseId}%"
  1293. </if>
  1294. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1295. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1296. </if>
  1297. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1298. 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')
  1299. </if>
  1300. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1301. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  1302. </if>
  1303. <if test="taskStatisticsVo.userId != null and taskStatisticsVo.userId != ''">
  1304. and io.userid =#{taskStatisticsVo.userId}
  1305. </if>
  1306. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1307. AND sd.id in
  1308. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1309. #{item}
  1310. </foreach>
  1311. </if>
  1312. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1313. AND io.userid in
  1314. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1315. #{item}
  1316. </foreach>
  1317. </if>
  1318. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1319. <choose>
  1320. <when test="taskStatisticsVo.days =='1'">
  1321. and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
  1322. </when>
  1323. <when test="taskStatisticsVo.days =='7'">
  1324. and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
  1325. </when>
  1326. <when test="taskStatisticsVo.days =='30'">
  1327. and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
  1328. </when>
  1329. </choose>
  1330. </if>
  1331. </where>
  1332. GROUP BY
  1333. io.userid
  1334. ) a
  1335. </select>
  1336. <select id="insuranceCompanyQueryPage" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1337. SELECT
  1338. a.*,
  1339. ( SELECT eic.namesimple FROM esm_ins_company eic WHERE eic.id = a.partner_companies_id ) AS "partnerCompaniesName"
  1340. FROM
  1341. (
  1342. SELECT
  1343. pa.insurance_company_id,
  1344. pa.partner_companies_id,
  1345. pa.insurance_company AS "insuranceCompanyName",
  1346. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
  1347. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  1348. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  1349. COUNT( CASE WHEN iac.orderstatus = 4 THEN 1 END ) AS underwritingReturn,
  1350. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS "passingRate",
  1351. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS "closeRate",
  1352. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( iac.orderstatus ) AS "contributionRate",
  1353. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) / COUNT( iac.orderstatus ) AS "quotationRate",
  1354. COUNT( CASE WHEN iac.orderstatus = 1 THEN 1 END ) AS "auditOrder"
  1355. FROM
  1356. ins_area_company iac
  1357. LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
  1358. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1359. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1360. <where>
  1361. pa.insurance_company_id IS NOT NULL
  1362. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1363. and io.deptid like concat('%', #{taskStatisticsVo.provinceId}, '%')
  1364. </if>
  1365. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1366. and io.deptid like concat('%', #{taskStatisticsVo.cityId}, '%')
  1367. </if>
  1368. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1369. and io.deptid like concat('%', #{taskStatisticsVo.countyId}, '%')
  1370. </if>
  1371. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1372. and io.deptid like concat('%', #{taskStatisticsVo.houseId}, '%')
  1373. </if>
  1374. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1375. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{taskStatisticsVo.createtimeStart},'%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1376. </if>
  1377. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1378. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1379. </if>
  1380. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId != ''">
  1381. AND iac.company_id =#{taskStatisticsVo.companyId}
  1382. </if>
  1383. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1384. AND io.deptid in
  1385. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1386. #{item}
  1387. </foreach>
  1388. </if>
  1389. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1390. AND io.userid in
  1391. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1392. #{item}
  1393. </foreach>
  1394. </if>
  1395. </where>
  1396. GROUP BY
  1397. pa.insurance_company_id,
  1398. pa.partner_companies_id,
  1399. pa.insurance_company
  1400. ) a
  1401. </select>
  1402. <select id="insuranceCompanyQueryTotal" resultType="java.lang.Long">
  1403. SELECT
  1404. COUNT(0)
  1405. FROM
  1406. (
  1407. SELECT
  1408. pa.insurance_company_id,
  1409. pa.partner_companies_id
  1410. FROM
  1411. ins_area_company iac
  1412. LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
  1413. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1414. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1415. <where>
  1416. pa.insurance_company_id IS NOT NULL
  1417. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1418. and io.deptid like concat('%', #{taskStatisticsVo.provinceId}, '%')
  1419. </if>
  1420. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1421. and io.deptid like concat('%', #{taskStatisticsVo.cityId}, '%')
  1422. </if>
  1423. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1424. and io.deptid like concat('%', #{taskStatisticsVo.countyId}, '%')
  1425. </if>
  1426. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1427. and io.deptid like concat('%', #{taskStatisticsVo.houseId}, '%')
  1428. </if>
  1429. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1430. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{taskStatisticsVo.createtimeStart},'%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1431. </if>
  1432. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1433. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  1434. </if>
  1435. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1436. AND io.deptid in
  1437. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1438. #{item}
  1439. </foreach>
  1440. </if>
  1441. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1442. AND io.userid in
  1443. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1444. #{item}
  1445. </foreach>
  1446. </if>
  1447. </where>
  1448. GROUP BY
  1449. pa.insurance_company_id,
  1450. pa.partner_companies_id
  1451. ) total
  1452. </select>
  1453. <select id="agentStatisticsQueryPage" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1454. SELECT
  1455. sd.name as "deptName",
  1456. su.name as "userName",
  1457. io.userid as "userId",
  1458. sd.id as "deptId",
  1459. suLeader.name as "leaderName",
  1460. suLeader.mobile as "leaderMobile",
  1461. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
  1462. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  1463. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  1464. COUNT( CASE WHEN iac.orderstatus = 4 THEN 1 END ) AS underwritingReturn,
  1465. (COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) +COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )) / COUNT(iac.orderstatus) as "passingRate",
  1466. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) as "closeRate",
  1467. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT(iac.orderstatus) as "contributionRate",
  1468. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) / COUNT(iac.orderstatus) as "quotationRate",
  1469. COUNT( CASE WHEN iac.orderstatus = 1 THEN 1 END ) as "auditOrder"
  1470. FROM
  1471. ins_area_company iac
  1472. left join ins_orders io on io.orderno = iac.orderno
  1473. left join sys_dept sd on sd.id=io.deptid
  1474. left join sys_user su on su.id=io.userid
  1475. left join sys_user suLeader on suLeader.id =su.leader_id
  1476. <where>
  1477. sd.management_source = '2'
  1478. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1479. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1480. </if>
  1481. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1482. and io.deptid like "${taskStatisticsVo.cityId}%"
  1483. </if>
  1484. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1485. and io.deptid like "${taskStatisticsVo.countyId}%"
  1486. </if>
  1487. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1488. and io.deptid like "${taskStatisticsVo.houseId}%"
  1489. </if>
  1490. <if test="taskStatisticsVo.userId !=null and taskStatisticsVo.userId!='' ">
  1491. and io.userid =#{taskStatisticsVo.userId}
  1492. </if>
  1493. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1494. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1495. </if>
  1496. <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>
  1497. and su.leader_id =#{taskStatisticsVo.leaderId}
  1498. </if>
  1499. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  1500. and su.id =#{taskStatisticsVo.userId}
  1501. </if>
  1502. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1503. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1504. </if>
  1505. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1506. 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')
  1507. </if>
  1508. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1509. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  1510. </if>
  1511. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1512. AND sd.id in
  1513. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1514. #{item}
  1515. </foreach>
  1516. </if>
  1517. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1518. AND io.userid in
  1519. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1520. #{item}
  1521. </foreach>
  1522. </if>
  1523. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1524. <choose>
  1525. <when test="taskStatisticsVo.days =='1'">
  1526. and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
  1527. </when>
  1528. <when test="taskStatisticsVo.days =='7'">
  1529. and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
  1530. </when>
  1531. <when test="taskStatisticsVo.days =='30'">
  1532. and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
  1533. </when>
  1534. </choose>
  1535. </if>
  1536. </where>
  1537. GROUP BY io.userid , su.name, sd.id , sd.name,suLeader.name,suLeader.mobile
  1538. </select>
  1539. <select id="agentStatisticsQueryPageTotal" resultType="java.lang.Long">
  1540. select count(0) from (
  1541. SELECT
  1542. io.userid as "userId"
  1543. FROM
  1544. ins_area_company iac
  1545. left join ins_orders io on io.orderno = iac.orderno
  1546. left join sys_dept sd on sd.id=io.deptid
  1547. left join sys_user su on su.id=io.userid
  1548. <where>
  1549. sd.management_source = '2'
  1550. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  1551. and io.deptid like "${taskStatisticsVo.provinceId}%"
  1552. </if>
  1553. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  1554. and io.deptid like "${taskStatisticsVo.cityId}%"
  1555. </if>
  1556. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  1557. and io.deptid like "${taskStatisticsVo.countyId}%"
  1558. </if>
  1559. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  1560. and io.deptid like "${taskStatisticsVo.houseId}%"
  1561. </if>
  1562. <if test='taskStatisticsVo.userName !=null and taskStatisticsVo.userName!="" '>
  1563. and su.name like concat('%',#{taskStatisticsVo.userName},'%')
  1564. </if>
  1565. <if test='taskStatisticsVo.leaderId !=null and taskStatisticsVo.leaderId!="" '>
  1566. and su.leader_id =#{taskStatisticsVo.leaderId}
  1567. </if>
  1568. <if test='taskStatisticsVo.userId !=null and taskStatisticsVo.userId!="" '>
  1569. and su.id =#{taskStatisticsVo.userId}
  1570. </if>
  1571. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1572. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  1573. </if>
  1574. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1575. 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')
  1576. </if>
  1577. <if test="taskStatisticsVo.userId !=null and taskStatisticsVo.userId!='' ">
  1578. and io.userid =#{taskStatisticsVo.userId}
  1579. </if>
  1580. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1581. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  1582. </if>
  1583. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  1584. <choose>
  1585. <when test="taskStatisticsVo.days =='1'">
  1586. and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
  1587. </when>
  1588. <when test="taskStatisticsVo.days =='7'">
  1589. and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
  1590. </when>
  1591. <when test="taskStatisticsVo.days =='30'">
  1592. and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
  1593. </when>
  1594. </choose>
  1595. </if>
  1596. </where>
  1597. GROUP BY io.userid
  1598. ) a
  1599. </select>
  1600. <select id="costCenter" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1601. SELECT
  1602. iac.company_id,
  1603. iac.inscompany as "insuranceCompanyName",
  1604. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "auditstatusOrders",
  1605. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "auditOrder",
  1606. COUNT( CASE WHEN ifa.auditstatus = 1 and ifa.audituser != '自动审核' THEN 1 END ) AS "persionAudit",
  1607. COUNT( CASE WHEN ifa.audituser = '自动审核' THEN 1 END ) AS "automaticAudit"
  1608. FROM
  1609. ins_fee_audit ifa
  1610. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1611. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1612. AND iac.orderstatus = 3
  1613. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1614. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1615. left join sys_user su on su.id =ifa.audituser
  1616. <where>
  1617. 1=1
  1618. and iac.id = ifa.ins_order_no
  1619. AND iac.orderstatus = 3
  1620. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1621. and su.name =#{taskStatisticsVo.reviewer}
  1622. </if>
  1623. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1624. and ifa.audittime =#{taskStatisticsVo.audittime}
  1625. </if>
  1626. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1627. and iac.company_id =#{taskStatisticsVo.companyId}
  1628. </if>
  1629. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1630. 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')
  1631. </if>
  1632. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1633. 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')
  1634. </if>
  1635. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1636. AND io.deptid in
  1637. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1638. #{item}
  1639. </foreach>
  1640. </if>
  1641. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1642. AND su.id in
  1643. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1644. #{item}
  1645. </foreach>
  1646. </if>
  1647. <choose>
  1648. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1649. and iac.product = #{taskStatisticsVo.riskCode}
  1650. </when>
  1651. </choose>
  1652. </where>
  1653. GROUP BY
  1654. iac.company_id,
  1655. iac.inscompany
  1656. </select>
  1657. <select id="costCenterDetails" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1658. SELECT
  1659. ifa.audituser as "audituser",
  1660. su.name as "audituserName",
  1661. su.mobile as "audituserMobile",
  1662. iac.inscompany as "insuranceCompanyName",
  1663. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "auditstatusOrders",
  1664. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "auditOrder"
  1665. FROM
  1666. ins_fee_audit ifa
  1667. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1668. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1669. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1670. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1671. left join sys_user su on su.id =ifa.audituser
  1672. <where>
  1673. 1=1
  1674. and iac.id = ifa.ins_order_no
  1675. AND iac.orderstatus = 3
  1676. AND ifa.audituser != '自动审核'
  1677. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1678. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1679. and su.name =#{taskStatisticsVo.reviewer}
  1680. </if>
  1681. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1682. and iac.company_id =#{taskStatisticsVo.companyId}
  1683. </if>
  1684. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1685. and ifa.audittime =#{taskStatisticsVo.audittime}
  1686. </if>
  1687. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1688. and iac.company_id =#{taskStatisticsVo.companyId}
  1689. </if>
  1690. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1691. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1692. </if>
  1693. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1694. 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')
  1695. </if>
  1696. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1697. AND io.deptid in
  1698. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1699. #{item}
  1700. </foreach>
  1701. </if>
  1702. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1703. AND su.id in
  1704. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1705. #{item}
  1706. </foreach>
  1707. </if>
  1708. <choose>
  1709. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1710. and iac.product = #{taskStatisticsVo.riskCode}
  1711. </when>
  1712. </choose>
  1713. </where>
  1714. GROUP BY
  1715. ifa.audituser,su.name,su.mobile,iac.inscompany
  1716. </select>
  1717. <select id="costCenterDetailsExcel" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDtoExcel">
  1718. SELECT
  1719. ifa.audituser as "audituser",
  1720. su.name as "audituserName",
  1721. su.mobile as "audituserMobile",
  1722. iac.inscompany as "insuranceCompanyName",
  1723. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "auditstatusOrders",
  1724. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "auditOrder"
  1725. FROM
  1726. ins_fee_audit ifa
  1727. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1728. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1729. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1730. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1731. left join sys_user su on su.id =ifa.audituser
  1732. <where>
  1733. 1=1
  1734. and iac.id = ifa.ins_order_no
  1735. AND iac.orderstatus = 3
  1736. AND ifa.audituser != '自动审核'
  1737. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1738. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1739. and su.name =#{taskStatisticsVo.reviewer}
  1740. </if>
  1741. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1742. and iac.company_id =#{taskStatisticsVo.companyId}
  1743. </if>
  1744. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1745. and ifa.audittime =#{taskStatisticsVo.audittime}
  1746. </if>
  1747. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1748. and iac.company_id =#{taskStatisticsVo.companyId}
  1749. </if>
  1750. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1751. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1752. </if>
  1753. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1754. 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')
  1755. </if>
  1756. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1757. AND io.deptid in
  1758. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1759. #{item}
  1760. </foreach>
  1761. </if>
  1762. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1763. AND su.id in
  1764. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1765. #{item}
  1766. </foreach>
  1767. </if>
  1768. <choose>
  1769. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1770. and iac.product = #{taskStatisticsVo.riskCode}
  1771. </when>
  1772. </choose>
  1773. </where>
  1774. GROUP BY
  1775. ifa.audituser,su.name,su.mobile,iac.inscompany
  1776. </select>
  1777. <select id="costCenterDetailsLicense" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  1778. SELECT
  1779. io.licenseno as "licenseno",
  1780. iac.createtime as "createTime",
  1781. iac.audittime as "auditTime",
  1782. IFNULL(TIMESTAMPDIFF(SECOND, iac.createtime, iac.audittime),0) as "timeDifference"
  1783. FROM
  1784. ins_fee_audit ifa
  1785. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1786. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1787. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1788. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1789. left join sys_user su on su.id =ifa.audituser
  1790. <where>
  1791. 1=1
  1792. and iac.id = ifa.ins_order_no
  1793. AND iac.orderstatus = 3
  1794. AND io.orderstatus = 3
  1795. AND ifa.audituser != '自动审核'
  1796. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1797. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1798. and su.name =#{taskStatisticsVo.reviewer}
  1799. </if>
  1800. <if test="taskStatisticsVo.audituser !=null and taskStatisticsVo.audituser !=''">
  1801. and ifa.audituser =#{taskStatisticsVo.audituser}
  1802. </if>
  1803. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1804. and iac.company_id =#{taskStatisticsVo.companyId}
  1805. </if>
  1806. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1807. and ifa.audittime =#{taskStatisticsVo.audittime}
  1808. </if>
  1809. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1810. and iac.company_id =#{taskStatisticsVo.companyId}
  1811. </if>
  1812. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1813. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1814. </if>
  1815. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1816. 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')
  1817. </if>
  1818. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1819. AND io.deptid in
  1820. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1821. #{item}
  1822. </foreach>
  1823. </if>
  1824. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1825. AND su.id in
  1826. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1827. #{item}
  1828. </foreach>
  1829. </if>
  1830. <choose>
  1831. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1832. and iac.product = #{taskStatisticsVo.riskCode}
  1833. </when>
  1834. </choose>
  1835. </where>
  1836. </select>
  1837. <select id="costCenterSecond" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDtoNew">
  1838. SELECT
  1839. IFNULL(count(io.licenseno),0) as "orderNumber",
  1840. IFNULL(sum(TIMESTAMPDIFF(SECOND, iac.createtime, iac.audittime)),0) as "sumSecond",
  1841. IFNULL(sum(TIMESTAMPDIFF(SECOND, iac.createtime, iac.audittime)),0) / count(io.licenseno) as "averageSecond"
  1842. FROM
  1843. ins_fee_audit ifa
  1844. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  1845. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  1846. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  1847. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  1848. left join sys_user su on su.id =ifa.audituser
  1849. <where>
  1850. 1=1
  1851. and iac.id = ifa.ins_order_no
  1852. AND iac.orderstatus = 3
  1853. AND io.orderstatus = 3
  1854. AND ifa.audituser != '自动审核'
  1855. AND (ifa.auditstatus ='1' or ifa.auditstatus ='0')
  1856. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  1857. and su.name =#{taskStatisticsVo.reviewer}
  1858. </if>
  1859. <if test="taskStatisticsVo.audituser !=null and taskStatisticsVo.audituser !=''">
  1860. and ifa.audituser =#{taskStatisticsVo.audituser}
  1861. </if>
  1862. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1863. and iac.company_id =#{taskStatisticsVo.companyId}
  1864. </if>
  1865. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  1866. and ifa.audittime =#{taskStatisticsVo.audittime}
  1867. </if>
  1868. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  1869. and iac.company_id =#{taskStatisticsVo.companyId}
  1870. </if>
  1871. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  1872. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  1873. </if>
  1874. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  1875. 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')
  1876. </if>
  1877. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  1878. AND io.deptid in
  1879. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  1880. #{item}
  1881. </foreach>
  1882. </if>
  1883. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  1884. AND su.id in
  1885. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  1886. #{item}
  1887. </foreach>
  1888. </if>
  1889. <choose>
  1890. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  1891. and iac.product = #{taskStatisticsVo.riskCode}
  1892. </when>
  1893. </choose>
  1894. </where>
  1895. </select>
  1896. <select id="getOrderManpower" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1897. SELECT
  1898. count( a.numberUserId ) as "orderManpower",
  1899. sum( a.orderAmount ) as "totalPremium",
  1900. sum( a.orderAmount )/ count( a.numberUserId ) as "averagePremium"
  1901. FROM
  1902. (
  1903. SELECT
  1904. count( io.userid ) AS "numberUserId",
  1905. SUM(IFNULL(iac.jqpremium, 0)) +
  1906. SUM(IFNULL(iac.sypremium, 0)) +
  1907. SUM(IFNULL(iac.jypremium, 0)) AS "orderAmount"
  1908. FROM
  1909. `ins_area_company` iac
  1910. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1911. <where>
  1912. iac.orderstatus = '3'
  1913. <if test="ids != null and ids.size()>0 ">
  1914. AND io.userid IN
  1915. <foreach item="item" collection="ids" open="(" separator="," close=")">
  1916. #{item}
  1917. </foreach>
  1918. </if>
  1919. </where>
  1920. GROUP BY
  1921. io.userid
  1922. ) a
  1923. </select>
  1924. <select id="getOrderManpowerNew" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1925. SELECT
  1926. count( a.numberUserId ) as "orderManpower",
  1927. IFNULL(sum( a.orderAmount ),0) as "totalPremium",
  1928. ROUND(sum( a.orderAmount )/ sum(a.ordernoNumber),2) AS "averagePremium"
  1929. FROM
  1930. (
  1931. SELECT
  1932. count( io.userid ) AS "numberUserId",
  1933. count( iac.orderno ) AS "ordernoNumber",
  1934. SUM(IFNULL(iac.jqpremium, 0)
  1935. +IFNULL(iac.sypremium, 0)
  1936. +IFNULL(iac.jypremium, 0)
  1937. ) AS "orderAmount"
  1938. FROM
  1939. `ins_area_company` iac
  1940. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1941. <where>
  1942. iac.orderstatus = '3'
  1943. <if test="vo.ids != null and vo.ids.size()>0 ">
  1944. AND io.userid IN
  1945. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  1946. #{item}
  1947. </foreach>
  1948. </if>
  1949. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  1950. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  1951. </if>
  1952. </where>
  1953. GROUP BY
  1954. io.userid
  1955. ) a
  1956. <where>
  1957. <if test="vo.outThere != null and vo.outThere!=''">
  1958. <choose>
  1959. <when test=" vo.outThere == 0">
  1960. AND IFNULL(a.orderAmount,0) = 0
  1961. </when>
  1962. <when test="vo.outThere == 1">
  1963. AND IFNULL(a.orderAmount,0) > 0
  1964. </when>
  1965. </choose>
  1966. </if>
  1967. </where>
  1968. order by sum( a.orderAmount ) desc
  1969. </select>
  1970. <select id="getChannelOrderManpowerNew" resultType="com.ydtech.modules.admin.model.dto.QxFrontlineAgentDto">
  1971. SELECT
  1972. a.userId as "userId",
  1973. a.userName as "name",
  1974. a.orderNumber as "orderNumber",
  1975. a.underwritingCount as "underwritingCount",
  1976. a.qutationInsureCount as "qutationInsureCount",
  1977. IFNULL(a.jqpremium,0) + IFNULL(a.sypremium,0) + IFNULL(a.jypremium,0) as "totalPremium",
  1978. a.isFactorVerify as "isFactorVerify",
  1979. a.isNotFactorVerify as "isNotFactorVerify"
  1980. FROM
  1981. (
  1982. SELECT
  1983. io.userid as "userId",
  1984. io.username as "userName",
  1985. count( iac.orderno ) AS "orderNumber",
  1986. sum(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium END ) AS jqpremium,
  1987. sum(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium END ) AS sypremium,
  1988. sum(CASE WHEN iac.orderstatus = 3 THEN iac.jypremium END ) AS jypremium,
  1989. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  1990. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  1991. COUNT( CASE WHEN su.factor_verify = 1 THEN 1 END ) AS isFactorVerify,
  1992. COUNT( CASE WHEN su.factor_verify = 0 THEN 1 END ) AS isNotFactorVerify
  1993. FROM
  1994. `ins_area_company` iac
  1995. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  1996. left join sys_user su on su.id=io.userid
  1997. <where>
  1998. <if test="vo.ids != null and vo.ids.size()>0 ">
  1999. AND io.userid IN
  2000. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  2001. #{item}
  2002. </foreach>
  2003. </if>
  2004. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2005. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  2006. </if>
  2007. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2008. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2009. </if>
  2010. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2011. AND io.deptid in
  2012. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2013. #{item}
  2014. </foreach>
  2015. </if>
  2016. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2017. AND io.userid in
  2018. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2019. #{item}
  2020. </foreach>
  2021. </if>
  2022. </where>
  2023. GROUP BY
  2024. io.userid,
  2025. io.username
  2026. ) a
  2027. left join sys_user su on su.id=a.userId
  2028. </select>
  2029. <select id="NumberQuotations" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2030. SELECT
  2031. count(iac.id) as "orderNumber",
  2032. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2033. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2034. sum( CASE WHEN iac.orderstatus = 3 THEN IFNULL(iac.jqpremium, 0) + IFNULL(iac.sypremium, 0) + IFNULL(iac.jypremium, 0) END ) AS totalPremium
  2035. FROM
  2036. ins_area_company iac
  2037. left join ins_orders io on io.orderno = iac.orderno
  2038. left join sys_dept sd on sd.id=io.deptid
  2039. left join sys_user su on su.id=io.userid
  2040. left join ins_fee_audit ifa on ifa .ins_order_no =iac.id
  2041. <where>
  2042. sd.management_source = '2'
  2043. <if test="userId !=null and userId !=''">
  2044. and io.userId =#{userId}
  2045. </if>
  2046. </where>
  2047. </select>
  2048. <select id="totalQuotation" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2049. SELECT
  2050. agree.insurance_company_id AS companyId,
  2051. agree.insurance_company AS companyName,
  2052. agree.partner_companies_id AS parterCompanyId,
  2053. ins.namesimple AS parterCompanyName,
  2054. count(iac.orderstatus) AS orderNumber,
  2055. '-' as bigQutationCount,
  2056. '-' as bigUnderwritingCount,
  2057. '-' as bigCloseRate,
  2058. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2059. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2060. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END )/ count(iac.orderstatus) AS passRate,
  2061. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END )/ count(iac.orderstatus) AS underwritingCountRate,
  2062. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ count(iac.orderstatus) AS closeRate,
  2063. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END )/ COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS
  2064. contributionRate
  2065. FROM
  2066. ins_area_company iac
  2067. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2068. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2069. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  2070. WHERE
  2071. agree.id IS NOT NULL
  2072. <if test="vo.companyId != null and vo.companyId!='' ">
  2073. agree.insurance_company_id = #{vo.companyId}
  2074. </if>
  2075. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2076. agree.partner_companies_id = #{vo.parterCompanyId}
  2077. </if>
  2078. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2079. AND iac.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2080. </if>
  2081. <if test="vo.provinceId != null and vo.provinceId != ''">
  2082. and io.deptid like "${vo.provinceId}%"
  2083. </if>
  2084. <if test="vo.cityId != null and vo.cityId != ''">
  2085. and io.deptid like "${vo.cityId}%"
  2086. </if>
  2087. <if test="vo.countyId != null and vo.countyId != ''">
  2088. and io.deptid like "${vo.countyId}%"
  2089. </if>
  2090. <if test="taskStatisticsVo.houseId != null and vo.houseId != ''">
  2091. and io.deptid like "${vo.houseId}%"
  2092. </if>
  2093. GROUP BY
  2094. agree.insurance_company_id,
  2095. agree.insurance_company,
  2096. agree.partner_companies_id,
  2097. ins.NAME
  2098. </select>
  2099. <select id="getBusinessData" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2100. select
  2101. a.companyId as "companyId",
  2102. a.insuranceCompanyName as "insuranceCompanyName",
  2103. a.parterCompanyId as "parterCompanyId",
  2104. a.partnerCompaniesName as "partnerCompaniesName",
  2105. a.totalPremium as "totalPremium",
  2106. a.qutationInsureCount as "qutationInsureCount",
  2107. ROUND(a.averagePremium, 2) as "averagePremium",
  2108. a.userNumber as "userNumber",
  2109. ROUND(a.perCapitaAmount, 2) as "perCapitaAmount",
  2110. c.docking_person as "dockingPerson",
  2111. c.docking_phone as "dockingPhone",
  2112. c.agreement_type as "agreementType",
  2113. b.logo as "logo"
  2114. from (
  2115. SELECT
  2116. agree.insurance_company_id AS "companyId",
  2117. agree.insurance_company AS "insuranceCompanyName",
  2118. agree.partner_companies_id AS "parterCompanyId",
  2119. ins.namesimple AS "partnerCompaniesName",
  2120. agree.id as "agreeId",
  2121. IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
  2122. COUNT(0 ) AS "qutationInsureCount",
  2123. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0 ) AS "averagePremium",
  2124. COUNT(DISTINCT io.userId) AS "userNumber",
  2125. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId) as "perCapitaAmount"
  2126. FROM
  2127. ins_area_company iac
  2128. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2129. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2130. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  2131. WHERE
  2132. agree.id IS NOT NULL
  2133. and iac.orderstatus = '3'
  2134. <if test="vo.companyId != null and vo.companyId!='' ">
  2135. and agree.insurance_company_id = #{vo.companyId}
  2136. </if>
  2137. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2138. and agree.partner_companies_id = #{vo.parterCompanyId}
  2139. </if>
  2140. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2141. 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')
  2142. </if>
  2143. <if test="vo.provinceId != null and vo.provinceId != '' and vo.cityId == null and vo.countyId == null and vo.houseId == null ">
  2144. and io.deptid like "${vo.provinceId}%"
  2145. </if>
  2146. <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and vo.houseId ==null">
  2147. and io.deptid like "${vo.cityId}%"
  2148. </if>
  2149. <if test="vo.countyId != null and vo.countyId != '' and vo.houseId ==null">
  2150. and io.deptid like "${vo.countyId}%"
  2151. </if>
  2152. <if test="vo.houseId != null and vo.houseId != ''">
  2153. and io.deptid like "${vo.houseId}%"
  2154. </if>
  2155. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2156. AND io.deptid in
  2157. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2158. #{item}
  2159. </foreach>
  2160. </if>
  2161. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2162. AND io.userid in
  2163. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2164. #{item}
  2165. </foreach>
  2166. </if>
  2167. GROUP BY
  2168. agree.insurance_company_id,
  2169. agree.insurance_company,
  2170. agree.partner_companies_id,
  2171. agree.id
  2172. <choose>
  2173. <when test="vo.orderSort != null and vo.orderSort != '' and vo.userNumberSort == null ">
  2174. order by
  2175. sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
  2176. </when>
  2177. <when test="vo.userNumberSort != null and vo.userNumberSort != '' and vo.orderSort == null ">
  2178. order by
  2179. COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'}
  2180. </when>
  2181. <when test="vo.userNumberSort != null and vo.userNumberSort != '' and vo.orderSort != null and vo.orderSort != '' ">
  2182. order by
  2183. COUNT(DISTINCT io.userId) ${vo.userNumberSort == 'asc' ? 'asc' : 'desc'}, sum(sumpremium) ${vo.orderSort == 'asc' ? 'asc' : 'desc'}
  2184. </when>
  2185. </choose>
  2186. ) a
  2187. left join esm_ins_company b on b.id =a.companyId
  2188. left join ptl_agreement c on c.id =a.agreeId
  2189. </select>
  2190. <select id="getCountBusinessData" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2191. select
  2192. sum(a.totalPremium) as "totalPremium",
  2193. sum(a.qutationInsureCount) as "qutationInsureCount",
  2194. sum(ROUND(a.averagePremium, 2)) as "averagePremium",
  2195. sum(a.userNumber) as "userNumber",
  2196. count(DISTINCT a.insuranceCompanyName) as "insuranceCompanyNumber",
  2197. sum(ROUND(a.perCapitaAmount, 2)) as "perCapitaAmount"
  2198. from (
  2199. SELECT
  2200. agree.insurance_company AS "insuranceCompanyName",
  2201. IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
  2202. COUNT(0 ) AS "qutationInsureCount",
  2203. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0 ) AS "averagePremium",
  2204. COUNT(DISTINCT io.userId) AS "userNumber",
  2205. (IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId) as "perCapitaAmount"
  2206. FROM
  2207. ins_area_company iac
  2208. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2209. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2210. WHERE
  2211. agree.id IS NOT NULL
  2212. and iac.orderstatus = '3'
  2213. <if test="vo.companyId != null and vo.companyId!='' ">
  2214. and agree.insurance_company_id = #{vo.companyId}
  2215. </if>
  2216. <if test="vo.parterCompanyId != null and vo.parterCompanyId!='' ">
  2217. and agree.partner_companies_id = #{vo.parterCompanyId}
  2218. </if>
  2219. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2220. 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')
  2221. </if>
  2222. <if test="vo.provinceId != null and vo.provinceId != '' and vo.cityId == null and vo.countyId == null and vo.houseId == null ">
  2223. and io.deptid like "${vo.provinceId}%"
  2224. </if>
  2225. <if test="vo.cityId != null and vo.cityId != '' and vo.countyId ==null and vo.houseId ==null">
  2226. and io.deptid like "${vo.cityId}%"
  2227. </if>
  2228. <if test="vo.countyId != null and vo.countyId != '' and vo.houseId ==null">
  2229. and io.deptid like "${vo.countyId}%"
  2230. </if>
  2231. <if test="vo.houseId != null and vo.houseId != ''">
  2232. and io.deptid like "${vo.houseId}%"
  2233. </if>
  2234. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2235. AND io.deptid in
  2236. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2237. #{item}
  2238. </foreach>
  2239. </if>
  2240. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2241. AND io.userid in
  2242. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2243. #{item}
  2244. </foreach>
  2245. </if>
  2246. group by
  2247. agree.insurance_company
  2248. ) a
  2249. </select>
  2250. <select id="getDistribution" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2251. SELECT
  2252. agree.insurance_company_id AS "companyId",
  2253. agree.insurance_company AS "insuranceCompanyName",
  2254. agree.partner_companies_id AS "parterCompanyId",
  2255. ins.namesimple AS "partnerCompaniesName",
  2256. IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0) as "totalPremium",
  2257. COUNT(0) AS "qutationInsureCount",
  2258. ROUND((IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(0), 2) AS "averagePremium",
  2259. COUNT(DISTINCT io.userId) AS "userNumber",
  2260. ROUND((IFNULL(sum(iac.jqpremium),0) + IFNULL(sum(iac.sypremium),0) +IFNULL(sum(iac.jypremium),0)) / COUNT(DISTINCT io.userId) ,2) as "perCapitaAmount"
  2261. FROM
  2262. ins_area_company iac
  2263. LEFT JOIN ptl_agreement agree ON iac.agreement_id = agree.id
  2264. LEFT JOIN ins_orders io on io.orderno = iac.orderno
  2265. LEFT JOIN esm_ins_company ins ON agree.partner_companies_id = ins.id
  2266. WHERE
  2267. agree.id IS NOT NULL
  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.days !=null and vo.days !='' and vo.days != 0 ">
  2278. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{vo.days} DAY)
  2279. </if>
  2280. <if test="vo.provinceId != null and vo.provinceId != ''">
  2281. and io.deptid like "${vo.provinceId}%"
  2282. </if>
  2283. <if test="vo.cityId != null and vo.cityId != ''">
  2284. and io.deptid like "${vo.cityId}%"
  2285. </if>
  2286. <if test="vo.countyId != null and vo.countyId != ''">
  2287. and io.deptid like "${vo.countyId}%"
  2288. </if>
  2289. <if test="vo.houseId != null and vo.houseId != ''">
  2290. and io.deptid like "${vo.houseId}%"
  2291. </if>
  2292. <if test="vo.quotationStatus != null and vo.quotationStatus != ''">
  2293. and iac.orderstatus =#{vo.quotationStatus}
  2294. </if>
  2295. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2296. AND io.deptid in
  2297. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2298. #{item}
  2299. </foreach>
  2300. </if>
  2301. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2302. AND io.userid in
  2303. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2304. #{item}
  2305. </foreach>
  2306. </if>
  2307. <if test="vo.riskCode != null and vo.riskCode != '' and vo.riskCode != 'all'">
  2308. and iac.product = #{vo.riskCode}
  2309. </if>
  2310. GROUP BY
  2311. agree.insurance_company_id,
  2312. agree.insurance_company,
  2313. agree.partner_companies_id,
  2314. ins.namesimple
  2315. </select>
  2316. <select id="getOrderPremiumByUserIds" resultType="Double">
  2317. SELECT
  2318. IFNULL(
  2319. SUM( IFNULL( iac.jqpremium, 0 ) + IFNULL( iac.sypremium, 0 ) + IFNULL( iac.jypremium, 0 ) ),
  2320. 0
  2321. ) AS "totalPremium"
  2322. FROM
  2323. `ins_area_company` iac
  2324. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2325. <where>
  2326. iac.orderstatus = '3'
  2327. <if test="vo.ids != null and vo.ids.size()>0 ">
  2328. AND io.userid IN
  2329. <foreach item="item" collection="vo.ids" open="(" separator="," close=")">
  2330. #{item}
  2331. </foreach>
  2332. </if>
  2333. <if test="vo.createtimeStart != null and vo.createtimeStart!='' and vo.createtimeEnd != null and vo.createtimeEnd!=''">
  2334. AND iac.signing_time BETWEEN #{vo.createtimeStart} AND #{vo.createtimeEnd}
  2335. </if>
  2336. </where>
  2337. </select>
  2338. <select id="querOrdersDataPage" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2339. SELECT
  2340. count( 0 ) AS "orderNumber",
  2341. b.licenseno as "licenseno",
  2342. b.frameno as "frameno",
  2343. b.modelCode as "modelCode",
  2344. b.modelcname as "modelcname"
  2345. FROM
  2346. (
  2347. SELECT
  2348. io.orderstatus AS orderstatus,
  2349. io.frameno AS frameno,
  2350. REPLACE(JSON_EXTRACT(io.carinfo, '$.engineNo'), '"', '') as "modelCode",
  2351. REPLACE(JSON_EXTRACT(io.carinfo, '$.modelcname'), '"', '') as "modelcname",
  2352. ifnull(io.licenseno, '') AS licenseno
  2353. FROM
  2354. ins_orders io
  2355. LEFT JOIN sys_user su on io.userid=su.id
  2356. <where>
  2357. 1=1
  2358. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2359. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2360. </if>
  2361. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2362. AND io.licenseno =#{vo.licenseno}
  2363. </if>
  2364. <if test="vo.userId != null and vo.userId!='' ">
  2365. AND io.userid =#{vo.userId}
  2366. </if>
  2367. <if test="vo.userName != null and vo.userName!='' ">
  2368. AND su.name =#{vo.userName}
  2369. </if>
  2370. <if test="vo.mobile != null and vo.mobile!='' ">
  2371. AND su.mobile =#{vo.mobile}
  2372. </if>
  2373. <if test="vo.frameno != null and vo.frameno!='' ">
  2374. AND io.frameno =#{vo.frameno}
  2375. </if>
  2376. <if test="vo.deptId != null and vo.deptId!='' ">
  2377. and io.deptid like concat('%', #{vo.deptId}, '%')
  2378. </if>
  2379. <if test="vo.year != null and vo.year!='' ">
  2380. AND DATE_FORMAT( io.createtime, '%Y') =#{vo.year}
  2381. </if>
  2382. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2383. AND io.deptid in
  2384. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2385. #{item}
  2386. </foreach>
  2387. </if>
  2388. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2389. AND io.userid in
  2390. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2391. #{item}
  2392. </foreach>
  2393. </if>
  2394. </where>
  2395. ) b
  2396. GROUP BY
  2397. b.licenseno,
  2398. b.frameno,
  2399. b.modelCode,
  2400. b.modelcname
  2401. </select>
  2402. <select id="getOrdersGroupByLicenseno" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2403. SELECT
  2404. io.licenseno AS "licenseno",
  2405. io.frameno AS "frameno",
  2406. io.orderstatus as "orderstatus",
  2407. io.orderno as "orderno"
  2408. FROM
  2409. ins_orders io
  2410. LEFT JOIN sys_user su on io.userid=su.id
  2411. <where>
  2412. io.licenseno is not null
  2413. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2414. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2415. </if>
  2416. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2417. AND io.licenseno =#{vo.licenseno}
  2418. </if>
  2419. <if test="vo.userId != null and vo.userId!='' ">
  2420. AND io.userId =#{vo.userId}
  2421. </if>
  2422. <if test="vo.userName != null and vo.userName!='' ">
  2423. AND su.name =#{vo.userName}
  2424. </if>
  2425. <if test="vo.mobile != null and vo.mobile!='' ">
  2426. AND su.mobile =#{vo.mobile}
  2427. </if>
  2428. <if test="vo.frameno != null and vo.frameno!='' ">
  2429. AND su.frameno =#{vo.frameno}
  2430. </if>
  2431. <if test="vo.deptId != null and vo.deptId!='' ">
  2432. and io.deptid like concat('%', #{vo.deptId}, '%')
  2433. </if>
  2434. </where>
  2435. </select>
  2436. <select id="querOrdersamountTo" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2437. select sum(a.orderNumber) as "orderNumber",
  2438. count(a.licenseno) as "b.frameno"
  2439. from (
  2440. SELECT
  2441. count( 0 ) AS "orderNumber",
  2442. b.licenseno as "licenseno",
  2443. b.frameno as "frameno"
  2444. FROM
  2445. (
  2446. SELECT
  2447. io.orderstatus AS orderstatus,
  2448. io.frameno AS frameno,
  2449. ifnull(io.licenseno, '') AS licenseno
  2450. FROM
  2451. ins_orders io
  2452. LEFT JOIN sys_user su on io.userid=su.id
  2453. <where>
  2454. 1=1
  2455. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2456. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2457. </if>
  2458. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2459. AND io.licenseno =#{vo.licenseno}
  2460. </if>
  2461. <if test="vo.userId != null and vo.userId!='' ">
  2462. AND io.userid =#{vo.userId}
  2463. </if>
  2464. <if test="vo.userName != null and vo.userName!='' ">
  2465. AND su.name =#{vo.userName}
  2466. </if>
  2467. <if test="vo.mobile != null and vo.mobile!='' ">
  2468. AND su.mobile =#{vo.mobile}
  2469. </if>
  2470. <if test="vo.frameno != null and vo.frameno!='' ">
  2471. AND io.frameno =#{vo.frameno}
  2472. </if>
  2473. <if test="vo.deptId != null and vo.deptId!='' ">
  2474. and io.deptid like concat('%', #{vo.deptId}, '%')
  2475. </if>
  2476. </where>
  2477. ) b
  2478. GROUP BY
  2479. b.licenseno,
  2480. b.frameno
  2481. ) a
  2482. </select>
  2483. <select id="querResultOrderNumber" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2484. SELECT
  2485. count( io.orderno ) AS "orderNumber",
  2486. 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"
  2487. FROM
  2488. ins_orders io
  2489. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  2490. LEFT JOIN sys_user su ON io.userid = su.id
  2491. <where>
  2492. 1=1
  2493. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2494. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2495. </if>
  2496. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2497. AND io.licenseno =#{vo.licenseno}
  2498. </if>
  2499. <if test="vo.userId != null and vo.userId!='' ">
  2500. AND io.userid =#{vo.userId}
  2501. </if>
  2502. <if test="vo.userName != null and vo.userName!='' ">
  2503. AND su.name =#{vo.userName}
  2504. </if>
  2505. <if test="vo.mobile != null and vo.mobile!='' ">
  2506. AND su.mobile =#{vo.mobile}
  2507. </if>
  2508. <if test="vo.frameno != null and vo.frameno!='' ">
  2509. AND su.frameno =#{vo.frameno}
  2510. </if>
  2511. <if test="vo.deptId != null and vo.deptId!='' ">
  2512. and io.deptid like concat('%', #{vo.deptId}, '%')
  2513. </if>
  2514. </where>
  2515. </select>
  2516. <select id="numberQuotationsByUserIds" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsDto">
  2517. SELECT
  2518. count(iac.id) as "orderNumber",
  2519. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2520. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2521. sum( CASE WHEN iac.orderstatus = 3 THEN IFNULL(iac.jqpremium, 0) + IFNULL(iac.sypremium, 0) + IFNULL(iac.jypremium, 0) END ) AS totalPremium
  2522. FROM
  2523. ins_area_company iac
  2524. left join ins_orders io on io.orderno = iac.orderno
  2525. <where>
  2526. <if test="ids != null and ids.size()>0 ">
  2527. AND io.userid IN
  2528. <foreach item="item" collection="ids" open="(" separator="," close=")">
  2529. #{item}
  2530. </foreach>
  2531. </if>
  2532. <if test="month != null and month!='' ">
  2533. AND DATE_FORMAT(iac.createtime, '%Y-%m') =#{month}
  2534. </if>
  2535. </where>
  2536. </select>
  2537. <select id="selectByOrdersDataVo" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2538. select
  2539. iac.inscompany as "namesimple"
  2540. from
  2541. ins_area_company iac
  2542. <where>
  2543. 1=1
  2544. <if test="vo.orderstatus != null and vo.orderstatus != '' ">
  2545. AND iac.orderstatus =#{vo.orderstatus}
  2546. </if>
  2547. <if test="vo.orderno !=null and vo.orderno !='' ">
  2548. AND iac.orderno =#{vo.orderno}
  2549. </if>
  2550. </where>
  2551. </select>
  2552. <select id="channelExcel" resultType="com.ydtech.modules.admin.model.dto.TaskStatisticsExcel">
  2553. select a.*,(select name from sys_user where id =a.userId) as "userName"
  2554. from (
  2555. SELECT
  2556. sd.NAME AS "deptName",
  2557. io.userid AS "userId",
  2558. sd.parent_id as "deptId",
  2559. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
  2560. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCount,
  2561. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2562. COUNT( CASE WHEN iac.orderstatus = 4 THEN 1 END ) AS underwritingReturn,
  2563. (COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END )) * 100 AS "passingRate",
  2564. (COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( iac.orderstatus )) * 100 AS "closeRate",
  2565. ((COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) + COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ))/ COUNT( iac.orderstatus )) * 100 AS "contributionRate",
  2566. (COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) / COUNT( iac.orderstatus )) * 100 AS "quotationRate",
  2567. COUNT( CASE WHEN iac.orderstatus = 1 THEN 1 END ) AS "auditOrder"
  2568. FROM
  2569. ins_area_company iac
  2570. LEFT JOIN ins_orders io ON io.orderno = iac.orderno
  2571. LEFT JOIN sys_dept sd ON sd.id = io.deptid
  2572. <where>
  2573. 1=1
  2574. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  2575. and io.deptid like "${taskStatisticsVo.provinceId}%"
  2576. </if>
  2577. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  2578. and io.deptid like "${taskStatisticsVo.cityId}%"
  2579. </if>
  2580. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  2581. and io.deptid like "${taskStatisticsVo.countyId}%"
  2582. </if>
  2583. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  2584. and io.deptid like "${taskStatisticsVo.houseId}%"
  2585. </if>
  2586. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  2587. AND DATE_FORMAT( io.createtime, '%Y-%m-%d') BETWEEN #{taskStatisticsVo.createtimeStart} AND #{taskStatisticsVo.createtimeEnd}
  2588. </if>
  2589. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  2590. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  2591. </if>
  2592. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  2593. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  2594. </if>
  2595. <if test="taskStatisticsVo.managementSource!=null and taskStatisticsVo.managementSource!=''">
  2596. and sd.management_source=#{taskStatisticsVo.managementSource}
  2597. </if>
  2598. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  2599. <choose>
  2600. <when test="taskStatisticsVo.days =='1'">
  2601. and io.createtime >= DATE_SUB(NOW(), INTERVAL 1 DAY)
  2602. </when>
  2603. <when test="taskStatisticsVo.days =='7'">
  2604. and io.createtime >= DATE_SUB(NOW(), INTERVAL 7 DAY)
  2605. </when>
  2606. <when test="taskStatisticsVo.days =='30'">
  2607. and io.createtime >= DATE_SUB(NOW(), INTERVAL 30 DAY)
  2608. </when>
  2609. </choose>
  2610. </if>
  2611. </where>
  2612. GROUP BY
  2613. io.userid,
  2614. sd.NAME,
  2615. sd.id
  2616. ) a
  2617. </select>
  2618. <select id="insuranceCompanyExcel" resultType="com.ydtech.modules.admin.model.dto.InsuranceCompanyExcel">
  2619. SELECT
  2620. a.*,
  2621. ( SELECT eic.namesimple FROM esm_ins_company eic WHERE eic.id = a.partner_companies_id ) AS "partnerCompaniesName"
  2622. FROM
  2623. (
  2624. SELECT
  2625. pa.insurance_company_id,
  2626. pa.partner_companies_id,
  2627. pa.insurance_company AS "insuranceCompanyName",
  2628. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS qutationCount,
  2629. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) AS underwritingCountRate,
  2630. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) AS qutationInsureCount,
  2631. COUNT( CASE WHEN iac.orderstatus = 4 THEN 1 END ) AS underwritingReturn,
  2632. COUNT( CASE WHEN iac.orderstatus = 2 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS "passingRate",
  2633. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) AS "closeRate",
  2634. COUNT( CASE WHEN iac.orderstatus = 3 THEN 1 END ) / COUNT( iac.orderstatus ) AS "contributionRate",
  2635. COUNT( CASE WHEN iac.orderstatus = 0 THEN 1 END ) / COUNT( iac.orderstatus ) AS "quotationRate",
  2636. COUNT( CASE WHEN iac.orderstatus = 1 THEN 1 END ) AS "auditOrder"
  2637. FROM
  2638. ins_area_company iac
  2639. LEFT JOIN ins_fee_audit ifa ON ifa.ins_order_no = iac.id
  2640. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  2641. <where>
  2642. pa.insurance_company_id IS NOT NULL
  2643. <if test="taskStatisticsVo.provinceId != null and taskStatisticsVo.provinceId != ''">
  2644. and io.deptid like "${taskStatisticsVo.provinceId}%"
  2645. </if>
  2646. <if test="taskStatisticsVo.cityId != null and taskStatisticsVo.cityId != ''">
  2647. and io.deptid like "${taskStatisticsVo.cityId}%"
  2648. </if>
  2649. <if test="taskStatisticsVo.countyId != null and taskStatisticsVo.countyId != ''">
  2650. and io.deptid like "${taskStatisticsVo.countyId}%"
  2651. </if>
  2652. <if test="taskStatisticsVo.houseId != null and taskStatisticsVo.houseId != ''">
  2653. and io.deptid like "${taskStatisticsVo.houseId}%"
  2654. </if>
  2655. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  2656. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT(#{taskStatisticsVo.createtimeStart},'%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  2657. </if>
  2658. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  2659. AND DATE_FORMAT( iac.createtime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.beginDate}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.endDate}, '%Y-%m-%d')
  2660. </if>
  2661. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId != ''">
  2662. AND iac.company_id =#{taskStatisticsVo.companyId}
  2663. </if>
  2664. <if test="taskStatisticsVo.days !=null and taskStatisticsVo.days !='' ">
  2665. and iac.createtime >= DATE_SUB(NOW(), INTERVAL #{taskStatisticsVo.days} DAY)
  2666. </if>
  2667. </where>
  2668. GROUP BY
  2669. pa.insurance_company_id,
  2670. pa.partner_companies_id,
  2671. pa.insurance_company
  2672. ) a
  2673. </select>
  2674. <select id="getSumBigOrderCount" resultType="com.ydtech.modules.admin.model.report.company.OrdersDataDto">
  2675. select count(0) as "orderNumber",
  2676. GROUP_CONCAT(inscompany ORDER BY inscompany SEPARATOR ',') as "namesimple"
  2677. from ins_area_company iac
  2678. left join ins_orders io on io.orderno = iac.orderno
  2679. <where>
  2680. 1=1
  2681. and iac.orderstatus ='3'
  2682. and io.orderstatus ='3'
  2683. <if test="vo.licenseno !=null and vo.licenseno!=''">
  2684. AND io.licenseno =#{vo.licenseno}
  2685. </if>
  2686. <if test="vo.frameno !=null and vo.frameno!=''">
  2687. AND io.frameno =#{vo.frameno}
  2688. </if>
  2689. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2690. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2691. </if>
  2692. <if test="vo.year != null and vo.year!='' ">
  2693. AND DATE_FORMAT( io.createtime, '%Y') =#{vo.year}
  2694. </if>
  2695. </where>
  2696. limit 10
  2697. </select>
  2698. <select id="queryAgencyUserInsAreaPage" resultType="com.ydtech.modules.admin.model.vo.AgencyUserInsAreaVo">
  2699. select
  2700. io.userid as userId,
  2701. io.username as userName,
  2702. io.licenseno as licenseno,
  2703. iac.id as companyId,
  2704. iac.jqpremium as jqpremium,
  2705. iac.sypremium as sypremium,
  2706. iac.jypremium as jypremium,
  2707. iac.createtime as createtime,
  2708. iac.orderstatus as orderstatus
  2709. from ins_area_company iac
  2710. left join ins_orders io on io.orderno = iac.orderno
  2711. <where>
  2712. iac.orderstatus=3
  2713. <if test="dto.userId !=null and dto.userId !=''">
  2714. and io.userid = #{dto.userId}
  2715. </if>
  2716. <if test="dto.deptId !=null and dto.deptId !=''">
  2717. and io.deptid like concat( #{dto.deptId}, '%')
  2718. </if>
  2719. <if test="dto.startTime !=null and dto.startTime !=''">
  2720. and io.createtime >= #{dto.startTime}
  2721. </if>
  2722. </where>
  2723. ORDER BY iac.createtime
  2724. </select>
  2725. <select id="querOrdersDataListExcel" resultType="com.ydtech.modules.admin.model.dto.OrdersDataExcel">
  2726. SELECT
  2727. count( 0 ) AS "orderNumber",
  2728. b.licenseno as "licenseno",
  2729. b.frameno as "frameno",
  2730. b.modelCode as "modelCode",
  2731. b.modelcname as "modelcname"
  2732. FROM
  2733. (
  2734. SELECT
  2735. io.orderstatus AS orderstatus,
  2736. io.frameno AS frameno,
  2737. REPLACE(JSON_EXTRACT(io.carinfo, '$.engineNo'), '"', '') as "modelCode",
  2738. REPLACE(JSON_EXTRACT(io.carinfo, '$.modelcname'), '"', '') as "modelcname",
  2739. ifnull(io.licenseno, '') AS licenseno
  2740. FROM
  2741. ins_orders io
  2742. LEFT JOIN sys_user su on io.userid=su.id
  2743. <where>
  2744. 1=1
  2745. <if test="vo.beginDate != null and vo.beginDate!='' and vo.endDate != null and vo.endDate!=''">
  2746. AND io.createtime BETWEEN #{vo.beginDate} AND #{vo.endDate}
  2747. </if>
  2748. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2749. AND io.licenseno =#{vo.licenseno}
  2750. </if>
  2751. <if test="vo.userId != null and vo.userId!='' ">
  2752. AND io.userid =#{vo.userId}
  2753. </if>
  2754. <if test="vo.userName != null and vo.userName!='' ">
  2755. AND su.name =#{vo.userName}
  2756. </if>
  2757. <if test="vo.mobile != null and vo.mobile!='' ">
  2758. AND su.mobile =#{vo.mobile}
  2759. </if>
  2760. <if test="vo.frameno != null and vo.frameno!='' ">
  2761. AND io.frameno =#{vo.frameno}
  2762. </if>
  2763. <if test="vo.deptId != null and vo.deptId!='' ">
  2764. and io.deptid like concat('%', #{vo.deptId}, '%')
  2765. </if>
  2766. <if test="vo.year != null and vo.year!='' ">
  2767. AND DATE_FORMAT( io.createtime, '%Y') =#{vo.year}
  2768. </if>
  2769. <if test="vo.deptIds != null and vo.deptIds != '' and vo.deptIds.size() > 0">
  2770. AND io.deptid in
  2771. <foreach collection="vo.deptIds" item="item" open="(" separator="," close=")">
  2772. #{item}
  2773. </foreach>
  2774. </if>
  2775. <if test="vo.userIds != null and vo.userIds != '' and vo.userIds.size() > 0">
  2776. AND io.userid in
  2777. <foreach collection="vo.userIds" item="item" open="(" separator="," close=")">
  2778. #{item}
  2779. </foreach>
  2780. </if>
  2781. </where>
  2782. ) b
  2783. GROUP BY
  2784. b.licenseno,
  2785. b.frameno,
  2786. b.modelCode,
  2787. b.modelcname
  2788. </select>
  2789. <select id="orderCheckPage" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  2790. select
  2791. iac.id,
  2792. iac.orderno,
  2793. iac.agreement_id,
  2794. iac.jqpremium,
  2795. iac.sypremium,
  2796. iac.jypremium,
  2797. iac.taxamount,
  2798. iac.sumpremium,
  2799. io.licenseno,
  2800. iac.createtime,
  2801. su.name as auditname
  2802. FROM
  2803. ins_area_company iac
  2804. LEFT JOIN
  2805. ins_orders io on iac.orderno = io.orderno
  2806. left join ptl_agreement agree on iac.agreement_id =agree.id
  2807. left join ins_fee_audit ifa on iac.id = ifa.ins_order_no
  2808. left join sys_user su on su.id= ifa.audituser
  2809. WHERE
  2810. iac.operator_id = #{userId}
  2811. AND
  2812. iac.orderstatus = 3
  2813. and agree.is_external =1
  2814. and auditstatus =1
  2815. <if test="vo.id != null and vo.id!='' ">
  2816. and iac.id = #{vo.id}
  2817. </if>
  2818. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2819. and io.licenseno like CONCAT('%', #{vo.licenseno}, '%')
  2820. </if>
  2821. </select>
  2822. <select id="costCenterTotal" resultType="java.util.HashMap">
  2823. SELECT
  2824. COUNT( CASE WHEN ifa.auditstatus = 1 THEN 1 END ) AS "allAuditstatusOrders",
  2825. COUNT( CASE WHEN ifa.auditstatus = 0 THEN 1 END ) AS "allAuditOrder",
  2826. COUNT( CASE WHEN ifa.auditstatus = 1 and ifa.audituser != '自动审核' THEN 1 END ) AS "allPersionAudit",
  2827. COUNT( CASE WHEN ifa.audituser = '自动审核' THEN 1 END ) AS "allAutomaticAudit"
  2828. FROM
  2829. ins_fee_audit ifa
  2830. LEFT JOIN ins_orders io ON io.orderno = ifa.orderno
  2831. LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno
  2832. AND iac.orderstatus = 3
  2833. LEFT JOIN ptl_agreement pa ON pa.id = iac.agreement_id
  2834. LEFT JOIN esm_ins_company eic ON eic.id = pa.partner_companies_id
  2835. left join sys_user su on su.id =ifa.audituser
  2836. <where>
  2837. 1=1
  2838. and iac.id = ifa.ins_order_no
  2839. AND iac.orderstatus = 3
  2840. <if test="taskStatisticsVo.reviewer !=null and taskStatisticsVo.reviewer !=''">
  2841. and su.name =#{taskStatisticsVo.reviewer}
  2842. </if>
  2843. <if test="taskStatisticsVo.audittime !=null and taskStatisticsVo.audittime !=''">
  2844. and ifa.audittime =#{taskStatisticsVo.audittime}
  2845. </if>
  2846. <if test="taskStatisticsVo.companyId !=null and taskStatisticsVo.companyId !=''">
  2847. and iac.company_id =#{taskStatisticsVo.companyId}
  2848. </if>
  2849. <if test="taskStatisticsVo.createtimeStart !=null and taskStatisticsVo.createtimeStart != '' and taskStatisticsVo.createtimeEnd !=null and taskStatisticsVo.createtimeEnd != ''">
  2850. AND DATE_FORMAT( ifa.audittime, '%Y-%m-%d') BETWEEN DATE_FORMAT( #{taskStatisticsVo.createtimeStart}, '%Y-%m-%d') AND DATE_FORMAT( #{taskStatisticsVo.createtimeEnd}, '%Y-%m-%d')
  2851. </if>
  2852. <if test="taskStatisticsVo.beginDate !=null and taskStatisticsVo.beginDate != '' and taskStatisticsVo.endDate !=null and taskStatisticsVo.endDate != ''">
  2853. 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')
  2854. </if>
  2855. <if test="taskStatisticsVo.deptIds != null and taskStatisticsVo.deptIds != '' and taskStatisticsVo.deptIds.size() > 0">
  2856. AND io.deptid in
  2857. <foreach collection="taskStatisticsVo.deptIds" item="item" open="(" separator="," close=")">
  2858. #{item}
  2859. </foreach>
  2860. </if>
  2861. <if test="taskStatisticsVo.userIds != null and taskStatisticsVo.userIds != '' and taskStatisticsVo.userIds.size() > 0">
  2862. AND su.id in
  2863. <foreach collection="taskStatisticsVo.userIds" item="item" open="(" separator="," close=")">
  2864. #{item}
  2865. </foreach>
  2866. </if>
  2867. <choose>
  2868. <when test="taskStatisticsVo.riskCode != null and taskStatisticsVo.riskCode != '' and taskStatisticsVo.riskCode != 'all' ">
  2869. and iac.product = #{taskStatisticsVo.riskCode}
  2870. </when>
  2871. </choose>
  2872. </where>
  2873. </select>
  2874. <select id="getSubOrderCountDTO" resultType="com.ydtech.modules.order.entity.dto.SubOrderCountDTO">
  2875. select orderno, orderstatus, count(*)as count
  2876. from (select orderno, company_id, orderstatus
  2877. from ins_area_company
  2878. where orderno in
  2879. <foreach collection="orderNo" open="(" separator="," close=")" item="item" index="index">
  2880. #{item,jdbcType=VARCHAR}
  2881. </foreach>
  2882. and del_flag = '1'
  2883. group by orderno, company_id, orderstatus) as iac
  2884. group by orderno, orderstatus
  2885. </select>
  2886. <select id="getAllRejectOrders" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
  2887. select
  2888. iac.id,
  2889. iac.orderno,
  2890. iac.agreement_id,
  2891. iac.jqpremium,
  2892. iac.sypremium,
  2893. iac.jypremium,
  2894. iac.taxamount,
  2895. iac.sumpremium,
  2896. io.licenseno,
  2897. ifa.audittime,
  2898. ifa.audituser as auditname,
  2899. ifa.rejectinfo,
  2900. "1" as orderExternalStatus
  2901. FROM
  2902. ins_fee_audit ifa
  2903. LEFT JOIN
  2904. ins_area_company iac on iac.id = ifa.ins_order_no
  2905. LEFT JOIN
  2906. ins_orders io on iac.orderno = io.orderno
  2907. left join
  2908. sys_user su on su.id= ifa.audituser
  2909. WHERE
  2910. ifa.auditstatus = 2 and IFNULL(iac.del_flag,'') != '0'
  2911. <if test="vo.id != null and vo.id!=''">
  2912. and iac.id = #{vo.id}
  2913. </if>
  2914. <if test="vo.licenseno != null and vo.licenseno!='' ">
  2915. and io.licenseno like CONCAT('%', #{vo.licenseno}, '%')
  2916. </if>
  2917. <if test="vo.auditname != null and vo.auditname!='' ">
  2918. and su.name like CONCAT('%', #{vo.auditname}, '%')
  2919. </if>
  2920. order by io.createtime
  2921. </select>
  2922. </mapper>