123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374 |
- CREATE OR REPLACE PROCEDURE shanglifeecif.age_sex_distribution() IS
- DECLARE
- BEGIN
- UPDATE shanglifeecif.Individual si1 SET si1.label4 = (SELECT CASE WHEN temp.age>=0 AND temp.age<13 THEN '儿童' WHEN temp.age>=13 AND temp.age <19 THEN '少年' WHEN temp.age >=19 AND temp.age <41 THEN '青年' WHEN temp.age >=41 AND temp.age <66 THEN '中年' ELSE '老年' END FROM (SELECT TRUNC(months_between(sysdate, si2.birthday)/12) age,si2.indid FROM shanglifeecif.Individual si2) temp WHERE temp.indid = si1.indid);
- DELETE FROM shanglifeecif.age_sex_distribution;
- insert into shanglifeecif.age_sex_distribution (
- id,
- labelName,
- gender,
- cusNum
- ) SELECT row_number()over(),t.labelName,t.gender,t.cusNum FROM (
- SELECT si.label4 labelName,si.gender,count(1) cusNum FROM shanglifeecif.individual si WHERE si.label4 IS NOT null GROUP BY si.label4,si.gender
- ) t;
- dbms_output.put_line('age_sex_distribution函数跑批完成!');
- 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.bdnum_distribution() IS
- DECLARE
- BEGIN
-
- UPDATE shanglifeecif.Individual si1 SET si1.NOVPolicy = (SELECT nvl(t.cnum,0) FROM (
- SELECT temp.customerno,count(*) AS cnum FROM (
- SELECT max(p.customerno) customerno,p.contno FROM dsj.policy_information p WHERE p.appflag = '有效' GROUP BY p.contno
- ) temp GROUP BY temp.customerno
- ) t WHERE t.customerno = si1.scustid);
-
- UPDATE shanglifeecif.Individual si1 SET si1.noivpolicy = (SELECT nvl(t.cnum,0) FROM (
- SELECT temp.customerno,count(*) AS cnum FROM (
- SELECT max(p.customerno) customerno,p.contno FROM dsj.policy_information p WHERE p.appflag <> '有效' GROUP BY p.contno
- ) temp GROUP BY temp.customerno
- ) t WHERE t.customerno = si1.scustid);
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label25 = (
- CASE
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 0 THEN '无保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 1 THEN '1件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 2 THEN '2件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 3 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 5 THEN '3-5件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 6 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 10 THEN '6-10件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 11 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0))<= 20 THEN '11-20件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 21 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 50 THEN '21-50件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) > 50 THEN '50件保单以上'
- END
- ) where si1.custtype like '%投保人%';
-
- DELETE FROM shanglifeecif.bdnum_distribution;
-
-
- insert into shanglifeecif.bdnum_distribution (id, labelName, bdnum) VALUES
- ('1', '无保单', '0'),
- ('2', '1件', '0'),
- ('3', '2件', '0'),
- ('4', '3-5件', '0'),
- ('5', '6-10件', '0'),
- ('6', '11-20件', '0'),
- ('7', '21-50件', '0'),
- ('8', '50件以上', '0');
- UPDATE shanglifeecif.bdnum_distribution b SET bdnum = (
- SELECT t.bdnum FROM (
- SELECT
- CASE
-
- WHEN trim(si.label25) = '1件保单' THEN '1件'
- WHEN trim(si.label25) = '2件保单' THEN '2件'
- WHEN trim(si.label25) = '3-5件保单' THEN '3-5件'
- WHEN trim(si.label25) = '6-10件保单' THEN '6-10件'
- WHEN trim(si.label25) = '11-20件保单' THEN '11-20件'
- WHEN trim(si.label25) = '21-50件保单' THEN '21-50件'
- WHEN trim(si.label25) = '50件保单以上' THEN '50件以上'
- ELSE trim(si.label25)
- END AS labelName
- , count(1) bdnum
- FROM shanglifeecif.individual si
- WHERE si.label25 IS NOT NULL GROUP BY si.label25
- ) t
- WHERE b.labelName = t.labelName
- );
- dbms_output.put_line('bdnum_distribution函数跑批完成!');
- 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.bdnum_distribution_channel() IS
- DECLARE
- BEGIN
-
- UPDATE shanglifeecif.Individual si1 SET si1.NOVPolicy = (SELECT nvl(t.cnum,0) FROM (
- SELECT temp.customerno,count(*) AS cnum FROM (
- SELECT max(p.customerno) customerno,p.contno FROM dsj.policy_information p WHERE p.appflag = '有效' GROUP BY p.contno
- ) temp GROUP BY temp.customerno
- ) t WHERE t.customerno = si1.scustid);
-
- UPDATE shanglifeecif.Individual si1 SET si1.noivpolicy = (SELECT nvl(t.cnum,0) FROM (
- SELECT temp.customerno,count(*) AS cnum FROM (
- SELECT max(p.customerno) customerno,p.contno FROM dsj.policy_information p WHERE p.appflag <> '有效' GROUP BY p.contno
- ) temp GROUP BY temp.customerno
- ) t WHERE t.customerno = si1.scustid);
-
- UPDATE shanglifeecif.Individual si1 SET si1.Label25 = (
- CASE
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 0 THEN '无保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 1 THEN '1件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) == 2 THEN '2件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 3 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 5 THEN '3-5件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 6 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 10 THEN '6-10件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 11 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0))<= 20 THEN '11-20件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) >= 21 AND (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) <= 50 THEN '21-50件保单'
- WHEN (nvl(si1.NOVPolicy,0) + nvl(si1.NOIVPolicy,0)) > 50 THEN '50件保单以上'
- END
- ) where si1.custtype like '%投保人%';
- DELETE FROM shanglifeecif.bdnum_distribution_channel;
- insert into shanglifeecif.bdnum_distribution_channel (
- id,
- labelName,
- bdnum
- ) SELECT row_number()over(),t.labelName,t.bdnum FROM (
- SELECT si.label25 labelName,count(1) bdnum FROM shanglifeecif.individual si WHERE si.label25 IS NOT null GROUP BY si.label25
- ) t;
- dbms_output.put_line('bdnum_distribution_channel函数跑批完成!');
- 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.customer_risk_temp()
- IS
- DECLARE
- BEGIN
- DELETE FROM shanglifeecif.customer_risk_temp;
- INSERT INTO shanglifeecif.customer_risk_temp(
- id,
- scustid,
- name,
- gender,
- idcard,
- birthday,
- policyno,
- productname,
- riskcategoriesname,
- risk,
- salecom,
- salecomname
- )
- SELECT
- row_number()over(),
- si.scustid,
- si.name,
- CASE si.gender
- WHEN '0' THEN '男'
- WHEN '1' THEN '女'
- END AS gender,
- si.idcard,
- to_char(si.birthday,"yyyy-MM-dd") birthday,
- sit.policyno,
- sit.productname,
- sit.risk_categories_name,
- sit.Risk,
- sit.policybelong,
- sit.salecomname
- FROM shanglifeecif.individual si
- LEFT JOIN shanglifeecif.insurancearrangement sit ON si.scustid = sit.insuredscustid;
- dbms_output.put_line('customer_risk_temp函数跑批完成!');
- 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.customertotaltemp() IS
- DECLARE
- BEGIN
- DELETE FROM shanglifeecif.customertotaltemp;
- insert into shanglifeecif.customertotaltemp(
- scustid,
- name,
- gender,
- birthday,
- idcard,
- idtype
- )
- SELECT
- scustid ,
- max(name) as name,
- max(gender) as gender ,
- to_char(max(birthday),"yyyy-MM-dd") birthday,
- max(idcard) as idcard,
- max(idtype) AS idtype
- FROM (
- SELECT
- trim(customerno) AS scustid,
- trim(name) AS name,
- trim(sex) AS gender,
- trim(birthday) AS birthday,
- trim(idtype) AS idtype ,
- trim(idno) AS idcard
- FROM
- dsj.policy_information
- WHERE customerno IS NOT NULL
- UNION
- SELECT
- trim(insuredno) AS scustid,
- trim(insuredname) AS name,
- trim(insuredsex) AS gender,
- trim(insuredbirthday) AS birthday,
- trim(insuredidtype) AS idtype ,
- trim(insuredidno) AS idcard
- FROM
- dsj.policy_information
- WHERE insuredno IS NOT NULL
- ) tmpTable GROUP BY scustid;
- UPDATE shanglifeecif.customertotaltemp sct SET sct.mobile = (SELECT trim(t.MOBILE) FROM dsj.t_customer_class t WHERE sct.scustid=t.customer_id);
- dbms_output.put_line('customertotaltemp函数跑批完成!');
- 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.data_cleaning()
- IS
- DECLARE
- BEGIN
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- 3
- FROM dsj.t_customer_class t WHERE t.customer_name RLIKE '^.*[!$^|\=`]{1,}.*$' OR t.customer_name RLIKE '^.*[0-9]{1,}.*$' ;
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- 4
- FROM dsj.t_customer_class t WHERE t.gender IS NULL AND t.customer_id IN (SELECT p.customerno FROM dsj.policy_information p WHERE p.sex IS null );
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- si.scustid,
- si.name,
- si.gender,
- si.birthday,
- si.idcard,
- 6
- FROM shanglifeecif.individual si WHERE length(si.idcard)<18 AND si.custtype LIKE '%投保人%' AND si.idcard IS NOT null;
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- 7
- FROM dsj.t_customer_class t WHERE t.birthdate IS NULL AND t.customer_id IN (SELECT p.customerno FROM dsj.policy_information p WHERE p.birthday IS null UNION SELECT i.insuredno FROM dsj.policy_information i WHERE i.insuredbirthday IS null);
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- mobile,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- t.mobile,
- 8
- FROM dsj.t_customer_class t WHERE t.mobile NOT RLIKE '^1[0-9]{10}$' AND t.customer_id IN (SELECT p.customerno FROM dsj.policy_information p);
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- zipcode,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- si.scustid,
- si.name,
- si.gender,
- si.birthday,
- si.idcard,
- si.zipcode,
- 9
- FROM shanglifeecif.individual si WHERE (length(si.zipcode)>0 and length(si.zipcode)<6) OR length(si.zipcode)>6;
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- 11
- FROM dsj.t_customer_class t WHERE (t.gender IS NULL OR t.gender = '2') AND t.customer_id IN (SELECT p.insuredno FROM dsj.policy_information p WHERE p.insuredsex IS null);
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- email,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- t.email,
- 14
- FROM dsj.t_customer_class t WHERE t.email not RLIKE '^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$' AND t.customer_id IN (SELECT p.customerno FROM dsj.policy_information p UNION SELECT pi.insuredno FROM dsj.policy_information pi);
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- mobile,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- t.mobile,
- 16
- FROM dsj.t_customer_class t WHERE t.mobile NOT RLIKE '^1[0-9]{10}$' AND t.customer_id IN (SELECT p.insuredno FROM dsj.policy_information p);
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- si.scustid,
- si.name,
- si.gender,
- si.birthday,
- si.idcard,
- 17
- FROM shanglifeecif.individual si WHERE length(si.idcard)<18 AND si.custtype LIKE '%被保人%' AND si.idcard IS NOT null;
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- agentname,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- p.agentname,
- 18
- FROM dsj.t_customer_class t,dsj.policy_information p WHERE t.customer_id = p.customerno and p.agentname not RLIKE '^[\u4e00-\u9fa5]|[^\x00-\xff]$';
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- OtherIdNumber,
- salecomname,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- t.customer_id,
- t.customer_name,
- t.gender,
- to_char(t.birthdate,"yyyy-MM-dd") birthdate,
- CASE t.id_type WHEN '0' THEN t.id_no END AS idcard,
- CASE WHEN t.id_type <> '0' THEN t.id_no END AS otherIdnumber,
- p.salecomname,
- 19
- FROM dsj.t_customer_class t,dsj.policy_information p WHERE t.customer_id = p.customerno and p.salecomname not RLIKE '^[\u4e00-\u9fa5]|[^\x00-\xff]$';
- dbms_output.put_line('data_cleaning函数跑批完成!');
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.effective_customer()
- IS
- DECLARE
- scount int
- BEGIN
- DELETE FROM shanglifeecif.effectivecustomer WHERE fadateY = to_char(SYSDATE,"yyyy");
- INSERT INTO shanglifeecif.effectivecustomer(
- esid,
- fadateY,
- custclass,
- cnum
- )
- SELECT
- to_char(SYSDATE,"yyyy")||si.custclass,
- to_char(SYSDATE,"yyyy"),
- si.custclass,
- count(*) AS cnum
- FROM
- shanglifeecif.individual si WHERE si.Label91 IS NULL AND si.custclass IS NOT NULL AND si.custclass <> '0' GROUP BY si.custclass;
- dbms_output.put_line('effective_customer函数跑批完成!');
- 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_all_individual()
- IS
- BEGIN
-
- insert into shanglifeecif.individual (
- indid,
- custid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- Passport,
- Dlicense,
- OtherIdNumber,
- created_time,
- created_by
- ) SELECT
- row_number()OVER(ORDER BY sc.scustid),
- 'CP'||lpad(row_number()over(ORDER BY sc.scustid),10,'0'),
- sc.scustid,
- sc.name,
- sc.gender,
- sc.birthday,
- CASE sc.idtype WHEN '0' THEN sc.idcard END AS idcard,
- CASE sc.idtype WHEN '1' THEN sc.idcard END AS passport,
- CASE sc.idtype WHEN '3' THEN sc.idcard END AS dlicense,
- CASE WHEN sc.idtype <> '0' AND sc.idtype <> '1' AND sc.idtype <> '3' THEN sc.idcard END AS otherIdnumber,
- sysdate,
- 'admin'
- FROM shanglifeecif.customertotaltemp sc ORDER BY sc.scustid;
- dbms_output.put_line('init_all_individual函数跑批完成!');
- 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_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.init_indrelationship_main2( )
- IS
- DECLARE
- s_count int
- BEGIN
-
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- Role2
- )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
- 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.init_insurancearrangement_main()
- IS
- BEGIN
- DELETE FROM shanglifeecif.insurancearrangement;
-
- shanglifeecif.init_insurancearrangement_policy_information();
-
- shanglifeecif.update_risk_categories();
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.init_insurancearrangement_policy_information()
- IS
- BEGIN
- INSERT INTO shanglifeecif.insurancearrangement(
- iaid ,
- policyno ,
- pindate ,
- pmdate ,
- norenewal ,
- payment ,
- applicantscustid ,
- appname ,
- appcertid ,
- insuredscustid ,
- insname ,
- inscertid ,
- productid ,
- productname,
- policybelong ,
- payendyear ,
- policystate,
- prem,
- sumprem,
- Risk,
- NPDate,
- PADate,
- pisdate,
- AgentOrg,
- schannel,
- schannelname,
- salecomname,
- POService,
- PWComp,
- security ,
- agrmntage ,
- salesperson,
- SPName,
- renewalDate,
- created_by ,
- created_time
- )
- SELECT
- row_number()over(),
- trim(CONTNO) as CONTNO,
- trim(CVALIDATE) as CVALIDATE,
- trim(ENDDATE) as ENDDATE,
- PAYCOUNT,
- trim(PAYINTV) as PAYINTV,
- trim(CUSTOMERNO) as CUSTOMERNO,
- trim(NAME) as NAME,
- trim(IDNO) as IDNO,
- trim(insuredno) as insuredno,
- trim(INSUREDNAME) as INSUREDNAME,
- trim(INSUREDIDNO) as INSUREDIDNO,
- trim(RISKCODE) as RISKCODE,
- trim(RISKNAME) as RISKNAME,
- trim(SALECOM) as SALECOM,
- PAYENDYEAR,
- trim(APPFLAG) as APPFLAG,
- prem,
- sumprem,
- AMNT,
- trim(PAYTODATE) as PAYTODATE,
- trim(polapplydate) as polapplydate,
- trim(SIGNDATE) as SIGNDATE,
- trim(AGENTCOM) as AGENTCOM,
- trim(SALECHNL) as SALECHNL,
- trim(SALECHNLNAME) as SALECHNLNAME,
- trim(salecomname) as salecomname,
- trim(PRESERVATIONFLAG) as PRESERVATIONFLAG,
- "上海人寿上海分公司",
- trim(security) as security,
- case
- when security ='终身' then 42720
- WHEN security LIKE '%天' THEN CAST(SUBSTR(security, 1, LENGTH(security) - 1) AS INT)
- WHEN security LIKE '%月' THEN CAST(SUBSTR(security, 1, LENGTH(security) - 1) AS INT) * 30
- WHEN security LIKE '%年' THEN CAST(SUBSTR(security, 1, LENGTH(security) - 1) AS INT) * 365
- WHEN security LIKE '%周岁' THEN CAST(SUBSTR(security, 2, LENGTH(security) - 3) AS INT) * 365
- ELSE 0
- end,
- trim(AGENTCODE) as AGENTCODE,
- trim(AGENTNAME) as AGENTNAME,
- trim(paytodate) as paytodate,
- 'admin',
- sysdate()
- FROM dsj.policy_information;
-
- UPDATE shanglifeecif.insurancearrangement a SET (
- pano ,
-
-
-
-
-
- agentchannel
- ) = (
- select
- trim(b.PRTNO) as PRTNO,
-
-
-
-
-
- trim(b.SELLTYPE) as SELLTYPE
- from dsj.INSURANCEINFO b
- where b.contno = a.policyno
- ) WHERE 1=1 ;
- dbms_output.put_line('init_insurancearrangement_policy_information函数跑批完成!');
- 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.insuranceclaimthread_main()
- IS
- BEGIN
- insert into shanglifeecif.insuranceclaimthread (
- icthreadid ,
- crno ,
-
- policyno ,
-
-
-
-
- cnno ,
- losstime ,
-
- rpname ,
-
-
- lpscutid,
- lpname ,
- cndate ,
- lossdescribe ,
- crdate ,
- cndescribe ,
- claimstatus ,
- csdate ,
- relationship ,
- ccno ,
- ccstatus ,
-
- productid ,
- productname,
- ccamt ,
-
- claimcasestatus ,
- accidenttype,
- created_by ,
- created_time
-
-
- ) select
- row_number()over(),
- trim(rgtno) as rgtno,
- trim(contno) as contno,
- trim(rptno) as rptno,
- trim(riskdate) as riskdate,
- trim(rptorname) as rptorname,
- trim(INSUREDNO) as INSUREDNO,
- trim(INSUREDNAME) as INSUREDNAME,
- trim(rptdate) as rptdate,
- trim(lloccurreason) as lloccurreason,
- trim(rgtdate) as rgtdate,
- trim(ACCDESC) as ACCDESC,
- trim(llclaimstate) as llclaimstate,
- trim(auditdate) as auditdate,
- trim(relationname) as relationname,
- trim(clmno) as clmno,
- trim(llgettype) as llgettype,
- trim(riskcode) as riskcode,
- trim(riskname) as riskname,
- realpay,
- trim(llclaimstate) as llclaimstate,
- trim(accidenttype) as accidenttype,
- 'admin',
- sysdate()
- from dsj.INSURANCE_CLAIM where contno is not null;
-
- shanglifeecif.update_insuranceclaimthread_add_salecom();
- dbms_output.put_line('insuranceclaimthread_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.newprocedure( )
- 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
- )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
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '父母' OR p.RELATIONTOAPPNT = '子女')
- AND p.birthday > p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO;
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2
- )
- 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
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '父母' OR p.RELATIONTOAPPNT = '子女')
- AND p.birthday < p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO;
-
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2
- )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
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '祖父母、外祖父母' OR p.RELATIONTOAPPNT = '祖孙、外祖孙')
- AND p.birthday > p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO;
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2
- )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
- FROM dsj.POLICY_INFORMATION p
- WHERE (p.RELATIONTOAPPNT = '祖父母、外祖父母' OR p.RELATIONTOAPPNT = '祖孙、外祖孙')
- AND p.birthday < p.insuredbirthday
- GROUP BY p.CUSTOMERNO,p.INSUREDNO;
-
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- RSSTime,
- Role2
- )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
- FROM dsj.POLICY_INFORMATION p
- WHERE p.RELATIONTOAPPNT = '配偶'
-
- GROUP BY p.CUSTOMERNO,p.INSUREDNO;
-
- insert into shanglifeecif.IndRelationShip(
- irsid,
- RSType,
- IndID1,
- Name1,
- IDCard1,
- Role1,
- IndID2,
- Name2,
- IDCard2,
- Role2
- )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
- 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_bq()
- IS
- DECLARE
- p_count int
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PRole,
- Scenario,
- SDate,
- DESCRIBE,
- created_by ,
- created_time
- )select
- reflect("java.util.UUID", "randomUUID"),
- i.contno,
- i.customerno,
- max(i.name),
- '投保人' AS tbr,
- '保全' AS bq,
- l.edorappdate,
- max(lm.edorname),
- 'admin',
- sysdate()
- FROM dsj.lpedoritem l,dsj.lmedoritem lm,dsj.policy_information i
- WHERE l.edortype = lm.edorcode AND lm.appobj <> 'G' AND l.edorstate = '0' AND i.contno = l.contno
- GROUP BY i.customerno,i.contno,l.edorappdate,l.edortype;
- dbms_output.put_line('partytimeline_bq函数跑批完成!');
- 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_hf()
- IS
- DECLARE
- p_count int
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PRole,
- Scenario,
- SDate,
- DESCRIBE,
- created_by ,
- created_time
- ) SELECT
- reflect("java.util.UUID", "randomUUID"),
- cad.productno,
- cac.customerno,
- max(cac.customername),
- '投保人',
- '回访',
- cad.lastdealtime,
- CASE max(cad.actiondefguid)
- when '402837815c1a4fc6015c1a735351122d' then '特殊回访'
- when '402837815c1a4fc6015c1a735350012a' then '其他回访'
- when '402837815c2ff6b5015c3005e7fb0004' then '失效回访'
- when '402837815c2ff6b5015c3005e7fb2222' then '回执超期回访'
- when '402837815c2ff6b5015c3005e7fb0003' then '宽限期50天'
- when '402837815c2ff6b5015c3005e7fb0002' then '宽限期30天'
- when '402837815c1a4fc6015c1a735350012f' then '新契约回访'
- when '402837815c2ff6b5015c3005e7fb0001' then '续期回访'
- end ,
- 'admin',
- sysdate()
- FROM dsj.CC_ACTION_DATA cad,dsj.cc_action_customerinfo cac
- WHERE cac.unioncustomerid = cad.unioncustomerid AND cad.lastdealtime IS NOT null GROUP BY cad.productno,cac.customerno,cad.lastdealtime;
- dbms_output.put_line('partytimeline_hf函数跑批完成!');
- 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_lp()
- IS
- DECLARE
- p_count int
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PCertID,
- PRole,
- Scenario,
- SDate,
- describe,
- created_by ,
- created_time
- ) select
- reflect("java.util.UUID", "randomUUID"),
- trim(contno) as contno,
- trim(INSUREDNO) as INSUREDNO,
- trim(INSUREDNAME) as INSUREDNAME,
- trim(idno) as idno,
- '投保人',
- '理赔',
- CASE
- WHEN APPLYDATE IS NOT NULL THEN APPLYDATE
- WHEN APPLYDATE IS NULL THEN RPTDATE
- END AS SDate,
- trim(ACCIDENTTYPE) as ACCIDENTTYPE,
- 'admin',
- sysdate()
- from dsj.insurance_claim WHERE contno IS NOT NULL;
- dbms_output.put_line('partytimeline_lp函数跑批完成!');
- 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.partytimeline_tb()
- IS
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PCertID,
- PRole,
- Scenario,
- SDate,
- enddate,
- created_by ,
- created_time
- ) select
- reflect("java.util.UUID", "randomUUID"),
- trim(contno) as contno,
- trim(max(customerno)) as customerno,
- trim(max(name)) as name,
- trim(max(idno)) as idno,
- '投保人',
- '投保',
- trim(max(polapplydate)) as polapplydate,
- trim(max(enddate)) as enddate,
- 'admin',
- sysdate()
- from dsj.policy_information WHERE contno IS NOT NULL GROUP BY contno;
- dbms_output.put_line('partytimeline_tb函数跑批完成!');
- 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_ts()
- IS
- DECLARE
- p_count int
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PRole,
- Scenario,
- SDate,
- DESCRIBE,
- created_by ,
- created_time
- ) SELECT
- reflect("java.util.UUID", "randomUUID"),
- max(ac.productnos),
- max(i.customerno),
- max(ac.complaintsname),
- '投保人'||CASE max(ac.complaintsrelation)
- WHEN '201' THEN ''
- WHEN '202' THEN '子女'
- WHEN '203' THEN '配偶'
- WHEN '204' THEN '父母'
- WHEN '205' THEN '其他关系'
- END AS complaintsrelation,
- '投诉',
- ac.inserttime ,
- CASE max(ac.resultclassification)
- WHEN '101' THEN '销售纠纷'
- WHEN '102' THEN '理赔纠纷'
- WHEN '103' THEN '退保纠纷'
- WHEN '104' THEN '承保纠纷'
- WHEN '105' THEN '续收续保纠纷'
- WHEN '106' THEN '保全纠纷'
- WHEN '107' THEN '其他'
- END as resultclassification,
- 'admin',
- sysdate
- FROM dsj.cc_action_complaints ac
- LEFT JOIN dsj.policy_information i ON ac.productnos = i.contno
- WHERE ac.productnos IS NOT NULL AND i.customerno IS NOT NULL
- GROUP BY ac.inserttime ;
- dbms_output.put_line('partytimeline_ts函数跑批完成!');
- 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_tuibao()
- IS
- DECLARE
- p_count int
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PRole,
- Scenario,
- SDate,
- DESCRIBE,
- created_by ,
- created_time
- ) SELECT
- reflect("java.util.UUID", "randomUUID"),
- trim(t.contno) as contno,
- trim(t.customerno) as customerno,
- trim(t.name) as name,
- trim(t.tbr) as tbr,
- trim(t.tb) as tb,
- trim(t.edorappdate) as edorappdate,
- t.edorreason,
- 'admin',
- sysdate()
- FROM (
- SELECT
- row_number() over(partition by i.contno) rn,
- lm.contno,
- i.customerno,
- i.name,
- '投保人' AS tbr,
- '退保' AS tb,
- to_char(lm.edorappdate,"yyyy-MM-dd") edorappdate,
- CASE lm.edorreasoncode
- WHEN '01' THEN '死亡'
- WHEN '02' THEN '失踪'
- WHEN '03' THEN '离异'
- WHEN '04' THEN '债权转移'
- WHEN '05' THEN '被保险人成年'
- WHEN '06' THEN '其它'
- ELSE '其它'
- END AS edorreason
- FROM dsj.lpedoritem lm,dsj.policy_information i
- where lm.contno = i.contno AND lm.edortype='CT' AND lm.edorstate = 0
- ) t WHERE t.rn = 1;
- dbms_output.put_line('partytimeline_tuibao函数跑批完成!');
- 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_xq()
- IS
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PRole,
- Scenario,
- SDate,
- created_by ,
- created_time
- ) select
- reflect("java.util.UUID", "randomUUID"),
- lp.contno,
- lp.appntno,
- '',
- '投保人',
- '续期',
- to_char(lp.confdate,'yyyy-MM-dd'),
- 'admin',
- sysdate
- FROM dsj.ljapayperson lp WHERE lp.paycount > 1;
- dbms_output.put_line('partytimeline_xq函数跑批完成!');
- 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_zx()
- IS
- DECLARE
- p_count int
- BEGIN
- insert into shanglifeecif.partytimeline (
- TripID,
- PolicyNo,
- PartyID,
- name,
- PRole,
- Scenario,
- SDate,
- DESCRIBE,
- created_by ,
- created_time
- ) SELECT
- reflect("java.util.UUID", "randomUUID"),
- m.contnos,
- max(i.customerno) customerno,
- max(m.econtactsName) econtactsName,
- '投保人' AS tbr,
- '咨询' AS zx,
- m.starttime,
- max(m.reasonsecondname) reasonsecondname,
- 'admin',
- sysdate()
- from dsj.cc_record_main m
- LEFT JOIN dsj.policy_information i ON m.contnos = i.contno
- WHERE m.contnos IS NOT NULL GROUP BY m.contnos,m.starttime;
- dbms_output.put_line('partytimeline_zx函数跑批完成!');
- 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.riskcode_statistics() IS
- DECLARE
- BEGIN
- DELETE FROM shanglifeecif.riskcode_statistics;
- insert into shanglifeecif.riskcode_statistics (
- id,
- kindName,
- khnum,
- tatolprem
- )
- SELECT
- row_number()over(),
- temp.kindName,
- temp.khnum,
- temp.tatolprem
- FROM (
- SELECT
- crt.riskcategoriesname AS kindName,
- count(DISTINCT scustid) AS khnum,
- sum(risk) AS tatolprem
- FROM shanglifeecif.customer_risk_temp crt
- WHERE crt.riskcategoriesname IS NOT null
- GROUP BY crt.riskcategoriesname
- ) temp;
- dbms_output.put_line('riskcode_statistics函数跑批完成!');
- 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.riskcode_statistics_channel() IS
- DECLARE
- BEGIN
- DELETE FROM shanglifeecif.riskcode_statistics_channel;
- insert into shanglifeecif.riskcode_statistics_channel (
- id,
- kindName,
- khnum,
- tatolprem,
- salecom,
- salecomname
- )
- SELECT
- row_number()over(),
- temp.kindName,
- temp.khnum,
- temp.tatolprem,
- temp.salecom,
- temp.salecomname
- FROM (
- SELECT
- crt.riskcategoriesname AS kindName,
- count(DISTINCT scustid) AS khnum,
- sum(risk) AS tatolprem,
- crt.salecom AS salecom,
- crt.salecomname AS salecomname
- FROM shanglifeecif.customer_risk_temp crt
- WHERE crt.riskcategoriesname IS NOT null
- and crt.salecom is not null
- GROUP BY crt.riskcategoriesname,crt.salecom,crt.salecomname
- ) temp;
- dbms_output.put_line('riskcode_statistics_channel函数跑批完成!');
- 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.same_customer()
- IS
- DECLARE
- scount int
- BEGIN
- DELETE FROM shanglifeecif.samecustomer;
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- Passport,
- Dlicense,
- OtherIdNumber,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- sc1.scustid,
- sc1.name,
- sc1.gender,
- sc1.birthday,
- CASE sc1.idtype WHEN '0' THEN sc1.idcard END AS idcard,
- CASE sc1.idtype WHEN '1' THEN sc1.idcard END AS passport,
- CASE sc1.idtype WHEN '3' THEN sc1.idcard END AS dlicense,
- CASE WHEN sc1.idtype <> '0' AND sc1.idtype <> '1' AND sc1.idtype <> '3' THEN sc1.idcard END AS otherIdnumber,
- 0
- FROM shanglifeecif.customertotaltemp sc1
- WHERE sc1.mobile IS NOT NULL AND EXISTS (SELECT 1 FROM shanglifeecif.customertotaltemp sc2 WHERE sc1.scustid != sc2.scustid
- AND sc1.name = sc2.name AND sc1.gender = sc2.gender AND sc1.idtype = sc2.idtype AND sc1.mobile = sc2.mobile);
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- Passport,
- Dlicense,
- OtherIdNumber,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- sc1.scustid,
- sc1.name,
- sc1.gender,
- sc1.birthday,
- CASE sc1.idtype WHEN '0' THEN sc1.idcard END AS idcard,
- CASE sc1.idtype WHEN '1' THEN sc1.idcard END AS passport,
- CASE sc1.idtype WHEN '3' THEN sc1.idcard END AS dlicense,
- CASE WHEN sc1.idtype <> '0' AND sc1.idtype <> '1' AND sc1.idtype <> '3' THEN sc1.idcard END AS otherIdnumber,
- 1
- FROM shanglifeecif.customertotaltemp sc1
- WHERE EXISTS(SELECT 1 FROM shanglifeecif.customertotaltemp sc2 WHERE sc2.scustid!=sc1.scustid AND sc1.name = sc2.name AND sc1.gender = sc2.gender AND sc1.birthday = sc2.birthday )
- ORDER BY sc1.name,sc1.gender,sc1.birthday
-
- INSERT INTO shanglifeecif.samecustomer(
- sid,
- scustid,
- name,
- gender,
- birthday,
- idcard,
- Passport,
- Dlicense,
- OtherIdNumber,
- sameType
- )
- SELECT
- reflect("java.util.UUID", "randomUUID"),
- sc1.scustid,
- sc1.name,
- sc1.gender,
- sc1.birthday,
- CASE sc1.idtype WHEN '0' THEN sc1.idcard END AS idcard,
- CASE sc1.idtype WHEN '1' THEN sc1.idcard END AS passport,
- CASE sc1.idtype WHEN '3' THEN sc1.idcard END AS dlicense,
- CASE WHEN sc1.idtype <> '0' AND sc1.idtype <> '1' AND sc1.idtype <> '3' THEN sc1.idcard END AS otherIdnumber,
- 2
- FROM shanglifeecif.customertotaltemp sc1
- WHERE sc1.idcard is not null and EXISTS (SELECT 1 FROM shanglifeecif.customertotaltemp sc2 WHERE sc2.scustid!=sc1.scustid AND sc1.name = sc2.name AND sc1.idcard = sc2.idcard);
- dbms_output.put_line('same_customer函数跑批完成!');
- END;
- CREATE OR REPLACE PROCEDURE shanglifeecif.surrender_protection_temp() IS
- DECLARE
- BEGIN
- DELETE FROM shanglifeecif.surrenderprotectiontemp;
- insert into shanglifeecif.surrenderprotectiontemp(
- tbid,
- scustid,
- tbday
- )SELECT row_number()over(),p.customerno,max(DATEDIFF(t.edorappdate,p.cvalidate)) AS tbday FROM dsj.lpedoritem t,dsj.policy_information p
- WHERE t.contno = p.contno and t.edortype='CT' AND edorstate = 0 GROUP BY p.customerno;
- dbms_output.put_line('surrender_protection_temp函数跑批完成!');
- 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.tb_customerinfo() IS
- DECLARE
- BEGIN
- DELETE FROM shanglifeecif.tbcustomerinfo;
- insert into shanglifeecif.tbcustomerinfo(
- tbid,
- scustid,
- contno,
- sdate,
- edate,
- salecom,
- salecomname
- )SELECT row_number()over(),p.customerno,p.contno,p.cvalidate,t.edorappdate ,p.salecom,p.salecomname FROM dsj.lpedoritem t,dsj.policy_information p
- WHERE t.contno = p.contno and (t.edortype='CT' OR t.edortype='WT' ) AND t.edorstate = 0 ;
- dbms_output.put_line('tb_customerinfo函数跑批完成!');
- 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.up_other_customerinfo()
- IS
- BEGIN
-
- UPDATE shanglifeecif.individual i SET i.custtype = '投保人' WHERE
- i.scustid IN (SELECT p.customerno FROM dsj.policy_information p);
-
- UPDATE shanglifeecif.individual i SET i.custtype = '被保人' WHERE
- i.scustid IN (SELECT pi.insuredno FROM dsj.policy_information pi);
-
- UPDATE shanglifeecif.individual i SET i.custtype = '投保人、被保人' WHERE
- i.scustid IN (SELECT p.customerno FROM dsj.policy_information p)
- AND i.scustid IN (SELECT pi.insuredno FROM dsj.policy_information pi);
-
- UPDATE shanglifeecif.Individual si1 SET si1.policybelong = (
- SELECT trim(t.SALECOM) FROM (
- SELECT row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate asc) rd,p.customerno,p.SALECOM FROM dsj.policy_information p
- ) t WHERE t.rd = 1 AND si1.scustid = t.customerno
- );
- UPDATE shanglifeecif.Individual si1 SET si1.policybelong = (
- SELECT trim(t.SALECOM) FROM (
- SELECT row_number()OVER(PARTITION BY p.insuredno ORDER BY p.polapplydate asc) rd,p.insuredno,p.SALECOM FROM dsj.policy_information p
- ) t WHERE t.rd = 1 AND si1.scustid = t.insuredno
- );
-
- UPDATE shanglifeecif.Individual si1 SET (si1.Occupation,si1.Ethnic,si1.education) = (
- SELECT trim(t.occupationname),trim(t.NATIONALITYNAME),trim(t.degree) FROM (
- SELECT row_number()OVER(PARTITION BY p.customerno ORDER BY p.polapplydate desc) rd,p.customerno,p.occupationname,p.NATIONALITYNAME,p.degree FROM dsj.policy_information p
- ) t WHERE t.rd = 1 AND si1.scustid = t.customerno
- );
-
- UPDATE shanglifeecif.individual si SET si.officialCalculus = (
- SELECT temp.available_points FROM (SELECT t.available_points,t.certificate_no,row_number()OVER(PARTITION BY t.certificate_no ORDER BY t.gmt_created DESC) rd FROM dsj.t_account t) temp WHERE temp.rd = 1 AND temp.certificate_no = si.idcard
- );
- dbms_output.put_line('up_other_customerinfo函数跑批完成!');
- 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.up_t_customers_class_1()
- IS
- BEGIN
- UPDATE shanglifeecif.individual a SET (
- CustClass ,
- ConValue ,
- Awarded3 ,
- Awarded2 ,
- Awarded1 ,
- SOValue ,
- EndDate,
- Height,
- Weight,
- BMI,
- PIncome,
- FIncome,
- IncomeSource,
- SIStatus,
-
- Nation,
- MaritalStat,
- Employer,
-
- Dday,
- regtype,
- ZIPCODE,
- HPhone,
- PMPhone,
- email,
- RAL,
- sobirth
- ) = (
- select
- b.CLASS_VALUE,
- b.CONTRIBUTION_VALUE,
- b.AWARDED3,
- b.AWARDED2,
- b.AWARDED1,
- b.TOTAL_VALUE,
- trim(b.END_DATE) as END_DATE,
- b.STATURE,
- b.AVOIRDUPOIS,
- b.BMI,
- b.YEARINCOME,
- b.FAMILYYEARSALARY,
- trim(b.INCOMESOURCE) as INCOMESOURCE,
- trim(b.SOCIALINSUFLAG) as SOCIALINSUFLAG,
-
- trim(b.NATIVEPLACE) as NATIVEPLACE,
- trim(b.MARRIAGE) as MARRIAGE,
- trim(b.GRPNAME) as GRPNAME,
-
- trim(b.DEATHDATE) as DEATHDATE,
- trim(b.DENTYPE) as DENTYPE,
- trim(b.ZIPCODE) as ZIPCODE,
- trim(b.PHONE) as PHONE,
- trim(b.MOBILE) as MOBILE,
- trim(b.EMAIL) as EMAIL,
- regexp_replace(trim(b.POSTALADDRESS),'[0-90-9]','*') as POSTALADDRESS,
- regexp_extract(b.POSTALADDRESS,'(.*?)省|(.*?)市',0)
- from dsj.t_customer_class b
- where b.CUSTOMER_ID = a.scustid
- ) WHERE 1=1 ;
- dbms_output.put_line('up_t_customers_class_1函数跑批完成!');
- 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.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.insuredsdeleteex)
- 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.update_insuranceclaimthread_add_salecom()
- IS
- BEGIN
- UPDATE shanglifeecif.insuranceclaimthread insd
- SET (
- insd.SALECOM,
- insd.salecomname
- )
- =(SELECT t.salecom , t.salecomname FROM
- (
- SELECT
- contno, salecom , salecomname
- FROM dsj.policy_information t
- GROUP BY contno , salecom , salecomname
- ) t WHERE t.contno = insd.policyno
-
- )
- dbms_output.put_line('update_insuranceclaimthread add saleCome 函数跑批完成!');
- 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.update_insuredinfo()
- IS
- BEGIN
-
- UPDATE shanglifeecif.individual a SET (
- ZIPCODE,
- HPhone,
- PMPhone,
- email,
- RAL,
- sobirth
- ) = (
- SELECT
- t.zipcode,
- t.phone,
- t.mobile,
- t.email,
- regexp_replace(trim(t.address),'[0-9]','*') address,
- regexp_extract(t.address,'(.*?)省|(.*?)市',0) province
- FROM (
- SELECT
- row_number()OVER(PARTITION BY ls.customerno ORDER BY ls.modifydate desc) rn,
- ls.customerno,
- CASE
- WHEN ls.postaladdress IS NULL
- THEN
- CASE WHEN ls.homeaddress IS NULL THEN ls.companyaddress ELSE ls.homeaddress END
- ELSE ls.postaladdress
- END AS address,
- ls.phone,
- ls.zipcode,
- CASE WHEN ls.email IS NULL THEN ls.email2 ELSE ls.email END AS email,
- CASE WHEN ls.mobile IS NULL THEN ls.mobile2 ELSE ls.mobile END AS mobile
- FROM dsj.lcaddress ls
- ) t where t.rn = 1 AND t.customerno = a.scustid
- ) WHERE a.custtype = '被保人';
- UPDATE shanglifeecif.individual a SET (
- Height,
- Weight,
- BMI,
- PIncome,
- Ethnic,
- Nation,
- MaritalStat,
- Education,
- SIStatus,
- IncomeSource,
- Occupation,
- regtype
- ) = (
- SELECT
- t.stature,
- t.avoirdupois,
- t.bmi,
- t.yearincome,
- t.nationality,
- t.nativeplace,
- t.marriage,
- t.degree,
- t.socialinsuflag,
- t.incomesource,
- t.occupationcode,
- t.dentype
- FROM (
- SELECT
- row_number()OVER(PARTITION BY ld.insuredno ORDER BY ld.modifydate desc) rn,
- ld.insuredno,
- ld.appntno,
- ld.name,
- ld.sex,
- ld.birthday,
- ld.idtype,
- ld.idno,
- ld.marriage,
- ld.occupationcode,
- ld.nativeplace,
- ld.nationality,
- ld.stature,
- ld.avoirdupois,
- round((ld.avoirdupois/POWER((ld.stature/100),2)),2) bmi,
- ld.degree,
- ld.dentype,
- ld.socialinsuflag,
- ld.incomesource,
- ld.yearincome
- FROM dsj.lcinsured2 ld
- ) t WHERE t.rn = 1 AND t.insuredno = a.scustid
- ) WHERE a.custtype = '被保人';
- dbms_output.put_line('update_insuredinfo函数跑批完成!');
- 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.update_partytimeline_add_salecom()
- IS
- BEGIN
- UPDATE shanglifeecif.partytimeline pt SET (pt.salecom,pt.salecomname) =
- (
- SELECT t.salecom, t.salecomname FROM
- (
- SELECT
- contno, salecom, salecomname
- FROM dsj.policy_information t
- GROUP BY contno, salecom, salecomname
- ) t WHERE t.contno = pt.policyno
- )
- dbms_output.put_line('update_partytimeline_add_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.update_risk_categories()
- IS
- BEGIN
-
- UPDATE shanglifeecif.insurancearrangement a SET (
- risk_categories_name
- ) = (
- select
- kindtype
- from dsj.riskkind b WHERE a.productid = b.riskcode
- ) WHERE 1=1;
- dbms_output.put_line('update_risk_categories函数跑批完成!');
- 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
|