InsOrdersMapper.xml 110 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384
  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.jzg.quotation.summary.mapper.InsOrdersMapper">
  6. <resultMap id="InsOrdersMap" type="com.jzg.commons.entity.orders.po.InsOrders">
  7. <id property="id" column="id" jdbcType="VARCHAR"/>
  8. <result property="quoteNo" column="quote_no" jdbcType="VARCHAR"/>
  9. <result property="agreementId" column="agreement_id" jdbcType="VARCHAR"/>
  10. <result property="apiType" column="api_type" jdbcType="VARCHAR"/>
  11. <result property="orderStatus" column="order_status" jdbcType="VARCHAR"/>
  12. <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
  13. <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
  14. <result property="productId" column="product_id" jdbcType="VARCHAR"/>
  15. <result property="productName" column="product_name" jdbcType="VARCHAR"/>
  16. <result property="entryStatus" column="entry_status" jdbcType="VARCHAR"/>
  17. <result property="orderSource" column="order_source" jdbcType="VARCHAR"/>
  18. <result property="auditId" column="audit_id" jdbcType="VARCHAR"/>
  19. <result property="auditName" column="audit_name" jdbcType="VARCHAR"/>
  20. <result property="auditTime" column="audit_time" jdbcType="VARCHAR"/>
  21. <result property="auditOpinion" column="audit_opinion" jdbcType="VARCHAR"/>
  22. <result property="payTime" column="pay_time" jdbcType="VARCHAR"/>
  23. <result property="payLink" column="pay_link" jdbcType="VARCHAR"/>
  24. <result property="insOrderNo" column="ins_order_no" jdbcType="VARCHAR"/>
  25. <result property="signingTime" column="signing_time" jdbcType="VARCHAR"/>
  26. <result property="isTemporarily" column="is_temporarily" jdbcType="VARCHAR"/>
  27. <result property="realQuoteUserId" column="real_quote_user_id" jdbcType="VARCHAR"/>
  28. <result property="dockingPersonPhone" column="docking_person_phone" jdbcType="VARCHAR"/>
  29. <result property="dockingPerson" column="docking_person" jdbcType="VARCHAR"/>
  30. </resultMap>
  31. <!-- 订单 车辆信息-->
  32. <resultMap id="carInfoMap" type="com.jzg.commons.entity.quote.vo.CarInfoVo">
  33. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  34. <result property="licenseNo" column="license_no" jdbcType="VARCHAR"/>
  35. <result property="vinNo" column="vin_no" jdbcType="VARCHAR"/>
  36. <result property="brandName" column="brand_name" jdbcType="VARCHAR"/>
  37. <result property="engineNo" column="engine_no" jdbcType="VARCHAR"/>
  38. <result property="carYear" column="car_year" jdbcType="VARCHAR"/>
  39. <result property="seatCount" column="seat_count" jdbcType="VARCHAR"/>
  40. <result property="completeKerbMass" column="complete_kerb_mass" jdbcType="VARCHAR"/>
  41. <result property="limitLoad" column="limit_load" jdbcType="VARCHAR"/>
  42. <result property="powerScale" column="power_scale" jdbcType="VARCHAR"/>
  43. <result property="purchasePrice" column="purchase_price" jdbcType="VARCHAR"/>
  44. <result property="carNatureCode" column="car_nature_code" jdbcType="VARCHAR"/>
  45. <result property="vehicleUseCode" column="vehicle_use_code" jdbcType="VARCHAR"/>
  46. <result property="carTypeCode" column="car_type_code" jdbcType="VARCHAR"/>
  47. <result property="carKindCode" column="car_kind_code" jdbcType="VARCHAR"/>
  48. <result property="energyTypeCode" column="energy_type_code" jdbcType="VARCHAR"/>
  49. <result property="propertyCode" column="property_code" jdbcType="VARCHAR"/>
  50. <result property="licenseColorCode" column="license_color_code" jdbcType="VARCHAR"/>
  51. <result property="carKindDetailIdCode" column="car_kind_detail_id_code" jdbcType="VARCHAR"/>
  52. <result property="licenseKindCode" column="license_kind_code" jdbcType="VARCHAR"/>
  53. <result property="registerDate" column="register_date" jdbcType="VARCHAR"/>
  54. <result property="issueDate" column="issue_date" jdbcType="VARCHAR"/>
  55. <result property="transferDate" column="transfer_date" jdbcType="VARCHAR"/>
  56. <result property="transfer" column="transfer" jdbcType="VARCHAR"/>
  57. <result property="transferBi" column="transfer_bi" jdbcType="VARCHAR"/>
  58. </resultMap>
  59. <!-- 订单 车辆人员信息 -->
  60. <resultMap id="carUserInfoMap" type="com.jzg.commons.entity.orders.po.InsOrdersCarUserInfo">
  61. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  62. <result property="policyPersonType" column="policy_person_type" jdbcType="VARCHAR"/>
  63. <result property="personType" column="person_type" jdbcType="VARCHAR"/>
  64. <result property="cerType" column="cer_type" jdbcType="VARCHAR"/>
  65. <result property="name" column="name" jdbcType="VARCHAR"/>
  66. <result property="identifyNumber" column="identify_number" jdbcType="VARCHAR"/>
  67. <result property="age" column="age" jdbcType="VARCHAR"/>
  68. <result property="gender" column="gender" jdbcType="VARCHAR"/>
  69. <result property="provinceCode" column="province_code" jdbcType="VARCHAR"/>
  70. <result property="cityCode" column="city_code" jdbcType="VARCHAR"/>
  71. <result property="countyCode" column="county_code" jdbcType="VARCHAR"/>
  72. <result property="addr" column="addr" jdbcType="VARCHAR"/>
  73. <result property="identifyValidDate" column="identify_valid_date" jdbcType="VARCHAR"/>
  74. <result property="identifyValidEndDate" column="identify_valid_end_date" jdbcType="VARCHAR"/>
  75. <result property="mobile" column="mobile" jdbcType="VARCHAR"/>
  76. <result property="landline" column="landline" jdbcType="VARCHAR"/>
  77. <result property="email" column="email" jdbcType="VARCHAR"/>
  78. <result property="contact" column="contact" jdbcType="VARCHAR"/>
  79. <result property="contactIdentifyNumber" column="contact_identify_number" jdbcType="VARCHAR"/>
  80. <result property="contactIdentifyValidDate" column="contact_identify_valid_date" jdbcType="VARCHAR"/>
  81. <result property="contactIdentifyValidEndDate" column="contact_identify_valid_end_date" jdbcType="VARCHAR"/>
  82. <result property="email" column="email" jdbcType="VARCHAR"/>
  83. <result property="carOwner" column="car_owner" jdbcType="VARCHAR"/>
  84. </resultMap>
  85. <!-- 费用 -->
  86. <resultMap id="ordersCostsMap" type="com.jzg.commons.entity.orders.po.InsOrdersCosts">
  87. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  88. <result property="jqPremium" column="jq_premium" jdbcType="VARCHAR"/>
  89. <result property="syPremium" column="sy_premium" jdbcType="VARCHAR"/>
  90. <result property="jyPremium" column="jy_premium" jdbcType="VARCHAR"/>
  91. <result property="sumPremium" column="sum_premium" jdbcType="VARCHAR"/>
  92. <result property="taxPremium" column="tax_premium" jdbcType="VARCHAR"/>
  93. <result property="jqRatio" column="jq_ratio" jdbcType="VARCHAR"/>
  94. <result property="syRatio" column="sy_ratio" jdbcType="VARCHAR"/>
  95. </resultMap>
  96. <!-- 投保号 -->
  97. <resultMap id="InsOrdersPolicyMap" type="com.jzg.commons.entity.orders.po.InsOrdersPolicy">
  98. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  99. <result property="jqApplyNo" column="jq_apply_no" jdbcType="VARCHAR"/>
  100. <result property="syApplyNo" column="sy_apply_no" jdbcType="VARCHAR"/>
  101. <result property="jyApplyNo" column="jy_apply_no" jdbcType="VARCHAR"/>
  102. <result property="jqPolicyNo" column="jq_policy_no" jdbcType="VARCHAR"/>
  103. <result property="syPolicyNo" column="sy_policy_no" jdbcType="VARCHAR"/>
  104. <result property="jyPolicyNo" column="jy_policy_no" jdbcType="VARCHAR"/>
  105. </resultMap>
  106. <!--订单 险种表-->
  107. <resultMap id="OrdersKindMap" type="com.jzg.commons.entity.orders.po.InsOrdersKind">
  108. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  109. <result property="amount" column="amount" jdbcType="VARCHAR"/>
  110. <result property="kindCode" column="kind_code"/>
  111. <result property="kindName" column="kind_name"/>
  112. <result property="serviceTimes" column="service_times"/>
  113. <result property="unitAmount" column="unit_amount"/>
  114. <result property="deductibleRate" column="deductible_rate"/>
  115. </resultMap>
  116. <!-- 订单 其他属性 -->
  117. <resultMap id="InsOrdersOtherMap" type="com.jzg.commons.entity.vo.InsOrdersOtherInfoVo">
  118. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  119. <result property="jqScore" column="jq_score" jdbcType="VARCHAR"/>
  120. <result property="score" column="score" jdbcType="VARCHAR"/>
  121. <result property="scoreJson" column="score_json" jdbcType="VARCHAR" typeHandler="com.baomidou.mybatisplus.extension.handlers.FastjsonTypeHandler"/>
  122. <result property="syScore" column="sy_score" jdbcType="VARCHAR"/>
  123. <result property="lossRation" column="loss_ration" jdbcType="VARCHAR"/>
  124. <result property="jqLossRation" column="jq_loss_ration" jdbcType="VARCHAR"/>
  125. <result property="syLossRation" column="sy_loss_ration" jdbcType="VARCHAR"/>
  126. <result property="jqRenewal" column="jq_renewal" jdbcType="VARCHAR"/>
  127. <result property="syRenewal" column="sy_renewal" jdbcType="VARCHAR"/>
  128. <result property="jqClaims" column="jq_claims" jdbcType="VARCHAR"/>
  129. <result property="syClaims" column="sy_claims" jdbcType="VARCHAR"/>
  130. <result property="isDjq" column="is_djq" jdbcType="VARCHAR"/>
  131. <result property="jqAdjustRate" column="jq_adjust_rate" jdbcType="VARCHAR"/>
  132. <result property="syAdjustRate" column="sy_adjust_rate" jdbcType="VARCHAR"/>
  133. <result property="totalAdjustRate" column="total_adjust_rate" jdbcType="VARCHAR"/>
  134. <result property="signingTime" column="signing_time" jdbcType="VARCHAR"/>
  135. <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
  136. <result property="jqPremium" column="jq_premium" jdbcType="VARCHAR"/>
  137. <result property="syPremium" column="sy_premium" jdbcType="VARCHAR"/>
  138. <result property="jyPremium" column="jy_premium" jdbcType="VARCHAR"/>
  139. <result property="sumPremium" column="sum_premium" jdbcType="VARCHAR"/>
  140. <result property="taxPremium" column="tax_premium" jdbcType="VARCHAR"/>
  141. <result property="syPolicyNo" column="sy_policy_no" jdbcType="VARCHAR"/>
  142. <result property="jqPolicyNo" column="jq_policy_no" jdbcType="VARCHAR"/>
  143. </resultMap>
  144. <!--订单 险种-->
  145. <resultMap id="InsOrdersRiskMap" type="com.jzg.commons.entity.orders.po.InsOrdersRisk">
  146. <id property="id" column="id" jdbcType="VARCHAR"/>
  147. <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  148. <result property="riskName" column="risk_name" jdbcType="VARCHAR"/>
  149. <result property="amount" column="amount" jdbcType="VARCHAR"/>
  150. <result property="commissionRate" column="commission_rate" jdbcType="VARCHAR"/>
  151. <result property="premium" column="premium" jdbcType="VARCHAR"/>
  152. <result property="commissionAmount" column="commission_amount" jdbcType="VARCHAR"/>
  153. <result property="riskCode" column="risk_code" jdbcType="VARCHAR"/>
  154. <result property="noTaxPremium" column="no_tax_premium" jdbcType="VARCHAR"/>
  155. <result property="startDate" column="start_date" jdbcType="VARCHAR"/>
  156. <result property="endDate" column="end_date" jdbcType="VARCHAR"/>
  157. </resultMap>
  158. <!--订单 批改-->
  159. <resultMap id="InsOrderAdjustMap" type="com.jzg.commons.entity.orders.po.InsOrderAdjust">
  160. <id property="id" column="id" jdbcType="VARCHAR"/>
  161. <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  162. <result property="licenseNo" column="license_no" jdbcType="VARCHAR"/>
  163. <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
  164. <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
  165. <result property="productId" column="product_id" jdbcType="VARCHAR"/>
  166. <result property="productName" column="product_name" jdbcType="VARCHAR"/>
  167. <result property="status" column="status" jdbcType="VARCHAR"/>
  168. <result property="type" column="type" jdbcType="VARCHAR"/>
  169. <result property="premium" column="premium" jdbcType="VARCHAR"/>
  170. <result property="afterPremium" column="after_premium" jdbcType="VARCHAR"/>
  171. </resultMap>
  172. <!--订单 车船税-->
  173. <resultMap id="InsOrdersTaxMap" type="com.jzg.commons.entity.orders.po.InsOrdersTax">
  174. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  175. <result property="extendChar2" column="extend_char2" jdbcType="VARCHAR"/>
  176. <result property="taxRelief" column="tax_relief" jdbcType="VARCHAR"/>
  177. <result property="relifReason" column="relif_reason" jdbcType="VARCHAR"/>
  178. <result property="taxComCode" column="tax_com_code" jdbcType="VARCHAR"/>
  179. <result property="taxComName" column="tax_com_name" jdbcType="VARCHAR"/>
  180. <result property="taxDocumentDate" column="tax_document_date" jdbcType="VARCHAR"/>
  181. <result property="taxPaidAreaCode" column="tax_paid_area_code" jdbcType="VARCHAR"/>
  182. <result property="paidFreeCertificate" column="paid_free_certificate" jdbcType="VARCHAR"/>
  183. <result property="taxpayerName" column="taxpayer_name" jdbcType="VARCHAR"/>
  184. <result property="taxpayerIdentifier" column="taxpayer_identifier" jdbcType="VARCHAR"/>
  185. <result property="identifyNumber" column="identify_number" jdbcType="VARCHAR"/>
  186. <result property="taxRelifFlag" column="tax_relif_flag" jdbcType="VARCHAR"/>
  187. </resultMap>
  188. <resultMap id="InsOrdersVoMap" type="com.jzg.commons.entity.quote.vo.orders.InsOrdersVo">
  189. <result property="id" column="id" jdbcType="VARCHAR"/>
  190. <result property="quoteNo" column="quote_no" jdbcType="VARCHAR"/>
  191. <result property="agreementId" column="agreement_id" jdbcType="VARCHAR"/>
  192. <result property="companyId" column="company_id" jdbcType="VARCHAR"/>
  193. <result property="companyName" column="company_name" jdbcType="VARCHAR"/>
  194. <result property="productId" column="product_id" jdbcType="VARCHAR"/>
  195. <result property="productName" column="product_name" jdbcType="VARCHAR"/>
  196. <result property="schemeId" column="scheme_id" jdbcType="VARCHAR"/>
  197. <result property="auditStatus" column="audit_status" jdbcType="VARCHAR"/>
  198. <result property="auditComments" column="audit_comments" jdbcType="VARCHAR"/>
  199. <result property="createBy" column="create_by" jdbcType="VARCHAR"/>
  200. <result property="auditId" column="audit_id" jdbcType="VARCHAR"/>
  201. <result property="auditName" column="audit_name" jdbcType="VARCHAR"/>
  202. <result property="errorMessage" column="error_message" jdbcType="VARCHAR"/>
  203. <result property="orderType" column="order_type" jdbcType="VARCHAR"/>
  204. <result property="dockingPerson" column="docking_person" jdbcType="VARCHAR"/>
  205. <result property="dockingPersonPhone" column="docking_person_phone" jdbcType="VARCHAR"/>
  206. <association property="insOrders" column="{id=id}" select="selectOrdersById"/>
  207. <association property="carInfoVo" column="{orderNo=id}" select="selectOrdersCarInfoByOrderNo"/>
  208. <association property="insOrdersOtherInfo" column="{orderNo=id}" select="selectOrdersOtherByOrderNo"/>
  209. <association property="ordersExternal" column="{orderNo=id}" select="selectOrdersExternalFeeByOrderNo"/>
  210. <association property="insOrdersExternalPolicy" column="{orderNo=id}" select="selectExternalPolicyMap"/>
  211. <association property="vehicleAndVesselTaxVo" column="{orderNo=id}" select="selectOrdersTaxMap"/>
  212. <association property="imagesAdds" column="{orderNo=quote_no}" select="selectImageByOrderNo"/>
  213. <association property="insOrderAdjust" column="{orderNo=id}" select="selectOrderAdjust"/>
  214. <association property="insOrdersCosts" column="{orderNo=id}" select="selectOrdersCostsByOrderNo"/>
  215. <association property="insOrdersPolicy" column="{orderNo=id}" select="selectOrdersPolicyByOrderNo"/>
  216. <collection property="insOrdersRiskList" column="{orderNo=id}" select="selectOrdersRisk"/>
  217. <collection property="carUserInfoList" column="{orderNo=id}" select="selectCarUserInfo"/>
  218. <collection property="kindInfoVo" column="{orderNo=id}" select="selectKindMap"/>
  219. <collection property="accidentalDrivings" column="{orderNo=id}"
  220. select="selectOrdersAccidentalDrivingByOrderNo"/>
  221. <collection property="insOrdersAccidentalDrivings" column="{orderNo=id}"
  222. select="selectOrdersAccidentalDrivingByOrderNo"/>
  223. <collection property="feeOrdersVo" column="{orderNo=id}"
  224. select="selectInsFeeOrderByOrderNo"/>
  225. </resultMap>
  226. <select id="selectInsFeeOrderByOrderNo" resultType="com.jzg.commons.entity.vo.InsFeeOrdersVo">
  227. SELECT * FROM ins_fee_orders
  228. <where>
  229. and is_delete = 0
  230. and order_no = #{orderNo}
  231. </where>
  232. </select>
  233. <resultMap id="InsOrdersAccidentalDrivingMap" type="com.jzg.commons.entity.orders.po.InsOrdersAccidentalDriving">
  234. <id property="id" column="id" jdbcType="VARCHAR"/>
  235. <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  236. <result property="riskCode" column="risk_code" jdbcType="VARCHAR"/>
  237. <result property="riskName" column="risk_name" jdbcType="VARCHAR"/>
  238. <collection property="blameList" ofType="com.jzg.commons.entity.po.JyxBlame">
  239. <id column="blame_id" property="id"/>
  240. <result column="blame" property="blame"/>
  241. <result column="blame_code" property="blameCode"/>
  242. <result column="blame_coverage" property="blameCoverage"/>
  243. <result column="blame_premium" property="blamePremium"/>
  244. <result column="blame_system_code" property="systemCode"/>
  245. <result column="blame_jyx_config_id" property="jyxConfigId"/>
  246. </collection>
  247. </resultMap>
  248. <resultMap id="InsOrdersExternalPolicyMap" type="com.jzg.commons.entity.orders.po.InsOrdersExternalPolicy">
  249. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  250. <result property="jqPolicy" column="jq_policy" jdbcType="VARCHAR"/>
  251. <result property="syPolicy" column="sy_policy" jdbcType="VARCHAR"/>
  252. <result property="noPolicy" column="no_policy" jdbcType="VARCHAR"/>
  253. <result property="jqSign" column="jq_sign" jdbcType="VARCHAR"/>
  254. <collection property="uploadFiles" column="concatenated_string" notNullColumn="concatenated_string"
  255. select="selectUploadFilesIds"/>
  256. </resultMap>
  257. <!--影像资料-->
  258. <resultMap id="ImageMap" type="com.jzg.commons.entity.vo.InsTaskImagesVo">
  259. <result property="quoteNo" column="quote_no" jdbcType="VARCHAR"/>
  260. <collection property="images" ofType="com.jzg.commons.entity.vo.ImagesVo">
  261. <result property="id" column="id" jdbcType="VARCHAR"/>
  262. <result property="imageType" column="image_type" jdbcType="VARCHAR"/>
  263. <result property="imageId" column="image_id" jdbcType="VARCHAR"/>
  264. <result property="fileName" column="file_name" jdbcType="VARCHAR"/>
  265. <result property="fileType" column="file_type" jdbcType="VARCHAR"/>
  266. <result property="bucketName" column="bucket_name" jdbcType="VARCHAR"/>
  267. <result property="downloadUrl" column="download_url" jdbcType="VARCHAR"/>
  268. </collection>
  269. </resultMap>
  270. <!--费用-->
  271. <resultMap id="insOrdersExternalFeeMap" type="com.jzg.commons.entity.orders.po.InsOrdersExternalFee">
  272. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  273. <result property="costFlag" column="cost_flag" jdbcType="VARCHAR"/>
  274. <result property="costId" column="cost_id" jdbcType="VARCHAR"/>
  275. <result property="jqSuperviseCostsProportion" column="jq_supervise_costs_proportion" jdbcType="VARCHAR"/>
  276. <result property="jqOtherCostsProportion" column="jq_other_costs_proportion" jdbcType="VARCHAR"/>
  277. <result property="sySuperviseCostsProportion" column="sy_supervise_costs_proportion" jdbcType="VARCHAR"/>
  278. <result property="syOtherCostsProportion" column="sy_other_costs_proportion" jdbcType="VARCHAR"/>
  279. <result property="noSuperviseCostsProportion" column="no_supervise_costs_proportion" jdbcType="VARCHAR"/>
  280. <result property="noOtherCostsProportion" column="no_other_costs_proportion" jdbcType="VARCHAR"/>
  281. </resultMap>
  282. <!-- 费用-->
  283. <resultMap id="insOrdersCostsMap" type="com.jzg.commons.entity.orders.po.InsOrdersCosts">
  284. <id property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  285. <result property="jqPremium" column="jq_premium" jdbcType="VARCHAR"/>
  286. <result property="syPremium" column="sy_premium" jdbcType="VARCHAR"/>
  287. <result property="jyPremium" column="jy_premium" jdbcType="VARCHAR"/>
  288. <result property="sumPremium" column="sum_premium" jdbcType="VARCHAR"/>
  289. <result property="taxPremium" column="tax_premium" jdbcType="VARCHAR"/>
  290. <result property="jqRatio" column="jq_ratio" jdbcType="VARCHAR"/>
  291. <result property="syRatio" column="sy_ratio" jdbcType="VARCHAR"/>
  292. </resultMap>
  293. <resultMap id="sys_upload_files_map" type="com.jzg.commons.entity.po.SysUploadFiles">
  294. <result property="id" column="id" jdbcType="VARCHAR"/>
  295. <result property="fileName" column="file_name" jdbcType="VARCHAR"/>
  296. <result property="fileType" column="file_type" jdbcType="VARCHAR"/>
  297. <result property="fileSize" column="file_size" jdbcType="VARCHAR"/>
  298. <result property="bucketName" column="bucket_name" jdbcType="VARCHAR"/>
  299. </resultMap>
  300. <resultMap id="OrdersTaxMap" type="com.jzg.commons.entity.quote.vo.VehicleAndVesselTaxVo">
  301. <result property="orderNo" column="order_no" jdbcType="VARCHAR"/>
  302. <result property="extendChar2" column="extend_char2" jdbcType="VARCHAR"/>
  303. <result property="taxRelief" column="tax_relief" jdbcType="VARCHAR"/>
  304. <result property="relifReason" column="relif_reason" jdbcType="VARCHAR"/>
  305. <result property="taxComCode" column="tax_com_code" jdbcType="VARCHAR"/>
  306. <result property="taxComName" column="tax_com_name" jdbcType="VARCHAR"/>
  307. <result property="taxDocumentDate" column="tax_document_date" jdbcType="VARCHAR"/>
  308. <result property="taxPaidAreaCode" column="tax_paid_area_code" jdbcType="VARCHAR"/>
  309. <result property="paidFreeCertificate" column="paid_free_certificate" jdbcType="VARCHAR"/>
  310. <result property="taxpayerName" column="taxpayer_name" jdbcType="VARCHAR"/>
  311. <result property="taxpayerIdentifier" column="taxpayer_identifier" jdbcType="VARCHAR"/>
  312. <result property="identifyNumber" column="identify_number" jdbcType="VARCHAR"/>
  313. <result property="taxRelifFlag" column="tax_relif_flag" jdbcType="VARCHAR"/>
  314. </resultMap>
  315. <resultMap id="KindMap" type="com.jzg.commons.entity.quote.vo.KindInfoVo">
  316. <result property="kindCode" column="kind_code" jdbcType="VARCHAR"/>
  317. <result property="kindName" column="kind_name" jdbcType="VARCHAR"/>
  318. <result property="platformKindCode" column="platform_kind_code" jdbcType="VARCHAR"/>
  319. <result property="platformKindName" column="platform_kind_name" jdbcType="VARCHAR"/>
  320. <result property="amount" column="amount" jdbcType="VARCHAR"/>
  321. <result property="unitAmount" column="unit_amount" jdbcType="VARCHAR"/>
  322. <result property="quantity" column="quantity" jdbcType="VARCHAR"/>
  323. <result property="premium" column="premium" jdbcType="VARCHAR"/>
  324. <result property="deductibleRate" column="deductible_rate" jdbcType="VARCHAR"/>
  325. <result property="serviceTimes" column="service_times" jdbcType="VARCHAR"/>
  326. </resultMap>
  327. <select id="selectOrdersAccidentalDrivingByOrderNo" resultMap="InsOrdersAccidentalDrivingMap">
  328. select ioad.id, ioad.order_no, ioad.risk_code, ioad.risk_name,
  329. jb.id as blame_id,jb.blame,jb.blame_code,jb.blame_coverage,jb.blame_premium,jb.system_code as blame_system_code,jb.jyx_config_id as blame_jyx_config_id
  330. from ins_orders_accidental_driving ioad
  331. left join jyx_config jc on ioad.risk_code = jc.product_code AND jc.is_delete = 0
  332. left join jyx_blame jb on jc.id = jb.jyx_config_id AND jb.is_delete = 0
  333. <where>
  334. and ioad.is_delete = 0
  335. and ioad.order_no = #{orderNo}
  336. </where>
  337. </select>
  338. <select id="selectKindMap" resultMap="KindMap">
  339. select id,
  340. order_no,
  341. amount,
  342. kind_code,
  343. service_times,
  344. kind_name,
  345. unit_amount,
  346. deductible_rate,
  347. premium
  348. from ins_orders_kind
  349. <where>
  350. and is_delete = 0
  351. and order_no = #{orderNo}
  352. </where>
  353. </select>
  354. <select id="selectUploadFilesIds" resultMap="sys_upload_files_map">
  355. select id, file_name, bucket_name
  356. from sys_upload_files
  357. <where>
  358. and is_delete = 0
  359. and id in
  360. <foreach collection="concatenated_string.split(',')" item="item" open="(" separator="," close=")">
  361. #{item}
  362. </foreach>
  363. </where>
  364. </select>
  365. <select id="selectOrdersTaxMap" resultMap="OrdersTaxMap">
  366. select order_no,
  367. extend_char2,
  368. tax_relief,
  369. relif_reason,
  370. tax_com_code,
  371. tax_com_name,
  372. tax_document_date,
  373. tax_paid_area_code,
  374. paid_free_certificate,
  375. taxpayer_name,
  376. taxpayer_identifier,
  377. identify_number,
  378. tax_relif_flag
  379. from ins_orders_tax
  380. <where>
  381. and is_delete = 0
  382. and order_no = #{orderNo}
  383. </where>
  384. </select>
  385. <select id="selectOrdersPolicyByOrderNo" resultMap="InsOrdersPolicyMap">
  386. select order_no, jq_apply_no, jq_policy_no, sy_apply_no, sy_policy_no, jy_apply_no, jy_policy_no
  387. from ins_orders_policy
  388. <where>
  389. and is_delete = 0
  390. and order_no = #{orderNo}
  391. </where>
  392. </select>
  393. <select id="selectExternalPolicyMap" resultMap="InsOrdersExternalPolicyMap">
  394. SELECT order_no,
  395. jq_policy,
  396. sy_policy,
  397. no_policy,
  398. jq_sign,
  399. NULLIF(
  400. CONCAT_WS(', ',
  401. NULLIF(jq_policy, ''),
  402. NULLIF(sy_policy, ''),
  403. NULLIF(no_policy, ''),
  404. NULLIF(jq_sign, '')
  405. ),
  406. ''
  407. ) AS concatenated_string
  408. from ins_orders_external_policy
  409. <where>
  410. and is_delete = 0
  411. and order_no = #{orderNo}
  412. </where>
  413. </select>
  414. <select id="selectImageByOrderNo" resultMap="ImageMap">
  415. SELECT t.id, t.quote_no, t.image_type, t.image_id, f.file_name, f.file_type, f.bucket_name
  416. FROM ins_task_images t
  417. LEFT JOIN sys_upload_files f ON f.id = t.image_id and f.is_delete = 0
  418. <where>
  419. and t.is_delete = 0
  420. and t.quote_no = #{orderNo}
  421. </where>
  422. </select>
  423. <select id="selectOrdersExternalFeeByOrderNo" resultMap="insOrdersExternalFeeMap">
  424. select order_no,
  425. cost_flag,
  426. cost_id,
  427. jq_supervise_costs_proportion,
  428. jq_other_costs_proportion,
  429. sy_supervise_costs_proportion,
  430. sy_other_costs_proportion,
  431. no_supervise_costs_proportion,
  432. no_other_costs_proportion
  433. from ins_orders_external_fee
  434. <where>
  435. and order_no = #{orderNo}
  436. </where>
  437. </select>
  438. <select id="selectOrdersCostsByOrderNo" resultMap="insOrdersCostsMap">
  439. select order_no,
  440. jq_premium,
  441. sy_premium,
  442. jy_premium,
  443. sum_premium,
  444. total_amount,
  445. tax_premium,
  446. jq_ratio,
  447. sy_ratio
  448. from ins_orders_costs
  449. <where>
  450. and is_delete = 0
  451. and order_no = #{orderNo}
  452. </where>
  453. </select>
  454. <select id="selectOrdersRisk" resultMap="InsOrdersRiskMap">
  455. select id,
  456. order_no,
  457. risk_name,
  458. amount,
  459. commission_rate,
  460. premium,
  461. risk_code,
  462. no_tax_premium,
  463. commission_amount,
  464. start_date,
  465. end_date
  466. from ins_orders_risk
  467. <where>
  468. and is_delete = 0
  469. and order_no = #{orderNo}
  470. </where>
  471. </select>
  472. <select id="selectOrderAdjust" resultMap="InsOrderAdjustMap">
  473. select id,
  474. order_no,
  475. license_no,
  476. company_id,
  477. product_id,
  478. product_name,
  479. company_name,
  480. status,
  481. type,
  482. after_premium,
  483. premium
  484. from ins_order_adjust
  485. <where>
  486. and is_delete = 0
  487. and order_no = #{orderNo}
  488. AND status in (1, 2, 3)
  489. </where>
  490. order by create_time desc
  491. limit 1
  492. </select>
  493. <select id="selectOrdersTax" resultMap="InsOrdersTaxMap">
  494. select order_no,
  495. extend_char2,
  496. tax_relief,
  497. relif_reason,
  498. tax_com_code,
  499. tax_com_name,
  500. tax_document_date,
  501. tax_paid_area_code,
  502. paid_free_certificate,
  503. taxpayer_name,
  504. taxpayer_identifier,
  505. identify_number,
  506. tax_relif_flag
  507. from ins_orders_tax
  508. <where>
  509. and is_delete = 0
  510. and order_no = #{orderNo}
  511. </where>
  512. </select>
  513. <select id="selectOrdersKind" resultMap="OrdersKindMap">
  514. select order_no, amount, kind_code, service_times, kind_name, unit_amount, deductible_rate
  515. from ins_orders_kind
  516. <where>
  517. and is_delete = 0
  518. and order_no = #{orderNo}
  519. </where>
  520. </select>
  521. <select id="pageList" resultType="com.jzg.commons.entity.vo.OrdersListVo">
  522. SELECT
  523. o.id,
  524. o.quote_no,
  525. o.audit_id,
  526. o.audit_name,
  527. o.company_name,
  528. o.create_by,
  529. o.create_time,
  530. o.order_status,
  531. c.license_no,
  532. s.jq_premium,
  533. s.sy_premium,
  534. s.jy_premium,
  535. s.sum_premium,
  536. s.tax_premium,
  537. o.real_quote_user_id,
  538. suji.name as real_quote_user_name,
  539. sd.name as salesmanCompany,
  540. ioa.status as adjustStatus,
  541. ioa.id as adjustId,
  542. ioa1.after_premium as adjustPremium
  543. FROM
  544. ins_orders o
  545. LEFT JOIN ins_orders_car_info c ON c.order_no = o.id and c.is_delete = 0
  546. LEFT JOIN ins_orders_costs s ON o.id = s.order_no and s.is_delete = 0
  547. LEFT JOIN sys_user su ON su.mobile = o.real_quote_user_id and su.is_delete = 0
  548. LEFT JOIN sys_user_jzg_info suji ON suji.user_id = su.id AND suji.system_code = #{insOrdersParam.systemCode} and suji.is_delete = 0
  549. LEFT JOIN esm_ins_company eic on o.company_id = eic.id and eic.is_delete = 0
  550. left join sys_dept sd on sd.id = suji.dept_id and sd.is_delete = 0
  551. left join
  552. (
  553. SELECT *
  554. FROM (
  555. SELECT t.*,
  556. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  557. FROM ins_order_adjust t where t.is_delete = 0
  558. ) x WHERE x.rn = 1
  559. ) ioa ON o.id = ioa.order_no
  560. left join
  561. (
  562. SELECT *
  563. FROM (
  564. SELECT t.*,
  565. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  566. FROM ins_order_adjust t where t.status = 2 and t.is_delete = 0
  567. ) x WHERE x.rn = 1
  568. ) ioa1 ON o.id = ioa1.order_no
  569. <where>
  570. and o.is_delete = 0 and o.parent_id != 0
  571. <if test="insOrdersParam.createBy != null and insOrdersParam.createBy != ''">
  572. AND o.create_by = #{insOrdersParam.createBy}
  573. </if>
  574. <if test="insOrdersParam.systemCode != null and insOrdersParam.systemCode != ''">
  575. AND o.system_code = #{insOrdersParam.systemCode}
  576. </if>
  577. <if test="insOrdersParam.orderNo != null and insOrdersParam.orderNo != ''">
  578. AND o.quote_no = #{insOrdersParam.orderNo}
  579. </if>
  580. <if test="insOrdersParam.orderId != null and insOrdersParam.orderId != ''">
  581. AND o.id = #{insOrdersParam.orderId}
  582. </if>
  583. <if test="insOrdersParam.parentId == 0 ">
  584. AND o.parent_id = 0
  585. </if>
  586. <if test="insOrdersParam.parentId == 1 ">
  587. AND o.parent_id != 0
  588. </if>
  589. <if test="insOrdersParam.isTemporarily != null">
  590. AND o.is_temporarily = #{insOrdersParam.isTemporarily}
  591. </if>
  592. <if test="insOrdersParam.entryStatus != null and insOrdersParam.entryStatus != ''">
  593. AND o.entry_status = #{insOrdersParam.entryStatus}
  594. </if>
  595. <if test="insOrdersParam.companyName != null and insOrdersParam.companyName != ''">
  596. AND o.company_name = #{insOrdersParam.companyName}
  597. </if>
  598. <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
  599. AND o.company_id = #{insOrdersParam.companyId}
  600. </if>
  601. <if test="insOrdersParam.salesman != null and insOrdersParam.salesman != ''">
  602. AND suji.name = #{insOrdersParam.salesman}
  603. </if>
  604. <if test="insOrdersParam.salesmanCompany != null and insOrdersParam.salesmanCompany != ''">
  605. AND sd.name = #{insOrdersParam.salesmanCompany}
  606. </if>
  607. <if test="insOrdersParam.auditStatus != null and insOrdersParam.auditStatus != ''">
  608. AND o.audit_status = #{insOrdersParam.auditStatus}
  609. </if>
  610. <if test="insOrdersParam.adjustStatus!= null and insOrdersParam.adjustStatus!= ''">
  611. AND ioa.status = #{insOrdersParam.adjustStatus}
  612. </if>
  613. <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
  614. AND c.license_no = #{insOrdersParam.licenseNo}
  615. </if>
  616. <if test="insOrdersParam.startDate != null and insOrdersParam.endDate != null">
  617. AND o.create_time BETWEEN #{insOrdersParam.startDate} and #{insOrdersParam.endDate}
  618. </if>
  619. </where>
  620. order by o.create_time desc
  621. </select>
  622. <select id="selectOrdersById" resultMap="InsOrdersMap">
  623. select id,
  624. quote_no,
  625. agreement_id,
  626. api_type,
  627. order_status,
  628. company_id,
  629. company_name,
  630. real_quote_user_id,
  631. product_id,
  632. product_name,
  633. entry_status,
  634. order_source,
  635. audit_id,
  636. audit_name,
  637. audit_time,
  638. audit_opinion,
  639. pay_time,
  640. pay_link,
  641. ins_order_no,
  642. signing_time,
  643. is_temporarily,
  644. docking_person,
  645. docking_person_phone
  646. from ins_orders
  647. <where>
  648. and is_delete = 0
  649. and id = #{id}
  650. </where>
  651. </select>
  652. <select id="selectCarUserInfo" resultMap="carUserInfoMap">
  653. select order_no,
  654. policy_person_type,
  655. person_type,
  656. car_owner,
  657. cer_type,
  658. `name`,
  659. identify_number,
  660. age,
  661. gender,
  662. province_code,
  663. city_code,
  664. county_code,
  665. addr,
  666. identify_valid_date,
  667. identify_valid_end_date,
  668. mobile,
  669. landline,
  670. contact,
  671. contact_identify_number,
  672. contact_identify_valid_date,
  673. contact_identify_valid_end_date,
  674. email
  675. from ins_orders_car_user_info
  676. <where>
  677. and is_delete = 0
  678. and order_no = #{orderNo}
  679. </where>
  680. </select>
  681. <select id="selectOrdersCarInfoByOrderNo" resultMap="carInfoMap">
  682. select order_no,
  683. license_no,
  684. is_registered,
  685. vin_no,
  686. brand_name,
  687. engine_no,
  688. car_year,
  689. seat_count,
  690. complete_kerb_mass,
  691. limit_load,
  692. power_scale,
  693. purchase_price,
  694. car_nature_code,
  695. vehicle_use_code,
  696. car_type_code,
  697. car_kind_code,
  698. energy_type_code,
  699. property_code,
  700. license_color_code,
  701. car_kind_detail_id_code,
  702. license_kind_code,
  703. register_date,
  704. issue_date,
  705. transfer_date,
  706. transfer,
  707. transfer_bi,
  708. displacement
  709. from ins_orders_car_info
  710. <where>
  711. and is_delete = 0
  712. and order_no = #{orderNo}
  713. </where>
  714. </select>
  715. <select id="selectOrdersOtherByOrderNo" resultMap="InsOrdersOtherMap">
  716. SELECT ot.order_no,
  717. ot.score,
  718. ot.score_json,
  719. ot.jq_score,
  720. ot.sy_score,
  721. ot.loss_ration,
  722. ot.jq_loss_ration,
  723. ot.sy_loss_ration,
  724. ot.jq_renewal,
  725. ot.sy_renewal,
  726. ot.jq_claims,
  727. ot.sy_claims,
  728. ot.is_djq,
  729. ot.jq_adjust_rate,
  730. ot.sy_adjust_rate,
  731. ot.total_adjust_rate,
  732. ot.tp_color_score,
  733. o.signing_time,
  734. o.company_name,
  735. co.jq_premium,
  736. co.sy_premium,
  737. co.jy_premium,
  738. co.sum_premium,
  739. co.tax_premium,
  740. p.jq_policy_no,
  741. p.sy_policy_no,
  742. ot.fee_no_description
  743. FROM ins_orders_other ot
  744. LEFT JOIN ins_orders o ON o.quote_no = ot.order_no and o.is_delete = 0
  745. LEFT JOIN ins_orders_costs co ON co.order_no = ot.order_no and co.is_delete = 0
  746. LEFT JOIN ins_orders_policy p ON p.order_no = ot.order_no and p.is_delete = 0
  747. <where>
  748. and ot.is_delete = 0
  749. and ot.order_no = #{orderNo}
  750. </where>
  751. </select>
  752. <select id="getById" resultMap="InsOrdersVoMap">
  753. select id,
  754. signing_time,
  755. entry_status,
  756. quote_no,
  757. agreement_id,
  758. company_id,
  759. scheme_id,
  760. company_name,
  761. product_id,
  762. product_name,
  763. real_quote_user_id,
  764. audit_status,
  765. audit_comments,
  766. create_by,
  767. audit_id,
  768. audit_name,
  769. error_message,
  770. create_time,
  771. create_by,
  772. update_time,
  773. update_by,
  774. CASE entry_status
  775. WHEN 1 THEN '车险出单'
  776. WHEN 2 THEN '代客录单'
  777. WHEN 3 THEN '补录订单'
  778. ELSE ''
  779. END AS order_type,
  780. docking_person , docking_person_phone
  781. from ins_orders
  782. <where>
  783. and is_delete = 0
  784. and id = #{id}
  785. </where>
  786. </select>
  787. <select id="queryNewQuoteListByQuoteNo" resultMap="InsOrdersVoMap">
  788. SELECT i.*
  789. FROM ins_orders i
  790. JOIN (SELECT company_id, MAX(create_time) AS max_time
  791. FROM ins_orders
  792. WHERE quote_no = #{quoteNo}
  793. AND order_status in (1, 2, 3, 4)
  794. AND is_delete = 0
  795. GROUP BY company_id) t
  796. ON i.company_id = t.company_id AND i.create_time = t.max_time
  797. WHERE i.quote_no = #{quoteNo}
  798. AND i.is_delete = 0;
  799. </select>
  800. <select id="queryList" resultMap="InsOrdersVoMap">
  801. select id,
  802. quote_no,
  803. company_name,
  804. audit_status,
  805. audit_comments,
  806. create_by,
  807. audit_id,
  808. audit_name
  809. from ins_orders
  810. <where>
  811. and is_delete = 0
  812. </where>
  813. order by create_time desc
  814. </select>
  815. <!--查询车险报价订单 modify by lipf 2026年4月28日09:22:46 和田智确认后,将主订单过滤掉-->
  816. <select id="queryOrderList" resultType="com.jzg.commons.entity.orders.vo.OrderListVo">
  817. SELECT
  818. io.id as order_no,
  819. io.quote_no as no,
  820. io.company_id,
  821. io.company_name,
  822. io.product_id as productCode,
  823. io.product_name as productName,
  824. io.order_status,
  825. io.create_time,
  826. io.create_by,
  827. io.error_message,
  828. io.parent_id,
  829. ioci.license_no,
  830. ioci.vin_no,
  831. owner_u.name as owner_name,
  832. owner_u.mobile as owner_mobile,
  833. policy_u.name as policy_name,
  834. policy_u.mobile as policy_mobile,
  835. insur_u.name as insur_name,
  836. insur_u.mobile as insur_mobile,
  837. iorci.start_date as ci_start_date,
  838. iorbi.start_date as bi_start_date,
  839. iorco.sum_premium as sumPremium,
  840. iorco.jq_premium as ciPremium,
  841. iorco.sy_premium as biPremium,
  842. iorco.jy_premium as niPremium,
  843. iorco.tax_premium as vvTax,
  844. su.username as recorder,
  845. suji.name as salesmanInfo,
  846. suji.id as jzgInfoId,
  847. sujis.type_attr as salesmanType,
  848. pa.agreement_name as agreementName,
  849. sd.name as deptName,
  850. io.pay_link as paymentLink,
  851. ioa.status as adjustStatus,
  852. ioa.id as adjustId,
  853. ioa1.after_premium as adjustPremium
  854. FROM
  855. ins_orders io
  856. LEFT JOIN ins_orders_car_info ioci ON ioci.order_no = io.id and ioci.is_delete = 0
  857. LEFT JOIN
  858. ins_orders_car_user_info owner_u on owner_u.order_no = io.id and owner_u.policy_person_type = 1 and owner_u.is_delete = 0
  859. left JOIN
  860. ins_orders_car_user_info policy_u on policy_u.order_no = io.id and policy_u.policy_person_type = 2 and policy_u.is_delete = 0
  861. left JOIN
  862. ins_orders_car_user_info insur_u on insur_u.order_no = io.id and insur_u.policy_person_type = 3 and insur_u.is_delete = 0
  863. left join
  864. ins_orders_risk iorci on iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
  865. left join
  866. ins_orders_risk iorbi on iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
  867. LEFT JOIN
  868. ins_orders_costs iorco on iorco.order_no = io.id and iorco.is_delete = 0
  869. left join
  870. sys_user su on su.mobile = io.real_quote_user_id and su.is_delete = 0
  871. left join
  872. sys_user_jzg_info suji on suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and suji.is_delete = 0
  873. left join
  874. sys_user_jzg_info_salesman sujis ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
  875. left join
  876. sys_dept sd on sd.id = suji.dept_id and sd.is_delete = 0
  877. left join
  878. ptl_agreement pa on pa.id = io.agreement_id and pa.is_delete = 0
  879. left join
  880. (
  881. SELECT *
  882. FROM (
  883. SELECT t.*,
  884. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  885. FROM ins_order_adjust t where t.is_delete = 0
  886. ) x WHERE x.rn = 1
  887. ) ioa ON io.id = ioa.order_no
  888. left join
  889. (
  890. SELECT *
  891. FROM (
  892. SELECT t.*,
  893. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  894. FROM ins_order_adjust t where t.status = 2 and t.is_delete = 0
  895. ) x WHERE x.rn = 1
  896. ) ioa1 ON io.id = ioa1.order_no
  897. <where>
  898. and io.is_delete = 0 and io.parent_id != '0' and sujis.type_attr NOT IN (1,2,3,4)
  899. <if test="insOrdersParam.jzgInfoId != null and insOrdersParam.jzgInfoId != ''">
  900. and io.real_quote_user_id in (select bbb.mobile from sys_user bbb where bbb.id in ( select ss.user_id
  901. from sys_user_jzg_info ss where 1 =1 and (ss.leader_id = #{insOrdersParam.jzgInfoId} or ss.id
  902. =#{insOrdersParam.jzgInfoId}) and ss.is_delete = 0 ) and bbb.is_delete = 0 )
  903. </if>
  904. <if test="insOrdersParam.orderNo != null and insOrdersParam.orderNo != ''">
  905. AND io.id = #{insOrdersParam.orderNo}
  906. </if>
  907. <if test="insOrdersParam.parentId != null and insOrdersParam.parentId != ''">
  908. AND io.parent_id = #{insOrdersParam.parentId}
  909. </if>
  910. <if test="insOrdersParam.parentIds != null and insOrdersParam.parentIds.size() > 0">
  911. AND io.parent_id IN
  912. <foreach collection="insOrdersParam.parentIds" item="pid" open="(" separator="," close=")">
  913. #{pid}
  914. </foreach>
  915. </if>
  916. <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
  917. AND ioci.license_no = #{insOrdersParam.licenseNo}
  918. </if>
  919. <if test="insOrdersParam.orderStatus!= null and insOrdersParam.orderStatus!= ''">
  920. AND io.order_status = #{insOrdersParam.orderStatus}
  921. </if>
  922. <if test="insOrdersParam.adjustStatus!= null and insOrdersParam.adjustStatus!= ''">
  923. AND ioa.status = #{insOrdersParam.adjustStatus}
  924. </if>
  925. <if test="insOrdersParam.salesman!= null">
  926. AND io.real_quote_user_id = #{insOrdersParam.salesman}
  927. </if>
  928. <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != ''and insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
  929. AND io.create_time BETWEEN #{insOrdersParam.startDate} and #{insOrdersParam.endDate}
  930. </if>
  931. <if test="insOrdersParam.companyName != null and insOrdersParam.companyName != ''">
  932. AND io.company_name = #{insOrdersParam.companyName}
  933. </if>
  934. <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
  935. AND io.company_id = #{insOrdersParam.companyId}
  936. </if>
  937. <if test="insOrdersParam.productCode != null and insOrdersParam.productCode != ''">
  938. AND io.product_id = #{insOrdersParam.productCode}
  939. </if>
  940. <if test="insOrdersParam.productName != null and insOrdersParam.productName != ''">
  941. AND io.product_name = #{insOrdersParam.productName}
  942. </if>
  943. <if test="insOrdersParam.vinNo != null and insOrdersParam.vinNo != ''">
  944. AND ioci.vin_no = #{insOrdersParam.vinNo}
  945. </if>
  946. <if test="insOrdersParam.ownerName != null and insOrdersParam.ownerName != ''">
  947. AND owner_u.name = #{insOrdersParam.ownerName}
  948. </if>
  949. <if test="insOrdersParam.ownerMobile != null and insOrdersParam.ownerMobile != ''">
  950. AND owner_u.mobile = #{insOrdersParam.ownerMobile}
  951. </if>
  952. <if test="insOrdersParam.policyName != null and insOrdersParam.policyName != ''">
  953. AND policy_u.name = #{insOrdersParam.policyName}
  954. </if>
  955. <if test="insOrdersParam.policyMobile != null and insOrdersParam.policyMobile != ''">
  956. AND policy_u.mobile = #{insOrdersParam.policyMobile}
  957. </if>
  958. <if test="insOrdersParam.insurName != null and insOrdersParam.insurName != ''">
  959. AND insur_u.name = #{insOrdersParam.insurName}
  960. </if>
  961. <if test="insOrdersParam.insurMobile != null and insOrdersParam.insurMobile != ''">
  962. AND insur_u.mobile = #{insOrdersParam.insurMobile}
  963. </if>
  964. <if test="insOrdersParam.ciStartDate != null">
  965. AND iorci.start_date = #{insOrdersParam.ciStartDate}
  966. </if>
  967. <if test="insOrdersParam.biStartDate != null">
  968. AND iorbi.start_date = #{insOrdersParam.biStartDate}
  969. </if>
  970. <if test="insOrdersParam.sumPremium != null">
  971. AND iorco.sum_premium = #{insOrdersParam.sumPremium}
  972. </if>
  973. <if test="insOrdersParam.ciPremium != null">
  974. AND iorco.jq_premium = #{insOrdersParam.ciPremium}
  975. </if>
  976. <if test="insOrdersParam.biPremium != null">
  977. AND iorco.sy_premium = #{insOrdersParam.biPremium}
  978. </if>
  979. <if test="insOrdersParam.niPremium != null">
  980. AND iorco.jy_premium = #{insOrdersParam.niPremium}
  981. </if>
  982. <if test="insOrdersParam.vvTax != null">
  983. AND iorco.tax_premium = #{insOrdersParam.vvTax}
  984. </if>
  985. <if test="insOrdersParam.salesmanInfo != null and insOrdersParam.salesmanInfo != ''">
  986. AND su.username = #{insOrdersParam.salesmanInfo}
  987. </if>
  988. <if test="insOrdersParam.salesmanType != null and insOrdersParam.salesmanType != ''">
  989. AND sujis.type_attr = #{insOrdersParam.salesmanType}
  990. </if>
  991. <if test="insOrdersParam.agreementName != null and insOrdersParam.agreementName != ''">
  992. AND pa.agreement_name = #{insOrdersParam.agreementName}
  993. </if>
  994. <if test="insOrdersParam.deptId != null and insOrdersParam.deptId != ''">
  995. AND sd.id = #{insOrdersParam.deptId}
  996. </if>
  997. <if test="insOrdersParam.deptName != null and insOrdersParam.deptName != ''">
  998. AND sd.name = #{insOrdersParam.deptName}
  999. </if>
  1000. <if test="insOrdersParam.paymentLink != null and insOrdersParam.paymentLink != ''">
  1001. AND io.pay_link = #{insOrdersParam.paymentLink}
  1002. </if>
  1003. <if test="insOrdersParam.adjustId != null">
  1004. AND ioa.id = #{insOrdersParam.adjustId}
  1005. </if>
  1006. <if test="insOrdersParam.adjustPremium != null">
  1007. AND ioa1.after_premium = #{insOrdersParam.adjustPremium}
  1008. </if>
  1009. <if test="insOrdersParam.startSigningTime != null and insOrdersParam.startSigningTime != ''and insOrdersParam.endSigningTime != null and insOrdersParam.endSigningTime != ''">
  1010. AND io.signing_time BETWEEN #{insOrdersParam.startSigningTime} and #{insOrdersParam.endSigningTime}
  1011. </if>
  1012. <if test="insOrdersParam.startPayTime != null and insOrdersParam.startPayTime != ''and insOrdersParam.endPayTime != null and insOrdersParam.endPayTime != ''">
  1013. AND io.pay_time BETWEEN #{insOrdersParam.startPayTime} and #{insOrdersParam.endPayTime}
  1014. </if>
  1015. </where>
  1016. order by io.create_time desc
  1017. </select>
  1018. <select id="queryOrderListAll" resultType="com.jzg.commons.entity.orders.vo.OrderListVo">
  1019. SELECT
  1020. io.id as order_no,
  1021. io.company_id,
  1022. io.company_name,
  1023. io.product_id as productCode,
  1024. io.product_name as productName,
  1025. io.order_status,
  1026. io.create_time,
  1027. ioci.license_no,
  1028. ioci.vin_no,
  1029. owner_u.name as owner_name,
  1030. owner_u.mobile as owner_mobile,
  1031. policy_u.name as policy_name,
  1032. policy_u.mobile as policy_mobile,
  1033. insur_u.name as insur_name,
  1034. insur_u.mobile as insur_mobile,
  1035. iorci.start_date as ci_start_date,
  1036. iorbi.start_date as bi_start_date,
  1037. iorco.sum_premium as sumPremium,
  1038. iorco.jq_premium as ciPremium,
  1039. iorco.sy_premium as biPremium,
  1040. iorco.jy_premium as niPremium,
  1041. iorco.tax_premium as vvTax,
  1042. su.username as recorder,
  1043. suji.name as salesmanInfo,
  1044. sujis.type_attr as salesmanType,
  1045. pa.agreement_name as agreementName,
  1046. sd.name as deptName,
  1047. io.pay_link as paymentLink,
  1048. ioa.status as adjustStatus,
  1049. ioa.id as adjustId,
  1050. ioa1.after_premium as adjustPremium
  1051. FROM
  1052. ins_orders io
  1053. LEFT JOIN ins_orders_car_info ioci
  1054. ON ioci.order_no = io.id and ioci.is_delete = 0
  1055. LEFT JOIN ins_orders_car_user_info owner_u
  1056. ON owner_u.order_no = io.id and owner_u.policy_person_type = 1 and owner_u.is_delete = 0
  1057. LEFT JOIN ins_orders_car_user_info policy_u
  1058. ON policy_u.order_no = io.id and policy_u.policy_person_type = 2 and policy_u.is_delete = 0
  1059. LEFT JOIN ins_orders_car_user_info insur_u
  1060. ON insur_u.order_no = io.id and insur_u.policy_person_type = 3 and insur_u.is_delete = 0
  1061. LEFT JOIN ins_orders_risk iorci
  1062. ON iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
  1063. LEFT JOIN ins_orders_risk iorbi
  1064. ON iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
  1065. LEFT JOIN ins_orders_costs iorco
  1066. ON iorco.order_no = io.id and iorco.is_delete = 0
  1067. LEFT JOIN sys_user su
  1068. ON su.mobile = io.real_quote_user_id and su.is_delete = 0
  1069. LEFT JOIN sys_user_jzg_info suji
  1070. ON suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and suji.is_delete = 0
  1071. LEFT JOIN sys_user_jzg_info_salesman sujis
  1072. ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
  1073. LEFT JOIN sys_dept sd
  1074. ON sd.id = suji.dept_id and sd.is_delete = 0
  1075. LEFT JOIN ptl_agreement pa
  1076. ON pa.id = io.agreement_id and pa.is_delete = 0
  1077. <!-- 优化1: 替代原 ROW_NUMBER() 获取最新一条 adjust 记录 -->
  1078. LEFT JOIN ins_order_adjust ioa
  1079. ON ioa.id = (
  1080. SELECT t.id
  1081. FROM ins_order_adjust t
  1082. WHERE t.order_no = io.id AND t.is_delete = 0
  1083. ORDER BY t.create_time DESC, t.id DESC
  1084. LIMIT 1
  1085. )
  1086. <!-- 优化2: 替代原 ROW_NUMBER() 获取 status=2 的最新一条 adjust 记录 -->
  1087. LEFT JOIN ins_order_adjust ioa1
  1088. ON ioa1.id = (
  1089. SELECT t.id
  1090. FROM ins_order_adjust t
  1091. WHERE t.order_no = io.id AND t.status = 2 AND t.is_delete = 0
  1092. ORDER BY t.create_time DESC, t.id DESC
  1093. LIMIT 1
  1094. )
  1095. <where>
  1096. and io.is_delete = 0 and sujis.type_attr NOT IN (1,2,3,4)
  1097. <if test="insOrdersParam.orderNo != null and insOrdersParam.orderNo != ''">
  1098. AND io.id = #{insOrdersParam.orderNo}
  1099. </if>
  1100. <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
  1101. AND ioci.license_no = #{insOrdersParam.licenseNo}
  1102. </if>
  1103. <if test="insOrdersParam.orderStatus != null and insOrdersParam.orderStatus != ''">
  1104. AND io.order_status = #{insOrdersParam.orderStatus}
  1105. </if>
  1106. <if test="insOrdersParam.adjustStatus != null and insOrdersParam.adjustStatus != ''">
  1107. AND ioa.status = #{insOrdersParam.adjustStatus}
  1108. </if>
  1109. <if test="insOrdersParam.salesman != null">
  1110. AND io.real_quote_user_id = #{insOrdersParam.salesman}
  1111. </if>
  1112. <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
  1113. AND io.company_id = #{insOrdersParam.companyId}
  1114. </if>
  1115. <!-- 创建时间范围 -->
  1116. <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != ''">
  1117. AND io.create_time &gt;= #{insOrdersParam.startDate}
  1118. </if>
  1119. <if test="insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
  1120. AND io.create_time &lt;= #{insOrdersParam.endDate}
  1121. </if>
  1122. <if test="insOrdersParam.companyName != null and insOrdersParam.companyName != ''">
  1123. AND io.company_name = #{insOrdersParam.companyName}
  1124. </if>
  1125. <if test="insOrdersParam.productCode != null and insOrdersParam.productCode != ''">
  1126. AND io.product_id = #{insOrdersParam.productCode}
  1127. </if>
  1128. <if test="insOrdersParam.productName != null and insOrdersParam.productName != ''">
  1129. AND io.product_name = #{insOrdersParam.productName}
  1130. </if>
  1131. <if test="insOrdersParam.vinNo != null and insOrdersParam.vinNo != ''">
  1132. AND ioci.vin_no = #{insOrdersParam.vinNo}
  1133. </if>
  1134. <if test="insOrdersParam.ownerName != null and insOrdersParam.ownerName != ''">
  1135. AND owner_u.name = #{insOrdersParam.ownerName}
  1136. </if>
  1137. <if test="insOrdersParam.ownerMobile != null and insOrdersParam.ownerMobile != ''">
  1138. AND owner_u.mobile = #{insOrdersParam.ownerMobile}
  1139. </if>
  1140. <if test="insOrdersParam.policyName != null and insOrdersParam.policyName != ''">
  1141. AND policy_u.name = #{insOrdersParam.policyName}
  1142. </if>
  1143. <if test="insOrdersParam.policyMobile != null and insOrdersParam.policyMobile != ''">
  1144. AND policy_u.mobile = #{insOrdersParam.policyMobile}
  1145. </if>
  1146. <if test="insOrdersParam.insurName != null and insOrdersParam.insurName != ''">
  1147. AND insur_u.name = #{insOrdersParam.insurName}
  1148. </if>
  1149. <if test="insOrdersParam.insurMobile != null and insOrdersParam.insurMobile != ''">
  1150. AND insur_u.mobile = #{insOrdersParam.insurMobile}
  1151. </if>
  1152. <if test="insOrdersParam.ciStartDate != null">
  1153. AND iorci.start_date = #{insOrdersParam.ciStartDate}
  1154. </if>
  1155. <if test="insOrdersParam.biStartDate != null">
  1156. AND iorbi.start_date = #{insOrdersParam.biStartDate}
  1157. </if>
  1158. <if test="insOrdersParam.sumPremium != null">
  1159. AND iorco.sum_premium = #{insOrdersParam.sumPremium}
  1160. </if>
  1161. <if test="insOrdersParam.ciPremium != null">
  1162. AND iorco.jq_premium = #{insOrdersParam.ciPremium}
  1163. </if>
  1164. <if test="insOrdersParam.biPremium != null">
  1165. AND iorco.sy_premium = #{insOrdersParam.biPremium}
  1166. </if>
  1167. <if test="insOrdersParam.niPremium != null">
  1168. AND iorco.jy_premium = #{insOrdersParam.niPremium}
  1169. </if>
  1170. <if test="insOrdersParam.vvTax != null">
  1171. AND iorco.tax_premium = #{insOrdersParam.vvTax}
  1172. </if>
  1173. <if test="insOrdersParam.recorder != null and insOrdersParam.recorder != ''">
  1174. AND su.username = #{insOrdersParam.recorder}
  1175. </if>
  1176. <if test="insOrdersParam.salesmanInfo != null and insOrdersParam.salesmanInfo != ''">
  1177. AND suji.name = #{insOrdersParam.salesmanInfo}
  1178. </if>
  1179. <if test="insOrdersParam.salesmanType != null and insOrdersParam.salesmanType != ''">
  1180. AND sujis.type_attr = #{insOrdersParam.salesmanType}
  1181. </if>
  1182. <if test="insOrdersParam.agreementName != null and insOrdersParam.agreementName != ''">
  1183. AND pa.agreement_name = #{insOrdersParam.agreementName}
  1184. </if>
  1185. <if test="insOrdersParam.deptId != null and insOrdersParam.deptId != ''">
  1186. AND sd.id = #{insOrdersParam.deptId}
  1187. </if>
  1188. <if test="insOrdersParam.deptName != null and insOrdersParam.deptName != ''">
  1189. AND sd.name = #{insOrdersParam.deptName}
  1190. </if>
  1191. <if test="insOrdersParam.paymentLink != null and insOrdersParam.paymentLink != ''">
  1192. AND io.pay_link = #{insOrdersParam.paymentLink}
  1193. </if>
  1194. <if test="insOrdersParam.adjustId != null">
  1195. AND ioa.id = #{insOrdersParam.adjustId}
  1196. </if>
  1197. <if test="insOrdersParam.adjustPremium != null">
  1198. AND ioa1.after_premium = #{insOrdersParam.adjustPremium}
  1199. </if>
  1200. <!-- 签单时间范围优化 -->
  1201. <if test="insOrdersParam.startSigningTime != null and insOrdersParam.startSigningTime != ''">
  1202. AND io.signing_time &gt;= #{insOrdersParam.startSigningTime}
  1203. </if>
  1204. <if test="insOrdersParam.endSigningTime != null and insOrdersParam.endSigningTime != ''">
  1205. AND io.signing_time &lt;= #{insOrdersParam.endSigningTime}
  1206. </if>
  1207. <!-- 支付时间范围优化 -->
  1208. <if test="insOrdersParam.startPayTime != null and insOrdersParam.startPayTime != ''">
  1209. AND io.pay_time &gt;= #{insOrdersParam.startPayTime}
  1210. </if>
  1211. <if test="insOrdersParam.endPayTime != null and insOrdersParam.endPayTime != ''">
  1212. AND io.pay_time &lt;= #{insOrdersParam.endPayTime}
  1213. </if>
  1214. </where>
  1215. order by io.create_time desc
  1216. </select>
  1217. <!-- 主订单列表:仅查询主订单表 ins_orders,parent_id=0,不联表;筛选条件仅支持主表字段 -->
  1218. <select id="queryMainOrderList" resultType="com.jzg.commons.entity.orders.vo.OrderListVo">
  1219. WITH RECURSIVE leader_tree AS (
  1220. SELECT id, leader_id, 1 AS depth
  1221. FROM sys_user_jzg_info
  1222. WHERE id = #{insOrdersParam.jzgInfoId}
  1223. AND is_delete = 0
  1224. UNION ALL
  1225. SELECT t.id, t.leader_id, lt.depth + 1
  1226. FROM sys_user_jzg_info t
  1227. INNER JOIN leader_tree lt ON t.leader_id = lt.id
  1228. WHERE t.is_delete = 0
  1229. AND lt.depth <![CDATA[ < ]]> 10
  1230. )
  1231. SELECT
  1232. io.id as order_no,
  1233. io.quote_no as no,
  1234. io.company_id,
  1235. io.company_name,
  1236. io.product_id as productCode,
  1237. io.product_name as productName,
  1238. io.order_status,
  1239. io.create_time,
  1240. io.create_by,
  1241. io.error_message,
  1242. io.pay_link as paymentLink,
  1243. io.signing_time,
  1244. io.pay_time,
  1245. ioci.license_no as licenseNo,
  1246. ioci.vin_no as vinNo
  1247. FROM
  1248. ins_orders io
  1249. LEFT JOIN ins_orders_car_info ioci ON ioci.order_no = io.id and ioci.is_delete = 0
  1250. <where>
  1251. and io.is_delete = 0 and io.parent_id = '0'
  1252. <if test="insOrdersParam.jzgInfoId != null and insOrdersParam.jzgInfoId != ''">
  1253. and io.real_quote_user_id in (
  1254. select bbb.mobile
  1255. from sys_user bbb
  1256. inner join sys_user_jzg_info ss on bbb.id = ss.user_id and ss.is_delete = 0
  1257. inner join leader_tree lt on ss.id = lt.id
  1258. where bbb.is_delete = 0
  1259. )
  1260. </if>
  1261. <if test="insOrdersParam.orderNo != null and insOrdersParam.orderNo != ''">
  1262. AND io.id = #{insOrdersParam.orderNo}
  1263. </if>
  1264. <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
  1265. AND ioci.license_no = #{insOrdersParam.licenseNo}
  1266. </if>
  1267. <if test="insOrdersParam.vinNo != null and insOrdersParam.vinNo != ''">
  1268. AND ioci.vin_no = #{insOrdersParam.vinNo}
  1269. </if>
  1270. <if test="insOrdersParam.orderStatus != null and insOrdersParam.orderStatus != ''">
  1271. AND io.order_status = #{insOrdersParam.orderStatus}
  1272. </if>
  1273. <if test="insOrdersParam.salesman != null">
  1274. AND io.real_quote_user_id = #{insOrdersParam.salesman}
  1275. </if>
  1276. <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != '' and insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
  1277. AND io.create_time BETWEEN #{insOrdersParam.startDate} and #{insOrdersParam.endDate}
  1278. </if>
  1279. <if test="insOrdersParam.companyName != null and insOrdersParam.companyName != ''">
  1280. AND io.company_name = #{insOrdersParam.companyName}
  1281. </if>
  1282. <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
  1283. AND io.company_id = #{insOrdersParam.companyId}
  1284. </if>
  1285. <if test="insOrdersParam.productCode != null and insOrdersParam.productCode != ''">
  1286. AND io.product_id = #{insOrdersParam.productCode}
  1287. </if>
  1288. <if test="insOrdersParam.productName != null and insOrdersParam.productName != ''">
  1289. AND io.product_name = #{insOrdersParam.productName}
  1290. </if>
  1291. <if test="insOrdersParam.paymentLink != null and insOrdersParam.paymentLink != ''">
  1292. AND io.pay_link = #{insOrdersParam.paymentLink}
  1293. </if>
  1294. <if test="insOrdersParam.startSigningTime != null and insOrdersParam.startSigningTime != '' and insOrdersParam.endSigningTime != null and insOrdersParam.endSigningTime != ''">
  1295. AND io.signing_time BETWEEN #{insOrdersParam.startSigningTime} and #{insOrdersParam.endSigningTime}
  1296. </if>
  1297. <if test="insOrdersParam.startPayTime != null and insOrdersParam.startPayTime != '' and insOrdersParam.endPayTime != null and insOrdersParam.endPayTime != ''">
  1298. AND io.pay_time BETWEEN #{insOrdersParam.startPayTime} and #{insOrdersParam.endPayTime}
  1299. </if>
  1300. </where>
  1301. order by io.create_time desc
  1302. </select>
  1303. <!-- 手动分页版:按车牌+状态分组去重(每组取最新一条),返回当前页数据;不触发 MP 自动 count -->
  1304. <select id="queryOrderListDistinct" resultType="com.jzg.commons.entity.orders.vo.OrderListVo">
  1305. SELECT
  1306. io.id as order_no,
  1307. io.quote_no as no,
  1308. io.company_id,
  1309. io.company_name,
  1310. io.product_id as productCode,
  1311. io.product_name as productName,
  1312. io.order_status,
  1313. io.create_time,
  1314. io.create_by,
  1315. io.error_message,
  1316. ioci.license_no,
  1317. ioci.vin_no,
  1318. owner_u.name as owner_name,
  1319. owner_u.mobile as owner_mobile,
  1320. policy_u.name as policy_name,
  1321. policy_u.mobile as policy_mobile,
  1322. insur_u.name as insur_name,
  1323. insur_u.mobile as insur_mobile,
  1324. iorci.start_date as ci_start_date,
  1325. iorbi.start_date as bi_start_date,
  1326. iorco.sum_premium as sumPremium,
  1327. iorco.jq_premium as ciPremium,
  1328. iorco.sy_premium as biPremium,
  1329. iorco.jy_premium as niPremium,
  1330. iorco.tax_premium as vvTax,
  1331. su.username as recorder,
  1332. suji.name as salesmanInfo,
  1333. suji.id as jzgInfoId,
  1334. sujis.type_attr as salesmanType,
  1335. pa.agreement_name as agreementName,
  1336. sd.name as deptName,
  1337. io.pay_link as paymentLink,
  1338. ioa.status as adjustStatus,
  1339. ioa.id as adjustId,
  1340. ioa1.after_premium as adjustPremium
  1341. FROM (
  1342. SELECT dedup.order_id
  1343. FROM (
  1344. SELECT
  1345. io.id AS order_id,
  1346. io.create_time,
  1347. ROW_NUMBER() OVER(PARTITION BY COALESCE(ioci.license_no, io.id), io.order_status ORDER BY io.create_time DESC)
  1348. AS rn
  1349. FROM
  1350. ins_orders io
  1351. LEFT JOIN ins_orders_car_info ioci ON ioci.order_no = io.id and ioci.is_delete = 0
  1352. LEFT JOIN
  1353. ins_orders_car_user_info owner_u on owner_u.order_no = io.id and owner_u.policy_person_type = 1 and
  1354. owner_u.is_delete = 0
  1355. left JOIN
  1356. ins_orders_car_user_info policy_u on policy_u.order_no = io.id and policy_u.policy_person_type = 2 and
  1357. policy_u.is_delete = 0
  1358. left JOIN
  1359. ins_orders_car_user_info insur_u on insur_u.order_no = io.id and insur_u.policy_person_type = 3 and
  1360. insur_u.is_delete = 0
  1361. left join
  1362. ins_orders_risk iorci on iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
  1363. left join
  1364. ins_orders_risk iorbi on iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
  1365. LEFT JOIN
  1366. ins_orders_costs iorco on iorco.order_no = io.id and iorco.is_delete = 0
  1367. left join
  1368. sys_user su on su.mobile = io.real_quote_user_id and su.is_delete = 0
  1369. left join
  1370. sys_user_jzg_info suji on suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and
  1371. suji.is_delete = 0
  1372. left join
  1373. sys_user_jzg_info_salesman sujis ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
  1374. left join
  1375. sys_dept sd on sd.id = suji.dept_id and sd.is_delete = 0
  1376. left join
  1377. ptl_agreement pa on pa.id = io.agreement_id and pa.is_delete = 0
  1378. left join
  1379. (
  1380. SELECT *
  1381. FROM (
  1382. SELECT t.*,
  1383. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1384. FROM ins_order_adjust t where t.is_delete = 0
  1385. ) x WHERE x.rn = 1
  1386. ) ioa ON io.id = ioa.order_no
  1387. left join
  1388. (
  1389. SELECT *
  1390. FROM (
  1391. SELECT t.*,
  1392. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1393. FROM ins_order_adjust t where t.status = 2 and t.is_delete = 0
  1394. ) x WHERE x.rn = 1
  1395. ) ioa1 ON io.id = ioa1.order_no
  1396. <where>
  1397. and io.is_delete = 0
  1398. <choose>
  1399. <when test="insOrdersParam.isLargeOrder != null and insOrdersParam.isLargeOrder == '1'">
  1400. and io.parent_id = '0'
  1401. </when>
  1402. <otherwise>
  1403. and io.parent_id != '0'
  1404. </otherwise>
  1405. </choose>
  1406. and sujis.type_attr NOT IN (1,2,3,4)
  1407. <if test="insOrdersParam.jzgInfoId != null and insOrdersParam.jzgInfoId != ''">
  1408. and io.real_quote_user_id in (select bbb.mobile from sys_user bbb where bbb.id in ( select ss.user_id
  1409. from sys_user_jzg_info ss where 1 =1 and (ss.leader_id = #{insOrdersParam.jzgInfoId} or ss.id
  1410. =#{insOrdersParam.jzgInfoId}) and ss.is_delete = 0 ) and bbb.is_delete = 0 )
  1411. </if>
  1412. <if test="insOrdersParam.orderNo != null and insOrdersParam.orderNo != ''">
  1413. AND io.id = #{insOrdersParam.orderNo}
  1414. </if>
  1415. <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
  1416. AND ioci.license_no = #{insOrdersParam.licenseNo}
  1417. </if>
  1418. <if test="insOrdersParam.orderStatus!= null and insOrdersParam.orderStatus!= ''">
  1419. AND io.order_status = #{insOrdersParam.orderStatus}
  1420. </if>
  1421. <if test="insOrdersParam.adjustStatus!= null and insOrdersParam.adjustStatus!= ''">
  1422. AND ioa.status = #{insOrdersParam.adjustStatus}
  1423. </if>
  1424. <if test="insOrdersParam.salesman!= null">
  1425. AND io.real_quote_user_id = #{insOrdersParam.salesman}
  1426. </if>
  1427. <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
  1428. AND io.company_id = #{insOrdersParam.companyId}
  1429. </if>
  1430. <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != ''and insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
  1431. AND io.create_time BETWEEN #{insOrdersParam.startDate} and #{insOrdersParam.endDate}
  1432. </if>
  1433. <if test="insOrdersParam.companyName != null and insOrdersParam.companyName != ''">
  1434. AND io.company_name = #{insOrdersParam.companyName}
  1435. </if>
  1436. <if test="insOrdersParam.productCode != null and insOrdersParam.productCode != ''">
  1437. AND io.product_id = #{insOrdersParam.productCode}
  1438. </if>
  1439. <if test="insOrdersParam.productName != null and insOrdersParam.productName != ''">
  1440. AND io.product_name = #{insOrdersParam.productName}
  1441. </if>
  1442. <if test="insOrdersParam.vinNo != null and insOrdersParam.vinNo != ''">
  1443. AND ioci.vin_no = #{insOrdersParam.vinNo}
  1444. </if>
  1445. <if test="insOrdersParam.ownerName != null and insOrdersParam.ownerName != ''">
  1446. AND owner_u.name = #{insOrdersParam.ownerName}
  1447. </if>
  1448. <if test="insOrdersParam.ownerMobile != null and insOrdersParam.ownerMobile != ''">
  1449. AND owner_u.mobile = #{insOrdersParam.ownerMobile}
  1450. </if>
  1451. <if test="insOrdersParam.policyName != null and insOrdersParam.policyName != ''">
  1452. AND policy_u.name = #{insOrdersParam.policyName}
  1453. </if>
  1454. <if test="insOrdersParam.policyMobile != null and insOrdersParam.policyMobile != ''">
  1455. AND policy_u.mobile = #{insOrdersParam.policyMobile}
  1456. </if>
  1457. <if test="insOrdersParam.insurName != null and insOrdersParam.insurName != ''">
  1458. AND insur_u.name = #{insOrdersParam.insurName}
  1459. </if>
  1460. <if test="insOrdersParam.insurMobile != null and insOrdersParam.insurMobile != ''">
  1461. AND insur_u.mobile = #{insOrdersParam.insurMobile}
  1462. </if>
  1463. <if test="insOrdersParam.ciStartDate != null">
  1464. AND iorci.start_date = #{insOrdersParam.ciStartDate}
  1465. </if>
  1466. <if test="insOrdersParam.biStartDate != null">
  1467. AND iorbi.start_date = #{insOrdersParam.biStartDate}
  1468. </if>
  1469. <if test="insOrdersParam.sumPremium != null">
  1470. AND iorco.sum_premium = #{insOrdersParam.sumPremium}
  1471. </if>
  1472. <if test="insOrdersParam.ciPremium != null">
  1473. AND iorco.jq_premium = #{insOrdersParam.ciPremium}
  1474. </if>
  1475. <if test="insOrdersParam.biPremium != null">
  1476. AND iorco.sy_premium = #{insOrdersParam.biPremium}
  1477. </if>
  1478. <if test="insOrdersParam.niPremium != null">
  1479. AND iorco.jy_premium = #{insOrdersParam.niPremium}
  1480. </if>
  1481. <if test="insOrdersParam.vvTax != null">
  1482. AND iorco.tax_premium = #{insOrdersParam.vvTax}
  1483. </if>
  1484. <if test="insOrdersParam.salesmanInfo != null and insOrdersParam.salesmanInfo != ''">
  1485. AND su.username = #{insOrdersParam.salesmanInfo}
  1486. </if>
  1487. <if test="insOrdersParam.salesmanType != null and insOrdersParam.salesmanType != ''">
  1488. AND sujis.type_attr = #{insOrdersParam.salesmanType}
  1489. </if>
  1490. <if test="insOrdersParam.agreementName != null and insOrdersParam.agreementName != ''">
  1491. AND pa.agreement_name = #{insOrdersParam.agreementName}
  1492. </if>
  1493. <if test="insOrdersParam.deptId != null and insOrdersParam.deptId != ''">
  1494. AND sd.id = #{insOrdersParam.deptId}
  1495. </if>
  1496. <if test="insOrdersParam.deptName != null and insOrdersParam.deptName != ''">
  1497. AND sd.name = #{insOrdersParam.deptName}
  1498. </if>
  1499. <if test="insOrdersParam.paymentLink != null and insOrdersParam.paymentLink != ''">
  1500. AND io.pay_link = #{insOrdersParam.paymentLink}
  1501. </if>
  1502. <if test="insOrdersParam.adjustId != null">
  1503. AND ioa.id = #{insOrdersParam.adjustId}
  1504. </if>
  1505. <if test="insOrdersParam.adjustPremium != null">
  1506. AND ioa1.after_premium = #{insOrdersParam.adjustPremium}
  1507. </if>
  1508. <if test="insOrdersParam.startSigningTime != null and insOrdersParam.startSigningTime != ''and insOrdersParam.endSigningTime != null and insOrdersParam.endSigningTime != ''">
  1509. AND io.signing_time BETWEEN #{insOrdersParam.startSigningTime} and #{insOrdersParam.endSigningTime}
  1510. </if>
  1511. <if test="insOrdersParam.startPayTime != null and insOrdersParam.startPayTime != ''and insOrdersParam.endPayTime != null and insOrdersParam.endPayTime != ''">
  1512. AND io.pay_time BETWEEN #{insOrdersParam.startPayTime} and #{insOrdersParam.endPayTime}
  1513. </if>
  1514. </where>
  1515. ) dedup
  1516. WHERE dedup.rn = 1
  1517. ORDER BY dedup.create_time DESC
  1518. LIMIT #{offset}, #{size}
  1519. ) p
  1520. JOIN ins_orders io ON io.id = p.order_id
  1521. LEFT JOIN ins_orders_car_info ioci ON ioci.order_no = io.id and ioci.is_delete = 0
  1522. LEFT JOIN
  1523. ins_orders_car_user_info owner_u on owner_u.order_no = io.id and owner_u.policy_person_type = 1 and
  1524. owner_u.is_delete = 0
  1525. left JOIN
  1526. ins_orders_car_user_info policy_u on policy_u.order_no = io.id and policy_u.policy_person_type = 2 and
  1527. policy_u.is_delete = 0
  1528. left JOIN
  1529. ins_orders_car_user_info insur_u on insur_u.order_no = io.id and insur_u.policy_person_type = 3 and
  1530. insur_u.is_delete = 0
  1531. left join
  1532. ins_orders_risk iorci on iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
  1533. left join
  1534. ins_orders_risk iorbi on iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
  1535. LEFT JOIN
  1536. ins_orders_costs iorco on iorco.order_no = io.id and iorco.is_delete = 0
  1537. left join
  1538. sys_user su on su.mobile = io.real_quote_user_id and su.is_delete = 0
  1539. left join
  1540. sys_user_jzg_info suji on suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and
  1541. suji.is_delete = 0
  1542. left join
  1543. sys_user_jzg_info_salesman sujis ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
  1544. left join
  1545. sys_dept sd on sd.id = suji.dept_id and sd.is_delete = 0
  1546. left join
  1547. ptl_agreement pa on pa.id = io.agreement_id and pa.is_delete = 0
  1548. left join
  1549. (
  1550. SELECT *
  1551. FROM (
  1552. SELECT t.*,
  1553. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1554. FROM ins_order_adjust t where t.is_delete = 0
  1555. ) x WHERE x.rn = 1
  1556. ) ioa ON io.id = ioa.order_no
  1557. left join
  1558. (
  1559. SELECT *
  1560. FROM (
  1561. SELECT t.*,
  1562. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1563. FROM ins_order_adjust t where t.status = 2 and t.is_delete = 0
  1564. ) x WHERE x.rn = 1
  1565. ) ioa1 ON io.id = ioa1.order_no
  1566. order by io.create_time desc
  1567. </select>
  1568. <!-- 手动分页版:统计按车牌+状态分组去重后的总条数 -->
  1569. <select id="countOrderListDistinct" resultType="java.lang.Long">
  1570. SELECT COUNT(*) FROM (
  1571. SELECT
  1572. io.id AS order_id,
  1573. ROW_NUMBER() OVER(PARTITION BY COALESCE(ioci.license_no, io.id), io.order_status ORDER BY io.create_time DESC) AS rn
  1574. FROM
  1575. ins_orders io
  1576. LEFT JOIN ins_orders_car_info ioci ON ioci.order_no = io.id and ioci.is_delete = 0
  1577. LEFT JOIN
  1578. ins_orders_car_user_info owner_u on owner_u.order_no = io.id and owner_u.policy_person_type = 1 and owner_u.is_delete = 0
  1579. left JOIN
  1580. ins_orders_car_user_info policy_u on policy_u.order_no = io.id and policy_u.policy_person_type = 2 and policy_u.is_delete = 0
  1581. left JOIN
  1582. ins_orders_car_user_info insur_u on insur_u.order_no = io.id and insur_u.policy_person_type = 3 and insur_u.is_delete = 0
  1583. left join
  1584. ins_orders_risk iorci on iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
  1585. left join
  1586. ins_orders_risk iorbi on iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
  1587. LEFT JOIN
  1588. ins_orders_costs iorco on iorco.order_no = io.id and iorco.is_delete = 0
  1589. left join
  1590. sys_user su on su.mobile = io.real_quote_user_id and su.is_delete = 0
  1591. left join
  1592. sys_user_jzg_info suji on suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and suji.is_delete = 0
  1593. left join
  1594. sys_user_jzg_info_salesman sujis ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
  1595. left join
  1596. sys_dept sd on sd.id = suji.dept_id and sd.is_delete = 0
  1597. left join
  1598. ptl_agreement pa on pa.id = io.agreement_id and pa.is_delete = 0
  1599. left join
  1600. (
  1601. SELECT *
  1602. FROM (
  1603. SELECT t.*,
  1604. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1605. FROM ins_order_adjust t where t.is_delete = 0
  1606. ) x WHERE x.rn = 1
  1607. ) ioa ON io.id = ioa.order_no
  1608. left join
  1609. (
  1610. SELECT *
  1611. FROM (
  1612. SELECT t.*,
  1613. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1614. FROM ins_order_adjust t where t.status = 2 and t.is_delete = 0
  1615. ) x WHERE x.rn = 1
  1616. ) ioa1 ON io.id = ioa1.order_no
  1617. <where>
  1618. and io.is_delete = 0
  1619. <choose>
  1620. <when test="insOrdersParam.isLargeOrder != null and insOrdersParam.isLargeOrder == '1'">
  1621. and io.parent_id = '0'
  1622. </when>
  1623. <otherwise>
  1624. and io.parent_id != '0'
  1625. </otherwise>
  1626. </choose>
  1627. and sujis.type_attr NOT IN (1,2,3,4)
  1628. <if test="insOrdersParam.jzgInfoId != null and insOrdersParam.jzgInfoId != ''">
  1629. and io.real_quote_user_id in (select bbb.mobile from sys_user bbb where bbb.id in ( select ss.user_id
  1630. from sys_user_jzg_info ss where 1 =1 and (ss.leader_id = #{insOrdersParam.jzgInfoId} or ss.id
  1631. =#{insOrdersParam.jzgInfoId}) and ss.is_delete = 0 ) and bbb.is_delete = 0 )
  1632. </if>
  1633. <if test="insOrdersParam.orderNo != null and insOrdersParam.orderNo != ''">
  1634. AND io.id = #{insOrdersParam.orderNo}
  1635. </if>
  1636. <if test="insOrdersParam.licenseNo != null and insOrdersParam.licenseNo != ''">
  1637. AND ioci.license_no = #{insOrdersParam.licenseNo}
  1638. </if>
  1639. <if test="insOrdersParam.orderStatus!= null and insOrdersParam.orderStatus!= ''">
  1640. AND io.order_status = #{insOrdersParam.orderStatus}
  1641. </if>
  1642. <if test="insOrdersParam.adjustStatus!= null and insOrdersParam.adjustStatus!= ''">
  1643. AND ioa.status = #{insOrdersParam.adjustStatus}
  1644. </if>
  1645. <if test="insOrdersParam.salesman!= null">
  1646. AND io.real_quote_user_id = #{insOrdersParam.salesman}
  1647. </if>
  1648. <if test="insOrdersParam.companyId != null and insOrdersParam.companyId != ''">
  1649. AND io.company_id = #{insOrdersParam.companyId}
  1650. </if>
  1651. <if test="insOrdersParam.startDate != null and insOrdersParam.startDate != ''and insOrdersParam.endDate != null and insOrdersParam.endDate != ''">
  1652. AND io.create_time BETWEEN #{insOrdersParam.startDate} and #{insOrdersParam.endDate}
  1653. </if>
  1654. <if test="insOrdersParam.companyName != null and insOrdersParam.companyName != ''">
  1655. AND io.company_name = #{insOrdersParam.companyName}
  1656. </if>
  1657. <if test="insOrdersParam.productCode != null and insOrdersParam.productCode != ''">
  1658. AND io.product_id = #{insOrdersParam.productCode}
  1659. </if>
  1660. <if test="insOrdersParam.productName != null and insOrdersParam.productName != ''">
  1661. AND io.product_name = #{insOrdersParam.productName}
  1662. </if>
  1663. <if test="insOrdersParam.vinNo != null and insOrdersParam.vinNo != ''">
  1664. AND ioci.vin_no = #{insOrdersParam.vinNo}
  1665. </if>
  1666. <if test="insOrdersParam.ownerName != null and insOrdersParam.ownerName != ''">
  1667. AND owner_u.name = #{insOrdersParam.ownerName}
  1668. </if>
  1669. <if test="insOrdersParam.ownerMobile != null and insOrdersParam.ownerMobile != ''">
  1670. AND owner_u.mobile = #{insOrdersParam.ownerMobile}
  1671. </if>
  1672. <if test="insOrdersParam.policyName != null and insOrdersParam.policyName != ''">
  1673. AND policy_u.name = #{insOrdersParam.policyName}
  1674. </if>
  1675. <if test="insOrdersParam.policyMobile != null and insOrdersParam.policyMobile != ''">
  1676. AND policy_u.mobile = #{insOrdersParam.policyMobile}
  1677. </if>
  1678. <if test="insOrdersParam.insurName != null and insOrdersParam.insurName != ''">
  1679. AND insur_u.name = #{insOrdersParam.insurName}
  1680. </if>
  1681. <if test="insOrdersParam.insurMobile != null and insOrdersParam.insurMobile != ''">
  1682. AND insur_u.mobile = #{insOrdersParam.insurMobile}
  1683. </if>
  1684. <if test="insOrdersParam.ciStartDate != null">
  1685. AND iorci.start_date = #{insOrdersParam.ciStartDate}
  1686. </if>
  1687. <if test="insOrdersParam.biStartDate != null">
  1688. AND iorbi.start_date = #{insOrdersParam.biStartDate}
  1689. </if>
  1690. <if test="insOrdersParam.sumPremium != null">
  1691. AND iorco.sum_premium = #{insOrdersParam.sumPremium}
  1692. </if>
  1693. <if test="insOrdersParam.ciPremium != null">
  1694. AND iorco.jq_premium = #{insOrdersParam.ciPremium}
  1695. </if>
  1696. <if test="insOrdersParam.biPremium != null">
  1697. AND iorco.sy_premium = #{insOrdersParam.biPremium}
  1698. </if>
  1699. <if test="insOrdersParam.niPremium != null">
  1700. AND iorco.jy_premium = #{insOrdersParam.niPremium}
  1701. </if>
  1702. <if test="insOrdersParam.vvTax != null">
  1703. AND iorco.tax_premium = #{insOrdersParam.vvTax}
  1704. </if>
  1705. <if test="insOrdersParam.salesmanInfo != null and insOrdersParam.salesmanInfo != ''">
  1706. AND su.username = #{insOrdersParam.salesmanInfo}
  1707. </if>
  1708. <if test="insOrdersParam.salesmanType != null and insOrdersParam.salesmanType != ''">
  1709. AND sujis.type_attr = #{insOrdersParam.salesmanType}
  1710. </if>
  1711. <if test="insOrdersParam.agreementName != null and insOrdersParam.agreementName != ''">
  1712. AND pa.agreement_name = #{insOrdersParam.agreementName}
  1713. </if>
  1714. <if test="insOrdersParam.deptId != null and insOrdersParam.deptId != ''">
  1715. AND sd.id = #{insOrdersParam.deptId}
  1716. </if>
  1717. <if test="insOrdersParam.deptName != null and insOrdersParam.deptName != ''">
  1718. AND sd.name = #{insOrdersParam.deptName}
  1719. </if>
  1720. <if test="insOrdersParam.paymentLink != null and insOrdersParam.paymentLink != ''">
  1721. AND io.pay_link = #{insOrdersParam.paymentLink}
  1722. </if>
  1723. <if test="insOrdersParam.adjustId != null">
  1724. AND ioa.id = #{insOrdersParam.adjustId}
  1725. </if>
  1726. <if test="insOrdersParam.adjustPremium != null">
  1727. AND ioa1.after_premium = #{insOrdersParam.adjustPremium}
  1728. </if>
  1729. <if test="insOrdersParam.startSigningTime != null and insOrdersParam.startSigningTime != ''and insOrdersParam.endSigningTime != null and insOrdersParam.endSigningTime != ''">
  1730. AND io.signing_time BETWEEN #{insOrdersParam.startSigningTime} and #{insOrdersParam.endSigningTime}
  1731. </if>
  1732. <if test="insOrdersParam.startPayTime != null and insOrdersParam.startPayTime != ''and insOrdersParam.endPayTime != null and insOrdersParam.endPayTime != ''">
  1733. AND io.pay_time BETWEEN #{insOrdersParam.startPayTime} and #{insOrdersParam.endPayTime}
  1734. </if>
  1735. </where>
  1736. ) dedup
  1737. WHERE dedup.rn = 1
  1738. </select>
  1739. <!-- 根据主订单id集合查询其下的从订单(联表,不分页) -->
  1740. <select id="queryChildOrderListByParentIds" resultType="com.jzg.commons.entity.orders.vo.OrderListVo">
  1741. SELECT
  1742. io.id as order_no,
  1743. io.parent_id as parentId,
  1744. io.quote_no as no,
  1745. io.company_id,
  1746. io.company_name,
  1747. io.product_id as productCode,
  1748. io.product_name as productName,
  1749. io.order_status,
  1750. io.create_time,
  1751. io.create_by,
  1752. io.error_message,
  1753. ioci.license_no,
  1754. ioci.vin_no,
  1755. owner_u.name as owner_name,
  1756. owner_u.mobile as owner_mobile,
  1757. policy_u.name as policy_name,
  1758. policy_u.mobile as policy_mobile,
  1759. insur_u.name as insur_name,
  1760. insur_u.mobile as insur_mobile,
  1761. iorci.start_date as ci_start_date,
  1762. iorbi.start_date as bi_start_date,
  1763. iorco.sum_premium as sumPremium,
  1764. iorco.jq_premium as ciPremium,
  1765. iorco.sy_premium as biPremium,
  1766. iorco.jy_premium as niPremium,
  1767. iorco.tax_premium as vvTax,
  1768. su.username as recorder,
  1769. suji.name as salesmanInfo,
  1770. suji.id as jzgInfoId,
  1771. sujis.type_attr as salesmanType,
  1772. pa.agreement_name as agreementName,
  1773. sd.name as deptName,
  1774. io.pay_link as paymentLink,
  1775. ioa.status as adjustStatus,
  1776. ioa.id as adjustId,
  1777. ioa1.after_premium as adjustPremium
  1778. FROM
  1779. ins_orders io
  1780. LEFT JOIN ins_orders_car_info ioci ON ioci.order_no = io.id and ioci.is_delete = 0
  1781. LEFT JOIN
  1782. ins_orders_car_user_info owner_u on owner_u.order_no = io.id and owner_u.policy_person_type = 1 and
  1783. owner_u.is_delete = 0
  1784. left JOIN
  1785. ins_orders_car_user_info policy_u on policy_u.order_no = io.id and policy_u.policy_person_type = 2 and
  1786. policy_u.is_delete = 0
  1787. left JOIN
  1788. ins_orders_car_user_info insur_u on insur_u.order_no = io.id and insur_u.policy_person_type = 3 and
  1789. insur_u.is_delete = 0
  1790. left join
  1791. ins_orders_risk iorci on iorci.order_no = io.id and iorci.risk_code = '0507' and iorci.is_delete = 0
  1792. left join
  1793. ins_orders_risk iorbi on iorbi.order_no = io.id and iorbi.risk_code = '0510' and iorbi.is_delete = 0
  1794. LEFT JOIN
  1795. ins_orders_costs iorco on iorco.order_no = io.id and iorco.is_delete = 0
  1796. left join
  1797. sys_user su on su.mobile = io.real_quote_user_id and su.is_delete = 0
  1798. left join
  1799. sys_user_jzg_info suji on suji.user_id = su.id and suji.system_code = #{insOrdersParam.systemCode} and
  1800. suji.is_delete = 0
  1801. left join
  1802. sys_user_jzg_info_salesman sujis ON suji.id = sujis.sys_user_jzg_info_id AND sujis.is_delete = 0
  1803. left join
  1804. sys_dept sd on sd.id = suji.dept_id and sd.is_delete = 0
  1805. left join
  1806. ptl_agreement pa on pa.id = io.agreement_id and pa.is_delete = 0
  1807. left join
  1808. (
  1809. SELECT *
  1810. FROM (
  1811. SELECT t.*,
  1812. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1813. FROM ins_order_adjust t where t.is_delete = 0
  1814. ) x WHERE x.rn = 1
  1815. ) ioa ON io.id = ioa.order_no
  1816. left join
  1817. (
  1818. SELECT *
  1819. FROM (
  1820. SELECT t.*,
  1821. ROW_NUMBER() OVER(PARTITION BY t.order_no ORDER BY t.create_time DESC) AS rn
  1822. FROM ins_order_adjust t where t.status = 2 and t.is_delete = 0
  1823. ) x WHERE x.rn = 1
  1824. ) ioa1 ON io.id = ioa1.order_no
  1825. <where>
  1826. and io.is_delete = 0 and io.parent_id in
  1827. <foreach collection="parentIds" item="pid" open="(" separator="," close=")">
  1828. #{pid}
  1829. </foreach>
  1830. and sujis.type_attr NOT IN (1,2,3,4)
  1831. </where>
  1832. ORDER BY io.create_time DESC
  1833. </select>
  1834. <select id="getHistoryQuote" resultType="com.jzg.commons.entity.orders.vo.HistoryQuoteResultVo">
  1835. SELECT t.id as order_no,
  1836. t.license_no
  1837. FROM (SELECT io.id,
  1838. ioci.license_no,
  1839. ROW_NUMBER() OVER ( PARTITION BY ioci.license_no ORDER BY io.create_time DESC ) AS rn
  1840. FROM ins_orders io
  1841. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no and ioci.is_delete = 0
  1842. WHERE io.is_delete = 0
  1843. AND io.real_quote_user_id = #{userName}) t
  1844. WHERE t.rn = 1
  1845. LIMIT 10
  1846. </select>
  1847. <select id="getHistoryQuoteList" resultType="com.jzg.commons.entity.orders.vo.HistoryQuoteResultVo">
  1848. SELECT
  1849. io.id as order_no,
  1850. io.company_id,
  1851. io.company_name,
  1852. ioci.license_no,
  1853. io.order_status,
  1854. io.error_message,
  1855. io.product_name,
  1856. io.create_time as quote_time,
  1857. ioc.jq_premium,
  1858. ioc.sy_premium,
  1859. ioc.jy_premium,
  1860. sum(ioc.jq_premium + ioc.sy_premium + ioc.jy_premium) as sum_premium,
  1861. COUNT(*) AS quote_number
  1862. FROM
  1863. ins_orders io
  1864. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no and ioci.is_delete = 0
  1865. LEFT JOIN ins_orders_costs ioc on io.id = ioc.order_no and ioc.is_delete = 0
  1866. <where>
  1867. and io.is_delete = 0
  1868. and io.real_quote_user_id = #{userName}
  1869. <if test="params.licenseNo != null and params.licenseNo != ''">
  1870. AND ioci.license_no = #{params.licenseNo}
  1871. </if>
  1872. and io.parent_id != 0
  1873. </where>
  1874. GROUP BY
  1875. ioci.license_no,
  1876. io.id;
  1877. </select>
  1878. <select id="getHistoryQuoteByLicenseNo" resultType="com.jzg.commons.entity.orders.vo.HistoryQuoteResultVo">
  1879. SELECT io.id as order_no,
  1880. io.company_id,
  1881. io.company_name,
  1882. io.product_name,
  1883. io.create_time as quote_time,
  1884. ioci.license_no,
  1885. ioc.sum_premium
  1886. FROM ins_orders io
  1887. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no and ioci.is_delete = 0
  1888. LEFT JOIN ins_orders_costs ioc on io.id = ioc.order_no and ioc.is_delete = 0
  1889. <where>
  1890. and io.is_delete = 0
  1891. and ioci.license_no = #{licenseNo}
  1892. and io.parent_id != 0
  1893. </where>
  1894. </select>
  1895. <select id="getHistoryList" resultType="com.jzg.commons.entity.orders.vo.HistoryQuoteResultVo">
  1896. SELECT
  1897. ioci.license_no,
  1898. COUNT(*) AS quote_number
  1899. FROM
  1900. ins_orders io
  1901. LEFT JOIN ins_orders_car_info ioci ON io.id = ioci.order_no and ioci.is_delete = 0
  1902. <where>
  1903. and io.is_delete = 0
  1904. and io.real_quote_user_id = #{userName}
  1905. <if test="params.licenseNo != null and params.licenseNo != ''">
  1906. AND ioci.license_no = #{params.licenseNo}
  1907. </if>
  1908. </where>
  1909. GROUP BY
  1910. ioci.license_no;
  1911. </select>
  1912. <select id="getBaseOrders" resultType="com.jzg.commons.entity.orders.po.InsOrders">
  1913. SELECT o.*
  1914. FROM ins_orders o
  1915. LEFT JOIN ins_orders_car_info c ON o.id = c.order_no and c.is_delete = 0
  1916. <where>
  1917. and o.is_delete = 0
  1918. and o.parent_id = 0
  1919. AND c.license_no = #{licenseNo}
  1920. AND c.vin_no = #{vinNo}
  1921. AND o.product_id = #{productId}
  1922. </where>
  1923. </select>
  1924. <select id="getPremiumStatistics" resultType="com.jzg.quotation.summary.entity.bo.StatDateCountBo">
  1925. select DATE(ioo.create_time) AS stat_date,
  1926. SUM(COALESCE(ioc.sy_premium, 0) + COALESCE(ioc.jq_premium, 0) + COALESCE(ioc.jy_premium, 0)) AS value
  1927. from ins_orders ioo
  1928. left join ins_orders_costs ioc on ioo.id = ioc.order_no and ioc.is_delete = 0
  1929. WHERE ioo.is_delete = 0
  1930. AND ioo.create_time &gt;= CONCAT(#{yesterday}, ' 00:00:00')
  1931. AND ioo.create_time &lt; CONCAT(#{today}, ' 23:59:59')
  1932. AND ioo.order_status = '5'
  1933. AND ioo.real_quote_user_id in (select distinct suji.user_id
  1934. from sys_user_jzg_info suji
  1935. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  1936. left join sys_user_role sur on sur.role_id = srdsl.role_id
  1937. where sur.user_id = #{userId}
  1938. and suji.system_code = #{systemCode}
  1939. and suji.is_delete = 0
  1940. UNION ALL select #{userId} as user_id )
  1941. GROUP BY DATE(ioo.create_time);
  1942. </select>
  1943. <select id="getOrderQuantity" resultType="com.jzg.quotation.summary.entity.bo.StatDateCountBo">
  1944. select DATE(create_time) AS stat_date,
  1945. COUNT(DISTINCT real_quote_user_id) AS value
  1946. from ins_orders
  1947. WHERE is_delete = 0
  1948. AND create_time &gt;= CONCAT(#{yesterday}, ' 00:00:00')
  1949. AND create_time &lt; CONCAT(#{today}, ' 23:59:59')
  1950. AND real_quote_user_id in (select distinct suji.user_id
  1951. from sys_user_jzg_info suji
  1952. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  1953. left join sys_user_role sur on sur.role_id = srdsl.role_id
  1954. where sur.user_id = #{userId}
  1955. and suji.system_code = #{systemCode}
  1956. and suji.is_delete = 0
  1957. UNION ALL select #{userId} as user_id )
  1958. GROUP BY DATE(create_time);
  1959. </select>
  1960. <select id="getInsuranceIssuersCount" resultType="com.jzg.quotation.summary.entity.bo.StatDateCountBo">
  1961. select DATE(create_time) AS stat_date,
  1962. COUNT(*) AS value
  1963. from ins_orders
  1964. WHERE is_delete = 0
  1965. AND create_time &gt;= CONCAT(#{yesterday}, ' 00:00:00')
  1966. AND create_time &lt; CONCAT(#{today}, ' 23:59:59')
  1967. AND real_quote_user_id in (select distinct suji.user_id
  1968. from sys_user_jzg_info suji
  1969. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  1970. left join sys_user_role sur on sur.role_id = srdsl.role_id
  1971. where sur.user_id = #{userId}
  1972. and suji.system_code = #{systemCode}
  1973. and suji.is_delete = 0
  1974. UNION ALL select #{userId} as user_id )
  1975. GROUP BY DATE(create_time)
  1976. </select>
  1977. <select id="getQuoteCount" resultType="com.jzg.quotation.summary.entity.bo.StatDateCountBo">
  1978. select DATE(create_time) AS stat_date,
  1979. COUNT(*) AS value
  1980. from ins_orders
  1981. WHERE is_delete = 0
  1982. AND create_time &gt;= CONCAT(#{yesterday}, ' 00:00:00')
  1983. AND create_time &lt; CONCAT(#{today}, ' 23:59:59')
  1984. AND real_quote_user_id in (select distinct suji.user_id
  1985. from sys_user_jzg_info suji
  1986. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  1987. left join sys_user_role sur on sur.role_id = srdsl.role_id
  1988. where sur.user_id = #{userId}
  1989. and suji.system_code = #{systemCode}
  1990. and suji.is_delete = 0
  1991. UNION ALL select #{userId} as user_id )
  1992. GROUP BY DATE(create_time)
  1993. </select>
  1994. <select id="getPremiumRatio" resultType="com.jzg.quotation.summary.entity.vo.BusinessTypeDistributionVo">
  1995. select
  1996. -- 交强险
  1997. ROUND(
  1998. SUM(COALESCE(ioc.jq_premium, 0)) * 100 /
  1999. NULLIF(SUM(COALESCE(ioc.jq_premium, 0) + COALESCE(ioc.sy_premium, 0) + COALESCE(ioc.jy_premium, 0)),
  2000. 0), 2
  2001. ) AS ci_proportion,
  2002. -- 商业险
  2003. ROUND(
  2004. SUM(COALESCE(ioc.sy_premium, 0)) * 100 /
  2005. NULLIF(SUM(COALESCE(ioc.jq_premium, 0) + COALESCE(ioc.sy_premium, 0) + COALESCE(ioc.jy_premium, 0)),
  2006. 0), 2
  2007. ) AS bi_proportion,
  2008. -- 驾意险
  2009. ROUND(
  2010. SUM(COALESCE(ioc.jy_premium, 0)) * 100 /
  2011. NULLIF(SUM(COALESCE(ioc.jq_premium, 0) + COALESCE(ioc.sy_premium, 0) + COALESCE(ioc.jy_premium, 0)),
  2012. 0), 2
  2013. ) AS ni_proportion
  2014. from ins_orders ioo
  2015. left join ins_orders_costs ioc on ioo.id = ioc.order_no and ioc.is_delete = 0
  2016. WHERE ioo.is_delete = 0
  2017. AND ioo.order_status = '5'
  2018. AND ioo.real_quote_user_id in ( select distinct suji.user_id from sys_user_jzg_info suji
  2019. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  2020. left join sys_user_role sur on sur.role_id = srdsl.role_id
  2021. where sur.user_id = #{userId} and suji.system_code = #{systemCode} and suji.is_delete = 0
  2022. UNION ALL select #{userId} as user_id )
  2023. </select>
  2024. <select id="getBusinessFunnel" resultType="com.jzg.quotation.summary.entity.vo.BusinessFunnelVo">
  2025. SELECT
  2026. -- 报价次数(所有订单状态)
  2027. COUNT(DISTINCT id) AS quote_count,
  2028. -- 核保次数(核保相关状态)
  2029. COUNT(DISTINCT CASE
  2030. WHEN order_status IN (2, 3, 4) -- 核保中、人工处理、待缴费
  2031. THEN id
  2032. END) AS underwrite_count,
  2033. -- 出单数量(已承保)
  2034. COUNT(DISTINCT CASE
  2035. WHEN order_status = 5 -- 已承保
  2036. THEN id
  2037. END) AS order_count,
  2038. -- 报价核保比
  2039. IFNULL(ROUND(
  2040. COUNT(DISTINCT CASE WHEN order_status IN (2, 3, 4) THEN id END) * 100.0 /
  2041. NULLIF(COUNT(DISTINCT id), 0), 2
  2042. ), 0) AS quote_to_underwrite_ratio,
  2043. -- 核保出单比
  2044. IFNULL(ROUND(
  2045. COUNT(DISTINCT CASE WHEN order_status = 5 THEN id END) * 100.0 /
  2046. NULLIF(COUNT(DISTINCT CASE WHEN order_status IN (2, 3, 4) THEN id END), 0), 2
  2047. ), 0) AS underwrite_to_order_ratio,
  2048. -- 报价出单比
  2049. IFNULL(ROUND(
  2050. COUNT(DISTINCT CASE WHEN order_status = 5 THEN id END) * 100.0 /
  2051. NULLIF(COUNT(DISTINCT id), 0), 2
  2052. ), 0) AS quote_to_order_ratio
  2053. FROM ins_orders
  2054. WHERE is_delete = 0
  2055. AND real_quote_user_id in (select distinct suji.user_id
  2056. from sys_user_jzg_info suji
  2057. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  2058. left join sys_user_role sur on sur.role_id = srdsl.role_id
  2059. where sur.user_id = #{userId}
  2060. and suji.system_code = #{systemCode}
  2061. and suji.is_delete = 0
  2062. UNION ALL select #{userId} as user_id )
  2063. </select>
  2064. <select id="getOrderTrend" resultType="com.jzg.quotation.summary.entity.vo.OrderTrendVo">
  2065. SELECT
  2066. -- 订单数量
  2067. MONTH(o.create_time) AS month,
  2068. COALESCE(COUNT(DISTINCT o.id), 0) AS order_count,
  2069. SUM(COALESCE(ioc.jq_premium, 0) + COALESCE(ioc.sy_premium, 0) + COALESCE(ioc.jy_premium, 0)) as premium
  2070. FROM ins_orders o
  2071. left join ins_orders_costs ioc
  2072. on o.id = ioc.order_no and ioc.is_delete = 0
  2073. where o.is_delete = 0
  2074. AND o.order_status = 5
  2075. AND o.create_time &gt;= CONCAT(YEAR(NOW()), '-01-01 00:00:00')
  2076. AND o.create_time &lt; CONCAT(YEAR(NOW()), '-12-31 23:59:59')
  2077. AND o.real_quote_user_id in (select distinct suji.user_id
  2078. from sys_user_jzg_info suji
  2079. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  2080. left join sys_user_role sur on sur.role_id = srdsl.role_id
  2081. where sur.user_id = #{userId}
  2082. and suji.system_code = #{systemCode}
  2083. and suji.is_delete = 0
  2084. UNION ALL select #{userId} as user_id )
  2085. group by month
  2086. </select>
  2087. <select id="getCityBusinessDistribution"
  2088. resultType="com.jzg.quotation.summary.entity.vo.BusinessDistributionVo">
  2089. SELECT
  2090. -- 地区信息
  2091. a.area_code AS area_code,
  2092. a.area_cname AS area_cname,
  2093. -- 业务员统计
  2094. COUNT(DISTINCT u.user_id) AS total_salesman_count,
  2095. -- 个代业务员 (type_attr = 6)
  2096. COUNT(DISTINCT CASE
  2097. WHEN u.type_attr = 6
  2098. THEN u.user_id
  2099. END) AS personal_agent_count,
  2100. -- 渠道业务员 (type_attr = 8)
  2101. COUNT(DISTINCT CASE
  2102. WHEN u.type_attr = 8
  2103. THEN u.user_id
  2104. END) AS channel_salesman_count
  2105. FROM sys_user_jzg_info u
  2106. LEFT JOIN sys_dept d on u.dept_id = d.id and d.is_delete = 0
  2107. LEFT JOIN sys_area a ON d.province = a.area_code
  2108. where u.is_delete = 0
  2109. AND d.province IS NOT NULL
  2110. AND d.province != ''
  2111. AND u.user_id in (select distinct suji.user_id
  2112. from sys_user_jzg_info suji
  2113. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  2114. left join sys_user_role sur on sur.role_id = srdsl.role_id
  2115. where sur.user_id = #{userId}
  2116. and suji.system_code = #{systemCode}
  2117. and suji.is_delete = 0
  2118. UNION ALL select #{userId} as user_id )
  2119. GROUP BY a.area_code, a.area_cname
  2120. ORDER BY total_salesman_count DESC
  2121. </select>
  2122. <select id="getProvinceBusinessDistribution"
  2123. resultType="com.jzg.quotation.summary.entity.vo.BusinessDistributionVo">
  2124. SELECT
  2125. -- 地区信息
  2126. a.area_code AS area_code,
  2127. a.area_cname AS area_cname,
  2128. -- 业务员统计
  2129. COUNT(DISTINCT u.user_id) AS total_salesman_count,
  2130. -- 个代业务员 (type_attr = 6)
  2131. COUNT(DISTINCT CASE
  2132. WHEN u.type_attr = 6
  2133. THEN u.user_id
  2134. END) AS personal_agent_count,
  2135. -- 渠道业务员 (type_attr = 8)
  2136. COUNT(DISTINCT CASE
  2137. WHEN u.type_attr = 8
  2138. THEN u.user_id
  2139. END) AS channel_salesman_count
  2140. FROM sys_user_jzg_info u
  2141. LEFT JOIN sys_dept d on u.dept_id = d.id and d.is_delete = 0
  2142. LEFT JOIN sys_area a ON d.city = a.area_code
  2143. <where>
  2144. and u.is_delete = 0
  2145. <if test="province != null and province != ''">
  2146. and d.province = #{province}
  2147. </if>
  2148. AND u.user_id in (select distinct suji.user_id
  2149. from sys_user_jzg_info suji
  2150. left join sys_role_data_scope_link srdsl on suji.dept_id = srdsl.dept_id
  2151. left join sys_user_role sur on sur.role_id = srdsl.role_id
  2152. where sur.user_id = #{userId}
  2153. and suji.system_code = #{systemCode}
  2154. and suji.is_delete = 0
  2155. UNION ALL select #{userId} as user_id )
  2156. </where>
  2157. GROUP BY a.area_code, a.area_cname
  2158. ORDER BY total_salesman_count DESC
  2159. </select>
  2160. <select id="selectMainOrderNumber" resultType="com.jzg.commons.entity.orders.po.InsOrders">
  2161. SELECT o.id,o.quote_no
  2162. FROM ins_orders o
  2163. LEFT JOIN ins_orders_car_info c ON o.id = c.order_no and c.is_delete = 0
  2164. <where>
  2165. and o.is_delete = 0
  2166. and o.parent_id = 0
  2167. and o.entry_status = 3
  2168. and c.license_no = #{licenseNo}
  2169. and o.real_quote_user_id = #{realQuoteUserId}
  2170. </where>
  2171. ORDER BY o.create_time DESC
  2172. LIMIT 1
  2173. </select>
  2174. <select id="selectListOrderQuotationCompany" resultType="com.jzg.quotation.summary.entity.vo.OrderQuotationCompany">
  2175. SELECT id,parent_id,quote_no,company_id,company_name,order_status,ioc.sum_premium as totalPremium
  2176. FROM ins_orders
  2177. LEFT JOIN ins_orders_costs ioc ON ioc.order_no = ins_orders.id
  2178. <where>
  2179. and ins_orders.is_delete = 0
  2180. and parent_id != 0
  2181. and quote_no IN
  2182. <foreach collection="noIds" item="item" open="(" separator="," close=")">
  2183. #{item}
  2184. </foreach>
  2185. </where>
  2186. </select>
  2187. <select id="countQuoteNum" resultType="Integer">
  2188. SELECT COUNT(DISTINCT io.id)
  2189. FROM ins_orders io
  2190. INNER JOIN sys_user su ON su.mobile = io.real_quote_user_id and su.is_delete = 0
  2191. INNER JOIN sys_user_jzg_info suji ON suji.user_id = su.id and suji.is_delete = 0
  2192. WHERE io.parent_id != 0
  2193. AND io.is_delete = 0
  2194. AND io.order_status > 0
  2195. AND suji.system_code = #{systemCode}
  2196. AND io.real_quote_user_id = #{realQuoteUserId}
  2197. AND io.create_time &gt;= CONCAT(#{activityStartTime},' 00:00:00')
  2198. AND io.create_time &lt;= CONCAT(#{activityEndTime},' 23:59:59')
  2199. </select>
  2200. <select id="countOrderNum" resultType="Integer">
  2201. SELECT COUNT(DISTINCT io.id)
  2202. FROM ins_orders io
  2203. INNER JOIN sys_user su ON su.mobile = io.real_quote_user_id and su.is_delete = 0
  2204. INNER JOIN sys_user_jzg_info suji ON suji.user_id = su.id and suji.is_delete = 0
  2205. WHERE io.parent_id != 0
  2206. AND io.is_delete = 0
  2207. AND io.order_status = 5
  2208. AND suji.system_code = #{systemCode}
  2209. AND io.real_quote_user_id = #{realQuoteUserId}
  2210. AND io.create_time &gt;= CONCAT(#{activityStartTime},' 00:00:00')
  2211. AND io.create_time &lt;= CONCAT(#{activityEndTime},' 23:59:59')
  2212. </select>
  2213. <select id="selectByRule" resultType="com.jzg.commons.entity.po.SysUserActivityCompleteInRule" >
  2214. SELECT *
  2215. FROM sys_user_activity_complete_in_rule
  2216. <where>
  2217. and is_delete = 0
  2218. and system_code = #{systemCode}
  2219. and user_id = #{userId}
  2220. and activity_id = #{activityId}
  2221. and activity_type = #{activityType}
  2222. and rule_complete_num = #{qutNum}
  2223. </where>
  2224. LIMIT 1
  2225. </select>
  2226. <select id="selectByRuleAndUserPhone" resultType="com.jzg.commons.entity.po.SysUserActivityCompleteInRule">
  2227. SELECT *
  2228. FROM sys_user_activity_complete_in_rule
  2229. <where>
  2230. and is_delete = 0
  2231. and activity_id = #{activityId}
  2232. and activity_type = #{activityType}
  2233. and rule_complete_num = #{qutNum}
  2234. and user_phone = #{userPhone}
  2235. </where>
  2236. LIMIT 1
  2237. </select>
  2238. <insert id="insertActivityCompleteInRule" parameterType="com.jzg.commons.entity.po.SysUserActivityCompleteInRule">
  2239. INSERT INTO sys_user_activity_complete_in_rule (
  2240. id,
  2241. system_code,
  2242. user_id,
  2243. activity_type,
  2244. activity_id,
  2245. local_activity_table_id,
  2246. rule_complete_num,
  2247. lottery_num,
  2248. lottery_max_num,
  2249. status,
  2250. receive_time,
  2251. create_time,
  2252. update_time,
  2253. create_by,
  2254. update_by,
  2255. is_delete
  2256. ) VALUES (
  2257. #{id},
  2258. #{systemCode},
  2259. #{userId},
  2260. #{activityType},
  2261. #{activityId},
  2262. #{localActivityTableId},
  2263. #{ruleCompleteNum},
  2264. #{lotteryNum},
  2265. #{lotteryMaxNum},
  2266. #{status},
  2267. #{receiveTime},
  2268. NOW(),
  2269. NOW(),
  2270. #{createBy},
  2271. #{updateBy},
  2272. 0
  2273. )
  2274. </insert>
  2275. <select id="queryCustomerPhone" resultType="String">
  2276. SELECT ioci.mobile
  2277. FROM ins_orders io
  2278. INNER JOIN ins_orders_car_user_info ioci ON io.id = ioci.order_no and ioci.is_delete = 0
  2279. <where>
  2280. and io.is_delete = 0
  2281. and io.ins_order_no = #{insOrderNo}
  2282. and ioci.policy_person_type = 2
  2283. </where>
  2284. LIMIT 1
  2285. </select>
  2286. <select id="queryTotalFee" resultType="Double">
  2287. SELECT ifo.total_premium
  2288. FROM ins_orders io
  2289. INNER JOIN ins_fee_orders ifo ON io.id = ifo.order_no
  2290. <where>
  2291. and io.is_delete = 0
  2292. and io.id = #{insOrderNo}
  2293. </where>
  2294. LIMIT 1
  2295. </select>
  2296. </mapper>