InsAreaCompanyMapper.xml 144 KB

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