12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486 |
- CREATE OR REPLACE PROCEDURE shanglifeecif.init_customerno_salecom_relation() IS
- DECLARE
- BEGIN
- delete from shanglifeecif.customerno_salecom_relation;
- insert into shanglifeecif.customerno_salecom_relation (
- csrid,
- indid,
- custid,
- scustid,
- name,
- birthday,
- nobirth,
- sobirth,
- cobirth,
- dday,
- gender,
- ethnic,
- nation,
- homeadress,
- regresidence,
- maritalstat,
- maritalstatdate,
- offspring,
- support,
- empstat,
- empstatdate,
- raid,
- ral,
- al,
- coadress,
- pmphone,
- mhone1,
- mhone2,
- sophone,
- height,
- weight,
- cillness,
- pillness,
- cdiseases,
- bmi,
- fmhistory,
- evadate,
- cohevaluation,
- hphone,
- occupationid,
- occupation,
- odate,
- employer,
- wphone,
- empdate,
- lemployer,
- idcard,
- passport,
- dlicense,
- education,
- university,
- edate,
- wechat,
- weibo,
- email,
- qq,
- tiktok,
- saccount1,
- sa1cat,
- saccount2,
- sa2cat,
- ctype,
- father,
- mother,
- mate,
- child1,
- child2,
- cochild,
- rpid,
- rpdescribe,
- corp,
- vid,
- vdescribe,
- covehicle,
- anniversary1,
- a1describe,
- anniversary2,
- a2describe,
- soanniversary,
- custtype,
- bankname,
- tobankcard,
- accname,
- bankaccno,
- cobaccount,
- sotlirisk,
- soairisk,
- sosiirisk,
- somcirisk,
- someirisk,
- soefirisk,
- sopirisk,
- sowmirisk,
- custclass,
- convalue,
- awarded3,
- awarded2,
- awarded1,
- sovalue,
- enddate,
- systemtag1,
- systemtag2,
- systemtag3,
- systemtag4,
- systemtag5,
- cocommunication,
- lcdate,
- lctype,
- lcmethod,
- cocomplaint,
- lcptdate,
- lcptreason,
- lcptlink,
- lcptresult,
- lcptduration,
- lcptperson,
- soppremium,
- lappdate,
- cndate,
- cnstatus,
- coclaim,
- soclaim,
- cocnotification,
- fadate,
- fachannel,
- faorg,
- lpno,
- lpstate,
- lpname,
- lpchannel,
- lporg,
- copolicy,
- lpostype,
- iaccno1,
- iaccname1,
- iaccno2,
- iaccname2,
- iaccno3,
- iaccname3,
- soiaccount1,
- soiaccount2,
- soiaccount3,
- coiaccount,
- homeid,
- branchcode,
- custstate,
- datasource,
- smoking,
- drinking,
- pregnancy,
- hobby1,
- hobby2,
- hobby3,
- pincome,
- fincome,
- regtype,
- incomesource,
- sistatus,
- novpolicy,
- noivpolicy,
- nostinsurance,
- nospinsurance,
- iself,
- iparent,
- ichildren,
- imate,
- policybelong,
- zipcode,
- othernumber,
- otheridnumber,
- officialcalculus,
- created_by,
- created_time,
- updated_by,
- updated_time,
- label1,
- label2,
- label3,
- label4,
- label5,
- label6,
- label7,
- label8,
- label9,
- label10,
- label11,
- label12,
- label13,
- label14,
- label15,
- label16,
- label17,
- label18,
- label19,
- label20,
- label21,
- label22,
- label23,
- label28,
- label34,
- label35,
- label36,
- label37,
- label38,
- label39,
- label40,
- label41,
- label42,
- label51,
- label53,
- label60,
- label63,
- label67,
- label69,
- label70,
- label71,
- label72,
- label73,
- label74,
- label75,
- label76,
- label77,
- label80,
- label82,
- label83,
- label84,
- label85,
- label86,
- label87,
- label90,
- label93,
- label96,
- label97,
- label98,
- label99,
- label100,
- label101,
- label102,
- label103,
- label104,
- label105,
- label106,
- label112,
- label114,
- label116,
- label118,
- label119,
- salecom
- )
- SELECT
- row_number()OVER(ORDER BY i.scustid),
- i.indid,
- i.custid,
- i.scustid,
- i.name,
- i.birthday,
- i.nobirth,
- i.sobirth,
- i.cobirth,
- i.dday,
- i.gender,
- i.ethnic,
- i.nation,
- i.homeadress,
- i.regresidence,
- i.maritalstat,
- i.maritalstatdate,
- i.offspring,
- i.support,
- i.empstat,
- i.empstatdate,
- i.raid,
- i.ral,
- i.al,
- i.coadress,
- i.pmphone,
- i.mhone1,
- i.mhone2,
- i.sophone,
- i.height,
- i.weight,
- i.cillness,
- i.pillness,
- i.cdiseases,
- i.bmi,
- i.fmhistory,
- i.evadate,
- i.cohevaluation,
- i.hphone,
- i.occupationid,
- i.occupation,
- i.odate,
- i.employer,
- i.wphone,
- i.empdate,
- i.lemployer,
- i.idcard,
- i.passport,
- i.dlicense,
- i.education,
- i.university,
- i.edate,
- i.wechat,
- i.weibo,
- i.email,
- i.qq,
- i.tiktok,
- i.saccount1,
- i.sa1cat,
- i.saccount2,
- i.sa2cat,
- i.ctype,
- i.father,
- i.mother,
- i.mate,
- i.child1,
- i.child2,
- i.cochild,
- i.rpid,
- i.rpdescribe,
- i.corp,
- i.vid,
- i.vdescribe,
- i.covehicle,
- i.anniversary1,
- i.a1describe,
- i.anniversary2,
- i.a2describe,
- i.soanniversary,
- i.custtype,
- i.bankname,
- i.tobankcard,
- i.accname,
- i.bankaccno,
- i.cobaccount,
- i.sotlirisk,
- i.soairisk,
- i.sosiirisk,
- i.somcirisk,
- i.someirisk,
- i.soefirisk,
- i.sopirisk,
- i.sowmirisk,
- i.custclass,
- i.convalue,
- i.awarded3,
- i.awarded2,
- i.awarded1,
- i.sovalue,
- i.enddate,
- i.systemtag1,
- i.systemtag2,
- i.systemtag3,
- i.systemtag4,
- i.systemtag5,
- i.cocommunication,
- i.lcdate,
- i.lctype,
- i.lcmethod,
- i.cocomplaint,
- i.lcptdate,
- i.lcptreason,
- i.lcptlink,
- i.lcptresult,
- i.lcptduration,
- i.lcptperson,
- i.soppremium,
- i.lappdate,
- i.cndate,
- i.cnstatus,
- i.coclaim,
- i.soclaim,
- i.cocnotification,
- i.fadate,
- i.fachannel,
- i.faorg,
- i.lpno,
- i.lpstate,
- i.lpname,
- i.lpchannel,
- i.lporg,
- i.copolicy,
- i.lpostype,
- i.iaccno1,
- i.iaccname1,
- i.iaccno2,
- i.iaccname2,
- i.iaccno3,
- i.iaccname3,
- i.soiaccount1,
- i.soiaccount2,
- i.soiaccount3,
- i.coiaccount,
- i.homeid,
- i.branchcode,
- i.custstate,
- i.datasource,
- i.smoking,
- i.drinking,
- i.pregnancy,
- i.hobby1,
- i.hobby2,
- i.hobby3,
- i.pincome,
- i.fincome,
- i.regtype,
- i.incomesource,
- i.sistatus,
- i.novpolicy,
- i.noivpolicy,
- i.nostinsurance,
- i.nospinsurance,
- i.iself,
- i.iparent,
- i.ichildren,
- i.imate,
- i.policybelong,
- i.zipcode,
- i.othernumber,
- i.otheridnumber,
- i.officialcalculus,
- i.created_by,
- sysdate as created_time,
- i.updated_by,
- i.updated_time,
- i.label1,
- i.label2,
- i.label3,
- i.label4,
- i.label5,
- i.label6,
- i.label7,
- i.label8,
- i.label9,
- i.label10,
- i.label11,
- i.label12,
- i.label13,
- i.label14,
- i.label15,
- i.label16,
- i.label17,
- i.label18,
- i.label19,
- i.label20,
- i.label21,
- i.label22,
- i.label23,
- i.label28,
- i.label34,
- i.label35,
- i.label36,
- i.label37,
- i.label38,
- i.label39,
- i.label40,
- i.label41,
- i.label42,
- i.label51,
- i.label53,
- i.label60,
- i.label63,
- i.label67,
- i.label69,
- i.label70,
- i.label71,
- i.label72,
- i.label73,
- i.label74,
- i.label75,
- i.label76,
- i.label77,
- i.label80,
- i.label82,
- i.label83,
- i.label84,
- i.label85,
- i.label86,
- i.label87,
- i.label90,
- i.label93,
- i.label96,
- i.label97,
- i.label98,
- i.label99,
- i.label100,
- i.label101,
- i.label102,
- i.label103,
- i.label104,
- i.label105,
- i.label106,
- i.label112,
- i.label114,
- i.label116,
- i.label118,
- i.label119,
- t.salecom
- FROM (
-
-
- SELECT distinct p.customerno, p.salecom FROM dsj.POLICY_INFORMATION p
- union
-
- SELECT distinct p.insuredno as customerno, p.salecom FROM dsj.POLICY_INFORMATION p
- ) t, shanglifeecif.individual i WHERE t.customerno = i.scustid;
- dbms_output.put_line('init_customerno_salecom_relation 函数跑批完成!');
- EXCEPTION
- WHEN HIVE_EXCEPTION THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- WHEN Others THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.init_individual_main()
- IS
- DECLARE
- individual_count int
- strsql string
- BEGIN
- shanglifeecif.customertotaltemp();
- DELETE FROM shanglifeecif.individual;
- shanglifeecif.init_all_individual();
- shanglifeecif.up_t_customers_class_1();
- shanglifeecif.up_other_customerinfo();
- shanglifeecif.update_insuredinfo();
-
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.init_individual_salecom() IS
- DECLARE
- BEGIN
- UPDATE shanglifeecif.Individual si1 SET si1.SALECOM = (
- SELECT t.salecoms FROM (
- SELECT customerno , concat_ws(',',collect_set(salecom)) AS salecoms FROM (
- SELECT b.scustid AS customerno ,b.salecom AS salecom FROM
- shanglifeecif.individual a , shanglifeecif.customerno_salecom_relation b
- WHERE a.scustid = b.scustid
- ) GROUP BY customerno
- ) t
- WHERE t.customerno = si1.scustid);
- dbms_output.put_line('init_Individual_salecom 函数跑批完成!');
- EXCEPTION
- WHEN HIVE_EXCEPTION THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- WHEN Others THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.init_indrelationship_main()
- IS
- DECLARE
- s_count int
- BEGIN
- DELETE FROM shanglifeecif.IndRelationShip;
-
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2,
- salecom
- )SELECT
- reflect("java.util.UUID", "randomUUID"),
- '父母',
- p.CUSTOMERNO,
- max(p.NAME),
- max(p.IDNO),
- CASE max(p.sex)
- WHEN '0' THEN '儿子' WHEN '1' THEN '女儿' END,
- p.INSUREDNO,
- max(p.INSUREDNAME),
- max(p.INSUREDIDNO),
- min(p.polapplydate),
- CASE max(p.INSUREDSEX)
- WHEN '0' THEN '父亲' WHEN '1' THEN '母亲' END,
- salecom
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '父母' OR p.RELATIONTOAPPNT = '子女')
- AND p.birthday > p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO, p.salecom;
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2,
- salecom
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- '子女',
- p.CUSTOMERNO,
- max(p.NAME),
- max(p.IDNO),
- CASE max(p.sex)
- WHEN '0' THEN '父亲' WHEN '1' THEN '母亲' END,
- p.INSUREDNO,
- max(p.INSUREDNAME),
- max(p.INSUREDIDNO),
- min(p.polapplydate),
- CASE max(p.INSUREDSEX)
- WHEN '0' THEN '儿子' WHEN '1' THEN '女儿' END,
- salecom
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '父母' OR p.RELATIONTOAPPNT = '子女')
- AND p.birthday < p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO, p.salecom;
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2,
- salecom
- )SELECT
- reflect("java.util.UUID", "randomUUID"),
- '祖父母、外祖父母',
- p.CUSTOMERNO,
- max(p.NAME),
- max(p.IDNO),
- CASE max(p.sex)
- WHEN '0' THEN '(外)祖孙' WHEN '1' THEN '(外)孙女' END,
- p.INSUREDNO,
- max(p.INSUREDNAME),
- max(p.INSUREDIDNO),
- min(p.polapplydate),
- CASE max(p.INSUREDSEX)
- WHEN '0' THEN '(外)祖父' WHEN '1' THEN '(外)祖母' END,
- salecom
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '祖父母、外祖父母' OR p.RELATIONTOAPPNT = '祖孙、外祖孙')
- AND p.birthday > p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO, p.salecom;
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2,
- salecom
- )SELECT
- reflect("java.util.UUID", "randomUUID"),
- '祖孙、外祖孙',
- p.CUSTOMERNO,
- max(p.NAME),
- max(p.IDNO),
- CASE max(p.sex)
- WHEN '0' THEN '(外)祖父' WHEN '1' THEN '(外)祖母' END,
- p.INSUREDNO,
- max(p.INSUREDNAME),
- max(p.INSUREDIDNO),
- min(p.polapplydate),
- CASE max(p.INSUREDSEX)
- WHEN '0' THEN '(外)祖孙' WHEN '1' THEN '(外)孙女' END,
- salecom
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '祖父母、外祖父母' OR p.RELATIONTOAPPNT = '祖孙、外祖孙')
- AND p.birthday < p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO, p.salecom;
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2,
- salecom
- )SELECT
- reflect("java.util.UUID", "randomUUID"),
- max(p.RELATIONTOAPPNT),
- p.CUSTOMERNO,
- max(p.NAME),
- max(p.IDNO),
- CASE max(p.RELATIONTOAPPNT)
- WHEN '配偶'
- THEN case max(p.sex) WHEN '0' THEN '丈夫' WHEN '1' THEN '妻子' END
- ELSE max(p.RELATIONTOAPPNT)
- END,
- p.INSUREDNO,
- max(p.INSUREDNAME),
- max(p.INSUREDIDNO),
- min(p.polapplydate),
- CASE max(p.RELATIONTOAPPNT)
- WHEN '配偶'
- THEN case max(p.INSUREDSEX) WHEN '0' THEN '丈夫' WHEN '1' THEN '妻子' END
- ELSE max(p.RELATIONTOAPPNT)
- END,
- salecom
- FROM dsj.POLICY_INFORMATION p
- WHERE p.RELATIONTOAPPNT = '配偶'
- or p.RELATIONTOAPPNT = '其他'
- GROUP BY p.CUSTOMERNO,p.INSUREDNO, p.salecom;
- dbms_lock.sleep(60);
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- Role2,
- salecom
- )SELECT reflect("java.util.UUID", "randomUUID"),
- CASE RSType
- WHEN '父母' THEN '子女'
- WHEN '子女' THEN '父母'
- WHEN '祖孙、外祖孙' THEN '祖父母、外祖父母'
- WHEN '祖父母、外祖父母' THEN '祖孙、外祖孙'
- WHEN '配偶' THEN '配偶'
- ELSE RSType
- END,
- IndID2,
- Name2,
- IDCard2,
- Role2,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- salecom
- FROM shanglifeecif.IndRelationShip sis ;
- dbms_output.put_line('init_indrelationship_main函数跑批完成!');
- EXCEPTION
- WHEN HIVE_EXCEPTION THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- WHEN Others THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.partytimeline_main()
- IS
- BEGIN
- DELETE FROM shanglifeecif.partytimeline;
- shanglifeecif.partytimeline_tb();
- shanglifeecif.partytimeline_lp();
- shanglifeecif.partytimeline_zx();
- shanglifeecif.partytimeline_bq();
- shanglifeecif.partytimeline_tuibao();
- shanglifeecif.partytimeline_ts();
- shanglifeecif.partytimeline_hf();
- shanglifeecif.partytimeline_xq();
-
- shanglifeecif.update_partytimeline_add_salecom();
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.update_customerno_salecom_relation_labels() IS
- BEGIN
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label24 = '持有寿险有效保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p,dsj.riskkind l WHERE si1.scustid = p.customerno AND si1.salecom = p.salecom AND p.riskcode = l.riskcode AND p.appflag = '有效' AND (l.kindtype = '新型寿险' OR l.kindtype = '人寿保险')
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label25 = (
- select
- CASE
- WHEN t.n = 0 THEN '无保单'
- WHEN t.n = 1 THEN '1件保单'
- WHEN t.n = 2 THEN '2件保单'
- WHEN t.n between 3 and 5 THEN '3-5件保单'
- WHEN t.n between 6 and 10 THEN '6-10件保单'
- WHEN t.n between 11 and 20 THEN '11-20件保单'
- WHEN t.n between 21 and 50 THEN '21-50件保单'
- WHEN t.n > 50 THEN '50件保单以上'
- END
- from (
- SELECT customerno, salecom, count(1) as n FROM dsj.policy_information p WHERE appflag IS NOT NULL group by customerno, salecom
- ) t
- where
- si1.scustid = t.customerno
- and si1.salecom = t.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label26 = '有保单贷款' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.customerno = si1.scustid and p.salecom = si1.salecom and p.contno IN (
- SELECT contno FROM dsj.loloandetail WHERE moneytype='DK'
- )
- );
-
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label27 = (
- SELECT
- CASE
- WHEN temp.cnt > 0 AND temp.cnt = temp.tnum THEN '仅极短意外险'
- WHEN temp.cnt > 0 AND temp.cnt <> temp.tnum THEN '有极短意外险'
- END
- FROM (
- SELECT p.customerno, p.salecom,max(cnt) cnt,nvl(count(*),0) tnum FROM (
- SELECT
- count(1) cnt
- , po.customerno
- , po.salecom
- FROM
- dsj.policy_information po
- where
- po.SECURITY in('7天','15天','30天','90天','1月','3月')
- and
- po.riskperiod='短期险'
- and
- po.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
- GROUP BY
- po.customerno, po.salecom
- ) t LEFT JOIN dsj.policy_information p ON t.customerno = p.customerno and p.salecom = t.salecom GROUP BY p.customerno, p.salecom
- ) temp where temp.customerno = si1.scustid and temp.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label29 = '有趸交保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p, dsj.PREMIUM_LIST l
- WHERE p.contno = l.contno and p.salecom = l.salecom and p.customerno = si1.scustid and p.salecom = si1.salecom and p.appflag = '有效' and p.payintv = '趸缴' and p.riskperiod = '长期险' AND l.PAYMENT_PERIOD LIKE '%一次交清%'
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label30 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '本人未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为本人投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为本人投保'
- END
- FROM (
- SELECT t.customerno, t.salecom, MAX(t.bnum) bnum, count(*) as tnum FROM (
- SELECT count(*) AS bnum,p.customerno, p.salecom FROM dsj.policy_information p WHERE p.relationtoappnt = '本人' GROUP BY p.customerno, p.salecom
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno and pi.salecom = t.salecom GROUP BY t.customerno, t.salecom
- ) tt WHERE tt.customerno = si1.scustid and tt.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label31 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '父母未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为父母投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为父母投保'
- END
- FROM (
- SELECT t.customerno, t.salecom,MAX(t.bnum) bnum,count(*) as tnum FROM (
- SELECT count(*) AS bnum,p.customerno, p.salecom FROM dsj.policy_information p WHERE (p.RELATIONTOAPPNT = '子女' OR p.RELATIONTOAPPNT = '父母') AND p.birthday > p.insuredbirthday
- GROUP BY p.customerno, p.salecom
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno and pi.salecom = t.salecom GROUP BY t.customerno, t.salecom
- ) tt WHERE tt.customerno = si1.scustid and tt.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label32 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '子女未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为子女投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为子女投保'
- END
- FROM (
- SELECT t.customerno, t.salecom,MAX(t.bnum) bnum,count(*) as tnum FROM (
- SELECT nvl(count(*),0) AS bnum,p.customerno, p.salecom FROM dsj.policy_information p WHERE (p.RELATIONTOAPPNT = '子女' OR p.RELATIONTOAPPNT = '父母') AND p.birthday < p.insuredbirthday GROUP BY p.customerno, p.salecom
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno and pi.salecom = t.salecom GROUP BY t.customerno, t.salecom
- ) tt WHERE tt.customerno = si1.scustid and tt.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label33 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '配偶未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为配偶投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为配偶投保'
- END
- FROM (
- SELECT t.customerno, t.salecom,MAX(t.bnum) bnum,count(*) as tnum FROM (
- SELECT count(*) AS bnum,p.customerno, p.salecom FROM dsj.policy_information p WHERE p.relationtoappnt = '配偶' GROUP BY p.customerno, p.salecom
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno and pi.salecom = t.salecom GROUP BY t.customerno, t.salecom
- ) tt WHERE tt.customerno = si1.scustid and tt.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label43 = (
- SELECT
- CASE
- WHEN temp.cnt > 0 AND temp.cnt = temp.tnum THEN '仅有1年期短险保单'
- WHEN temp.cnt > 0 AND temp.cnt <> temp.tnum THEN '有1年期短险保单'
- END
- FROM (
- SELECT p.customerno, p.salecom,max(cnt) cnt,nvl(count(*),0) tnum FROM (
- SELECT
- count(1) cnt,
- po.customerno,
- po.salecom
- FROM
- dsj.policy_information po
- where
- po.SECURITY in('1年','6月','180天')
- and
- po.riskperiod='短期险'
- and
- po.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
- GROUP BY
- po.customerno, po.salecom
- ) t LEFT JOIN dsj.policy_information p ON t.customerno = p.customerno and t.salecom = p.salecom GROUP BY p.customerno, p.salecom
- ) temp where temp.customerno = si1.scustid and temp.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label44 = '有失效保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.appflag <> '有效' and p.contno IN (select contno from dsj.lccontstate where statetype = 'Available' )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label45 = '有缴费期满长险保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.appflag = '有效' and p.paycount = p.payendyear AND p.riskperiod='长期险'
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label46 = '有续期缴费保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.appflag = '有效' and p.contno IN (
- select otherno from dsj.ljspay where othernotype = '2'
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label47 = '有责任期满的保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.enddate < to_char(SYSDATE,"yyyy-MM-dd HH:mm:ss.S")
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.FADate = (
- SELECT fadate FROM (
- SELECT p.customerno, p.salecom, min(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.customerno, p.salecom
- ) t WHERE t.customerno = si1.scustid and t.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.FADate = (
- SELECT fadate FROM (
- SELECT p.insuredno, p.salecom, min(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.insuredno, p.salecom
- ) t WHERE t.insuredno = si1.scustid and t.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label48 = '首次投保日期'|| to_char(si1.fadate, 'yyyy-MM-dd') WHERE si1.fadate IS NOT NULL;
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.LAPPDate = (
- SELECT fadate FROM (
- SELECT p.customerno, p.salecom, max(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.customerno, p.salecom
- ) t WHERE t.customerno = si1.scustid and t.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.LAPPDate = (
- SELECT fadate FROM (
- SELECT p.insuredno, p.salecom, max(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.insuredno, p.salecom
- ) t WHERE t.insuredno = si1.scustid and t.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label49 = '最后一次投保距今' || DATEDIFF(sysdate(), si1.LAPPDate) || '天' WHERE si1.lappdate IS NOT NULL;
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label54 = (
- SELECT '最近保单状态'||trim(t.appflag) FROM (
- SELECT row_number()OVER(PARTITION BY p.customerno, p.salecom ORDER BY p.polapplydate DESC) rd,p.customerno, p.salecom,p.appflag FROM dsj.policy_information p
- ) t WHERE t.rd = 1 AND si1.scustid = t.customerno AND si1.salecom = t.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label55 = (
- SELECT '客户最近一次办理'||t.edorname FROM (
- SELECT
- row_number() over(partition by p.customerno, p.salecom ORDER BY l.edorAPPDATE DESC,l.uwtime DESC) rn,
- l.edortype,
- l.contno,
- p.customerno,
- p.salecom,
- l.edorappdate,
- l.edorstate,
- lm.edorcode,
- lm.edorname
- FROM dsj.lpedoritem l,dsj.lmedoritem lm,dsj.policy_information p
- WHERE l.edortype = lm.edorcode AND lm.appobj <> 'G' AND l.edorstate = '0' AND p.contno = l.contno
- ) t WHERE t.rn = 1 AND si1.scustid = t.customerno and si1.salecom = t.salecom
- ) WHERE 1 = 1;
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label56 = '有退保保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.contno IN (
- select contno from dsj.lpedoritem where edortype in ('CT', 'XT', 'GT') and edorstate = '0'
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label57 = (
- SELECT "最近一次理赔类型" || t.ACCIDENTTYPE FROM (
- SELECT row_number()OVER(PARTITION BY c.insuredno, p.salecom ORDER BY c.applydate desc) rd,c.insuredno,c.ACCIDENTTYPE, p.salecom
- FROM dsj.INSURANCE_CLAIM c, dsj.policy_information p
- WHERE c.contno = p.contno
- ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid and t.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label58 = (
- SELECT "最近一次出险类型" || t.lloccurreason FROM (
- SELECT row_number()OVER(PARTITION BY c.insuredno, p.salecom ORDER BY c.applydate desc) rd,c.insuredno,c.lloccurreason, p.salecom
- FROM dsj.INSURANCE_CLAIM c, dsj.policy_information p
- WHERE c.contno = p.contno
- ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid and t.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label59 = (
- SELECT '最近一次理赔状态' || t.LLCLAIMSTATE FROM (
- SELECT row_number()OVER(PARTITION BY c.insuredno, p.salecom ORDER BY c.applydate desc) rd,c.insuredno,c.LLCLAIMSTATE, p.salecom
- FROM dsj.INSURANCE_CLAIM c, dsj.policy_information p WHERE c.contno = p.contno
- ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid and t.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label61 = '有满期给付保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE si1.scustid = p.customerno and si1.salecom = p.salecom and p.contno IN (
- SELECT contno FROM dsj.lcget WHERE getdutycode IN (select getdutycode from dsj.lmdutygetalive where getdutyname in ('满期保险金','满期生存保险金'))
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label62 = '有生存金给付的保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.appflag = '有效' and p.contno IN (
- SELECT contno FROM dsj.lcget WHERE getdutycode IN (select getdutycode from dsj.lmdutygetalive where getdutyname = '生存保险金')
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label64 = '红利可领取的保单' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p, dsj.lmriskapp l
- WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.appflag = '有效' and p.riskcode = l.riskcode AND l.bonusflag = 1
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label65 = '一单寿险客户' WHERE exists (
- SELECT
- customerno
- , salecom
- , count(DISTINCT contno) AS c
- , sum(
- CASE
- WHEN b.kindtype IN ('人寿保险', '新型寿险') THEN 1
- ELSE 0
- END
- ) AS s
- FROM dsj.POLICY_INFORMATION p, dsj.riskkind b
- WHERE p.riskcode = b.riskcode AND p.customerno = si1.scustid AND p.salecom = si1.salecom
- GROUP BY customerno, salecom
- HAVING c = 1 AND s > 0
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label66 = '缴费期满客户' WHERE exists (
- SELECT
- p.customerno
- , p.salecom
- , sum(
- case
- when p.paycount = p.payendyear then 1
- else 0
- end
- ) AS s
- FROM dsj.policy_information p
- WHERE p.customerno = si1.scustid and p.salecom = si1.salecom
- GROUP BY p.customerno, p.salecom
- HAVING count(1) = s
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label68 = '持有有效保单' WHERE exists (
- SELECT salecom FROM dsj.POLICY_INFORMATION p WHERE p.appflag = '有效' and p.customerno = si1.scustid and p.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label78 = (
- SELECT
- case max(p.insuredsex)
- when '0' then '父亲生日临近'
- when '1' then '母亲生日临近'
- end as s
- from dsj.POLICY_INFORMATION p
- where p.customerno = si1.scustid and p.salecom = si1.salecom
- and (p.RELATIONTOAPPNT = '父母' OR p.RELATIONTOAPPNT = '子女') and p.birthday > p.insuredbirthday
- and (DATEDIFF(to_char(p.insuredbirthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd")) between 1 and 5)
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label79 = (
- SELECT
- case max(p.insuredsex)
- when '0' then '儿子生日临近'
- when '1' then '女儿生日临近'
- end as s
- from dsj.POLICY_INFORMATION p
- where p.customerno = si1.scustid and p.salecom = si1.salecom
- and (p.RELATIONTOAPPNT = '父母' OR p.RELATIONTOAPPNT = '子女') and p.birthday < p.insuredbirthday
- and (DATEDIFF(to_char(p.insuredbirthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd")) between 1 and 5)
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label81 = '近期咨询过理赔' WHERE exists (
- SELECT dp.customerno FROM dsj.policy_information dp WHERE dp.customerno = si1.scustid and dp.salecom = si1.salecom and dp.contno IN (
- SELECT rm.contnos FROM dsj.cc_record_main rm
- WHERE rm.reasonsecondname LIKE '%理赔%' and rm.contnos IS not NULL AND DATEDIFF(SYSDATE,rm.starttime) < 7)
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label88 = '续期临期未缴费' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效'AND p.payintv = '期缴' AND p.payendyear<>p.paycount AND
- DATEDIFF(p.paytodate,to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) > 0 and DATEDIFF(p.paytodate,to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) < 5
- and p.customerno = si1.scustid and p.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label89 = '续期到期未缴费' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效'AND p.payintv = '期缴' AND p.payendyear<>p.paycount AND
- to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S') > DATE_ADD(p.paytodate, 60)
- and p.customerno = si1.scustid and p.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label91 = '失效客户' WHERE exists (SELECT temp.customerno FROM (
- SELECT count(*) AS tnum,max(t.customerno) AS customerno, max(t.salecom) as salecom,max(t.pnum) AS pnum FROM (
- SELECT p.customerno, p.salecom,count(*) AS pnum FROM dsj.policy_information p WHERE p.appflag <> '有效' GROUP BY p.customerno, p.salecom
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno and pi.salecom = t.salecom
- GROUP BY pi.customerno, pi.salecom
- ) temp WHERE temp.tnum = temp.pnum and temp.customerno = si1.scustid and temp.salecom = si1.salecom);
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label92 = (
- SELECT '有'||t.terminatestate||'保单' FROM (
- SELECT row_number()over(partition by p.customerno, p.salecom order by p.polapplydate desc) rn,p.customerno, p.salecom,p.terminatestate FROM dsj.policy_information p
- WHERE p.appflag = '中止'
- ) t WHERE t.rn = 1 AND si1.scustid = t.customerno and si1.salecom = t.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label94 = (
- SELECT '有'||t.terminatestate||'保单' FROM (
- SELECT row_number()over(partition by p.customerno, p.salecom order by p.polapplydate desc) rn,p.customerno, p.salecom,p.terminatestate FROM dsj.policy_information p
- WHERE p.appflag = '终止'
- ) t WHERE t.rn = 1 AND si1.scustid = t.customerno and si1.salecom = t.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label95 = (
- SELECT
- CASE
- WHEN t.dnum=0 THEN '上一年如期缴费'
- WHEN t.dnum<0 THEN '上一年提前'||abs(t.dnum)||'天交费'
- WHEN t.dnum>0 AND t.dnum<=60 THEN '上一年滞后'||t.dnum||'天交费'
- WHEN t.dnum>60 THEN '上一年宽限期外交费'
- END
- FROM (
- SELECT
- row_number()over(PARTITION BY l.appntno ORDER BY l.confdate DESC) rn,l.appntno,DATEDIFF(to_char(l.confdate,'0000-MM-dd'),to_char(l.curpaytodate,'0000-MM-dd')) AS dnum, p.salecom
- FROM dsj.ljapayperson l, dsj.policy_information p WHERE p.contno = l.contno and l.paycount > 1 AND YEAR(l.confdate) = YEAR(sysdate) - 1
- ) t WHERE t.rn = 1 AND t.appntno = si1.scustid and t.salecom = si1.salecom
- );
-
-
-
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label107 = '高金额' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE
- p.appflag = '有效' AND p.payintv = '期缴' and
- ((p.salecom = '03' AND p.prem>50000) OR (p.salecom = '02' AND p.prem>20000) OR (p.salecom = '06' AND p.prem>20000))
- and p.customerno = si1.scustid and p.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label108 = '最近理赔结案' WHERE exists (
- SELECT c.insuredno FROM dsj.INSURANCE_CLAIM c, dsj.policy_information p
- WHERE DATEDIFF(to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S'),c.endcasedate) < 15
- and p.contno = c.contno and c.insuredno = si1.scustid and p.salecom = si1.salecom
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label109 = '理赔报案追踪' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.customerno = si1.scustid and p.salecom = si1.salecom and p.contno IN (
- SELECT c.CONTNO FROM dsj.insurance_claim c WHERE c.LLCLAIMSTATE = '报案' AND DATEDIFF(sysdate(), c.RPTDATE) <30
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label110 = '理赔处理中' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.customerno = si1.scustid and p.salecom = si1.salecom and p.contno IN (
- SELECT c.contno FROM dsj.INSURANCE_CLAIM c WHERE c.llclaimstate = '受理' OR c.llclaimstate = '立案'
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label111 = '最近保全完成' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and p.salecom = si1.salecom and p.contno IN (
- SELECT l.contno FROM dsj.lpedoritem l WHERE DATEDIFF(to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S'),l.edorappdate) < 15 AND l.edorstate = '0'
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label113 = '生存金未领' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.customerno = si1.scustid and p.salecom = si1.salecom and p.contno IN (
- SELECT contno FROM dsj.Lcinsureacc WHERE acctype = '005' and insuaccbala>0
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label115 = '红利垫缴还款' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.customerno = si1.scustid and p.salecom = si1.salecom and p.contno IN (
- SELECT a.contno FROM dsj.LOLOANDETAIL a,dsj.LDCode1 b WHERE
- b.codetype='lnmoneytype' AND b.code=a.finfeetype and b.code1=a.moneytype
- AND ((a.finfeetype = 'HL' AND a.moneytype = 'SX') OR (a.finfeetype = 'SC' AND a.moneytype = 'HK'))
- )
- );
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.label117 = '宽限期' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE
- p.payintv= '期缴' AND p.appflag='有效' AND p.payendyear!=p.paycount and
- DATEDIFF(DATE_ADD(p.paytodate, 60),to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) > 0 AND DATEDIFF(DATE_ADD(p.paytodate, 60),to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) < 3
- and p.customerno = si1.scustid and p.salecom = si1.salecom
- );
-
- UPDATE shanglifeecif.customerno_salecom_relation si1 SET si1.Label120 = '重点银行' WHERE exists (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.customerno = si1.scustid and si1.salecom = '03' and p.AGENTCOM LIKE '%招商银行%'
- );
- dbms_output.put_line('update_customerno_salecom_relation_labels 函数跑批完成!');
- EXCEPTION
- WHEN HIVE_EXCEPTION THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- WHEN Others THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.updateindividuallable() IS
- DECLARE
- BEGIN
-
- UPDATE shanglifeecif.Individual si1 SET si1.label1 = si1.Education where si1.Education is not null;
- UPDATE shanglifeecif.Individual si1 SET si1.label2 = si1.Occupation where si1.Occupation is not null;
- UPDATE shanglifeecif.Individual si1 SET si1.label3 = substr(si1.birthday,3,1) || '0后' where 1 = 1;
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.label9 = si1.maritalStat WHERE 1 = 1;
-
-
-
-
-
-
-
-
- UPDATE shanglifeecif.individual si1 SET si1.cochild = (
- SELECT nvl(t.cnum,0) FROM (
- SELECT si.indid1,count(*) AS cnum FROM shanglifeecif.IndRelationShip si
- WHERE si.rstype = '子女' GROUP BY si.indid1
- ) t WHERE t.indid1 = si1.scustid
- ) ;
- UPDATE shanglifeecif.Individual si1 SET si1.label10 = (
- case
- when si1.COChild=0 then '无子女'
- when si1.COChild=1 then '1孩'
- when si1.COChild>=2 then '2孩及以上'
- else null END
- ) WHERE si1.cochild is not null;
-
-
-
-
-
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label21 = (
- CASE
- WHEN si1.pincome >=0 AND si1.pincome<=12 THEN '低收入'
- WHEN si1.pincome >12 AND si1.pincome<=100 THEN '中产'
- WHEN si1.pincome > 100 THEN '富人'
- else null END
- ) where 1 = 1;
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label22 = (
- CASE
- WHEN si1.COVehicle ==0 THEN '无车'
- WHEN si1.COVehicle == 1 THEN '1辆车'
- WHEN si1.COVehicle > 1 THEN '2辆车以上'
- ELSE NULL END
- ) where 1 = 1;
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label23 = (
- CASE
- WHEN si1.CORP ==0 THEN '无房'
- WHEN si1.CORP == 1 THEN '1套房'
- WHEN si1.CORP > 1 THEN '2套房以上'
- else null END
- ) where 1 = 1;
- UPDATE shanglifeecif.Individual si1 SET si1.label24 = '持有寿险有效保单' WHERE si1.scustid in
- (SELECT p.customerno FROM dsj.policy_information p,dsj.riskkind l WHERE p.riskcode = l.riskcode AND p.appflag = '有效' AND (l.kindtype = '新型寿险' OR l.kindtype = '人寿保险'));
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.label26 = '有保单贷款' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.contno IN (
- SELECT contno FROM dsj.loloandetail WHERE moneytype='DK'
- )
- );
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label27 = (
- SELECT
- CASE
- WHEN temp.cnt > 0 AND temp.cnt = temp.tnum THEN '仅极短意外险'
- WHEN temp.cnt > 0 AND temp.cnt <> temp.tnum THEN '有极短意外险'
- END
- FROM (
- SELECT p.customerno,max(cnt) cnt,nvl(count(*),0) tnum FROM (
- SELECT
- count(1) cnt,
- po.customerno
- FROM
- dsj.policy_information po
- where
- po.SECURITY in('7天','15天','30天','90天','1月','3月')
- and
- po.riskperiod='短期险'
- and
- po.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
- GROUP BY
- po.customerno
- ) t LEFT JOIN dsj.policy_information p ON t.customerno = p.customerno GROUP BY p.customerno
- ) temp where temp.customerno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label29 = '有趸交保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.payintv = '趸缴' and p.riskperiod = '长期险' AND p.contno IN (SELECT l.contno FROM dsj.PREMIUM_LIST l WHERE l.PAYMENT_PERIOD LIKE '%一次交清%')
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label30 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '本人未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为本人投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为本人投保'
- END
- FROM (
- SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
- SELECT count(*) AS bnum,p.customerno FROM dsj.policy_information p WHERE p.relationtoappnt = '本人' GROUP BY p.customerno
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
- ) tt WHERE tt.customerno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label31 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '父母未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为父母投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为父母投保'
- END
- FROM (
- SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
- SELECT count(*) AS bnum,p.customerno FROM dsj.policy_information p WHERE (p.RELATIONTOAPPNT = '子女' OR p.RELATIONTOAPPNT = '父母') AND p.birthday > p.insuredbirthday
- GROUP BY p.customerno
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
- ) tt WHERE tt.customerno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label32 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '子女未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为子女投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为子女投保'
- END
- FROM (
- SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
- SELECT nvl(count(*),0) AS bnum,p.customerno FROM dsj.policy_information p WHERE (p.RELATIONTOAPPNT = '子女' OR p.RELATIONTOAPPNT = '父母') AND p.birthday < p.insuredbirthday GROUP BY p.customerno
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
- ) tt WHERE tt.customerno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label33 = (
- SELECT
- CASE
- WHEN tt.bnum = 0 THEN '配偶未投保'
- WHEN tt.bnum > 0 and tt.bnum <> tt.tnum THEN '为配偶投保'
- WHEN tt.bnum > 0 and tt.bnum = tt.tnum THEN '仅为配偶投保'
- END
- FROM (
- SELECT t.customerno,MAX(t.bnum) bnum,count(*) as tnum FROM (
- SELECT count(*) AS bnum,p.customerno FROM dsj.policy_information p WHERE p.relationtoappnt = '配偶' GROUP BY p.customerno
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno GROUP BY t.customerno
- ) tt WHERE tt.customerno = si1.scustid
- );
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label43 = (
- SELECT
- CASE
- WHEN temp.cnt > 0 AND temp.cnt = temp.tnum THEN '仅有1年期短险保单'
- WHEN temp.cnt > 0 AND temp.cnt <> temp.tnum THEN '有1年期短险保单'
- END
- FROM (
- SELECT p.customerno,max(cnt) cnt,nvl(count(*),0) tnum FROM (
- SELECT
- count(1) cnt,
- po.customerno
- FROM
- dsj.policy_information po
- where
- po.SECURITY in('1年','6月','180天')
- and
- po.riskperiod='短期险'
- and
- po.riskcode not in('1066008','1066007','1066006','1066004','1066003','1066002','1066001','1065005','1065003','1065001','1025003')
- GROUP BY
- po.customerno
- ) t LEFT JOIN dsj.policy_information p ON t.customerno = p.customerno GROUP BY p.customerno
- ) temp where temp.customerno = si1.scustid
- );
-
- UPDATE shanglifeecif.Individual si1 SET si1.label44 = '有失效保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag <> '有效' and p.contno IN (select contno from dsj.lccontstate where statetype = 'Available' )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label45 = '有缴费期满长险保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.paycount = p.payendyear AND p.riskperiod='长期险'
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label46 = '有续期缴费保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.contno IN (
- select otherno from dsj.ljspay where othernotype = '2'
- )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label47 = '有责任期满的保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.enddate < to_char(SYSDATE,"yyyy-MM-dd HH:mm:ss.S")
- );
-
- UPDATE shanglifeecif.Individual si1 SET si1.FADate = (
- SELECT fadate FROM (
- SELECT p.customerno,min(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.customerno
- ) t WHERE t.customerno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.FADate = (
- SELECT fadate FROM (
- SELECT p.insuredno,min(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.insuredno
- ) t WHERE t.insuredno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label48 = '首次投保日期'|| to_char(si1.fadate, 'yyyy-MM-dd') WHERE si1.fadate IS NOT NULL;
- UPDATE shanglifeecif.Individual si1 SET si1.LAPPDate = (
- SELECT fadate FROM (
- SELECT p.customerno,max(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.customerno
- ) t WHERE t.customerno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.LAPPDate = (
- SELECT fadate FROM (
- SELECT p.insuredno,max(p.polapplydate) AS fadate FROM dsj.POLICY_INFORMATION p WHERE p.polapplydate IS NOT null GROUP BY p.insuredno
- ) t WHERE t.insuredno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label49 = '最后一次投保距今' || DATEDIFF(sysdate(), si1.LAPPDate) || '天' WHERE si1.lappdate IS NOT NULL;
- UPDATE shanglifeecif.Individual si1 SET si1.label50 = (SELECT '最近保单' || trim(t.salecomname) FROM (
- SELECT p.customerno,row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate DESC) rd,p.salecomname FROM dsj.POLICY_INFORMATION p
- WHERE p.salecomname IS NOT null
- ) t WHERE t.rd = 1 AND t.customerno = si1.scustid);
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.label52 = (SELECT '首单' || trim(t.salecomname) FROM (
- SELECT p.customerno,row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate asc) rd,p.salecomname FROM dsj.POLICY_INFORMATION p WHERE p.salecomname IS NOT null
- ) t WHERE t.rd = 1 AND t.customerno = si1.scustid);
-
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.label54 = (
- SELECT '最近保单状态'||trim(t.appflag) FROM (
- SELECT row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate DESC) rd,p.customerno,p.appflag FROM dsj.policy_information p
- ) t WHERE t.rd = 1 AND si1.scustid = t.customerno
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label55 = (
- SELECT '客户最近一次办理'||t.edorname FROM (
- SELECT
- row_number() over(partition by p.customerno ORDER BY l.edorAPPDATE DESC,l.uwtime DESC) rn,
- l.edortype,
- l.contno,
- p.customerno,
- l.edorappdate,
- l.edorstate,
- lm.edorcode,
- lm.edorname
- FROM dsj.lpedoritem l,dsj.lmedoritem lm,dsj.policy_information p
- WHERE l.edortype = lm.edorcode AND lm.appobj <> 'G' AND l.edorstate = '0' AND p.contno = l.contno
- ) t WHERE t.rn = 1 AND si1.scustid = t.customerno
- ) WHERE 1 = 1;
- UPDATE shanglifeecif.Individual si1 SET si1.label56 = '有退保保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- select contno from dsj.lpedoritem where edortype in ('CT', 'XT', 'GT') and edorstate = '0'
- )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label57 = (
- SELECT "最近一次理赔类型" || t.ACCIDENTTYPE FROM (
- SELECT row_number()OVER(PARTITION BY c.insuredno ORDER BY c.applydate desc) rd,c.insuredno,c.ACCIDENTTYPE FROM dsj.INSURANCE_CLAIM c
- ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label58 = (
- SELECT "最近一次出险类型" || t.RISKTYPE FROM (
- SELECT row_number()OVER(PARTITION BY c.insuredno ORDER BY c.applydate desc) rd,c.insuredno,c.RISKTYPE FROM dsj.INSURANCE_CLAIM c
- ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label59 = (
- SELECT '最近一次理赔状态' || t.LLCLAIMSTATE FROM (
- SELECT row_number()OVER(PARTITION BY c.insuredno ORDER BY c.applydate desc) rd,c.insuredno,c.LLCLAIMSTATE FROM dsj.INSURANCE_CLAIM c
- ) t WHERE t.rd = 1 AND t.insuredno = si1.scustid
- );
-
- UPDATE shanglifeecif.Individual si1 SET si1.label61 = '有满期给付保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- SELECT contno FROM dsj.lcget WHERE getdutycode IN (select getdutycode from dsj.lmdutygetalive where getdutyname in ('满期保险金','满期生存保险金'))
- )
- );
-
- UPDATE shanglifeecif.Individual si1 SET si1.label62 = '有生存金给付的保单' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- SELECT contno FROM dsj.lcget WHERE getdutycode IN (select getdutycode from dsj.lmdutygetalive where getdutyname = '生存保险金')
- ) and p.appflag = '有效'
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label64 = '红利可领取的保单' WHERE si1.scustid IN
- (SELECT p.customerno FROM dsj.policy_information p,dsj.lmriskapp l WHERE p.appflag = '有效' and p.riskcode = l.riskcode AND l.bonusflag = 1);
- UPDATE shanglifeecif.Individual si1 SET si1.label65 = '一单寿险客户' WHERE si1.scustid IN (SELECT temp.customerno FROM (
- SELECT pi.customerno,count(DISTINCT pi.contno) AS tnum,max(t.pnum) AS pnum FROM (
- SELECT count(DISTINCT p.contno) AS pnum,p.customerno FROM dsj.POLICY_INFORMATION p
- LEFT JOIN dsj.riskkind b on p.riskcode = b.riskcode
- WHERE (b.kindtype = '新型寿险' or b.kindtype = '人寿保险') GROUP BY p.customerno
- ) t LEFT JOIN dsj.POLICY_INFORMATION pi ON pi.customerno = t.customerno
- GROUP BY pi.customerno
- )temp WHERE temp.tnum = temp.pnum AND tnum = 1);
- UPDATE shanglifeecif.Individual si1 SET si1.label66 = '缴费期满客户' WHERE si1.scustid IN (
- SELECT temp.customerno FROM (
- SELECT count(*) AS tnum,max(t.customerno) AS customerno,max(t.pnum) AS pnum FROM (
- SELECT p.customerno,count(*) AS pnum FROM dsj.policy_information p WHERE p.paycount = p.payendyear GROUP BY p.customerno
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno
- GROUP BY pi.customerno
- ) temp WHERE temp.tnum = temp.pnum
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label67 = '生日与司庆日同天' where si1.birthday like '%-02-15%';
- UPDATE shanglifeecif.Individual si1 SET si1.label68 = '持有有效保单' WHERE si1.scustid IN (SELECT t.customerno FROM (
- SELECT count(*) AS pnum,p.customerno FROM dsj.POLICY_INFORMATION p
- WHERE p.appflag = '有效' GROUP BY p.customerno
- ) t WHERE t.pnum > 0);
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label69 = (
- CASE si1.CustClass
- WHEN 1 THEN '钻石客户'
- WHEN 2 THEN '白金客户'
- WHEN 3 THEN '黄金客户'
-
-
- ELSE ''
- END
- ) where 1 = 1;
- UPDATE shanglifeecif.Individual si1 SET si1.Label70 = (
- SELECT '最近'||t.scenario FROM (
- SELECT
- row_number()OVER(PARTITION BY pl.partyid ORDER BY pl.sdate desc) rn,
- pl.partyid,
- pl.scenario
- FROM shanglifeecif.partytimeline pl WHERE pl.partyid IS NOT NULL
- ) t WHERE t.rn = 1 AND si1.scustid = t.partyid
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label71 = (
- SELECT '最近'||CASE t.scenario WHEN '回访' THEN '外呼' WHEN '咨询' THEN '呼入' END FROM (
- SELECT
- row_number()OVER(PARTITION BY pl.partyid ORDER BY pl.sdate desc) rn,
- pl.partyid,
- pl.scenario
- FROM shanglifeecif.partytimeline pl WHERE pl.partyid IS NOT NULL AND (pl.scenario = '回访' OR pl.scenario = '咨询')
- ) t WHERE t.rn = 1 AND si1.scustid = t.partyid
- );
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label74 = '注册官微'
- WHERE si1.idcard IN (SELECT a.certificate_no FROM dsj.account a WHERE a.account_status = 0)
- OR si1.passport IN (SELECT a.certificate_no FROM dsj.account a WHERE a.account_status = 0)
- OR si1.Dlicense IN (SELECT a.certificate_no FROM dsj.account a WHERE a.account_status = 0)
- OR si1.othernumber IN (SELECT a.certificate_no FROM dsj.account a WHERE a.account_status = 0);
- UPDATE shanglifeecif.Individual si1 SET si1.label76 = '丈夫生日临近' WHERE si1.scustid IN (
- SELECT sis.indid1 FROM shanglifeecif.indrelationship sis LEFT JOIN shanglifeecif.individual si ON sis.indid2 = si.scustid
- WHERE sis.rstype = '配偶' AND DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))<=5 AND
- DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))>0 AND sis.role2 = '丈夫'
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label76 = '妻子生日临近' WHERE si1.scustid IN (
- SELECT sis.indid1 FROM shanglifeecif.indrelationship sis LEFT JOIN shanglifeecif.individual si ON sis.indid2 = si.scustid
- WHERE sis.rstype = '配偶' AND DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))<=5 AND
- DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))>0 AND sis.role2 = '妻子'
- );
-
- UPDATE shanglifeecif.Individual si1 SET si1.label77 = '本人生日临近' WHERE si1.scustid IN (
- SELECT scustid FROM (
- SELECT * FROM (
- SELECT scustid , birthday , month(current_date() ) nowmonth ,month(date_add(current_date(),5)) nextmonth ,month(to_date(birthday)) usermonth , day(current_date() ) nowday ,day(date_add(current_date(),5)) nextday
- , day(to_date(birthday)) userday from shanglifeecif.Individual
- )
- WHERE
- (nowmonth != nextmonth AND
- (
- (nowmonth== usermonth AND userday> nowday )
- or (nextmonth == usermonth AND userday <= nextday )
- )
- )
- OR (nowmonth == nextmonth AND nowmonth == usermonth AND userday > nowday AND userday <=nextday )
- )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label78 = '父亲生日临近' WHERE si1.scustid IN (
- SELECT sis.indid1 FROM shanglifeecif.indrelationship sis LEFT JOIN shanglifeecif.individual si ON sis.indid2 = si.scustid
- WHERE sis.rstype = '父母' AND DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))<=5 AND
- DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))>0 AND sis.role2 = '父亲'
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label78 = '母亲生日临近' WHERE si1.scustid IN (
- SELECT sis.indid1 FROM shanglifeecif.indrelationship sis LEFT JOIN shanglifeecif.individual si ON sis.indid2 = si.scustid
- WHERE sis.rstype = '父母' AND DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))<=5 AND
- DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))>0 AND sis.role2 = '母亲'
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label79 = '儿子生日临近' WHERE si1.scustid IN (
- SELECT sis.indid1 FROM shanglifeecif.indrelationship sis LEFT JOIN shanglifeecif.individual si ON sis.indid2 = si.scustid
- WHERE sis.rstype = '子女' AND DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))<=5 AND
- DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))>0 AND sis.role2 = '儿子'
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label79 = '女儿生日临近' WHERE si1.scustid IN (
- SELECT sis.indid1 FROM shanglifeecif.indrelationship sis LEFT JOIN shanglifeecif.individual si ON sis.indid2 = si.scustid
- WHERE sis.rstype = '子女' AND DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))<=5 AND
- DATEDIFF(to_char(si.birthday,"2022-MM-dd"),to_char(SYSDATE,"2022-MM-dd"))>0 AND sis.role2 = '女儿'
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label80 = '近期咨询过产品' WHERE si1.scustid IN (
- SELECT dp.customerno FROM dsj.policy_information dp WHERE dp.contno IN (
- SELECT rm.contnos FROM dsj.cc_record_main rm WHERE (rm.reasonsecondname LIKE '%保单基本信息%' OR rm.reasonsecondname LIKE '%投保咨询%')
- and rm.contnos IS not NULL AND DATEDIFF(SYSDATE,rm.starttime) < 7 )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label81 = '近期咨询过理赔' WHERE si1.scustid IN (
- SELECT dp.customerno FROM dsj.policy_information dp WHERE dp.contno IN (
- SELECT rm.contnos FROM dsj.cc_record_main rm WHERE rm.reasonsecondname LIKE '%理赔%'
- and rm.contnos IS not NULL AND DATEDIFF(SYSDATE,rm.starttime) < 7)
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label88 = '续期临期未缴费' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效'AND p.payintv = '期缴' AND p.payendyear<>p.paycount AND
- DATEDIFF(p.paytodate,to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) > 0 and DATEDIFF(p.paytodate,to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) < 5
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label89 = '续期到期未缴费' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效'AND p.payintv = '期缴' AND p.payendyear<>p.paycount AND
- to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S') > DATE_ADD(p.paytodate, 60)
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label91 = '失效客户' WHERE si1.scustid IN (SELECT temp.customerno FROM (
- SELECT count(*) AS tnum,max(t.customerno) AS customerno,max(t.pnum) AS pnum FROM (
- SELECT p.customerno,count(*) AS pnum FROM dsj.policy_information p WHERE p.appflag <> '有效' GROUP BY p.customerno
- ) t LEFT JOIN dsj.policy_information pi ON pi.customerno = t.customerno
- GROUP BY pi.customerno
- ) temp WHERE temp.tnum = temp.pnum);
- UPDATE shanglifeecif.Individual si1 SET si1.label92 = (
- SELECT '有'||t.terminatestate||'保单' FROM (
- SELECT row_number()over(partition by p.customerno order by p.polapplydate desc) rn,p.customerno,p.terminatestate FROM dsj.policy_information p
- WHERE p.appflag = '中止'
- ) t WHERE t.rn = 1 AND si1.scustid = t.customerno
- );
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label94 = (
- SELECT '有'||t.terminatestate||'保单' FROM (
- SELECT row_number()over(partition by p.customerno order by p.polapplydate desc) rn,p.customerno,p.terminatestate FROM dsj.policy_information p
- WHERE p.appflag = '终止'
- ) t WHERE t.rn = 1 AND si1.scustid = t.customerno
- );
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label95 = (
- SELECT
- CASE
- WHEN t.dnum=0 THEN '上一年如期缴费'
- WHEN t.dnum<0 THEN '上一年提前'||abs(t.dnum)||'天交费'
- WHEN t.dnum>0 AND t.dnum<=60 THEN '上一年滞后'||t.dnum||'天交费'
- WHEN t.dnum>60 THEN '上一年宽限期外交费'
- END
- FROM (
- SELECT
- row_number()over(PARTITION BY l.appntno ORDER BY l.confdate DESC) rn,l.appntno,DATEDIFF(to_char(l.confdate,'0000-MM-dd'),to_char(l.curpaytodate,'0000-MM-dd')) AS dnum
- FROM dsj.ljapayperson l WHERE l.paycount > 1 AND YEAR(l.confdate) = YEAR(sysdate) - 1
- ) t WHERE t.rn = 1 AND t.appntno = si1.scustid
- ) WHERE 1 = 1;
- UPDATE shanglifeecif.Individual si1 SET si1.Label96 = '大龄' where si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- SELECT contnos from dsj.cc_record_main
- )
- ) AND TRUNC(months_between(sysdate, si1.birthday)/12)>=50 AND TRUNC(months_between(sysdate, si1.birthday)/12)<60;
- UPDATE shanglifeecif.Individual si1 SET si1.Label97 = '高龄' where si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- SELECT contnos from dsj.cc_record_main
- )
- ) AND TRUNC(months_between(sysdate, si1.birthday)/12)>=60;
- UPDATE shanglifeecif.Individual si1 SET si1.Label100 = (CASE WHEN si1.occupation like '%记者%' OR si1.occupation like '%律师%' OR si1.occupation like '%公务员%' OR si1.occupation like '%媒体%' OR si1.occupation like '%金融行业%' THEN '敏感职业' END ) WHERE 1 = 1;
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label101 = (
- SELECT '长通话' FROM (
- SELECT
- t.contnos,
- row_number()OVER(PARTITION BY p.customerno) rn,
- p.customerno
- FROM (
- SELECT (sum(lo.call_length)/count(*)) AS avgcalltime,m.contnos from dsj.cc_record_main m
- LEFT JOIN dsj.ucc_rms_recorderlog lo ON m.call_id = lo.call_id
- WHERE m.contnos IS NOT NULL AND lo.call_length IS NOT NULL
- GROUP BY m.contnos
- ) t LEFT JOIN dsj.policy_information p ON t.contnos = p.contno
- WHERE t.avgcalltime>600
- ) temp WHERE temp.customerno IS NOT NULL AND temp.rn = 1 AND si1.scustid = temp.customerno
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label103 = '要求较多' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- SELECT temp.policyno FROM (
- SELECT t.policyno,max(t.mnum) mnum,max(t.fnum) fnum FROM (
- SELECT m.contnos policyno,count(*) AS mnum,'' AS fnum FROM dsj.cc_record_main m WHERE m.contnos IS NOT NULL GROUP BY m.contnos
- UNION
- SELECT f.policyno,'' AS mnum,count(*) AS fnum FROM dsj.cc_swfflowmain f WHERE f.modelno = 1 GROUP BY f.policyno
- )t GROUP BY t.policyno
- ) temp WHERE (temp.fnum/temp.mnum)>0.7
- )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label104 = '易投诉升级' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- SELECT temp.policyno FROM (
- SELECT t.policyno,max(t.mnum) mnum,max(t.fnum) fnum FROM (
- SELECT m.contnos policyno,count(*) AS mnum,'' AS fnum FROM dsj.cc_record_main m WHERE m.contnos IS NOT NULL GROUP BY m.contnos
- UNION
- SELECT f.policyno,'' AS mnum,count(*) AS fnum FROM dsj.cc_swfflowmain f,dsj.cc_swf_sort r WHERE r.id=f.complaintProject and f.modelno = 1 AND r.idname='投诉' GROUP BY f.policyno
- )t GROUP BY t.policyno
- ) temp WHERE temp.mnum = temp.fnum
- )
- );
-
-
-
-
-
-
-
-
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label105 = '高频投诉' WHERE si1.scustid in (
- SELECT t.customerno FROM (
- SELECT
- row_number()OVER(PARTITION BY t1.customerno ORDER BY ca.inserttime) rownum,
- t1.customerno,
- t1.contno,
- ca.inserttime FROM (
- SELECT
- max(p.customerno) customerno,
- p.contno
- FROM dsj.policy_information p GROUP BY p.contno
- ) t1 LEFT JOIN dsj.cc_action_complaints ca ON t1.contno = ca.productnos
- ) t LEFT JOIN (
- SELECT
- row_number()OVER(PARTITION BY t1.customerno ORDER BY ca.inserttime) rownum,
- t1.customerno,
- t1.contno,
- ca.inserttime FROM (
- SELECT
- max(p.customerno) customerno,
- p.contno
- FROM dsj.policy_information p GROUP BY p.contno
- ) t1 LEFT JOIN dsj.cc_action_complaints ca ON t1.contno = ca.productnos
- ) tt ON t.customerno = tt.customerno AND t.rownum = tt.rownum+1
- WHERE DATEDIFF(tt.inserttime,t.inserttime) < 180
- );
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label106 = (
- SELECT
- CASE
- WHEN tt.complaintsSource LIKE '%保监会%' THEN '重大投诉'
- WHEN tt.complaintsSource LIKE '%保监局%' THEN '重大投诉'
- WHEN tt.complaintsSource LIKE '%媒体转办%' THEN '重大投诉' END FROM (
- SELECT pi.customerno,max(complaintsSource) AS complaintsSource FROM (
- select group_concat((case c.complaintsSource
- when '911' then '来电'
- when '912' then '来访'
- when '913' then '来函'
- when '914' then '保监会转办'
- when '919' then '保监局转办'
- when '915' then '媒体转办'
- when '916' then '同业公会'
- when '917' then '其他转办'
- when '918' then '呼出'
- else c.complaintsSource END),',') as complaintsSource,p.contno from dsj.cc_action_complaints c,dsj.cc_action_data_complaints cd,dsj.policy_information p
- where cd.complaintsid=c.complaintsid AND p.contno = cd.productno GROUP BY p.contno
- ) t LEFT JOIN dsj.policy_information pi ON t.contno = pi.contno GROUP BY pi.customerno
- ) tt WHERE tt.customerno = si1.scustid
- );
-
-
-
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label107 = '高金额'
- WHERE si1.scustid IN (SELECT p.customerno FROM dsj.policy_information p WHERE
- p.appflag = '有效' AND p.payintv = '期缴' and
- ((p.salecom = '03' AND p.prem>50000) OR (p.salecom = '02' AND p.prem>20000) OR (p.salecom = '06' AND p.prem>20000)));
- UPDATE shanglifeecif.Individual si1 SET si1.Label108 = '最近理赔结案' WHERE si1.scustid IN (
- SELECT c.insuredno FROM dsj.INSURANCE_CLAIM c WHERE DATEDIFF(to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S'),c.endcasedate) < 15
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label109 = '理赔报案追踪' WHERE si1.scustid IN (SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.contno IN (SELECT c.CONTNO FROM dsj.insurance_claim c WHERE c.LLCLAIMSTATE = '报案' AND DATEDIFF(sysdate(), c.RPTDATE) <30) );
- UPDATE shanglifeecif.Individual si1 SET si1.label110 = '理赔处理中' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.contno IN (SELECT c.contno FROM dsj.INSURANCE_CLAIM c WHERE c.llclaimstate = '受理' OR c.llclaimstate = '立案')
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label111 = '最近保全完成' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.contno IN (
- SELECT l.contno FROM dsj.lpedoritem l WHERE DATEDIFF(to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S'),l.edorappdate) < 15 AND l.edorstate = '0'
- )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label113 = '生存金未领' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.contno IN (
- SELECT contno FROM dsj.Lcinsureacc WHERE acctype = '005' and insuaccbala>0
- )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label115 = '红利垫缴还款' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.appflag = '有效' and p.contno IN (
- SELECT a.contno FROM dsj.LOLOANDETAIL a,dsj.LDCode1 b WHERE
- b.codetype='lnmoneytype' AND b.code=a.finfeetype and b.code1=a.moneytype
- AND ((a.finfeetype = 'HL' AND a.moneytype = 'SX') OR (a.finfeetype = 'SC' AND a.moneytype = 'HK'))
- )
- );
- UPDATE shanglifeecif.Individual si1 SET si1.label117 = '宽限期' WHERE si1.scustid IN (
- SELECT p.customerno FROM dsj.policy_information p WHERE p.payintv= '期缴' AND p.appflag='有效' AND p.payendyear!=p.paycount and
- DATEDIFF(DATE_ADD(p.paytodate, 60),to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) > 0 AND DATEDIFF(DATE_ADD(p.paytodate, 60),to_char(SYSDATE,'yyyy-MM-dd HH:mm:ss.S')) < 3
- );
- UPDATE shanglifeecif.Individual si1 SET si1.Label120 = '重点银行' WHERE
- si1.scustid IN (SELECT p.customerno FROM dsj.policy_information p WHERE p.AGENTCOM LIKE '%招商银行%');
- dbms_output.put_line('updateindividuallable函数跑批完成!');
- EXCEPTION
- WHEN HIVE_EXCEPTION THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- WHEN Others THEN
- INSERT INTO shanglifeecif.exception_log(log_id,log_code,log_msg,log_time) VALUES (to_char(sysdate(),'yyyyMMddHHmmss'),sqlcode(),sqlerrm(),sysdate());
- END;
|