12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194 |
- 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 (
- indid,
- customerno,
- salecomname,
- salecom,
- gender,
- label1,
- label2,
- label3,
- label4,
- label9,
- label10,
- label21,
- Label67,
- Label69,
- Label70,
- Label71,
- Label74,
- label77,
- Label80,
- Label96,
- Label97,
- Label100,
- Label101,
- Label103,
- Label104,
- Label105,
- Label106
- )
- SELECT row_number()OVER(ORDER BY i.scustid), t.customerno , t.salecomname ,t.salecom ,i.gender , i.label1,
- i.label2,
- i.label3,
- i.label4,
- i.label9,
- i.label10,
- i.label21,
- i.Label67,
- i.Label69,
- i.Label70,
- i.Label71,
- i.Label74,
- i.label77,
- i.Label80,
- i.Label96,
- i.Label97,
- i.Label100,
- i.Label101,
- i.Label103,
- i.Label104,
- i.Label105,
- i.Label106 FROM (
- SELECT customerno , salecomname ,salecom FROM dsj.POLICY_INFORMATION GROUP BY customerno , salecomname,salecom
- ) 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();
-
- shanglifeecif.init_customerno_salecom_relation();
-
- shanglifeecif.init_Individual_salecom();
- 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.customerno AS customerno ,b.salecom AS salecom FROM
- shanglifeecif.individual a , shanglifeecif.customerno_salecom_relation b
- WHERE a.scustid = b.customerno
- ) 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
- )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 = '配偶'
- or p.RELATIONTOAPPNT = '其他'
- GROUP BY p.CUSTOMERNO,p.INSUREDNO;
-
-
- dbms_lock.sleep(60);
- 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_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.init_insuredno_salecom_relation() IS
- DECLARE
- BEGIN
- insert into shanglifeecif.insuredno_salecom_relation (
- insuredno,
- salecomname,
- salecom
- )
- SELECT insuredno , salecomname ,salecom FROM (
- SELECT insuredno , salecomname ,salecom FROM dsj.POLICY_INFORMATION GROUP BY insuredno , salecomname,salecom
- ) t ;
- dbms_output.put_line('insuredno_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.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 PROCEDURE shanglifeecif.222NewProcedure( )
- 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_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' 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_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' and state = '1')
- );
-
- 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
|