|
@@ -117,7 +117,34 @@ with shard number 10
|
|
|
replication 1;
|
|
|
|
|
|
|
|
|
-CREATE OR REPLACE PROCEDURE init_insurancearrangement_main() -- 创建主存储过程
|
|
|
+===================================================================================================================================================
|
|
|
+=============================================================存储主过程=============================================================================
|
|
|
+===================================================================================================================================================
|
|
|
+
|
|
|
+CREATE OR REPLACE PROCEDURE init_insurancearrangement() -- 创建主存储过程
|
|
|
+IS
|
|
|
+BEGIN
|
|
|
+ --根据policy_information 更新保单表
|
|
|
+ init_insurancearrangement_policy_information();
|
|
|
+
|
|
|
+ --根据health_insurance_listing 更新相关字段
|
|
|
+ up_insurancearrangement_health_insurance_listing();
|
|
|
+
|
|
|
+ --其他标的字段 更新
|
|
|
+ up_insurancearrangement_other();
|
|
|
+
|
|
|
+ EXCEPTION
|
|
|
+ WHEN HIVE_EXCEPTION THEN
|
|
|
+ log_exception('init_insurancearrangement',sqlerrm(),sqlcode())
|
|
|
+ WHEN Others THEN
|
|
|
+ log_exception('init_insurancearrangement',sqlerrm(),sqlcode())
|
|
|
+END;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+CREATE OR REPLACE PROCEDURE init_insurancearrangement_policy_information() -- 创建主存储过程
|
|
|
IS
|
|
|
BEGIN
|
|
|
|
|
@@ -137,6 +164,9 @@ INSERT INTO insurancearrangement(
|
|
|
productid ,-- '险种代码 POLICY_INFORMATION.RISKCODE',
|
|
|
policybelong ,-- '业绩归属 POLICY_INFORMATION.SALECOM',
|
|
|
payendyear ,-- '缴费年期 POLICY_INFORMATION.PAYENDYEAR',
|
|
|
+
|
|
|
+ agrmntage ,--保险期限
|
|
|
+
|
|
|
created_by ,-- '创建人',
|
|
|
created_time -- '创建时间',
|
|
|
|
|
@@ -148,7 +178,7 @@ SELECT
|
|
|
ENDDATE,--pmdate ,-- '终保日期 POLICY_INFORMATION.ENDDATE',
|
|
|
PAYCOUNT,--norenewal ,-- '续保次数 POLICY_INFORMATION.PAYCOUNT',
|
|
|
PAYINTV,--payment ,-- '缴费方式 POLICY_INFORMATION.PAYINTV',
|
|
|
- individual,--applicantid ,-- '投保人 根据POLICY_INFORMATION.CUSTOMERNO关联individual上游客户号,再找到individualid',
|
|
|
+ CUSTOMERNO,--applicantid ,-- '投保人 根据POLICY_INFORMATION.CUSTOMERNO关联individual上游客户号,再找到individualid',
|
|
|
NAME,--appname ,-- '投保人名称 POLICY_INFORMATION.NAME',
|
|
|
IDNO,--appcertid ,-- '投保人证件号码 POLICY_INFORMATION.IDNO',
|
|
|
insuredno,--insuredid ,-- '主被保险人 insuredno',
|
|
@@ -157,28 +187,65 @@ SELECT
|
|
|
RISKCODE,--productid ,-- '险种代码 POLICY_INFORMATION.RISKCODE',
|
|
|
SALECOM,--policybelong ,-- '业绩归属 POLICY_INFORMATION.SALECOM',
|
|
|
PAYENDYEAR,--payendyear ,-- '缴费年期 POLICY_INFORMATION.PAYENDYEAR',
|
|
|
+
|
|
|
+ case
|
|
|
+ when security ='终身' then 42720
|
|
|
+ when security = '至100周岁' then 36500
|
|
|
+ when security = '至80周岁' then 29200
|
|
|
+ when security = '70年' then 25550
|
|
|
+ when security = '至70周岁' then 25550
|
|
|
+ when security = '至65周岁' then 23725
|
|
|
+ when security = '至60周岁' then 21900
|
|
|
+ when security = '30年' then 10950
|
|
|
+ when security = '20年' then 7300
|
|
|
+ when security = '10年' then 3650
|
|
|
+ when security = '6年' then 2190
|
|
|
+ when security = '5年' then 1825
|
|
|
+ when security = '1年' then 365
|
|
|
+ when security = '180天' then 180
|
|
|
+ when security = '6月' then 180
|
|
|
+ when security = '90天' then 90
|
|
|
+ when security = '3月' then 90
|
|
|
+ when security = '1月' then 30
|
|
|
+ when security = '30天' then 30
|
|
|
+ when security = '15天' then 15
|
|
|
+ when security = '7天' then 7
|
|
|
+ end,
|
|
|
'koucx',
|
|
|
sysdate()
|
|
|
FROM shanghailifeecif.policy_information
|
|
|
|
|
|
- --更新投保人和被保人id
|
|
|
+ --更新投保人和被保人id 因为 scustid有重复所以需要去下重
|
|
|
|
|
|
UPDATE insurancearrangement a SET (
|
|
|
applicantid --'投保人ID',
|
|
|
) = (
|
|
|
- select
|
|
|
- indid ,--'投保人ID',
|
|
|
- from individual b
|
|
|
- where b.scustid = a.applicantscustid
|
|
|
+ select
|
|
|
+ c.indid
|
|
|
+ from (
|
|
|
+ select
|
|
|
+ row_number()over(PARTITION BY b.scustid) rn,
|
|
|
+ b.indid,
|
|
|
+ b.scustid
|
|
|
+ from individual b
|
|
|
+ ) c
|
|
|
+ WHERE c.scustid = a.applicantscustid and c.rn=1
|
|
|
) WHERE 1=1 ;
|
|
|
|
|
|
+
|
|
|
UPDATE insurancearrangement a SET (
|
|
|
- insuredid --'主保险人ID',
|
|
|
+ insuredid --'投保人ID',
|
|
|
) = (
|
|
|
- select
|
|
|
- indid ,--'投保人ID',
|
|
|
- from individual b
|
|
|
- where b.scustid = a.insuredscustid
|
|
|
+ select
|
|
|
+ c.indid
|
|
|
+ from (
|
|
|
+ select
|
|
|
+ row_number()over(PARTITION BY b.scustid) rn,
|
|
|
+ b.indid,
|
|
|
+ b.scustid
|
|
|
+ from individual b
|
|
|
+ ) c
|
|
|
+ WHERE c.scustid = a.insuredscustid and c.rn=1
|
|
|
) WHERE 1=1 ;
|
|
|
|
|
|
--更新INSURANCEINFO 表中的信息
|
|
@@ -190,7 +257,7 @@ SELECT
|
|
|
policystate ,--INSURANCEINFO,appflag
|
|
|
prem ,-- '总保费 INSURANCEINFO.PREM',
|
|
|
productname ,-- '险种名称 INSURANCEINFO.RISKNAME'
|
|
|
- agentchannel ,-- '代理渠道 INSURANCEINFO.SELLTYPE',
|
|
|
+ agentchannel -- '代理渠道 INSURANCEINFO.SELLTYPE',
|
|
|
) = (
|
|
|
select
|
|
|
PRTNO,--pano ,-- '投保单号 INSURANCEINFO.PRTNO',
|
|
@@ -209,13 +276,157 @@ SELECT
|
|
|
|
|
|
EXCEPTION
|
|
|
WHEN HIVE_EXCEPTION THEN
|
|
|
- log_exception('init_insurancearrangement_main',sqlerrm(),sqlcode())
|
|
|
+ log_exception('init_insurancearrangement_policy_information',sqlerrm(),sqlcode())
|
|
|
+ WHEN Others THEN
|
|
|
+ log_exception('init_insurancearrangement_policy_information',sqlerrm(),sqlcode())
|
|
|
+END;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+==============================================================================================================================================================
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+--临时表
|
|
|
+
|
|
|
+CREATE TABLE insurancearrangement_health_tmp(
|
|
|
+ id string,
|
|
|
+ orderid string DEFAULT NULL COMMENT '用于分组的排序号',
|
|
|
+ contno string DEFAULT NULL COMMENT '保单号',
|
|
|
+ AGENTGROUP string DEFAULT NULL COMMENT '承保分公司',--pwcomp ,-- '承保分公司 HEALTH_INSURANCE_LISTING.AGENTGROUPAREA 营业区HEALTH_INSURANCE_LISTING.AGENTGROUP 营业部',
|
|
|
+ SALECHANNELS string DEFAULT NULL COMMENT '销售渠道',--schannel ,-- '销售渠道 HEALTH_INSURANCE_LISTING.SALECHANNELS 1 2 3 4 5',
|
|
|
+ AMNT string DEFAULT NULL COMMENT '总保额',--risk ,-- '总保额 HEALTH_INSURANCE_LISTING.AMNT(测试环境中,此表保单数据量较其他表如:POLICY_INFORMATION,INSURANCEINFO 缺少至少一个数据量级)',
|
|
|
+ AGENTCODE string DEFAULT NULL COMMENT'业务员名称'--spname ,-- '业务员名称 HEALTH_INSURANCE_LISTING.AGENTCODE',
|
|
|
+) COMMENT '保单处理个险承保清单自助分析 数据临时表 '
|
|
|
+STORED AS ES
|
|
|
+with shard number 10
|
|
|
+replication 1;
|
|
|
+
|
|
|
+
|
|
|
+CREATE OR REPLACE PROCEDURE up_insurancearrangement_health_insurance_listing() -- 创建主存储过程
|
|
|
+IS
|
|
|
+BEGIN
|
|
|
+ --清空临时表数据
|
|
|
+ delete from insurancearrangement_health_tmp;
|
|
|
+
|
|
|
+ --初始化临时表
|
|
|
+ insert into insurancearrangement_health_tmp (
|
|
|
+ id,
|
|
|
+ orderid,
|
|
|
+ contno,
|
|
|
+ agentgroup,
|
|
|
+ SALECHANNELS,
|
|
|
+ AMNT,
|
|
|
+ AGENTCODE
|
|
|
+ ) select
|
|
|
+ row_number()over(),
|
|
|
+ row_number()over(PARTITION BY contno),
|
|
|
+ contno,
|
|
|
+ agentgroup,
|
|
|
+ SALECHANNELS,
|
|
|
+ AMNT,
|
|
|
+ AGENTCODE
|
|
|
+ from shanghailifeecif.HEALTH_INSURANCE_LISTING
|
|
|
+
|
|
|
+ --根据临时表更新insurancearrangement 表
|
|
|
+ UPDATE insurancearrangement a SET (
|
|
|
+ pwcomp ,-- '承保分公司 HEALTH_INSURANCE_LISTING.AGENTGROUPAREA 营业区HEALTH_INSURANCE_LISTING.AGENTGROUP 营业部',
|
|
|
+ schannel ,-- '销售渠道 HEALTH_INSURANCE_LISTING.SALECHANNELS 1 2 3 4 5',
|
|
|
+ risk ,-- '总保额 HEALTH_INSURANCE_LISTING.AMNT(测试环境中,此表保单数据量较其他表如:POLICY_INFORMATION,INSURANCEINFO 缺少至少一个数据量级)',
|
|
|
+ spname -- '业务员名称 HEALTH_INSURANCE_LISTING.AGENTCODE',
|
|
|
+ ) = (
|
|
|
+ select
|
|
|
+ b.AGENTGROUP,--pwcomp ,-- '承保分公司 HEALTH_INSURANCE_LISTING.AGENTGROUPAREA 营业区HEALTH_INSURANCE_LISTING.AGENTGROUP 营业部',
|
|
|
+ b.SALECHANNELS,--schannel ,-- '销售渠道 HEALTH_INSURANCE_LISTING.SALECHANNELS 1 2 3 4 5',
|
|
|
+ b.AMNT,--risk ,-- '总保额 HEALTH_INSURANCE_LISTING.AMNT(测试环境中,此表保单数据量较其他表如:POLICY_INFORMATION,INSURANCEINFO 缺少至少一个数据量级)',
|
|
|
+ b.AGENTCODE--spname ,-- '业务员名称 HEALTH_INSURANCE_LISTING.AGENTCODE',
|
|
|
+ from insurancearrangement_health_tmp b
|
|
|
+ where b.contno = a.policyno
|
|
|
+ and b.orderid = 1
|
|
|
+ ) WHERE 1=1 ;
|
|
|
+
|
|
|
+ EXCEPTION
|
|
|
+ WHEN HIVE_EXCEPTION THEN
|
|
|
+ log_exception('up_insurancearrangement_health_insurance_listing',sqlerrm(),sqlcode())
|
|
|
+ WHEN Others THEN
|
|
|
+ log_exception('up_insurancearrangement_health_insurance_listing',sqlerrm(),sqlcode())
|
|
|
+END;
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+=====================================================================================================================================
|
|
|
+
|
|
|
+
|
|
|
+==============================================================================================================================================================
|
|
|
+
|
|
|
+CREATE OR REPLACE PROCEDURE up_insurancearrangement_other() -- 创建主存储过程
|
|
|
+IS
|
|
|
+BEGIN
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE insurancearrangement a SET (
|
|
|
+ policytype -- '保单类型',
|
|
|
+ ) = (
|
|
|
+ select
|
|
|
+ c.CONTTYPE
|
|
|
+ from (
|
|
|
+ select
|
|
|
+ row_number()over(PARTITION BY b.contno) rn,
|
|
|
+ b.CONTTYPE,
|
|
|
+ b.contno
|
|
|
+ from shanghailifeecif.PERSONAL_INSURANCE b
|
|
|
+ ) c
|
|
|
+ WHERE c.contno = a.policyno and c.rn=1
|
|
|
+ ) WHERE 1=1 ;
|
|
|
+
|
|
|
+ UPDATE insurancearrangement a SET (
|
|
|
+ poservice -- '是否保全',
|
|
|
+ ) = (
|
|
|
+ SELECT
|
|
|
+ IF(count(b.CONTNO) >0,1,0)
|
|
|
+ FROM shanghailifeecif.AUDIT_EDORLIST b
|
|
|
+ where b.contno = a.policyno
|
|
|
+ ) WHERE 1=1 ;
|
|
|
+
|
|
|
+
|
|
|
+ UPDATE insurancearrangement a SET (
|
|
|
+ soinsured-- '被保人数',
|
|
|
+ ) = (
|
|
|
+ SELECT
|
|
|
+ PEOPLES3
|
|
|
+ FROM shanghailifeecif.HEALTH_GROUP_LISTING b
|
|
|
+ where b.contno = a.policyno
|
|
|
+ ) WHERE 1=1 ;
|
|
|
+
|
|
|
+ EXCEPTION
|
|
|
+ WHEN HIVE_EXCEPTION THEN
|
|
|
+ log_exception('up_insurancearrangement_other',sqlerrm(),sqlcode())
|
|
|
WHEN Others THEN
|
|
|
- log_exception('init_insurancearrangement_main',sqlerrm(),sqlcode())
|
|
|
+ log_exception('up_insurancearrangement_other',sqlerrm(),sqlcode())
|
|
|
END;
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
=====================================================================================================================================
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
--数据分析sql
|
|
|
|
|
|
|
|
@@ -243,4 +454,45 @@ SELECT count(1) FROM shanghailifeecif.health_insurance_listing WHERE agentgroup
|
|
|
--10275
|
|
|
|
|
|
SELECT count(1) FROM shanghailifeecif.health_insurance_listing WHERE agentgroup IS NULL;
|
|
|
--- 0
|
|
|
+-- 0
|
|
|
+
|
|
|
+SELECT count(1) a,contno FROM shanghailifeecif.health_insurance_listing GROUP BY contno ORDER BY a DESC;
|
|
|
+--有重复
|
|
|
+
|
|
|
+SELECT count(1) a,prtno FROM shanghailifeecif.health_insurance_listing GROUP BY prtno ORDER BY a DESC;
|
|
|
+--有重复
|
|
|
+
|
|
|
+SELECT count(1) a,prtno,contno FROM shanghailifeecif.health_insurance_listing GROUP BY prtno,contno ORDER BY a DESC;
|
|
|
+--有重复
|
|
|
+SELECT * FROM shanghailifeecif.health_insurance_listing WHERE contno = 2018091700073388;
|
|
|
+--
|
|
|
+
|
|
|
+
|
|
|
+SELECT count(1) FROM shanghailifeecif.PERSONAL_INSURANCE;
|
|
|
+--3245
|
|
|
+
|
|
|
+SELECT count(contno) a, CONTNO,PRTNO FROM shanghailifeecif.PERSONAL_INSURANCE GROUP BY CONTNO,PRTNO ORDER BY a desc;
|
|
|
+--有重复
|
|
|
+
|
|
|
+SELECT * FROM shanghailifeecif.PERSONAL_INSURANCE WHERE CONTNO = 2020012900030408;
|
|
|
+
|
|
|
+SELECT conttype FROM shanghailifeecif.PERSONAL_INSURANCE GROUP BY conttype;
|
|
|
+--只有首年
|
|
|
+
|
|
|
+
|
|
|
+SELECT count(1) FROM shanghailifeecif.AUDIT_EDORLIST;
|
|
|
+--620066
|
|
|
+SELECT count(contno) a, CONTNO FROM shanghailifeecif.AUDIT_EDORLIST GROUP BY CONTNO ORDER BY a desc;
|
|
|
+--最多重复61条记录
|
|
|
+SELECT * FROM shanghailifeecif.AUDIT_EDORLIST WHERE CONTNO = 2018020800060078;
|
|
|
+
|
|
|
+
|
|
|
+SELECT count(1) FROM shanghailifeecif.AUDIT_LN_LIST;
|
|
|
+--44
|
|
|
+SELECT count(contno) a, CONTNO FROM shanghailifeecif.AUDIT_LN_LIST GROUP BY CONTNO ORDER BY a desc;
|
|
|
+--有重复
|
|
|
+SELECT * FROM shanghailifeecif.AUDIT_EDORLIST WHERE CONTNO = 2018081600056398
|
|
|
+SELECT * FROM shanghailifeecif.AUDIT_LN_LIST WHERE LNMONEY IS NOT NULL;
|
|
|
+--LNMONEY 都为空
|
|
|
+
|
|
|
+执行时间 2492s 插入 2185616 条数据
|