فهرست منبع

Merge remote-tracking branch 'origin/master'

liuqiwen 4 سال پیش
والد
کامیت
50c8e11626

+ 1 - 1
README.md

@@ -52,7 +52,7 @@ com.ruoyi
 10. 登录日志:系统登录日志记录查询包含登录异常。
 11. 在线用户:当前系统中活跃用户状态监控。
 12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
-13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
+13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下 载 。
 14. 系统接口:根据业务代码自动生成相关的api接口文档。
 15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
 16. 在线构建器:拖动表单元素生成相应的HTML代码。

+ 86 - 0
bin/start_auth.sh

@@ -0,0 +1,86 @@
+#!/bin/bash
+
+AppName=dgtis-auth.jar
+
+#JVM参数
+JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
+APP_HOME=`pwd`
+LOG_PATH=$APP_HOME/logs/$AppName.log
+
+if [ "$1" = "" ];
+then
+    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
+    exit 1
+fi
+
+if [ "$AppName" = "" ];
+then
+    echo -e "\033[0;31m 未输入应用名 \033[0m"
+    exit 1
+fi
+
+function start()
+{
+    PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
+
+	if [ x"$PID" != x"" ]; then
+	    echo "$AppName is running..."
+	else
+		nohup java -jar  $JVM_OPTS $AppName --spring.profiles.active=dev > $LOG_PATH 2>&1 &
+		echo "Start $AppName success..."
+	fi
+}
+
+function stop()
+{
+    echo "Stop $AppName"
+	
+	PID=""
+	query(){
+		PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
+	}
+
+	query
+	if [ x"$PID" != x"" ]; then
+		kill -TERM $PID
+		echo "$AppName (pid:$PID) exiting..."
+		while [ x"$PID" != x"" ]
+		do
+			sleep 1
+			query
+		done
+		echo "$AppName exited."
+	else
+		echo "$AppName already stopped."
+	fi
+}
+
+function restart()
+{
+    stop
+    sleep 2
+    start
+}
+
+function status()
+{
+    PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
+    if [ $PID != 0 ];then
+        echo "$AppName is running..."
+    else
+        echo "$AppName is not running..."
+    fi
+}
+
+case $1 in
+    start)
+    start;;
+    stop)
+    stop;;
+    restart)
+    restart;;
+    status)
+    status;;
+    *)
+
+esac

+ 86 - 0
bin/start_gateway.sh

@@ -0,0 +1,86 @@
+#!/bin/bash
+
+AppName=dgtis-gateway.jar
+
+#JVM参数
+JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
+APP_HOME=`pwd`
+LOG_PATH=$APP_HOME/logs/$AppName.log
+
+if [ "$1" = "" ];
+then
+    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
+    exit 1
+fi
+
+if [ "$AppName" = "" ];
+then
+    echo -e "\033[0;31m 未输入应用名 \033[0m"
+    exit 1
+fi
+
+function start()
+{
+    PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
+
+	if [ x"$PID" != x"" ]; then
+	    echo "$AppName is running..."
+	else
+		nohup java -jar  $JVM_OPTS $AppName --spring.profiles.active=dev > $LOG_PATH 2>&1 &
+		echo "Start $AppName success..."
+	fi
+}
+
+function stop()
+{
+    echo "Stop $AppName"
+	
+	PID=""
+	query(){
+		PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
+	}
+
+	query
+	if [ x"$PID" != x"" ]; then
+		kill -TERM $PID
+		echo "$AppName (pid:$PID) exiting..."
+		while [ x"$PID" != x"" ]
+		do
+			sleep 1
+			query
+		done
+		echo "$AppName exited."
+	else
+		echo "$AppName already stopped."
+	fi
+}
+
+function restart()
+{
+    stop
+    sleep 2
+    start
+}
+
+function status()
+{
+    PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
+    if [ $PID != 0 ];then
+        echo "$AppName is running..."
+    else
+        echo "$AppName is not running..."
+    fi
+}
+
+case $1 in
+    start)
+    start;;
+    stop)
+    stop;;
+    restart)
+    restart;;
+    status)
+    status;;
+    *)
+
+esac

+ 86 - 0
bin/start_system.sh

