Browse Source

sql 修改

qxp 4 years ago
parent
commit
dac81a713c

+ 43 - 173
sql-achievement/存储过程/个人信息开发qxp.sql

@@ -48,9 +48,9 @@ STORED AS CSVFILE ;
 LOAD DATA INPATH '/tmp/myData/policy_information.txt' OVERWRITE INTO TABLE qxp.policy_information;
 LOAD DATA INPATH '/tmp/myData/policy_information.txt' OVERWRITE INTO TABLE qxp.policy_information;
 
 
 --------------------------------------------------------------------------------------------------------------------
 --------------------------------------------------------------------------------------------------------------------
-TRUNCATE TABLE individual_search;
+TRUNCATE TABLE individual;
 --创建search目的表
 --创建search目的表
-DROP TABLE IF EXISTS individual_search;
+DROP TABLE IF EXISTS individual;
 CREATE  TABLE qxp.individual_search(
 CREATE  TABLE qxp.individual_search(
   indid string DEFAULT NULL COMMENT '个体ID', 
   indid string DEFAULT NULL COMMENT '个体ID', 
   custid string DEFAULT NULL COMMENT '全局客户号',
   custid string DEFAULT NULL COMMENT '全局客户号',
@@ -311,7 +311,7 @@ replication 1;
 ---------------------------------------------------------------------------------------、
 ---------------------------------------------------------------------------------------、
 --创建 自增id
 --创建 自增id
 --创建序列
 --创建序列
-DROP SEQUENCE IF EXISTS globaleCusId_sequence;
+
 CREATE SEQUENCE globaleCusId_sequence
 CREATE SEQUENCE globaleCusId_sequence
     INCREMENT BY 1
     INCREMENT BY 1
 	START WITH 1
 	START WITH 1
@@ -320,153 +320,21 @@ CREATE SEQUENCE globaleCusId_sequence
 	NOCYCLE
 	NOCYCLE
 	CACHE 1;
 	CACHE 1;
 
 
---------------------------------------------------------------------------------------------
---创建存储过程 插入individual_search 
-!set plsqlUseSlash true
-CREATE OR REPLACE PROCEDURE test_insert_individual_search_1() -- 创建存储过程
-IS    
-DECLARE
-	--五要素行变量
-	TYPE  main_columns_type IS RECORD (scustid  string, name string,gender string,birthday timestamp,idtype int,idcard string)
-	mainrecord main_columns_type
-	--等级信息行变量
-	t_record  t_customer_class%ROWTYPE
-	cnt int --判断目标数据库中是否有值
-	cnt_t int --判断t_customer_class是否有值
-	custid_tmp string
-	CURSOR main_cursor IS 
-		--查询所有的人 根据5要素
-		select scustid ,name,gender ,birthday,idtype,idcard
-		from (
-			SELECT
-				CUSTOMERNO AS scustid,--投保人
-				NAME AS name,
-				sex AS gender,
-				BIRTHDAY AS  birthday,
-				IDTYPE AS idtype , 
-				IDNO AS idcard
-			FROM
-				policy_information 
-			UNION 
-			SELECT 
-				INSUREDNO AS scustid,--被保人
-				INSUREDNAME AS name,
-				INSUREDSEX AS gender,
-				INSUREDBIRTHDAY AS  birthday,
-				INSUREDIDTYPE AS idtype , 
-				INSUREDIDNO AS idcard
-			FROM
-				policy_information
-			) tmpTable
-		WHERE scustid IS NOT NULL
-		group by scustid ,name,gender ,birthday,idtype,idcard
-		LIMIT 0,100;
-BEGIN
-OPEN main_cursor; -- 打开游标
- LOOP -- 开始循环体,myLoop为自定义循环名,结束循环时用到
-    FETCH main_cursor INTO mainrecord; -- 将游标当前读取行的数据顺序赋予自定义变量12
-		--判断是否是身份证
-		if mainrecord.idtype !=0 then
-			mainrecord.idcard := null
-		end if 
-		-- 判断是否添加
-		select count(1) into cnt from individual_search where scustid = mainrecord.scustid and name = mainrecord.name and birthday = mainrecord.birthday
-			and gender = mainrecord.gender and idcard = mainrecord.idcard
-		if cnt ==0 then 
-			--	生成 全局id
-			custid_tmp:='CP'||lpad(globaleCusId_sequence.nextval,10,'0')
-			--获取 等级信息
-			select count(1) into cnt_t from t_customer_class where CUSTOMER_ID = mainrecord.scustid ;
-			if cnt_t ==0 then
-				t_record.CLASS_VALUE:=0;	--	CustClass	客户等级
-				t_record.CONTRIBUTION_VALUE:=0;	--	ConValue	贡献度分
-				t_record.Awarded3:=0;	--	Awarded3	家庭加分
-				t_record.AWARDED2:=0;	--	Awarded2	续期加分
-				t_record.AWARDED1:=0;	--	Awarded1	保单加分
-				t_record.TOTAL_VALUE:=0;	--	SOValue	总分值
-				t_record.end_date:=null;	--	EndDate	客户等级失效日期
-			else 
-				
-
-			end if
-			--插入数据
-			Insert into individual_search(
-				CREATED_BY	,--	创建人
-				CREATED_TIME	,--	创建时间
-				UPDATED_BY	,--	更新人
-				UPDATED_TIME	,--	更新时间
-				--IndID	,--	个体ID
-				CustID	,--	客户号
-				SCustID,--上游客户号
-				Name	,--	名称
-				Birthday	,--	出生日期
-				Gender	,--	性别
-				
-				IDCard	,--	身份证
-		
-				CustClass	,--	客户等级
-				ConValue	,--	贡献度分
-				Awarded3	,--	家庭加分
-				Awarded2	,--	续期加分
-				Awarded1	,--	保单加分
-				SOValue	,--	总分值
-				EndDate	--	客户等级失效日期
-			)values(  
-				'qxp' ,	--	CREATED_BY	创建人
-				SYSDATE ,	--	CREATED_TIME	创建时间
-				NULL ,	--	UPDATED_BY	更新人
-				SYSDATE ,	--	UPDATED_TIME	更新时间
-				--NULL,	--	IndID	个体ID
-				custid_tmp, --CustID	客户号
-				mainrecord.scustid,	--	sCustID	上游客户号
-				mainrecord.Name,	--	Name	名称
-				mainrecord.Birthday,	--	Birthday	出生日期
-				mainrecord.gender,	--	Gender	性别
-				
-				mainrecord.IDCard,	--	IDCard	身份证
-				
-				t_record.CLASS_VALUE,	--	CustClass	客户等级
-				t_record.CONTRIBUTION_VALUE,	--	ConValue	贡献度分
-				t_record.Awarded3,	--	Awarded3	家庭加分
-				t_record.AWARDED2,	--	Awarded2	续期加分
-				t_record.AWARDED1,	--	Awarded1	保单加分
-				t_record.TOTAL_VALUE,	--	SOValue	总分值
-				t_record.end_date	--	EndDate	客户等级失效日期
-			)
-		end if
-		cnt :=0
-  EXIT WHEN main_cursor%NOTFOUND
-  END LOOP; -- 结束自定义循环体
-  CLOSE main_cursor; -- 关闭游标
-END; -- 结束存储过
-
-
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------
-CREATE OR REPLACE PROCEDURE test_etl_main_1() -- 创建存储过程
-IS
-BEGIN
-	test_insert_individual_search_2();--插入五要素
-	test_up_t_customers_class_1();--更新用户等级等信息
-
-END;
 
 
 
 
 -----------------------------------------------------------------------------------
 -----------------------------------------------------------------------------------
---不用游标的做法
+-- 增量数据
 --------------------------------------------------------------------------------------------
 --------------------------------------------------------------------------------------------
 --创建存储过程 插入individual_search 
 --创建存储过程 插入individual_search 
 !set plsqlUseSlash true
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE test_insert_individual_search_2() -- 创建存储过程
+CREATE OR REPLACE PROCEDURE insertOrUpdate_individual() -- 创建存储过程
 IS    
 IS    
 DECLARE
 DECLARE
 
 
 BEGIN
 BEGIN
-	MERGE INTO individual_search is1 using 
+	MERGE INTO individual is1 using 
 	(
 	(
 		SELECT scustid ,name,gender ,birthday, idcard
 		SELECT scustid ,name,gender ,birthday, idcard
 		FROM (
 		FROM (
@@ -520,9 +388,9 @@ BEGIN
 	 	)
 	 	)
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('test_insert_individual_search_2',sqlerrm(),sqlcode())
+				 log_exception('insertOrUpdate_individual',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('test_insert_individual_search_2',sqlerrm(),sqlcode())
+				 log_exception('insertOrUpdate_individual',sqlerrm(),sqlcode())
 END;
 END;
 
 
 --------------------------------------------------------------------------------------------
 --------------------------------------------------------------------------------------------
@@ -556,10 +424,11 @@ END;
 -- 港澳台居民居住证 J 
 -- 港澳台居民居住证 J 
 -- 港澳居民居住证 K 
 -- 港澳居民居住证 K 
 -- 台湾居民居住证 M 
 -- 台湾居民居住证 M 
+DROP SEQUENCE IF EXISTS globaleCusId_sequence;
 !set plsqlUseSlash true
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE init_individual_search_main() -- 初始化 数据全部插入
+CREATE OR REPLACE PROCEDURE init_individual_main() -- 初始化 数据全部插入
 IS    
 IS    
 DECLARE
 DECLARE
 	individual_count int
 	individual_count int
@@ -567,17 +436,17 @@ DECLARE
 BEGIN
 BEGIN
 	--先验是否一个客户id有多条记录对应不通的证件类别
 	--先验是否一个客户id有多条记录对应不通的证件类别
 	--初始化 身份证 用户
 	--初始化 身份证 用户
-	init_individual_search_0(individual_count);
+	init_individual_0(individual_count);
 
 
 	--初始化  护照用户
 	--初始化  护照用户
 	individual_count:=individual_count+1;
 	individual_count:=individual_count+1;
-	init_individual_search_1(individual_count);
+	init_individual_1(individual_count);
 	--初始化 驾照用户
 	--初始化 驾照用户
 	individual_count:=individual_count+1;
 	individual_count:=individual_count+1;
-	init_individual_search_3(individual_count);
+	init_individual_3(individual_count);
 	--其他 证件类型用户
 	--其他 证件类型用户
 	individual_count:=individual_count+1;
 	individual_count:=individual_count+1;
-	init_individual_search_other(individual_count);
+	init_individual_other(individual_count);
 
 
 	--初始化 全局序列
 	--初始化 全局序列
 	individual_count:=individual_count+1;
 	individual_count:=individual_count+1;
@@ -596,16 +465,16 @@ BEGIN
 	EXECUTE IMMEDIATE strsql
 	EXECUTE IMMEDIATE strsql
 
 
 	--更新用户等级信息
 	--更新用户等级信息
-	test_up_t_customers_class_1();
+	up_t_customers_class_1();
 	
 	
 	--更新职业信息
 	--更新职业信息
 	up_health_insurance_listing_1();
 	up_health_insurance_listing_1();
 
 
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('init_individual_search_main',sqlerrm(),sqlcode())
+				 log_exception('init_individual_main',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('init_individual_search_main',sqlerrm(),sqlcode())
+				 log_exception('init_individual_main',sqlerrm(),sqlcode())
 END;
 END;
 
 
 
 
@@ -616,12 +485,12 @@ END;
 !set plsqlUseSlash true
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE init_individual_search_0( individual_count OUT int) -- 初始化 省份证
+CREATE OR REPLACE PROCEDURE init_individual_0( individual_count OUT int) -- 初始化 省份证
 IS    
 IS    
 BEGIN
 BEGIN
 	
 	
 	--查询出此次处理的数据并出表中
 	--查询出此次处理的数据并出表中
-	insert into individual_search1 (
+	insert into individual (
 		indid,
 		indid,
 		custid,
 		custid,
 
 
@@ -670,24 +539,24 @@ BEGIN
 			WHERE insuredno IS NOT NULL AND insuredidtype=0
 			WHERE insuredno IS NOT NULL AND insuredidtype=0
 			) tmpTable
 			) tmpTable
 	--已经存在的数据行数
 	--已经存在的数据行数
-	select count(0) into individual_count from individual_search1
+	select count(0) into individual_count from individual
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('init_individual_search_0',sqlerrm(),sqlcode())
+				 log_exception('init_individual_0',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('init_individual_search_0',sqlerrm(),sqlcode())
+				 log_exception('init_individual_0',sqlerrm(),sqlcode())
 END;
 END;
 
 
 
 
 !set plsqlUseSlash true
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE init_individual_search_1(individual_count INOUT  int) -- 初始化 护照
+CREATE OR REPLACE PROCEDURE init_individual_1(individual_count INOUT  int) -- 初始化 护照
 IS    
 IS    
 BEGIN
 BEGIN
 	
 	
 	--查询出此次处理的数据并出表中
 	--查询出此次处理的数据并出表中
-	insert into individual_search1 (
+	insert into individual (
 			indid,
 			indid,
 			custid,
 			custid,
 		 	
 		 	
@@ -738,23 +607,23 @@ BEGIN
 			) tmpTable
 			) tmpTable
 
 
 	--已经存在的数据行数
 	--已经存在的数据行数
-	select count(0) into individual_count from individual_search1
+	select count(0) into individual_count from individual
 
 
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('init_individual_search_1',sqlerrm(),sqlcode())
+				 log_exception('init_individual_1',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('init_individual_search_1',sqlerrm(),sqlcode())
+				 log_exception('init_individual_1',sqlerrm(),sqlcode())
 END;
 END;
 !set plsqlUseSlash true
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE init_individual_search_3(individual_count INOUT  int) -- 初始化 护照
+CREATE OR REPLACE PROCEDURE init_individual_3(individual_count INOUT  int) -- 初始化 护照
 IS    
 IS    
 BEGIN
 BEGIN
 	
 	
 	--查询出此次处理的数据并出表中
 	--查询出此次处理的数据并出表中
-	insert into individual_search1(
+	insert into individual(
 		indid,
 		indid,
 		custid,
 		custid,
 
 
@@ -804,24 +673,24 @@ BEGIN
 			) tmpTable
 			) tmpTable
 
 
 	--已经存在的数据行数
 	--已经存在的数据行数
-	select count(0) into individual_count from individual_search1
+	select count(0) into individual_count from individual
 
 
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('init_individual_search_3',sqlerrm(),sqlcode())
+				 log_exception('init_individual_3',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('init_individual_search_3',sqlerrm(),sqlcode())
+				 log_exception('init_individual_3',sqlerrm(),sqlcode())
 END;
 END;
 
 
 !set plsqlUseSlash true
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE init_individual_search_other(individual_count INOUT  int) -- 初始化 护照
+CREATE OR REPLACE PROCEDURE init_individual_other(individual_count INOUT  int) -- 初始化 护照
 IS    
 IS    
 BEGIN
 BEGIN
 	
 	
 	--查询出此次处理的数据并出表中
 	--查询出此次处理的数据并出表中
-	insert into individual_search1(
+	insert into individual(
 			indid,
 			indid,
 			custid,
 			custid,
 		 
 		 
@@ -868,26 +737,26 @@ BEGIN
 			) tmpTable
 			) tmpTable
 
 
 	--已经存在的数据行数
 	--已经存在的数据行数
-	select count(0) into individual_count from individual_search1
+	select count(0) into individual_count from individual
 
 
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('init_individual_search_other',sqlerrm(),sqlcode())
+				 log_exception('init_individual_other',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('init_individual_search_other',sqlerrm(),sqlcode())
+				 log_exception('init_individual_other',sqlerrm(),sqlcode())
 END;
 END;
 
 
 --创建存储过程 插入individual_search 
 --创建存储过程 插入individual_search 
 !set plsqlUseSlash true
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE test_up_t_customers_class_1() -- 创建存储过程
+CREATE OR REPLACE PROCEDURE up_t_customers_class_1() -- 创建存储过程
 IS    
 IS    
 BEGIN
 BEGIN
-	UPDATE individual_search1 a SET (
+	UPDATE individual a SET (
 			CustClass	,--	客户等级
 			CustClass	,--	客户等级
 			ConValue	,--	贡献度分
 			ConValue	,--	贡献度分
-			Awarded3	,--	家庭加分
+			Awarded3	,--	家庭加分2
 			Awarded2	,--	续期加分
 			Awarded2	,--	续期加分
 			Awarded1	,--	保单加分
 			Awarded1	,--	保单加分
 			SOValue	,--	总分值
 			SOValue	,--	总分值
@@ -906,9 +775,9 @@ BEGIN
 		) WHERE 1=1 ;
 		) WHERE 1=1 ;
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('test_up_t_customers_class_1',sqlerrm(),sqlcode())
+				 log_exception('up_t_customers_class_1',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('test_up_t_customers_class_1',sqlerrm(),sqlcode())
+				 log_exception('up_t_customers_class_1',sqlerrm(),sqlcode())
 END;
 END;
 /
 /
 DROP TABLE IF EXISTS occupation_tmp;
 DROP TABLE IF EXISTS occupation_tmp;
@@ -946,7 +815,7 @@ BEGIN
 
 
 	--更新个人信息表
 	--更新个人信息表
 
 
-	UPDATE individual_search1 a SET (
+	UPDATE individual a SET (
 		OccupationId	,--	职业代码
 		OccupationId	,--	职业代码
 		Occupation,	--	职业名称
 		Occupation,	--	职业名称
 		HomeAdress
 		HomeAdress

+ 246 - 0
sql-achievement/存储过程/保单qxp.sql

@@ -0,0 +1,246 @@
+--数据源 policy_information 表结构	
+
+-- CREATE  TABLE shanghailifeecif.policy_information(
+--   contno varchar2(200) DEFAULT NULL COMMENT '保单号',  -- dialect: ORACLE
+--   riskcode varchar2(200) DEFAULT NULL COMMENT '险种代码',  -- dialect: ORACLE
+--   riskname varchar2(200) DEFAULT NULL COMMENT '险种名称',  -- dialect: ORACLE
+--   riskperiod varchar2(200) DEFAULT NULL COMMENT '险种分类',  -- dialect: ORACLE
+--   risktype varchar2(200) DEFAULT NULL COMMENT '险种设计类型',  -- dialect: ORACLE
+--   payintv varchar2(200) DEFAULT NULL COMMENT '缴费方式',  -- dialect: ORACLE
+--   security varchar2(200) DEFAULT NULL COMMENT '保障年期',  -- dialect: ORACLE
+--   payendyear decimal(10,2) DEFAULT NULL COMMENT '缴费年期', 
+--   payendyearflag varchar2(200) DEFAULT NULL COMMENT '缴费年期单位',  -- dialect: ORACLE
+--   insuyear decimal(10,2) DEFAULT NULL COMMENT '保险年期', 
+--   insuyearflag varchar2(200) DEFAULT NULL COMMENT '保险年期单位',  -- dialect: ORACLE
+--   paycount decimal(10,2) DEFAULT NULL COMMENT '续保次数', 
+--   signdate string DEFAULT NULL COMMENT '承保日期', 
+--   cvalidate string DEFAULT NULL COMMENT '保单生效日期', 
+--   enddate string DEFAULT NULL COMMENT '保单终止日期', 
+--   modifydate string DEFAULT NULL COMMENT '修改日期', 
+--   prem decimal(10,2) DEFAULT NULL COMMENT '保费', 
+--   appflag varchar2(200) DEFAULT NULL COMMENT '保单状态',  -- dialect: ORACLE
+--   customerno varchar2(200) DEFAULT NULL COMMENT '客户号',  -- dialect: ORACLE
+--   name varchar2(200) DEFAULT NULL COMMENT '客户姓名',  -- dialect: ORACLE
+--   sex varchar2(200) DEFAULT NULL COMMENT '客户性别',  -- dialect: ORACLE
+--   birthday string DEFAULT NULL COMMENT '客户出生日期', 
+--   idtype varchar2(200) DEFAULT NULL COMMENT '证件类型',  -- dialect: ORACLE
+--   idno varchar2(200) DEFAULT NULL COMMENT '证件号码',  -- dialect: ORACLE
+--   insuredno varchar2(200) DEFAULT NULL COMMENT '被保人号',  -- dialect: ORACLE
+--   insuredname varchar2(200) DEFAULT NULL COMMENT '被保人姓名',  -- dialect: ORACLE
+--   insuredsex varchar2(200) DEFAULT NULL COMMENT '被保人性别',  -- dialect: ORACLE
+--   insuredbirthday string DEFAULT NULL COMMENT '被保人出生日期', 
+--   insuredidtype varchar2(200) DEFAULT NULL COMMENT '被保人证件类型',  -- dialect: ORACLE
+--   insuredidno varchar2(200) DEFAULT NULL COMMENT '被保人证件号码',  -- dialect: ORACLE
+--   relationtoappnt varchar2(200) DEFAULT NULL COMMENT '与投保人关系',  -- dialect: ORACLE
+--   salechnl varchar2(200) DEFAULT NULL COMMENT '销售渠道',  -- dialect: ORACLE
+--   salecom varchar2(200) DEFAULT NULL COMMENT '业绩归属',  -- dialect: ORACLE
+--   salechannels varchar2(200) DEFAULT NULL COMMENT '二级业绩归属',  -- dialect: ORACLE
+--   customgetpoldate string DEFAULT NULL COMMENT '客户投保日期', 
+--   prem_js decimal(10,2) DEFAULT NULL COMMENT ''
+-- )
+
+
+
+
+======================================================================================================================================================
+--创建保单表insurancearrangement
+DROP TABLE IF EXISTS insurancearrangement;
+CREATE  TABLE insurancearrangement(
+  iaid string NOT NULL COMMENT '保单ID', 
+  policyno string DEFAULT NULL COMMENT '保险单号 INSURANCEINFO.CONTNO', 
+  pano string DEFAULT NULL COMMENT '投保单号 INSURANCEINFO.PRTNO', 
+  agrmntage string DEFAULT NULL COMMENT '保险期限', 
+  pbinst string DEFAULT NULL COMMENT '受益分配方式', 
+  pwcomp string DEFAULT NULL COMMENT '承保分公司 HEALTH_INSURANCE_LISTING.AGENTGROUPAREA 营业区HEALTH_INSURANCE_LISTING.AGENTGROUP 营业部', 
+  pindate date DEFAULT NULL COMMENT '起保日期 POLICY_INFORMATION.CVALIDATE', 
+  pmdate date DEFAULT NULL COMMENT '终保日期 POLICY_INFORMATION.ENDDATE', 
+  pisdate date DEFAULT NULL COMMENT '签单日期 INSURANCEINFO.SIGNDATE', 
+  padate date DEFAULT NULL COMMENT '投保日期 INSURANCEINFO.POLAPPLYDATE', 
+  renewaldate date DEFAULT NULL COMMENT '续保日期', 
+  norenewal int DEFAULT NULL COMMENT '续保次数 POLICY_INFORMATION.PAYCOUNT', 
+  policytype string DEFAULT NULL COMMENT '保单类型 PERSONAL_INSURANCE.CONTTYPE,需上游给出类型枚举值', 
+  schannel string DEFAULT NULL COMMENT '销售渠道 HEALTH_INSURANCE_LISTING.SALECHANNELS 1 2 3 4 5',
+  bsource string DEFAULT NULL COMMENT '业务来源', 
+  policystate string DEFAULT NULL COMMENT '保单状态 保单包括投保单的所处的状态,例如:录入、生效、批单等 INSURANCEINFO.APPFLAG code 0 1 2 4 9 B F',
+  topay string DEFAULT NULL COMMENT '缴费类型', 
+  payment string DEFAULT NULL COMMENT '缴费方式 POLICY_INFORMATION.PAYINTV', 
+  risk double DEFAULT NULL COMMENT '总保额 HEALTH_INSURANCE_LISTING.AMNT(测试环境中,此表保单数据量较其他表如:POLICY_INFORMATION,INSURANCEINFO 缺少至少一个数据量级)', 
+  prem double DEFAULT NULL COMMENT '总保费 INSURANCEINFO.PREM', 
+  currency string DEFAULT NULL COMMENT '币种', 
+  npdate date DEFAULT NULL COMMENT '下次缴费日期', 
+  soinsured int DEFAULT NULL COMMENT '被保人数 HEALTH_GROUP_LISTING.PEOPLES3,团单', 
+  bsinsured double DEFAULT NULL COMMENT '基本保额 保险合同条款费率表中载明的单位保额。比如中国人寿的康宁终身保险就是这样,如果购买的基本保险金额是10万的话,那么大病的保险金额就是基本保险金额的2倍即20万;', 
+  insurvalue double DEFAULT NULL COMMENT '保单价值 保单价值,即保单现金价值。是指带有储蓄性质的人身bai保险单所具有的价值。保险人为履行合同责任通常提存责任准备金,如果您中途退保,即以该保单的责任准备金作为给付解约的退还金。被保险人要求解约或退保时,寿险公司应该发还的金额。
+在长期寿险契约中,保险人为履行契约责任,通常需要提存一定数额的责任准备金。当被保险人于保险有效期内因故要求解约或退保时,保险人按规定,将提存的责任准备金减去解约扣除后的余额退还给被保险人,这部分余额即解约金,亦即退保时保单所具有的现金价值。', 
+  applicantid string DEFAULT NULL COMMENT '投保人 根据POLICY_INFORMATION.CUSTOMERNO关联individual上游客户号,再找到individualid', 
+  applicantscustid string DEFAULT NULL COMMENT '投保人上游客户号', 
+  appname string DEFAULT NULL COMMENT '投保人名称 POLICY_INFORMATION.NAME', 
+  appphone string DEFAULT NULL COMMENT '投保人手机', 
+  appcertid string DEFAULT NULL COMMENT '投保人证件号码 POLICY_INFORMATION.IDNO', 
+  insuredid string DEFAULT NULL COMMENT '主被保险人 客户号', 
+  insuredscustid string DEFAULT NULL COMMENT '主被保险人 上游客户号POLICY_INFORMATION.insuredno', 
+  insname string DEFAULT NULL COMMENT '主被保险人名称 POLICY_INFORMATION.INSUREDNAME', 
+  insphone string DEFAULT NULL COMMENT '主被保险人手机', 
+  inscertid string DEFAULT NULL COMMENT '主被保险人证件号码 POLICY_INFORMATION.INSUREDIDNO', 
+  productid string DEFAULT NULL COMMENT '险种代码 POLICY_INFORMATION.RISKCODE', 
+  productname string DEFAULT NULL COMMENT '险种名称 INSURANCEINFO.RISKNAME', 
+  salesperson string DEFAULT NULL COMMENT '业务员', 
+  spname string DEFAULT NULL COMMENT '业务员名称 HEALTH_INSURANCE_LISTING.AGENTCODE', 
+  iaccount string DEFAULT NULL COMMENT '所属保险账户', 
+  branchcode string DEFAULT NULL COMMENT '机构代码', 
+  policybelong string DEFAULT NULL COMMENT '业绩归属 POLICY_INFORMATION.SALECOM', 
+  agentchannel string DEFAULT NULL COMMENT '代理渠道 INSURANCEINFO.SELLTYPE', 
+  agentorg string DEFAULT NULL COMMENT '代理机构', 
+  regtype string DEFAULT NULL COMMENT '户籍类型', 
+  pincome string DEFAULT NULL COMMENT '个人年收入', 
+  fincome double DEFAULT NULL COMMENT '家庭年收入', 
+  incomesource string DEFAULT NULL COMMENT '收入来源', 
+  socialinsurance string DEFAULT NULL COMMENT '是否有社保', 
+  oipolicy string DEFAULT NULL COMMENT '是否投保其他保险公司', 
+  oicompany string DEFAULT NULL COMMENT '其他保险公司', 
+  oicproduct string DEFAULT NULL COMMENT '其他保险公司险种', 
+  oiamount double DEFAULT NULL COMMENT '其他保险公司保额', 
+  drinking string DEFAULT NULL COMMENT '是否饮酒', 
+  dfavor string DEFAULT NULL COMMENT '饮酒喜好', 
+  poservice string DEFAULT NULL COMMENT '是否保全 投保人持有保单是否在AUDIT_EDORLIST.CONTNO存在', 
+  payendyear int DEFAULT NULL COMMENT '缴费年期 POLICY_INFORMATION.PAYENDYEAR', 
+  loanmoney double DEFAULT NULL COMMENT '保单质押贷款金额 AUDIT_LN_LIST.LNMONEY ',
+  paydate date DEFAULT NULL COMMENT '缴至日期',
+  created_by string DEFAULT NULL COMMENT '创建人', 
+  created_time date DEFAULT NULL COMMENT '创建时间', 
+  updated_by string DEFAULT NULL COMMENT '更新人', 
+  updated_time date DEFAULT NULL COMMENT '更新时间'
+)
+COMMENT '保单 确定参与方之间,参与方和保险公司之间的协议,使相关各方能在遵守一定的规则并履行相关义务的前提下进行产品或资源或服务的供给'
+STORED AS ES
+with shard number 10
+replication 1;
+
+
+CREATE OR REPLACE PROCEDURE init_insurancearrangement_main() -- 创建主存储过程
+IS    
+BEGIN
+
+INSERT INTO insurancearrangement(
+  iaid ,--'保单ID', 
+  policyno ,-- '保险单号 INSURANCEINFO.CONTNO', 
+  pindate ,-- '起保日期 POLICY_INFORMATION.CVALIDATE', 
+  pmdate ,-- '终保日期 POLICY_INFORMATION.ENDDATE', 
+  norenewal ,-- '续保次数 POLICY_INFORMATION.PAYCOUNT', 
+  payment ,-- '缴费方式 POLICY_INFORMATION.PAYINTV', 
+  applicantscustid ,-- '投保人 上游客户号,再找到individualid', 
+  appname ,-- '投保人名称 POLICY_INFORMATION.NAME', 
+  appcertid ,-- '投保人证件号码 POLICY_INFORMATION.IDNO', 
+  insuredscustid ,-- '主被保险人 游客户号', 
+  insname ,-- '主被保险人名称 POLICY_INFORMATION.INSUREDNAME', 
+  inscertid ,-- '主被保险人证件号码 POLICY_INFORMATION.INSUREDIDNO', 
+  productid ,-- '险种代码 POLICY_INFORMATION.RISKCODE', 
+  policybelong ,-- '业绩归属 POLICY_INFORMATION.SALECOM',  
+  payendyear ,-- '缴费年期 POLICY_INFORMATION.PAYENDYEAR', 
+  created_by ,-- '创建人', 
+  created_time -- '创建时间', 
+
+) 
+SELECT 
+	row_number()over(),
+	CONTNO,--policyno ,-- '保险单号 INSURANCEINFO.CONTNO', 
+	CVALIDATE,--pindate ,-- '起保日期 POLICY_INFORMATION.CVALIDATE', 
+	ENDDATE,--pmdate ,-- '终保日期 POLICY_INFORMATION.ENDDATE', 
+	PAYCOUNT,--norenewal ,-- '续保次数 POLICY_INFORMATION.PAYCOUNT', 
+	PAYINTV,--payment ,-- '缴费方式 POLICY_INFORMATION.PAYINTV', 
+	individual,--applicantid ,-- '投保人 根据POLICY_INFORMATION.CUSTOMERNO关联individual上游客户号,再找到individualid', 
+	NAME,--appname ,-- '投保人名称 POLICY_INFORMATION.NAME', 
+	IDNO,--appcertid ,-- '投保人证件号码 POLICY_INFORMATION.IDNO', 
+	insuredno,--insuredid ,-- '主被保险人 insuredno', 
+	INSUREDNAME,--insname ,-- '主被保险人名称 POLICY_INFORMATION.INSUREDNAME', 
+	INSUREDNAME,--inscertid ,-- '主被保险人证件号码 POLICY_INFORMATION.INSUREDNAME', 
+	INSUREDNAME,--productid ,-- '险种代码 POLICY_INFORMATION.INSUREDNAME', 
+	SALECOM,--policybelong ,-- '业绩归属 POLICY_INFORMATION.SALECOM', 
+	PAYENDYEAR,--payendyear ,-- '缴费年期 POLICY_INFORMATION.PAYENDYEAR', 
+	'koucx',
+	sysdate() 
+	FROM shanghailifeecif.policy_information 
+
+	--更新投保人和被保人id
+
+	UPDATE insurancearrangement a SET (
+		applicantid --'投保人ID',
+	) = (
+		select 
+			indid ,--'投保人ID',
+		from individual b
+		where b.scustid  = a.applicantscustid
+	) WHERE 1=1 ;
+
+	UPDATE insurancearrangement a SET (
+		insuredid --'主保险人ID',
+	) = (
+		select 
+			indid ,--'投保人ID',
+		from individual b
+		where b.scustid  = a.insuredscustid
+	) WHERE 1=1 ;
+
+	--更新INSURANCEINFO 表中的信息
+
+	UPDATE insurancearrangement a SET (
+		pano ,-- '投保单号 INSURANCEINFO.PRTNO',  
+		pisdate ,-- '签单日期 INSURANCEINFO.SIGNDATE', 
+		padate ,-- '投保日期 INSURANCEINFO.POLAPPLYDATE', 
+		policystate ,--INSURANCEINFO,appflag
+		prem ,-- '总保费 INSURANCEINFO.PREM', 
+		productname ,-- '险种名称	 INSURANCEINFO.RISKNAME'
+		agentchannel ,-- '代理渠道 INSURANCEINFO.SELLTYPE', 
+	) = (
+		select
+			PRTNO,--pano ,-- '投保单号 INSURANCEINFO.PRTNO',  
+			SIGNDATE,--pisdate ,-- '签单日期 INSURANCEINFO.SIGNDATE', 
+			POLAPPLYDATE,--padate ,-- '投保日期 INSURANCEINFO.POLAPPLYDATE', 
+			appflag,--policystate ,--INSURANCEINFO,appflag
+			PREM,--prem ,-- '总保费 INSURANCEINFO.PREM', 
+			RISKNAME,--productname ,-- '险种名称	 INSURANCEINFO.RISKNAME'
+			SELLTYPE--agentchannel ,-- '代理渠道 INSURANCEINFO.SELLTYPE', 
+		from shanghailifeecif.INSURANCEINFO b
+		where b.contno  = a.policyno
+	) WHERE 1=1 ;
+
+
+
+
+	EXCEPTION
+		WHEN HIVE_EXCEPTION THEN 
+			 log_exception('init_insurancearrangement_main',sqlerrm(),sqlcode())
+		WHEN Others THEN
+			 log_exception('init_insurancearrangement_main',sqlerrm(),sqlcode())
+END;
+
+
+=====================================================================================================================================
+--数据分析sql
+
+
+SELECT count(1) FROM shanghailifeecif.POLICY_INFORMATION ;
+--2185616
+SELECT count(1) FROM
+(
+	SELECT count(1) FROM shanghailifeecif.POLICY_INFORMATION GROUP BY CONTNO
+);
+--1466424
+
+
+SELECT count(1) FROM shanghailifeecif.INSURANCEINFO GROUP BY CONTNO;
+--1520720
+
+SELECT count(1) FROM
+(
+SELECT count(1) FROM shanghailifeecif.INSURANCEINFO GROUP BY CONTNO
+);
+--1520720
+
+SELECT count(1) FROM shanghailifeecif.health_insurance_listing WHERE agentgrouparea IS NOT NULL;
+--121
+SELECT count(1) FROM shanghailifeecif.health_insurance_listing WHERE agentgroup IS NOT NULL;
+--10275
+
+SELECT count(1) FROM shanghailifeecif.health_insurance_listing WHERE agentgroup IS  NULL;
+--	0

+ 17 - 4
sql-achievement/存储过程/参与方事件.sql

@@ -83,22 +83,29 @@ BEGIN
    --1.从保全清单表中初始化 参与事件
    --1.从保全清单表中初始化 参与事件
   select count(0) into partytimeline_count from PartyTimeLine;
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   partytimeline_count:=partytimeline_count+1;
+  DBMS_OUTPUT.PUT_LINE(partytimeline_count);
   init_insuranceclaimthread_edorlist(partytimeline_count)
   init_insuranceclaimthread_edorlist(partytimeline_count)
  
  
   --2.从保全表中初始化 参与事件
   --2.从保全表中初始化 参与事件
   select count(0) into partytimeline_count from PartyTimeLine;
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   partytimeline_count:=partytimeline_count+1;
+  DBMS_OUTPUT.PUT_LINE(partytimeline_count);
   init_insuranceclaimthread_edorinfo(partytimeline_count)
   init_insuranceclaimthread_edorinfo(partytimeline_count)
   
   
   --  3.初始化理赔相关信息
   --  3.初始化理赔相关信息
   select count(0) into partytimeline_count from PartyTimeLine;
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   partytimeline_count:=partytimeline_count+1;
+  DBMS_OUTPUT.PUT_LINE(partytimeline_count);
   init_insuranceclaimthread_insuranceclaimthread(partytimeline_count)
   init_insuranceclaimthread_insuranceclaimthread(partytimeline_count)
   
   
   --  4.初始化投保赔相关信息
   --  4.初始化投保赔相关信息
   select count(0) into partytimeline_count from PartyTimeLine;
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   partytimeline_count:=partytimeline_count+1;
+  DBMS_OUTPUT.PUT_LINE(partytimeline_count);
   init_insuranceclaimthread_InsuranceArrangement(partytimeline_count)
   init_insuranceclaimthread_InsuranceArrangement(partytimeline_count)
+  
+  partytimeline_count:=partytimeline_count+1;
+  DBMS_OUTPUT.PUT_LINE(partytimeline_count);
 
 
   --  用于以后更新时是用的序列
   --  用于以后更新时是用的序列
   strsql:='
   strsql:='
@@ -120,7 +127,6 @@ BEGIN
          log_exception('init_partytimeline_main',sqlerrm(),sqlcode())
          log_exception('init_partytimeline_main',sqlerrm(),sqlcode())
 END;
 END;
 
 
-
 /*audit_edorlist 表
 /*audit_edorlist 表
  managecom varchar2(200) DEFAULT NULL COMMENT '管理机构',  -- dialect: ORACLE
  managecom varchar2(200) DEFAULT NULL COMMENT '管理机构',  -- dialect: ORACLE
   managename varchar2(200) DEFAULT NULL COMMENT '管理机构名称',  -- dialect: ORACLE
   managename varchar2(200) DEFAULT NULL COMMENT '管理机构名称',  -- dialect: ORACLE
@@ -295,7 +301,7 @@ BEGIN
     lcidno,
     lcidno,
     EDORAPPDATE,
     EDORAPPDATE,
     EDORCVALIDATE
     EDORCVALIDATE
-  from shanghailifeecif.audit_edorlist;
+  from shanghailifeecif.edorinfo;
 
 
   --更新临时表信息
   --更新临时表信息
   UPDATE PartyTimeLine_edor_tmp a SET (
   UPDATE PartyTimeLine_edor_tmp a SET (
@@ -485,8 +491,6 @@ END;
 --带理赔和保单一共插入 2086136   保单总数 1520720
 --带理赔和保单一共插入 2086136   保单总数 1520720
 
 
 
 
-
-
 SELECT count(1) FROM audit_edorlist ; --620066
 SELECT count(1) FROM audit_edorlist ; --620066
 
 
 SELECT count(1) FROM (
 SELECT count(1) FROM (
@@ -503,4 +507,13 @@ SELECT count(1) a,contno FROM audit_edorlist GROUP BY contno,cusappdate ORDER BY
 SELECT * FROM audit_edorlist WHERE contno = '2018020800060078';
 SELECT * FROM audit_edorlist WHERE contno = '2018020800060078';
 
 
 
 
+
+SELECT count(1) FROM PartyTimeLine WHERE scenario = "保全"  ;  --619713
+SELECT count(1) FROM PartyTimeLine WHERE Scenario ='投保'  ; --1466423
+SELECT count(1) FROM PartyTimeLine WHERE Scenario ='报案'  ; --11490
+SELECT count(1) FROM PartyTimeLine; --2097626
+
+SELECT count(1) FROM shanglifeecif.InsuranceArrangement; --1520720  
+
+SELECT count(1) FROM shanglifeecif.insuranceclaimthread; --13957
 --
 --

+ 163 - 181
sql-achievement/存储过程/理赔qxp.sql

@@ -1,3 +1,64 @@
+
+-- -----------------------------------------------------------------------
+-- CREATE TABLE shanghailifeecif.insurance_claim(
+--    batno varchar2(40) DEFAULT NULL COMMENT '批次号',  -- dialect: ORACLE
+--   contno varchar2(40) DEFAULT NULL COMMENT '保单号',  -- dialect: ORACLE
+--   clmno varchar2(40) DEFAULT NULL COMMENT '赔案号',  -- dialect: ORACLE
+--   cvalidate timestamp DEFAULT NULL COMMENT '保单生效日', 
+--   riskdate timestamp DEFAULT NULL COMMENT '出险日期', 
+--   ageofdanger decimal(3,0) DEFAULT NULL COMMENT '被保险人出险时年龄', 
+--   riskcode varchar2(40) DEFAULT NULL COMMENT '险种代码',  -- dialect: ORACLE
+--   riskname varchar2(512) DEFAULT NULL COMMENT '险种名称',  -- dialect: ORACLE
+--   lloccurreason varchar2(512) DEFAULT NULL COMMENT '出险原因',  -- dialect: ORACLE
+--   accresult1 varchar2(512) DEFAULT NULL COMMENT '出险结果1',  -- dialect: ORACLE
+--   accresult2 varchar2(512) DEFAULT NULL COMMENT '出险结果2',  -- dialect: ORACLE
+--   accidentdetail varchar2(512) DEFAULT NULL COMMENT '意外细节',  -- dialect: ORACLE
+--   llgettype varchar2(512) DEFAULT NULL COMMENT '赔付结论',  -- dialect: ORACLE
+--   realpay decimal(12,2) DEFAULT NULL COMMENT '赔付金额', 
+--   applydate timestamp DEFAULT NULL COMMENT '申请日期', 
+--   accepteddate timestamp DEFAULT NULL COMMENT '交接日期', 
+--   rptdate timestamp DEFAULT NULL COMMENT '报案日期', 
+--   rgtdate timestamp DEFAULT NULL COMMENT '立案日期', 
+--   auditdate timestamp DEFAULT NULL COMMENT '审核日期', 
+--   examdate timestamp DEFAULT NULL COMMENT '审批日期', 
+--   senddate timestamp DEFAULT NULL COMMENT '抽盘日期', 
+--   returndate timestamp DEFAULT NULL COMMENT '回盘日期', 
+--   llclaimstate varchar2(512) DEFAULT NULL COMMENT '目前状态',  -- dialect: ORACLE
+--   operator varchar2(512) DEFAULT NULL COMMENT '立案人',  -- dialect: ORACLE
+--   auditper varchar2(512) DEFAULT NULL COMMENT '审核人',  -- dialect: ORACLE
+--   examper varchar2(512) DEFAULT NULL COMMENT '审批人',  -- dialect: ORACLE
+--   isinvestigated varchar2(10) DEFAULT NULL COMMENT '是否调查件',  -- dialect: ORACLE
+--   idno varchar2(40) DEFAULT NULL COMMENT '被保险人身份证件号码',  -- dialect: ORACLE
+--   insuredname varchar2(40) DEFAULT NULL COMMENT '姓名',  -- dialect: ORACLE
+--   isfromwx varchar2(10) DEFAULT NULL COMMENT '是否微信申请理赔标志',  -- dialect: ORACLE
+--   insuredno varchar2(40) DEFAULT NULL COMMENT '出险人客户号',  -- dialect: ORACLE
+--   amnt decimal(12,2) DEFAULT NULL COMMENT '保额', 
+--   managecom varchar2(10) DEFAULT NULL COMMENT '管理机构',  -- dialect: ORACLE
+--   estimatedreparations varchar2(40) DEFAULT NULL COMMENT '预估赔款金额',  -- dialect: ORACLE
+--   risktype varchar2(40) DEFAULT NULL COMMENT '险种类型',  -- dialect: ORACLE
+--   getdutycode varchar2(40) DEFAULT NULL COMMENT '给付责任编码',  -- dialect: ORACLE
+--   getdutyname varchar2(512) DEFAULT NULL COMMENT '给付责任名称',  -- dialect: ORACLE
+--   salechnl varchar2(40) DEFAULT NULL COMMENT '销售渠道',  -- dialect: ORACLE
+--   accname varchar2(200) DEFAULT NULL COMMENT '申请人',  -- dialect: ORACLE
+--   accidenttype varchar2(200) DEFAULT NULL COMMENT '理赔类型',  -- dialect: ORACLE
+--   enddate timestamp DEFAULT NULL COMMENT '保单终止日期', 
+--   salechnl2 varchar2(200) DEFAULT NULL COMMENT '销售二级渠道',  -- dialect: ORACLE
+--   insuredsex varchar2(200) DEFAULT NULL COMMENT '被保险人性别',  -- dialect: ORACLE
+--   insuredjob 	varchar2(200) DEFAULT NULL COMMENT '职业类别',  -- dialect: ORACLE
+--   paystatus varchar2(200) DEFAULT NULL COMMENT '支付状态',  -- dialect: ORACLE
+--   RGTNO varchar2(200) DEFAULT NULL COMMENT '立案号',
+--   RPTNO varchar2(200) DEFAULT NULL COMMENT '报案号',
+--   RPTORNAME varchar2(200) DEFAULT NULL COMMENT '报案人名称',
+--   RELATION varchar2(200) DEFAULT NULL COMMENT '报案人与出险人关系',
+--   ACCDESC varchar2(200) DEFAULT NULL COMMENT '报案描述',
+--   ins_time timestamp DEFAULT NULL
+-- )
+-------------------------------------------------------------------------------------
+--数据解析
+--SELECT llgettype FROM shanghailifeecif.insurance_claim GROUP BY llgettype  --通融给付、正常给付、全部拒付
+--SELECT count(1) a,contno,clmno FROM shanghailifeecif.insurance_claim GROUP BY contno,clmno ORDER BY a DESC; 按照保单和理赔去重 最大重复数为3
+--且三条理赔的险种不一样
+
 ---------------------保单数据处理
 ---------------------保单数据处理
 
 
 --创建保险理赔表insuranceclaimthread
 --创建保险理赔表insuranceclaimthread
@@ -17,6 +78,7 @@ CREATE  TABLE insuranceclaimthread(
   rpname string DEFAULT NULL COMMENT '报案人名称',
   rpname string DEFAULT NULL COMMENT '报案人名称',
   rpphone string DEFAULT NULL COMMENT '报案人电话',
   rpphone string DEFAULT NULL COMMENT '报案人电话',
   lpid string DEFAULT NULL COMMENT '出险人	根据INSURANCE_CLAIM.INSUREDNO获取indid',
   lpid string DEFAULT NULL COMMENT '出险人	根据INSURANCE_CLAIM.INSUREDNO获取indid',
+  lpscutid string DEFAULT NULL COMMENT '出险人上游客户号	根据INSURANCE_CLAIM',
   lpname string DEFAULT NULL COMMENT '出险人名称',
   lpname string DEFAULT NULL COMMENT '出险人名称',
   cndate date DEFAULT NULL COMMENT '报案日期 INSURANCE_CLAIM.RPTDATE',
   cndate date DEFAULT NULL COMMENT '报案日期 INSURANCE_CLAIM.RPTDATE',
   lossdescribe string DEFAULT NULL COMMENT '损失原因 案件发生的原因:INSURANCE_CLAIM.LLOCCURREASON',
   lossdescribe string DEFAULT NULL COMMENT '损失原因 案件发生的原因:INSURANCE_CLAIM.LLOCCURREASON',
@@ -25,16 +87,12 @@ CREATE  TABLE insuranceclaimthread(
   claimstatus string DEFAULT NULL COMMENT '理赔状态 案件的状态,例如:录入、已立案等',
   claimstatus string DEFAULT NULL COMMENT '理赔状态 案件的状态,例如:录入、已立案等',
   csdate date DEFAULT NULL COMMENT '理赔状态日期',
   csdate date DEFAULT NULL COMMENT '理赔状态日期',
   relationship string DEFAULT NULL COMMENT '报案人与出险人关系',
   relationship string DEFAULT NULL COMMENT '报案人与出险人关系',
-  ccno1 string DEFAULT NULL COMMENT '赔案号1 AUDIT_CLAIM_INSURANCE.CLMNO',
-  ccstatus1 string DEFAULT NULL COMMENT '赔案状态1',
-  ccsdate1 date DEFAULT NULL COMMENT '赔案状态日期1',
-  productid1 string DEFAULT NULL COMMENT '险种代码1	INSURANCE_CLAIM_HEALTH.RISKCODE',
-  ccamt1 double DEFAULT NULL COMMENT '赔付金额1	INSURANCE_CLAIM_HEALTH.REALPAY',
-  ccno2 string DEFAULT NULL COMMENT '赔案号2',
-  ccstatus2 string DEFAULT NULL COMMENT '赔案状态2',
-  ccsdate2 date DEFAULT NULL COMMENT '赔案状态日期2',
-  productid2 string DEFAULT NULL COMMENT '险种代码2',
-  ccamt2 double DEFAULT NULL COMMENT '赔付金额2',
+  ccno string DEFAULT NULL COMMENT '赔案号 AUDIT_CLAIM_INSURANCE.CLMNO',
+  ccstatus string DEFAULT NULL COMMENT '赔案状态',
+  ccsdate date DEFAULT NULL COMMENT '赔案状态日期',
+  productid string DEFAULT NULL COMMENT '险种代码	INSURANCE_CLAIM_HEALTH.RISKCODE',
+  productname string DEFAULT NULL COMMENT '险种代码	INSURANCE_CLAIM_HEALTH.RISKNAME',
+  ccamt double DEFAULT NULL COMMENT '赔付金额	INSURANCE_CLAIM_HEALTH.REALPAY',
   branchcode string DEFAULT NULL COMMENT '机构代码',
   branchcode string DEFAULT NULL COMMENT '机构代码',
   claimcasestatus string DEFAULT NULL COMMENT '案件状态INSURANCE_CLAIM_HEALTH.LLCLAIMSTATE',
   claimcasestatus string DEFAULT NULL COMMENT '案件状态INSURANCE_CLAIM_HEALTH.LLCLAIMSTATE',
   created_by string DEFAULT NULL COMMENT '',
   created_by string DEFAULT NULL COMMENT '',
@@ -48,203 +106,127 @@ with shard number 10
 replication 1;
 replication 1;
 
 
 
 
-DROP TABLE IF EXISTS insuranceclaimthread_tmp;
-CREATE  TABLE insuranceclaimthread_tmp(
-  contno string NOT NULL COMMENT '保单号',  
-  rownumber int not null comment '同保单号 按照出险日期倒叙排列的行号', 
-
-  CLMNO string NOT NULL COMMENT '赔案号',
-
-  LPID string DEFAULT NULL COMMENT '出险人客户号',
-  LPName string DEFAULT NULL COMMENT '出险人名称',
-  scustid string NOT NULL COMMENT '出险人上游客户id',
-  
-  rptdate  date DEFAULT NULL COMMENT '报案日期',
-  rgtdate date DEFAULT NULL COMMENT '立案日期',
-  riskdate date DEFAULT NULL COMMENT '出险日期',
 
 
-  lloccurreason string DEFAULT NULL COMMENT '出险原因',  -- dialect: ORACLE
-  accidentdetail string DEFAULT NULL COMMENT '意外细节',  -- dialect: ORACLE
-  llclaimstate string DEFAULT NULL COMMENT '目前状态', -- dialect: ORACLE
-  riskcode string DEFAULT NULL COMMENT '险种代码',
-  realpay double DEFAULT NULL COMMENT '赔付金额'
-
- 
-  )
- COMMENT 'insuranceclaimthread临时表' 
- CLUSTERED BY (contno) INTO 1 BUCKETS
- STORED AS ORC 	
- TBLPROPERTIES ("transactional"="true");
-
-
-------------------------------------------------------------------------------------------------------------------------------------------
 CREATE OR REPLACE PROCEDURE insuranceclaimthread_main() -- 创建主存储过程
 CREATE OR REPLACE PROCEDURE insuranceclaimthread_main() -- 创建主存储过程
 IS    
 IS    
 BEGIN
 BEGIN
-	--1.获取主要信息插入主表 如保单号  客户名称
-	init_insuranceclaimthread()
-	--2.更新 投保人相关信息
-
-
-	EXCEPTION
-			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('insuranceclaimthread_main',sqlerrm(),sqlcode())
-			WHEN Others THEN
-				 log_exception('insuranceclaimthread_main',sqlerrm(),sqlcode())
-END;
-
-
-
-
-
-----------------------利用insuranceinfo 插入或更新信息临时表
-CREATE OR REPLACE PROCEDURE init_insuranceclaimthread() -- 创建存储过程
-IS    
-BEGIN
-	delete insuranceclaimthread_tmp;
-
-	--插入主要信息
-	insert into insuranceclaimthread_tmp(
-			contno,-- '保单号',   
-			rownumber ,--'同保单号 按照出险日期倒叙排列的行号', 
-
-			CLMNO ,-- '赔案号',
-
-			scustid ,--'上游客户号'
-			LPName ,--出险人名称
-
-			rptdate  ,--'报案日期',
-			rgtdate ,--'立案日期',
-			riskdate ,--'出险日期',
-
-			lloccurreason ,-- '出险原因',  -- dialect: ORACLE
-			accidentdetail ,-- '意外细节',  -- dialect: ORACLE
-			llclaimstate ,-- '目前状态', -- dialect: ORACLE
-			riskcode ,-- '险种代码',
-			realpay -- '赔付金额'
-		)
-    	select 
-    		contno,
-    		row_number()over(PARTITION BY contno ORDER BY riskdate desc),
-    		CLMNO,
-
-    		insuredno,
-   			insuredname,
-
-			rptdate  ,--'报案日期',
-			rgtdate ,--'立案日期',
-			riskdate ,--'出险日期',
-
-			lloccurreason ,-- '出险原因',  -- dialect: ORACLE
-			accidentdetail ,-- '意外细节',  -- dialect: ORACLE
-			llclaimstate ,-- '目前状态', -- dialect: ORACLE
-			riskcode ,-- '险种代码',
-			realpay -- '赔付金额'
-
-   		from shanghailifeecif.insurance_claim 
-
-   	--更新 临时表的客户号
-   	UPDATE insuranceclaimthread_tmp a set LPID = (select indid from scustid_unique_tmp b where a.scustid = b.scustid ) WHERE 1=1;
-   
-
-   	--插入 最近的
-   	insert into insuranceclaimthread (
-		icthreadid , -- '保险理赔Id',
-
+	insert into insuranceclaimthread (
+		icthreadid ,--'保险理赔Id',
+		crno ,--'立案号',
+		--companyno ,-- '公司代码',
 		policyno ,--'保险单号 INSURANCE_CLAIM.CONTNO',
 		policyno ,--'保险单号 INSURANCE_CLAIM.CONTNO',
-		
-		
-		lpid ,--'出险人	根据INSURANCE_CLAIM.INSUREDNO获取indid',
-		lpname ,--'出险人名称',
-
+		--applicantid ,--'投保人ID',
+		--appname ,--'投保人名称',
+		--appphone ,--'投保人手机',
+		--appcertid ,--'投保人证件号码 INSURANCE_CLAIM.RISKDATE',
+		cnno ,--'报案号',
 		losstime ,-- '损失发生时间',
 		losstime ,-- '损失发生时间',
-		cndate ,-- '报案日期 INSURANCE_CLAIM.RPTDATE',
-		crdate ,-- '立案日期 INSURANCE_CLAIM.RGTDATE',
-
+		--rpid ,-- '报案人',
+		rpname ,--'报案人名称',
+		--rpphone ,-- '报案人电话',
+		--lpid ,--'出险人	根据INSURANCE_CLAIM.INSUREDNO获取indid',
+		lpscutid,--'出险人上游客户号
+		--lpname ,-- '出险人名称',
+		cndate ,--'报案日期 INSURANCE_CLAIM.RPTDATE',
 		lossdescribe ,-- '损失原因 案件发生的原因:INSURANCE_CLAIM.LLOCCURREASON',
 		lossdescribe ,-- '损失原因 案件发生的原因:INSURANCE_CLAIM.LLOCCURREASON',
-		cndescribe ,-- '报案描述 INSURANCE_CLAIM.ACCIDENTDETAIL',
+		crdate ,-- '立案日期 INSURANCE_CLAIM.RGTDATE',
+		cndescribe ,--'报案描述 INSURANCE_CLAIM.ACCIDENTDETAIL',
 		claimstatus ,--'理赔状态 案件的状态,例如:录入、已立案等',
 		claimstatus ,--'理赔状态 案件的状态,例如:录入、已立案等',
-	
-		
-		ccno1 ,--'赔案号1 AUDIT_CLAIM_INSURANCE.CLMNO',
-		ccstatus1 ,-- '赔案状态1',
-		productid1 ,--'险种代码1	INSURANCE_CLAIM_HEALTH.RISKCODE',
-		ccamt1 ,--'赔付金额1	INSURANCE_CLAIM_HEALTH.REALPAY',
-		
-		
+		csdate ,--'理赔状态日期',
+		relationship ,-- '报案人与出险人关系',
+		ccno ,-- '赔案号 AUDIT_CLAIM_INSURANCE.CLMNO',
+		ccstatus ,--'赔案状态',
+		--ccsdate ,-- '赔案状态日期',
+		productid ,--'险种代码	INSURANCE_CLAIM_HEALTH.RISKCODE',
+		productname, --'险种名称	INSURANCE_CLAIM_HEALTH.RISKNAME',
+		ccamt ,--'赔付金额	INSURANCE_CLAIM_HEALTH.realpay',
+		--branchcode,-- '机构代码',
+		claimcasestatus ,--'案件状态INSURANCE_CLAIM_HEALTH.LLCLAIMSTATE',
 		created_by ,
 		created_by ,
-		created_time
+		created_time 
+		-- updated_time,
+		-- updated_by
 	) select 
 	) select 
    		row_number()over(),
    		row_number()over(),
-   		contno,
+   		rgtno,
+
+		contno,
+
 
 
-   		lpid,
-   		lpname,
 
 
-   		riskdate,
-   		rptdate,
-   		rgtdate,
+		rptno,--报案号
+		riskdate,--损失发生的时间
 
 
-   		lloccurreason ,-- '出险原因',  -- dialect: ORACLE
-		accidentdetail ,-- '意外细节',  -- dialect: ORACLE
-		llclaimstate ,-- '目前状态', -- dialect: ORACLE
-		
-		CLMNO ,
+		rptorname,--报案人名称
+
+
+   		INSUREDNO,--出险人 上游客户号
+   		--lpname,
+		rptdate,
+		lloccurreason,
+		rgtdate,
+		accidentdetail,--报案描述
 		llclaimstate,
 		llclaimstate,
-		riskcode ,-- '险种代码',
-		realpay, -- '赔付金额'
-		
-		'admin',
-		sysdate()
+		auditdate,--审批日期
+		relation,
+		clmno,--赔案号
+		llgettype,--赔案状态
 
 
-	from insuranceclaimthread_tmp
-	where rownumber =1;
+		riskcode,
+		riskname,
+		realpay,
 
 
-	--更新第二近的
+		llclaimstate,--案件状态
+		'admin',
+		sysdate()
+	from shanghailifeecif.INSURANCE_CLAIM where contno is not null 
+	
 	update insuranceclaimthread a set (
 	update insuranceclaimthread a set (
-		ccno2,--'赔案号1 AUDIT_CLAIM_INSURANCE.CLMNO',
-		ccstatus2 ,-- '赔案状态1',
-		productid2 ,--'险种代码1	INSURANCE_CLAIM_HEALTH.RISKCODE',
-		ccamt2 --'赔付金额1	INSURANCE_CLAIM_HEALTH.REALPAY',
-	) = (
+		lpid,
+		lpname
+	) = ( 
 		select 
 		select 
-			CLMNO ,
-			llclaimstate,
-			riskcode ,-- '险种代码',
-			realpay -- '赔付金额'
-		from insuranceclaimthread_tmp b 
-		where b.rownumber =2 and a.policyno = b.contno
-	) 
-	where 1=1
+			b.indid,
+			b.name
+		from individual_search1 b
+		where a.lpscutid = b.SCustID
+	)where 1=1
+
+
+	UPDATE insuranceclaimthread a SET (
+			applicantid ,--'投保人ID',
+			appname ,--'投保人名称',
+			appphone ,--'投保人手机',
+			appcertid, --'投保人证件号码 INSURANCE_CLAIM.RISKDATE',
+			branchcode-- '机构代码',
+		) = (
+			select 
+				applicantid ,--'投保人ID',
+				appname ,--'投保人名称',
+				appphone ,--'投保人手机',
+				appcertid, --'投保人证件号码 INSURANCE_CLAIM.RISKDATE',
+				branchcode-- '机构代码',
+			from shanglifeecif.insurancearrangement b
+			where b.policyno  = a.policyno
+		) WHERE 1=1 ;
+
 
 
 
 
 	EXCEPTION
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
 			WHEN HIVE_EXCEPTION THEN 
-				 log_exception('init_insuranceclaimthread',sqlerrm(),sqlcode())
+				 log_exception('insuranceclaimthread_main',sqlerrm(),sqlcode())
 			WHEN Others THEN
 			WHEN Others THEN
-				 log_exception('init_insuranceclaimthread',sqlerrm(),sqlcode())
+				 log_exception('insuranceclaimthread_main',sqlerrm(),sqlcode())
 END;
 END;
 
 
+
+
+
+
+----------------------利用insuranceinfo 插入或更新信息临时表
+
+
 ====================================================================================================================
 ====================================================================================================================
 =============================================数据查询语句============================================================
 =============================================数据查询语句============================================================
 ====================================================================================================================
 ====================================================================================================================
---contno 保单号
-SELECT count(1) FROM (
-	select contno from shanghailifeecif.insurance_claim group by contno
-);  11521
-11490
-
-
---contno 保单号
-SELECT count(1) FROM (
-	select contno,insuredname,insuredno from shanghailifeecif.insurance_claim group by contno,insuredname,insuredno  
-);
-select contno,count(contno) a from shanghailifeecif.insurance_claim group by contno  ORDER BY a DESC;
-SELECT * FROM shanghailifeecif.insurance_claim WHERE contno = 2019101200159088;
-SELECT * FROM shanghailifeecif.insurance_claim WHERE contno = 2018122000202088;
-
-select CLMNO,count(CLMNO) a from shanghailifeecif.insurance_claim group by CLMNO  ORDER BY a DESC;
-SELECT count(1) FROM (
-	select contno,CLMNO from shanghailifeecif.insurance_claim group by contno,CLMNO 
-);
-SELECT * FROM shanghailifeecif.insurance_claim WHERE CLMNO = 3631815101227631;
+ SELECT count(1) FROM insuranceclaimthread;  --

BIN
sql-achievement/存储过程/表结构和字段.xls