Explorar o código

2020年12月17日

qxp %!s(int64=4) %!d(string=hai) anos
pai
achega
31aef89094

+ 387 - 0
sql-achievement/存储过程/参与方事件.sql

@@ -0,0 +1,387 @@
+CREATE  TABLE shanghailifeecif.edorinfo(
+   contno  string DEFAULT NULL COMMENT '保单号', 
+  edortype  string DEFAULT NULL COMMENT '管理机构',
+  lppostaladdress   string DEFAULT NULL COMMENT '原客户地址',
+  lcpostaladdress   string DEFAULT NULL COMMENT '现客户地址',
+  lpmobile   string DEFAULT NULL COMMENT '原手机号',
+  lcmobile   string DEFAULT NULL COMMENT '现手机号 ',
+  lpidtype    string DEFAULT NULL COMMENT '原证件类型',
+  lcidtype    string DEFAULT NULL COMMENT '现证件类型 ',
+  lpidno    string DEFAULT NULL COMMENT '原证件号码',
+  lcidno    string DEFAULT NULL COMMENT '现证件号码 ',
+  EDORAPPDATE     string DEFAULT NULL COMMENT '保全申请日期',
+  EDORCVALIDATE     string DEFAULT NULL COMMENT '保全生效日期 '
+)
+COMMENT '保全' 
+STORED AS csvfile;
+CREATE  TABLE shanghailifeecif.audit_edorlist(
+  managecom varchar2(200) DEFAULT NULL COMMENT '管理机构',  -- dialect: ORACLE
+  managename varchar2(200) DEFAULT NULL COMMENT '管理机构名称',  -- dialect: ORACLE
+  salechnl varchar2(200) DEFAULT NULL COMMENT '销售渠道',  -- dialect: ORACLE
+  salechnlname varchar2(64) DEFAULT NULL COMMENT '销售渠道名称',  -- dialect: ORACLE
+  selltype varchar2(64) DEFAULT NULL COMMENT '合作渠道代码',  -- dialect: ORACLE
+  selltypename varchar2(64) DEFAULT NULL COMMENT '合作渠道名称',  -- dialect: ORACLE
+  contno varchar2(200) DEFAULT NULL COMMENT '保单号',  -- dialect: ORACLE
+  riskcodes varchar2(200) DEFAULT NULL COMMENT '险种代码',  -- dialect: ORACLE
+  risknames varchar2(200) DEFAULT NULL COMMENT '险种名称',  -- dialect: ORACLE
+  risktypes varchar2(64) DEFAULT NULL COMMENT '险种类型',  -- dialect: ORACLE
+  signdate timestamp DEFAULT NULL COMMENT '承保日期', 
+  appntname varchar2(200) DEFAULT NULL COMMENT '投保人',  -- dialect: ORACLE
+  prem decimal(10,2) DEFAULT NULL COMMENT '保费', 
+  edorname varchar2(256) DEFAULT NULL COMMENT '保全类型',  -- dialect: ORACLE
+  edoracceptno varchar2(256) DEFAULT NULL COMMENT '保全受理号',  -- dialect: ORACLE
+  edorno varchar2(256) DEFAULT NULL COMMENT '批单号',  -- dialect: ORACLE
+  edorvalidate timestamp DEFAULT NULL COMMENT '保全生效日期', 
+  customerhandleflag varchar2(64) DEFAULT NULL COMMENT '是否亲办',  -- dialect: ORACLE
+  operator varchar2(256) DEFAULT NULL COMMENT '操作人',  -- dialect: ORACLE
+  approveoperator varchar2(256) DEFAULT NULL COMMENT '审批人',  -- dialect: ORACLE
+  getmoney decimal(10,2) DEFAULT NULL COMMENT '保全退补费金额', 
+  cusappdate timestamp DEFAULT NULL COMMENT '客户申请日期', 
+  payyears varchar2(64) DEFAULT NULL COMMENT '缴费年期',  -- dialect: ORACLE
+  agentname varchar2(256) DEFAULT NULL COMMENT '代理人姓名',  -- dialect: ORACLE
+  edorstate varchar2(64) DEFAULT NULL COMMENT '保全状态',  -- dialect: ORACLE
+  ins_time timestamp DEFAULT NULL
+)
+COMMENT '保全清单';
+
+======================================================================
+=================================目的表结构=================================
+======================================================================
+CREATE TABLE PartyTimeLine(
+    TripID  string NOT NULL  COMMENT '旅程ID' ,
+    PartyID string NOT NULL   COMMENT '参与方ID' ,
+    Name  string    COMMENT '参与方名称' ,
+    PCertID string    COMMENT '参与方证件号码' ,
+    PPhone  string    COMMENT '参与方手机' ,
+    PRole string    COMMENT '参与方角色 投保人、被保人、受益人' ,
+    Scenario  string    COMMENT '场景 投保 保全 报案 咨询 投诉 其他' ,
+    SDate DATE COMMENT '发生日期' ,
+    ThreadID  string    COMMENT '关联ID 可关联至更详细信息,如保单ID、报案ID等' ,
+    ParentID  string    COMMENT '父ID 如报案对应的保单ID' ,
+    Describe  string    COMMENT '描述' ,
+    Channel string    COMMENT '来源' ,
+    EndDate DATE    COMMENT '完成日期' ,
+    CREATED_BY  string    COMMENT '创建人' ,
+    CREATED_TIME  DATE    COMMENT '创建时间' ,
+    UPDATED_BY  string  COMMENT '更新人' ,
+    UPDATED_TIME  DATE  COMMENT '更新时间' 
+) COMMENT '参与方事件 '
+STORED AS ES
+with shard number 10
+replication 1;
+
+
+==================================================初始化数据====================================================================
+CREATE OR REPLACE PROCEDURE init_partytimeline_main() -- 创建主存储过程
+IS    
+DECLARE
+  partytimeline_count int
+  strsql string
+BEGIN
+  --1.从保全清单表中初始化 参与事件
+  init_insuranceclaimthread_edorlist(partytimeline_count)
+  partytimeline_count:=partytimeline_count+1;
+  --2.从保全表中初始化 参与事件
+  init_insuranceclaimthread_dorinfo(partytimeline_count)
+  partytimeline_count:=partytimeline_count+1;
+
+
+  --  用于以后更新时是用的序列
+  strsql:='
+  DROP SEQUENCE IF EXISTS globaleTripID_sequence;
+  CREATE SEQUENCE globaleTripID_sequence
+  INCREMENT BY 1
+  START WITH '|| partytimeline_count||'
+  NOMAXVALUE
+  NOMINVALUE
+  NOCYCLE
+  CACHE 1;
+  ';  
+
+  EXECUTE IMMEDIATE strsql
+
+  EXCEPTION
+      WHEN HIVE_EXCEPTION THEN 
+         log_exception('init_partytimeline_main',sqlerrm(),sqlcode())
+      WHEN Others THEN
+         log_exception('init_partytimeline_main',sqlerrm(),sqlcode())
+END;
+
+
+/*audit_edorlist 表
+ managecom varchar2(200) DEFAULT NULL COMMENT '管理机构',  -- dialect: ORACLE
+  managename varchar2(200) DEFAULT NULL COMMENT '管理机构名称',  -- dialect: ORACLE
+  salechnl varchar2(200) DEFAULT NULL COMMENT '销售渠道',  -- dialect: ORACLE
+  salechnlname varchar2(64) DEFAULT NULL COMMENT '销售渠道名称',  -- dialect: ORACLE
+  selltype varchar2(64) DEFAULT NULL COMMENT '合作渠道代码',  -- dialect: ORACLE
+  selltypename varchar2(64) DEFAULT NULL COMMENT '合作渠道名称',  -- dialect: ORACLE
+  contno varchar2(200) DEFAULT NULL COMMENT '保单号',  -- dialect: ORACLE
+  riskcodes varchar2(200) DEFAULT NULL COMMENT '险种代码',  -- dialect: ORACLE
+  risknames varchar2(200) DEFAULT NULL COMMENT '险种名称',  -- dialect: ORACLE
+  risktypes varchar2(64) DEFAULT NULL COMMENT '险种类型',  -- dialect: ORACLE
+  signdate timestamp DEFAULT NULL COMMENT '承保日期', 
+  appntname varchar2(200) DEFAULT NULL COMMENT '投保人',  -- dialect: ORACLE
+  prem decimal(10,2) DEFAULT NULL COMMENT '保费', 
+  edorname varchar2(256) DEFAULT NULL COMMENT '保全类型',  -- dialect: ORACLE
+  edoracceptno varchar2(256) DEFAULT NULL COMMENT '保全受理号',  -- dialect: ORACLE
+  edorno varchar2(256) DEFAULT NULL COMMENT '批单号',  -- dialect: ORACLE
+  edorvalidate timestamp DEFAULT NULL COMMENT '保全生效日期', 
+  customerhandleflag varchar2(64) DEFAULT NULL COMMENT '是否亲办',  -- dialect: ORACLE
+  operator varchar2(256) DEFAULT NULL COMMENT '操作人',  -- dialect: ORACLE
+  approveoperator varchar2(256) DEFAULT NULL COMMENT '审批人',  -- dialect: ORACLE
+  getmoney decimal(10,2) DEFAULT NULL COMMENT '保全退补费金额', 
+  cusappdate timestamp DEFAULT NULL COMMENT '客户申请日期', 
+  payyears varchar2(64) DEFAULT NULL COMMENT '缴费年期',  -- dialect: ORACLE
+  agentname varchar2(256) DEFAULT NULL COMMENT '代理人姓名',  -- dialect: ORACLE
+  edorstate varchar2(64) DEFAULT NULL COMMENT '保全状态',  -- dialect: ORACLE
+  ins_time timestamp DEFAULT NULL
+
+
+
+*/
+
+
+CREATE TABLE PartyTimeLine_edor_tmp(
+    id string,
+    contno string comment '保单号',
+    PartyID string  COMMENT '参与方ID' ,
+    appntname  string    COMMENT '参与方名称' ,
+    PCertID string    COMMENT '参与方证件号码' ,
+    PPhone  string    COMMENT '参与方手机' ,
+    cusappdate DATE COMMENT '客户申请日期' ,
+    edoracceptno  string    COMMENT '保全受理号' ,
+    edorvalidate DATE    COMMENT '保全生效日期' 
+) COMMENT '参与方保全事件临时表 '
+STORED AS ES
+with shard number 10
+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) 
+IS    
+BEGIN
+  --初始化临时表
+  delete from PartyTimeLine_edor_tmp;
+  insert into PartyTimeLine_edor_tmp(
+      id,
+      contno,
+      appntname,
+      cusappdate,
+      edoracceptno,
+      edorvalidate
+  )
+  SELECT 
+    row_number()over(),
+    contno,
+    appntname,
+    cusappdate,
+    edoracceptno,
+    edorvalidate
+  from shanghailifeecif.audit_edorlist;
+
+  --更新临时表信息
+  UPDATE PartyTimeLine_edor_tmp a SET (
+      PartyID  ,-- 参与方ID
+      PCertID     ,-- 参与方证件号码
+      PPhone   
+    ) = (
+      select 
+          ApplicantID ,--客户等级
+          AppCertID ,--贡献度分
+          AppPhone--家庭加分
+        from shanglifeecif.InsuranceArrangement b
+        where b.PolicyNo = a.contno
+    ) WHERE 1=1 ;
+
+  --更新参与方事件表
+  insert into PartyTimeLine(
+      TripID,
+      PartyID, --参与方id
+      Name,
+      PCertID,
+      PPhone,
+      PRole,
+      Scenario,
+      SDate,
+      ThreadID,
+      ParentID,
+      EndDate,
+      CREATED_BY,
+      CREATED_TIME
+  )
+  SELECT 
+    row_number()over(),
+    PartyID,
+    appntname,
+    PCertID,
+    PPhone,
+    '投保人',
+    '投保',
+    cusappdate,
+    edoracceptno,
+    contno,
+    edorvalidate,
+    'admin',
+    sysdate
+  from PartyTimeLine_edor_tmp where PartyID is not null;
+
+
+    --已经存在的数据行数
+  select count(0) into partytimeline_count from PartyTimeLine
+
+
+  EXCEPTION
+      WHEN HIVE_EXCEPTION THEN 
+         log_exception('init_insuranceclaimthread_edorlist',sqlerrm(),sqlcode())
+      WHEN Others THEN
+         log_exception('init_insuranceclaimthread_edorlist',sqlerrm(),sqlcode())
+END;
+
+
+
+--------------------------------根据edorinfo更新 保全----------------------------------------
+/*
+  contno  string DEFAULT NULL COMMENT '保单号', 
+  edortype  string DEFAULT NULL COMMENT '管理机构',
+  lppostaladdress   string DEFAULT NULL COMMENT '原客户地址',
+  lcpostaladdress   string DEFAULT NULL COMMENT '现客户地址',
+  lpmobile   string DEFAULT NULL COMMENT '原手机号',
+  lcmobile   string DEFAULT NULL COMMENT '现手机号 ',
+  lpidtype    string DEFAULT NULL COMMENT '原证件类型',
+  lcidtype    string DEFAULT NULL COMMENT '现证件类型 ',
+  lpidno    string DEFAULT NULL COMMENT '原证件号码',
+  lcidno    string DEFAULT NULL COMMENT '现证件号码 ',
+  EDORAPPDATE     string DEFAULT NULL COMMENT '保全申请日期',
+  EDORCVALIDATE     string DEFAULT NULL COMMENT '保全生效日期 '
+*/
+
+CREATE OR REPLACE PROCEDURE init_insuranceclaimthread_dorinfo(partytimeline_count OUT int) 
+IS    
+BEGIN
+  --初始化临时表
+  delete from PartyTimeLine_edor_tmp;
+  insert into PartyTimeLine_edor_tmp(
+      id,
+      contno,
+      appntname,
+      cusappdate,
+      edoracceptno,
+      edorvalidate
+  )
+  SELECT 
+    row_number()over(),
+    contno,
+    appntname,
+    EDORAPPDATE,
+    edoracceptno,
+    EDORCVALIDATE
+  from shanghailifeecif.audit_edorlist;
+
+  --更新临时表信息
+  UPDATE PartyTimeLine_edor_tmp a SET (
+      PartyID  ,-- 参与方ID
+      PCertID     ,-- 参与方证件号码
+      PPhone   
+    ) = (
+      select 
+          ApplicantID ,--客户等级
+          AppCertID ,--贡献度分
+          AppPhone--家庭加分
+        from shanglifeecif.InsuranceArrangement b
+        where b.PolicyNo = a.contno
+    ) WHERE 1=1 ;
+
+  --更新参与方事件表
+  insert into PartyTimeLine(
+      TripID,
+      PartyID, --参与方id
+      Name,
+      PCertID,
+      PPhone,
+      PRole,
+      Scenario,
+      SDate,
+      ThreadID,
+      ParentID,
+      EndDate,
+      CREATED_BY,
+      CREATED_TIME
+  )
+  SELECT 
+    row_number()over(),
+    PartyID,
+    appntname,
+    PCertID,
+    PPhone,
+    '投保人',
+    '投保',
+    cusappdate,
+    edoracceptno,
+    contno,
+    edorvalidate,
+    'admin',
+    sysdate
+  from PartyTimeLine_edor_tmp where PartyID is not null;
+
+
+    --已经存在的数据行数
+  select count(0) into partytimeline_count from PartyTimeLine
+
+
+  EXCEPTION
+      WHEN HIVE_EXCEPTION THEN 
+         log_exception('init_insuranceclaimthread_dorinfo',sqlerrm(),sqlcode())
+      WHEN Others THEN
+         log_exception('init_insuranceclaimthread_dorinfo',sqlerrm(),sqlcode())
+END;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+================================================数据解析============================================================================================
+--保全号是唯一的 是不重复的
+
+--从 audit_edorlist 的表中插入的数据为 619006
+--有1060个数据 因为查不到保单无法进入数据库
+
+
+
+
+SELECT count(1) FROM audit_edorlist ; --620066
+
+SELECT count(1) FROM (
+SELECT contno FROM audit_edorlist GROUP BY contno
+); --根据保单 去重550805 
+
+SELECT count(1) FROM (
+SELECT contno,cusappdate FROM audit_edorlist GROUP BY contno,cusappdate
+);--根据保单和申请时间 去重 591350
+
+SELECT count(1) a,contno FROM audit_edorlist GROUP BY contno,cusappdate ORDER BY a DESC;
+
+--查询重复最多的数据
+SELECT * FROM audit_edorlist WHERE contno = '2018020800060078';