@@ -0,0 +1,86 @@
+#!/bin/bash
+
+AppName=dgtis-modules-system.jar
+
+#JVM参数
+JVM_OPTS="-Dname=$AppName  -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps  -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
+APP_HOME=`pwd`
+LOG_PATH=$APP_HOME/logs/$AppName.log
+
+if [ "$1" = "" ];
+then
+    echo -e "\033[0;31m 未输入操作名 \033[0m  \033[0;34m {start|stop|restart|status} \033[0m"
+    exit 1
+fi
+
+if [ "$AppName" = "" ];
+then
+    echo -e "\033[0;31m 未输入应用名 \033[0m"
+    exit 1
+fi
+
+function start()
+{
+    PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
+
+	if [ x"$PID" != x"" ]; then
+	    echo "$AppName is running..."
+	else
+		nohup java -jar  $JVM_OPTS $AppName --spring.profiles.active=dev > $LOG_PATH 2>&1 &
+		echo "Start $AppName success..."
+	fi
+}
+
+function stop()
+{
+    echo "Stop $AppName"
+	
+	PID=""
+	query(){
+		PID=`ps -ef |grep java|grep $AppName|grep -v grep|awk '{print $2}'`
+	}
+
+	query
+	if [ x"$PID" != x"" ]; then
+		kill -TERM $PID
+		echo "$AppName (pid:$PID) exiting..."
+		while [ x"$PID" != x"" ]
+		do
+			sleep 1
+			query
+		done
+		echo "$AppName exited."
+	else
+		echo "$AppName already stopped."
+	fi
+}
+
+function restart()
+{
+    stop
+    sleep 2
+    start
+}
+
+function status()
+{
+    PID=`ps -ef |grep java|grep $AppName|grep -v grep|wc -l`
+    if [ $PID != 0 ];then
+        echo "$AppName is running..."
+    else
+        echo "$AppName is not running..."
+    fi
+}
+
+case $1 in
+    start)
+    start;;
+    stop)
+    stop;;
+    restart)
+    restart;;
+    status)
+    status;;
+    *)
+
+esac

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

@@ -51,7 +51,7 @@ LOAD DATA INPATH '/tmp/myData/policy_information.txt' OVERWRITE INTO TABLE qxp.p
 TRUNCATE TABLE individual;
 --创建search目的表
 DROP TABLE IF EXISTS individual;
-CREATE  TABLE qxp.individual_search(
+CREATE  TABLE qxp.individual(
   indid string DEFAULT NULL COMMENT '个体ID', 
   custid string DEFAULT NULL COMMENT '全局客户号',
   SCustID string DEFAULT NULL COMMENT '客户号',   
@@ -91,6 +91,7 @@ CREATE  TABLE qxp.individual_search(
   evadate date DEFAULT NULL COMMENT '健康评估日期', 
   cohevaluation int DEFAULT NULL COMMENT '健康评估登录数量', 
   hphone string DEFAULT NULL COMMENT '家庭电话', 
+  occupationid string DEFAULT NULL COMMENT '职业代码',
   occupation string DEFAULT NULL COMMENT '职业',  -- dialect: ORACLE
   odate date DEFAULT NULL COMMENT '职业时间', 
   employer string DEFAULT NULL COMMENT '工作单位', 
@@ -156,7 +157,8 @@ CREATE  TABLE qxp.individual_search(
   systemtag3 string DEFAULT NULL COMMENT '系统标签域3', 
   cocommunication int DEFAULT NULL COMMENT '接触次数', 
   lcdate date DEFAULT NULL COMMENT '最近接触时间', 
-  lctype string DEFAULT NULL COMMENT '最近接触类型',  -- dialect: ORACLE
+  lctype string DEFAULT NULL COMMENT '最近接触类型',  
+  lcmethod string DEFAULT NULL COMMENT '最近接触方式 外呼、呼入',  
   cocomplaint int DEFAULT NULL COMMENT '投诉次数', 
   lcptdate date DEFAULT NULL COMMENT '最近投诉时间', 
   lcptreason string DEFAULT NULL COMMENT '最近投诉原因',  -- dialect: ORACLE
@@ -182,6 +184,29 @@ CREATE  TABLE qxp.individual_search(
   soiaccount2 decimal(32,8) DEFAULT NULL COMMENT '保险账户2余额', 
   soiaccount3 decimal(32,8) DEFAULT NULL COMMENT '保险账户3余额', 
   coiaccount int DEFAULT NULL COMMENT '保险账户登录数量',
+  HOMEID string    COMMENT '家庭号 大数据平台HOME_NETWORK' ,
+    BranchCode string    COMMENT '机构代码 数据归属机构,用于权限控制' ,
+    CustState string    COMMENT '客户状态 party可能会合并导致当前记录不再可用' ,
+    DataSource string    COMMENT '数据来源' ,
+    Smoking string    COMMENT '吸烟情况 从不、戒烟、吸烟' ,
+    Drinking string    COMMENT '饮酒情况 从不、戒酒、饮酒' ,
+    Pregnancy string    COMMENT '怀孕情况' ,
+    Hobby1 string    COMMENT '兴趣爱好1' ,
+    Hobby2 string    COMMENT '兴趣爱好2' ,
+    Hobby3 string    COMMENT '兴趣爱好3' ,
+    PIncome decimal(32,8)    COMMENT '个人年收入' ,
+    FIncome decimal(32,8)    COMMENT '家庭年收入' ,
+    IncomeSource string     COMMENT '收入来源' ,
+    SIStatus string     COMMENT '社保情况' ,
+    NOVPolicy INT    COMMENT '有效保单件数' ,
+    NOIVPolicy INT    COMMENT '失效保单件数' ,
+    NOSTInsurance string     COMMENT '短意险保单持有情况 仅持有短意险保单,持有短意险保单,无短意险保单' ,
+    NOSPInsurance string     COMMENT '趸交保单持有情况 仅持有趸交保单,持有趸交保单,无趸交保单' ,
+    ISelf string     COMMENT '本人投保情况 仅本人投保,本人已投保,本人未投保' ,
+    IParent string     COMMENT '父母投保情况 仅父母投保,父母已投保,父母未投保' ,
+    IChildren string     COMMENT '子女投保情况 仅子女投保,子女已投保,子女未·投保' ,
+    Imate string     COMMENT '配偶投保情况 仅配偶投保,配偶已投保,配偶未投保' ,
+
 	Label1	string	 COMMENT 	'Label1' ,
 	Label2	string	 COMMENT 	'Label2' ,
 	Label3	string	 COMMENT 	'Label3' ,
@@ -476,7 +501,7 @@ BEGIN
 			WHEN Others THEN
 				 log_exception('init_individual_main',sqlerrm(),sqlcode())
 END;
-
+/
 
 
 
@@ -505,7 +530,7 @@ BEGIN
 	)
 	SELECT 
 		row_number()over(),
-		'CP'||lpad(row_number()over(),10,'0'),
+		'CP'||lpad(row_number()over(),10,'0'),	
 
 		scustid ,
 		name,
@@ -547,7 +572,7 @@ BEGIN
 				 log_exception('init_individual_0',sqlerrm(),sqlcode())
 END;
 
-
+/
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true; --使用HIVE_EXCEPTION捕获Hive异常
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
@@ -760,7 +785,13 @@ BEGIN
 			Awarded2	,--	续期加分
 			Awarded1	,--	保单加分
 			SOValue	,--	总分值
-			EndDate	--	客户等级失效日期
+			EndDate,	--	客户等级失效日期
+			Height,		--身高
+			Weight,		--体重
+			PIncome,	--个人年收入
+			FIncome,	--家庭年收入
+			IncomeSource,	--收入来源
+			SIStatus	--社保情况
 		) = (
 			select 
 					CLASS_VALUE	,--客户等级
@@ -769,8 +800,15 @@ BEGIN
 					AWARDED2, --续期加分
 					AWARDED1, --保单加分
 					TOTAL_VALUE, --总分值
-					END_DATE --失效日期
-				from t_customer_class b
+					END_DATE, --失效日期
+					STATURE,	--身高
+					AVOIRDUPOIS,--体重
+					YEARINCOME,	--个人年收入
+					FAMILYYEARSALARY,	--家庭年收入
+					INCOMESOURCE,	--收入来源
+					SOCIALINSUFLAG	--社保情况
+
+				from shanghailifeecif.t_customer_class b
 				where b.CUSTOMER_ID = a.scustid;
 		) WHERE 1=1 ;
 	EXCEPTION
@@ -823,7 +861,7 @@ BEGIN
 		select 
 			OccupationId	,--职业代码
 			Occupation,--职业名称
-			APPNTHOMEADDRESS 
+			HomeAdress 
 		from occupation_tmp b
 		where b.scustid = a.scustid 
 	) WHERE 1=1 ;
@@ -877,7 +915,7 @@ BEGIN
 
 	--插入临时表数据
 	insert into scustid_unique_tmp(scustid,indid)
-		select scustid,min(indid) from individual_search1 group by scustid;
+		select scustid,min(indid) from individual group by scustid;
 
 	EXCEPTION
 			WHEN HIVE_EXCEPTION THEN 
@@ -894,4 +932,7 @@ END;
 
 1,119,154  ---156901 插入UNION   
 1,119,154  ---row_number()over(),  使用row_number()over()  329312 
-row_number()over() 行号
+row_number()over() 行号
+
+
+1313s  2232186条数据

+ 268 - 16
sql-achievement/存储过程/保单qxp.sql

@@ -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 条数据

+ 174 - 18
sql-achievement/存储过程/参与方事件.sql

@@ -84,29 +84,38 @@ BEGIN
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   DBMS_OUTPUT.PUT_LINE(partytimeline_count);
-  init_insuranceclaimthread_edorlist(partytimeline_count)
+  init_PartyTimeLine_edorlist(partytimeline_count)
  
   --2.从保全表中初始化 参与事件
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   DBMS_OUTPUT.PUT_LINE(partytimeline_count);
-  init_insuranceclaimthread_edorinfo(partytimeline_count)
+  init_PartyTimeLine_edorinfo(partytimeline_count)
+
+
   
   --  3.初始化理赔相关信息
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   DBMS_OUTPUT.PUT_LINE(partytimeline_count);
-  init_insuranceclaimthread_insuranceclaimthread(partytimeline_count)
+  init_PartyTimeLine_insuranceclaimthread(partytimeline_count)
   
   --  4.初始化投保赔相关信息
   select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   DBMS_OUTPUT.PUT_LINE(partytimeline_count);
-  init_insuranceclaimthread_InsuranceArrangement(partytimeline_count)
+  init_PartyTimeLine_InsuranceArrangement(partytimeline_count)
   
+  --5.从cc通话中心表中初始化 理赔 保全 咨询 参与事件
+  select count(0) into partytimeline_count from PartyTimeLine;
   partytimeline_count:=partytimeline_count+1;
   DBMS_OUTPUT.PUT_LINE(partytimeline_count);
+  init_PartyTimeLine_cc(partytimeline_count)
+
+
 
+
+  
   --  用于以后更新时是用的序列
   strsql:='
   CREATE SEQUENCE globaleTripID_sequence
@@ -178,7 +187,7 @@ replication 1;
 !set plsqlUseSlash true
 SET plsql.catch.hive.exception=true;
 --set plsql.compile.dml.check.semantic=false; --禁止编译过程对PL/SQL内部语法进行检查。
-CREATE OR REPLACE PROCEDURE init_insuranceclaimthread_edorlist(partytimeline_count OUT int) 
+CREATE OR REPLACE PROCEDURE init_PartyTimeLine_edorlist(partytimeline_count OUT int) 
 IS    
 BEGIN
   --初始化临时表
@@ -253,9 +262,9 @@ BEGIN
 
   EXCEPTION
       WHEN HIVE_EXCEPTION THEN 
-         log_exception('init_insuranceclaimthread_edorlist',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_edorlist',sqlerrm(),sqlcode())
       WHEN Others THEN
-         log_exception('init_insuranceclaimthread_edorlist',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_edorlist',sqlerrm(),sqlcode())
 END;
 
 
@@ -280,7 +289,7 @@ END;
   EDORCVALIDATE     string DEFAULT NULL COMMENT '保全生效日期 '
 */
 
-CREATE OR REPLACE PROCEDURE init_insuranceclaimthread_edorinfo(partytimeline_count OUT int) 
+CREATE OR REPLACE PROCEDURE init_PartyTimeLine_edorinfo(partytimeline_count OUT int) 
 IS    
 BEGIN
   --初始化临时表
@@ -354,9 +363,9 @@ BEGIN
 
   EXCEPTION
       WHEN HIVE_EXCEPTION THEN 
-         log_exception('init_insuranceclaimthread_edorinfo',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_edorinfo',sqlerrm(),sqlcode())
       WHEN Others THEN
-         log_exception('init_insuranceclaimthread_edorinfo',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_edorinfo',sqlerrm(),sqlcode())
 END;
 
 
@@ -366,10 +375,9 @@ END;
 ==========================================================================================================================================================
 
 
-CREATE OR REPLACE PROCEDURE init_insuranceclaimthread_insuranceclaimthread(partytimeline_count OUT int) 
+CREATE OR REPLACE PROCEDURE init_PartyTimeLine_insuranceclaimthread(partytimeline_count OUT int) 
 IS    
 BEGIN
-  --初始化临时表、
   insert into PartyTimeLine(
       TripID,
       PartyID, --参与方id
@@ -408,9 +416,9 @@ BEGIN
 
   EXCEPTION
       WHEN HIVE_EXCEPTION THEN 
-         log_exception('init_insuranceclaimthread_insuranceclaimthread',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_insuranceclaimthread',sqlerrm(),sqlcode())
       WHEN Others THEN
-         log_exception('init_insuranceclaimthread_insuranceclaimthread',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_insuranceclaimthread',sqlerrm(),sqlcode())
 END;
 
 
@@ -419,7 +427,7 @@ END;
 ==========================================================================================================================================================
 
 
-CREATE OR REPLACE PROCEDURE init_insuranceclaimthread_InsuranceArrangement(partytimeline_count OUT int) 
+CREATE OR REPLACE PROCEDURE init_PartyTimeLine_InsuranceArrangement(partytimeline_count OUT int) 
 IS    
 BEGIN
   --初始化临时表、
@@ -460,9 +468,146 @@ BEGIN
 
   EXCEPTION
       WHEN HIVE_EXCEPTION THEN 
-         log_exception('init_insuranceclaimthread_InsuranceArrangement',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_InsuranceArrangement',sqlerrm(),sqlcode())
+      WHEN Others THEN
+         log_exception('init_PartyTimeLine_InsuranceArrangement',sqlerrm(),sqlcode())
+END;
+
+
+==================================================================================================================================================
+===========================================================根据cc_record_main表插入 保全 理赔 咨询=========================================================
+==================================================================================================================================================
+CREATE TABLE PartyTimeLine_cc_tmp(
+    id string,
+    ThreadID string comment '记录id',
+    ParentID string comment '父ID 保单号 ',
+    PartyID string  COMMENT '参与方ID' ,
+    Name  string    COMMENT '参与方名称' ,
+    PCertID string    COMMENT '参与方证件号码' ,
+    PPhone  string    COMMENT '参与方手机' ,
+    PRole string    COMMENT '参与方角色' ,
+    EndDate DATE COMMENT '完成日期' 
+) COMMENT '呼叫中心临时表'
+STORED AS ES
+with shard number 10
+replication 1;
+
+
+CREATE OR REPLACE PROCEDURE init_PartyTimeLine_cc(partytimeline_count OUT int) 
+IS    
+BEGIN
+  --清除临时表数据
+  delete from PartyTimeLine_cc_tmp;
+
+  -- 插入临时中间表
+  insert into PartyTimeLine_cc_tmp(
+    id ,
+    ThreadID,-- string comment ' 记录id',
+    ParentID ,--string comment '保单号 '
+    --PartyID ,--string  COMMENT '参与方ID' ,
+    Name ,-- string    COMMENT '参与方名称' ,
+    --PCertID ,--string    COMMENT '参与方证件号码' ,
+    PPhone  ,--string    COMMENT '参与方手机' ,
+    --PRole ,--string    COMMENT '参与方角色' ,
+    EndDate --DATE COMMENT '完成日期' 
+  )
+  SELECT 
+   row_number()over(),
+   recordinfo_id,
+   contNos,
+
+   econtactsName,
+
+   econtactsPhone,
+   startTime
+   from shanghailifeecif.cc_record_main where contNos is not null;
+
+
+   --更新用户id 和 角色 
+   UPDATE PartyTimeLine_cc_tmp a SET (
+     PartyID ,--string  COMMENT '参与方ID' ,
+     PCertID ,--string    COMMENT '参与方证件号码' ,
+     PRole --string    COMMENT '参与方角色' ,
+    ) = (
+      select 
+          b.ApplicantID ,
+          b.appcertid,--投保人名称
+          '投保人'
+        from (
+          SELECT
+            policyno,
+            row_number()over(partition by policyno ) tmpfiled,
+            ApplicantID ,
+              appname,--投保人名称
+              appcertid --证件号
+            FROM  qxp.insurancearrangement
+        )b
+        where b.policyno = a.ParentID AND b.appname = a.name AND b.tmpfiled=1
+    ) WHERE a.PartyID IS null ;
+
+    UPDATE PartyTimeLine_cc_tmp a SET (
+     PartyID ,--string  COMMENT '参与方ID' ,
+     PCertID ,--string    COMMENT '参与方证件号码' ,
+     PRole --string    COMMENT '参与方角色' ,
+    ) = (
+      select 
+          b.insuredid ,
+          b.inscertid,--投保人名称
+          '被保人'
+        from (
+          SELECT
+            policyno,
+            row_number()over(partition by policyno ) tmpfiled,
+            insuredid ,
+              insname,--被保人名称
+              inscertid --证件号
+            FROM  qxp.insurancearrangement
+        )b
+        where b.policyno = a.ParentID AND b.insname = a.name AND b.tmpfiled=1
+    ) WHERE a.PartyID IS null ;
+
+    --插入到主表中去
+     insert into PartyTimeLine(
+      TripID,
+      PartyID, --参与方id
+      Name,
+      PCertID,
+      PPhone,
+      PRole,
+      Scenario,
+      SDate,
+      ThreadID,
+      ParentID,
+      EndDate,
+      CREATED_BY,
+      CREATED_TIME
+  )
+  SELECT 
+    row_number()over() +partytimeline_count,
+    PartyID,
+    Name,
+    PCertID,
+    PPhone,
+    PRole,
+    '咨询',
+    EndDate,
+    ThreadID,
+    ParentID,
+    EndDate ,
+    'admin',
+    sysdate
+  from PartyTimeLine_cc_tmp where PartyID is not null;
+
+    --已经存在的数据行数
+  select count(0) into partytimeline_count from PartyTimeLine;
+  
+
+
+  EXCEPTION
+      WHEN HIVE_EXCEPTION THEN 
+         log_exception('init_PartyTimeLine_cc',sqlerrm(),sqlcode())
       WHEN Others THEN
-         log_exception('init_insuranceclaimthread_InsuranceArrangement',sqlerrm(),sqlcode())
+         log_exception('init_PartyTimeLine_cc',sqlerrm(),sqlcode())
 END;
 
 
@@ -471,16 +616,27 @@ END;
 
 
 
+==================================================================================================================================================
+===========================================================更新投诉到事件表中=========================================================
+==================================================================================================================================================
+
+
+
+
+
 
 
 
 
+==================================================================================================================================================
+===========================================================更新用户主表最后接触方式=========================================================
+==================================================================================================================================================
 
 
 
 
 
-================================================数据解析============================================================================================
+===================================================================数据解析========================================================================
 --保全号是唯一的 是不重复的
 
 --从 audit_edorlist 的表中插入的数据为 619006

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

@@ -62,7 +62,7 @@
 ---------------------保单数据处理
 
 --创建保险理赔表insuranceclaimthread
-DROP TABLE IF EXISTS insuranceclaimthread;
+ 
 CREATE  TABLE insuranceclaimthread(
   icthreadid string NOT NULL  COMMENT '保险理赔Id',
   crno string DEFAULT NULL COMMENT '立案号',

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