+ 0 - 42
sql-achievement/存储过程/参与方标签.sql

@@ -1,42 +0,0 @@
-CREATE  TABLE shanghailifeecif.edorinfo(
-  contno  string DEFAULT NULL COMMENT '保单号', 
-  edortype  string DEFAULT NULL COMMENT '管理机构',
-  lppostaladdress   string DEFAULT NULL COMMENT '原客户地址',
-  lcpostaladdress   string DEFAULT NULL COMMENT '现客户地址',
-  lpmobile   string DEFAULT NULL COMMENT '原手机号',
-  lcmobile   string DEFAULT NULL COMMENT '现手机号 ',
-  lpidtype    string DEFAULT NULL COMMENT '原证件类型',
-  lcidtype    string DEFAULT NULL COMMENT '现证件类型 ',
-  lpidno    string DEFAULT NULL COMMENT '原证件号码',
-  lcidno    string DEFAULT NULL COMMENT '现证件号码 ',
-  EDORAPPDATE     string DEFAULT NULL COMMENT '保全申请日期',
-  EDORCVALIDATE     string DEFAULT NULL COMMENT '保全生效日期 '
-)
-COMMENT '保全' 
-STORED AS csvfile;
-
-======================================================================
-=================================目的表结构=================================
-======================================================================
-CREATE TABLE PartyTimeLine(
-    TripID  string NOT NULL  COMMENT '旅程ID' ,
-    PartyID string NOT NULL   COMMENT '参与方ID' ,
-    Name  string    COMMENT '参与方名称' ,
-    PCertID string    COMMENT '参与方证件号码' ,
-    PPhone  string    COMMENT '参与方手机' ,
-    PRole string    COMMENT '参与方角色 投保人、被保人、受益人' ,
-    Scenario  string    COMMENT '场景 投保 保全 报案 咨询 投诉 其他' ,
-    SDate DATE COMMENT '发生日期' ,
-    ThreadID  string    COMMENT '关联ID 可关联至更详细信息,如保单ID、报案ID等' ,
-    ParentID  string    COMMENT '父ID 如报案对应的保单ID' ,
-    Describe  string    COMMENT '描述' ,
-    Channel string    COMMENT '来源' ,
-    EndDate DATE    COMMENT '完成日期' ,
-    CREATED_BY  string    COMMENT '创建人' ,
-    CREATED_TIME  DATE    COMMENT '创建时间' ,
-    UPDATED_BY  string  COMMENT '更新人' ,
-    UPDATED_TIME  DATE  COMMENT '更新时间' 
-) COMMENT '参与方事件 '
-STORED AS ES
-with shard number 10
-replication 1;

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