diff --git a/TK_Cust/dev/tk_cust/SCRM联系方式/T01_SCRM_CONTACT.sql b/TK_Cust/dev/tk_cust/SCRM联系方式/T01_SCRM_CONTACT.sql
new file mode 100644
index 0000000..1d539cc
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/SCRM联系方式/T01_SCRM_CONTACT.sql
@@ -0,0 +1,44 @@
+
+DROP TABLE IF EXISTS p20_pdm.T01_SCRM_CONTACT;
+CREATE TABLE IF NOT EXISTS p20_pdm.T01_SCRM_CONTACT (
+	 cue_id  text 
+	, city_name  text 
+	, company_name  text 
+	, email  text 
+	, mobile_number  text 
+	, mobile_number_fix  text 
+	, full_name  text 
+	, prov_name  text 
+	, create_time  text 
+	, wechat_id  text 
+	, update_time  text 
+	, Etl_Batch_No  varchar(50) 
+	, Etl_First_Dt  timestamp(0) 
+	, Etl_Job  varchar(50) 
+	, Etl_Proc_Dt  timestamp(0) 
+	, Etl_Tx_Dt  timestamp(0) 
+	, Src_Sysname  varchar(50) 
+	, Src_Table  varchar(50) 
+	,primary key( cue_id )
+);
+
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.cue_id IS '线索ID'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.city_name IS '城市'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.company_name IS '公司'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.email IS '邮箱'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.mobile_number IS '手机号码'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.mobile_number_fix IS '调整后手机号码'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.full_name IS '姓名'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.prov_name IS '省份'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.create_time IS '创建时间'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.wechat_id IS '身份-企业微信外部联系人'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.update_time IS '更新时间'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.Etl_Batch_No IS '作业批次号'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.Etl_First_Dt IS '最初入库时间'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.Etl_Job IS '作业名称'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.Etl_Proc_Dt IS '本次入库时间'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.Etl_Tx_Dt IS '作业运行时间'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.Src_Sysname IS '来源系统'; 
+ COMMENT ON COLUMN p20_pdm.T01_SCRM_CONTACT.Src_Table IS '来源表'; 
+
+COMMENT ON TABLE p20_pdm.T01_SCRM_CONTACT IS 'SCRM联系方式';
\ No newline at end of file
diff --git a/TK_Cust/dev/tk_cust/SCRM联系方式/T01_SCRM_CONTACT_agi.sql b/TK_Cust/dev/tk_cust/SCRM联系方式/T01_SCRM_CONTACT_agi.sql
new file mode 100644
index 0000000..ef9bb13
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/SCRM联系方式/T01_SCRM_CONTACT_agi.sql
@@ -0,0 +1,229 @@
+/***************************************************************************************************/
+/*script in Sql, generate by SdmCreateScript 2020(by Qihang Feng, QF255001@TERADATA.COM)     */
+/*VERSION 01.10 revised on 2020-08-25                                                              */
+/*Brilliance stems from wisdoms.                                                                   */
+/*************Head Section**************************************************************************/
+/*Script Use: Periodically load data to :T01_SCRM_CONTACT(SCRM联系方式)             */
+/*Create Date:2024-01-05 13:21:25                                                                  */
+/*SDM Developed By: dev                                                                            */
+/*SDM Developed Date: 2024-01-05                                                                   */
+/*SDM Checked By: dev                                                                              */
+/*SDM Checked Date: 2024-01-05                                                                     */
+/*Script Developed By: dev                                                                         */
+/*Script Checked By: dev                                                                           */
+/*Source table 1: p10_sa.s98_s_scrm_contact_af0912                                                 */
+/*Job Type: Inbound transform (Tier 1 to Tier 2)                                                   */
+/*Target Table:T01_SCRM_CONTACT                                                                    */
+/*ETL Job Name:T01_SCRM_CONTACT                                                                    */
+/*ETL Frequency:Daily                                                                              */
+/*ETL Policy:F2                                                                                    */
+/********************************************************************************************/
+/*******Main Section**************************************************************************/
+\set ON_ERROR_STOP on
+\set AUTOCOMMIT on
+\timing on
+
+
+
+/*创建临时表加载当前数据                                                                           */
+CREATE TEMPORARY TABLE T01_SCRM_CONTACT_agi_CUR_I 
+ ( LIKE :PDMDB.T01_SCRM_CONTACT)
+ON COMMIT PRESERVE ROWS;
+
+
+
+/*创建临时表加载不同数据                                                                           */
+CREATE TEMPORARY TABLE T01_SCRM_CONTACT_agi_INS 
+( LIKE :PDMDB.T01_SCRM_CONTACT)
+ON COMMIT PRESERVE ROWS;
+
+            
+/*****************************************************************************************************/
+/* GROUP 1:Source Table:s98_s_scrm_contact_af0912*****************************************************/
+/*****************************************************************************************************/
+
+INSERT INTO T01_SCRM_CONTACT_agi_CUR_I (
+            cue_id                                  /*线索ID*/
+           ,city_name                               /*城市*/
+           ,company_name                            /*公司*/
+           ,email                                   /*邮箱*/
+           ,mobile_number                           /*手机号码*/
+           ,mobile_number_fix                       /*调整后手机号码*/
+           ,full_name                               /*姓名*/
+           ,prov_name                               /*省份*/
+           ,create_time                             /*创建时间*/
+           ,wechat_id                               /*身份-企业微信外部联系人*/
+           ,update_time                             /*更新时间*/
+           ,Etl_Batch_No                            /*作业批次号*/
+           ,Etl_First_Dt                            /*最初入库时间*/
+           ,Etl_Job                                 /*作业名称*/
+           ,Etl_Proc_Dt                             /*本次入库时间*/
+           ,Etl_Tx_Dt                               /*作业运行时间*/
+           ,Src_Sysname                             /*来源系统*/
+           ,Src_Table                               /*来源表*/
+        )
+SELECT
+         COALESCE(TRIM(p0.cue_id),'')                              /*cue_id*/
+        ,COALESCE(TRIM(p0.city_name),'')                           /*city_name*/
+        ,COALESCE(TRIM(p0.company_name),'')                        /*company_name*/
+        ,COALESCE(TRIM(p0.email),'')                               /*email*/
+        ,COALESCE(TRIM(p0.mobile_number),'')                       /*mobile_number*/
+        ,COALESCE(TRIM(p0.mobile_number),'')                       /*mobile_number_fix*/
+        ,COALESCE(TRIM(p0.full_name),'')                           /*full_name*/
+        ,COALESCE(TRIM(p0.prov_name),'')                           /*prov_name*/
+        ,COALESCE(TRIM(p0.create_time),'')                         /*create_time*/
+        ,COALESCE(TRIM(p0.wechat_id),'')                           /*wechat_id*/
+        ,COALESCE(TRIM(p0.update_time),'')                         /*update_time*/
+        ,0                                                         /*Etl_Batch_No*/
+        ,TO_DATE(:TXDATE,'YYYYMMDD')                               /*Etl_First_Dt*/
+        ,:ETLJOB                                                   /*Etl_Job*/
+        ,current_timestamp(0)                                      /*Etl_Proc_Dt*/
+        ,TO_DATE(:TXDATE,'YYYYMMDD')                               /*Etl_Tx_Dt*/
+        ,Substr('s98_s_scrm_contact_af0912',1,3)                   /*Src_Sysname*/
+        ,'s98_s_scrm_contact_af0912'                               /*Src_Table*/
+        
+FROM (select * from p10_sa.s98_s_scrm_contact_af0912) p0  
+
+
+;
+
+
+
+/*将不同数据插入到临时表                                                                           */
+;INSERT INTO T01_SCRM_CONTACT_agi_INS (
+         city_name                                                 /*城市*/
+        ,company_name                                              /*公司*/
+        ,email                                                     /*邮箱*/
+        ,mobile_number                                             /*手机号码*/
+        ,mobile_number_fix                                         /*调整后手机号码*/
+        ,full_name                                                 /*姓名*/
+        ,prov_name                                                 /*省份*/
+        ,create_time                                               /*创建时间*/
+        ,wechat_id                                                 /*身份-企业微信外部联系人*/
+        ,update_time                                               /*更新时间*/
+        ,cue_id                                                    /*线索ID*/
+        ,Etl_Batch_No                                              /*作业批次号*/
+        ,Etl_First_Dt                                              /*最初入库时间*/
+        ,Etl_Job                                                   /*作业名称*/
+        ,Etl_Proc_Dt                                               /*本次入库时间*/
+        ,Etl_Tx_Dt                                                 /*作业运行时间*/
+        ,Src_Sysname                                               /*来源系统*/
+        ,Src_Table                                                 /*来源表*/
+        
+)
+    SELECT
+         P1.city_name                                                 /*城市*/
+        ,P1.company_name                                              /*公司*/
+        ,P1.email                                                     /*邮箱*/
+        ,P1.mobile_number                                             /*手机号码*/
+        ,P1.mobile_number_fix                                         /*调整后手机号码*/
+        ,P1.full_name                                                 /*姓名*/
+        ,P1.prov_name                                                 /*省份*/
+        ,P1.create_time                                               /*创建时间*/
+        ,P1.wechat_id                                                 /*身份-企业微信外部联系人*/
+        ,P1.update_time                                               /*更新时间*/
+        ,P1.cue_id                                                    /*线索ID*/
+        ,P1.Etl_Batch_No                                              /*作业批次号*/
+        ,P1.Etl_First_Dt                                              /*最初入库时间*/
+        ,P1.Etl_Job                                                   /*作业名称*/
+        ,P1.Etl_Proc_Dt                                               /*本次入库时间*/
+        ,P1.Etl_Tx_Dt                                                 /*作业运行时间*/
+        ,P1.Src_Sysname                                               /*来源系统*/
+        ,P1.Src_Table                                                 /*来源表*/
+        
+FROM T01_SCRM_CONTACT_agi_CUR_I P1
+LEFT JOIN :PDMDB.T01_SCRM_CONTACT P2
+ON    P1.city_name = P2.city_name
+    AND P1.company_name = P2.company_name
+    AND P1.email = P2.email
+    AND P1.mobile_number = P2.mobile_number
+    AND P1.mobile_number_fix = P2.mobile_number_fix
+    AND P1.full_name = P2.full_name
+    AND P1.prov_name = P2.prov_name
+    AND P1.create_time = P2.create_time
+    AND P1.wechat_id = P2.wechat_id
+    AND P1.update_time = P2.update_time
+    AND P1.cue_id = P2.cue_id
+    
+WHERE  P2.city_name IS NULL
+    OR P2.company_name IS NULL
+    OR P2.email IS NULL
+    OR P2.mobile_number IS NULL
+    OR P2.mobile_number_fix IS NULL
+    OR P2.full_name IS NULL
+    OR P2.prov_name IS NULL
+    OR P2.create_time IS NULL
+    OR P2.wechat_id IS NULL
+    OR P2.update_time IS NULL
+    OR P2.cue_id IS NULL
+    
+; 
+/*将新增数据插入到目标表                                                                           */
+;INSERT INTO :PDMDB.T01_SCRM_CONTACT (
+         city_name                                                 /*城市*/
+        ,company_name                                              /*公司*/
+        ,email                                                     /*邮箱*/
+        ,mobile_number                                             /*手机号码*/
+        ,mobile_number_fix                                         /*调整后手机号码*/
+        ,full_name                                                 /*姓名*/
+        ,prov_name                                                 /*省份*/
+        ,create_time                                               /*创建时间*/
+        ,wechat_id                                                 /*身份-企业微信外部联系人*/
+        ,update_time                                               /*更新时间*/
+        ,cue_id                                                    /*线索ID*/
+        ,Etl_Batch_No                                              /*作业批次号*/
+        ,Etl_First_Dt                                              /*最初入库时间*/
+        ,Etl_Job                                                   /*作业名称*/
+        ,Etl_Proc_Dt                                               /*本次入库时间*/
+        ,Etl_Tx_Dt                                                 /*作业运行时间*/
+        ,Src_Sysname                                               /*来源系统*/
+        ,Src_Table                                                 /*来源表*/
+        
+)
+SELECT
+         P1.city_name                                                 /*城市*/
+        ,P1.company_name                                              /*公司*/
+        ,P1.email                                                     /*邮箱*/
+        ,P1.mobile_number                                             /*手机号码*/
+        ,P1.mobile_number_fix                                         /*调整后手机号码*/
+        ,P1.full_name                                                 /*姓名*/
+        ,P1.prov_name                                                 /*省份*/
+        ,P1.create_time                                               /*创建时间*/
+        ,P1.wechat_id                                                 /*身份-企业微信外部联系人*/
+        ,P1.update_time                                               /*更新时间*/
+        ,P1.cue_id                                                    /*线索ID*/
+        ,P1.Etl_Batch_No                                              /*作业批次号*/
+        ,P1.Etl_First_Dt                                              /*最初入库时间*/
+        ,P1.Etl_Job                                                   /*作业名称*/
+        ,P1.Etl_Proc_Dt                                               /*本次入库时间*/
+        ,P1.Etl_Tx_Dt                                                 /*作业运行时间*/
+        ,P1.Src_Sysname                                               /*来源系统*/
+        ,P1.Src_Table                                                 /*来源表*/
+        
+FROM T01_SCRM_CONTACT_agi_INS P1
+ON CONFLICT ( cue_id)
+DO UPDATE SET
+     cue_id=excluded.cue_id
+    ,city_name=excluded.city_name
+    ,company_name=excluded.company_name
+    ,email=excluded.email
+    ,mobile_number=excluded.mobile_number
+    ,mobile_number_fix=excluded.mobile_number_fix
+    ,full_name=excluded.full_name
+    ,prov_name=excluded.prov_name
+    ,create_time=excluded.create_time
+    ,wechat_id=excluded.wechat_id
+    ,update_time=excluded.update_time
+    ,Etl_Batch_No=excluded.Etl_Batch_No
+    ,Etl_First_Dt=excluded.Etl_First_Dt
+    ,Etl_Job=excluded.Etl_Job
+    ,Etl_Proc_Dt=excluded.Etl_Proc_Dt
+    ,Etl_Tx_Dt=excluded.Etl_Tx_Dt
+    ,Src_Sysname=excluded.Src_Sysname
+    ,Src_Table=excluded.Src_Table
+    
+
+;
+/*****程序结束退出                                               */
+\q
+
diff --git a/TK_Cust/dev/tk_cust/crm_raw_leads/S98_S_crm_raw_leads.sql b/TK_Cust/dev/tk_cust/crm_raw_leads/S98_S_crm_raw_leads.sql
new file mode 100644
index 0000000..fd4d44b
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/crm_raw_leads/S98_S_crm_raw_leads.sql
@@ -0,0 +1,66 @@
+/*******Main Section**************************************************************************/
+\set ON_ERROR_STOP on
+\set AUTOCOMMIT on
+\timing on
+delete from p10_sa.S98_S_crm_raw_leads
+;
+insert into p10_sa.S98_S_crm_raw_leads
+(	 tek_contactnumber  
+	, tek_leadnumber  
+	, fullname  
+	, createdon  
+	, companyname  
+	, emailaddress1  
+	, mobilephone  
+	, tek_mqldate  
+	, campaignidname  
+	, tek_industry2idname  
+	, tek_marketing_program_type_idname  
+	, etl_tx_dt   )
+  select 
+	 tek_contactnumber  
+	, tek_leadnumber  
+	, fullname  
+	, createdon  
+	, companyname  
+	, emailaddress1  
+	, mobilephone  
+	, tek_mqldate  
+	, campaignidname  
+	, tek_industry2idname  
+	, tek_marketing_program_type_idname  
+	, etl_tx_dt  
+  from p00_tal.S98_S_crm_raw_leads
+  ;
+  delete from p12_sfull.S98_S_crm_raw_leads
+;
+;
+insert into p12_sfull.S98_S_crm_raw_leads
+(	 tek_contactnumber  
+	, tek_leadnumber  
+	, fullname  
+	, createdon  
+	, companyname  
+	, emailaddress1  
+	, mobilephone  
+	, tek_mqldate  
+	, campaignidname  
+	, tek_industry2idname  
+	, tek_marketing_program_type_idname  
+	, etl_tx_dt   )
+  select 
+	 tek_contactnumber  
+	, tek_leadnumber  
+	, fullname  
+	, createdon  
+	, companyname  
+	, emailaddress1  
+	, mobilephone  
+	, tek_mqldate  
+	, campaignidname  
+	, tek_industry2idname  
+	, tek_marketing_program_type_idname  
+	, etl_tx_dt  
+  from p10_sa.S98_S_crm_raw_leads
+;
+\q
\ No newline at end of file
diff --git a/TK_Cust/dev/tk_cust/crm_raw_leads/sa_foreign_tables.sql b/TK_Cust/dev/tk_cust/crm_raw_leads/sa_foreign_tables.sql
new file mode 100644
index 0000000..538b881
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/crm_raw_leads/sa_foreign_tables.sql
@@ -0,0 +1,23 @@
+
+CREATE FOREIGN TABLE if not exists p00_tal.S98_S_crm_raw_leads (
+ tek_contactnumber  TEXT 
+	, tek_leadnumber  TEXT 
+	, fullname  TEXT 
+	, createdon  TEXT 
+	, companyname  TEXT 
+	, emailaddress1  TEXT 
+	, mobilephone  TEXT 
+	, tek_mqldate  TEXT 
+	, campaignidname  TEXT 
+	, tek_industry2idname  TEXT 
+	, tek_marketing_program_type_idname  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) 
+
+
+SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'crm_raw_leads' ); 
+
+
+
+
+
diff --git a/TK_Cust/dev/tk_cust/crm_raw_leads/sa_tables.sql b/TK_Cust/dev/tk_cust/crm_raw_leads/sa_tables.sql
new file mode 100644
index 0000000..1bacb18
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/crm_raw_leads/sa_tables.sql
@@ -0,0 +1,63 @@
+
+create table if not exists p10_sa.S98_S_crm_raw_leads (
+	 tek_contactnumber  TEXT 
+	, tek_leadnumber  TEXT 
+	, fullname  TEXT 
+	, createdon  TEXT 
+	, companyname  TEXT 
+	, emailaddress1  TEXT 
+	, mobilephone  TEXT 
+	, tek_mqldate  TEXT 
+	, campaignidname  TEXT 
+	, tek_industry2idname  TEXT 
+	, tek_marketing_program_type_idname  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_contactnumber IS 'tek_contactnumber'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_leadnumber IS 'tek_leadnumber'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.fullname IS 'fullname'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.createdon IS 'createdon'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.companyname IS 'companyname'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.emailaddress1 IS 'emailaddress1'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.mobilephone IS 'mobilephone'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_mqldate IS 'tek_mqldate'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.campaignidname IS 'campaignidname'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_industry2idname IS 'tek_industry2idname'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.tek_marketing_program_type_idname IS 'tek_marketing_program_type_idname'; 
+ COMMENT ON COLUMN p10_sa.S98_S_crm_raw_leads.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p10_sa.S98_S_crm_raw_leads IS '';
+
+
+
+create table if not exists p12_sfull.S98_S_crm_raw_leads (
+	 tek_contactnumber  TEXT 
+	, tek_leadnumber  TEXT 
+	, fullname  TEXT 
+	, createdon  TEXT 
+	, companyname  TEXT 
+	, emailaddress1  TEXT 
+	, mobilephone  TEXT 
+	, tek_mqldate  TEXT 
+	, campaignidname  TEXT 
+	, tek_industry2idname  TEXT 
+	, tek_marketing_program_type_idname  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_contactnumber IS 'tek_contactnumber'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_leadnumber IS 'tek_leadnumber'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.fullname IS 'fullname'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.createdon IS 'createdon'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.companyname IS 'companyname'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.emailaddress1 IS 'emailaddress1'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.mobilephone IS 'mobilephone'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_mqldate IS 'tek_mqldate'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.campaignidname IS 'campaignidname'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_industry2idname IS 'tek_industry2idname'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.tek_marketing_program_type_idname IS 'tek_marketing_program_type_idname'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_crm_raw_leads.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p12_sfull.S98_S_crm_raw_leads IS '';
+
diff --git a/TK_Cust/dev/tk_cust/scrm_leads_af0912/S98_S_scrm_leads_af0912.sql b/TK_Cust/dev/tk_cust/scrm_leads_af0912/S98_S_scrm_leads_af0912.sql
new file mode 100644
index 0000000..dd7ba0d
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/scrm_leads_af0912/S98_S_scrm_leads_af0912.sql
@@ -0,0 +1,70 @@
+/*******Main Section**************************************************************************/
+\set ON_ERROR_STOP on
+\set AUTOCOMMIT on
+\timing on
+delete from p10_sa.S98_S_scrm_leads_af0912
+;
+insert into p10_sa.S98_S_scrm_leads_af0912
+(	 customer_id  
+	, date  
+	, target_name  
+	, c_name  
+	, c_type  
+	, content_name  
+	, source  
+	, tag  
+	, c_keyword  
+	, attr2  
+	, label  
+	, group_label  
+	, etl_tx_dt   )
+  select 
+	 customer_id  
+	, date  
+	, target_name  
+	, c_name  
+	, c_type  
+	, content_name  
+	, source  
+	, tag  
+	, c_keyword  
+	, attr2  
+	, label  
+	, group_label  
+	, etl_tx_dt  
+  from p00_tal.S98_S_scrm_leads_af0912
+  ;
+  delete from p12_sfull.S98_S_scrm_leads_af0912
+;
+;
+insert into p12_sfull.S98_S_scrm_leads_af0912
+(	 customer_id  
+	, date  
+	, target_name  
+	, c_name  
+	, c_type  
+	, content_name  
+	, source  
+	, tag  
+	, c_keyword  
+	, attr2  
+	, label  
+	, group_label  
+	, etl_tx_dt   )
+  select 
+	 customer_id  
+	, date  
+	, target_name  
+	, c_name  
+	, c_type  
+	, content_name  
+	, source  
+	, tag  
+	, c_keyword  
+	, attr2  
+	, label  
+	, group_label  
+	, etl_tx_dt  
+  from p10_sa.S98_S_scrm_leads_af0912
+;
+\q
\ No newline at end of file
diff --git a/TK_Cust/dev/tk_cust/scrm_leads_af0912/sa_foreign_tables.sql b/TK_Cust/dev/tk_cust/scrm_leads_af0912/sa_foreign_tables.sql
new file mode 100644
index 0000000..2fe5e69
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/scrm_leads_af0912/sa_foreign_tables.sql
@@ -0,0 +1,24 @@
+
+CREATE FOREIGN TABLE if not exists p00_tal.S98_S_scrm_leads_af0912 (
+ customer_id  TEXT 
+	, date  TEXT 
+	, target_name  TEXT 
+	, c_name  TEXT 
+	, c_type  TEXT 
+	, content_name  TEXT 
+	, source  TEXT 
+	, tag  TEXT 
+	, c_keyword  TEXT 
+	, attr2  TEXT 
+	, label  TEXT 
+	, group_label  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) 
+
+
+SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'scrm_leads_af0912' ); 
+
+
+
+
+
diff --git a/TK_Cust/dev/tk_cust/scrm_leads_af0912/sa_tables.sql b/TK_Cust/dev/tk_cust/scrm_leads_af0912/sa_tables.sql
new file mode 100644
index 0000000..3b007ca
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/scrm_leads_af0912/sa_tables.sql
@@ -0,0 +1,67 @@
+
+create table if not exists p10_sa.S98_S_scrm_leads_af0912 (
+	 customer_id  TEXT 
+	, date  TEXT 
+	, target_name  TEXT 
+	, c_name  TEXT 
+	, c_type  TEXT 
+	, content_name  TEXT 
+	, source  TEXT 
+	, tag  TEXT 
+	, c_keyword  TEXT 
+	, attr2  TEXT 
+	, label  TEXT 
+	, group_label  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.customer_id IS 'customerId'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.date IS 'date'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.target_name IS 'targetName'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.c_name IS 'c_name'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.c_type IS 'c_type'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.content_name IS 'contentName'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.source IS 'source'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.tag IS 'tag'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.c_keyword IS 'c_keyword'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.attr2 IS 'attr2'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.label IS 'label'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.group_label IS 'groupLabel'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_af0912.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p10_sa.S98_S_scrm_leads_af0912 IS '';
+
+
+
+create table if not exists p12_sfull.S98_S_scrm_leads_af0912 (
+	 customer_id  TEXT 
+	, date  TEXT 
+	, target_name  TEXT 
+	, c_name  TEXT 
+	, c_type  TEXT 
+	, content_name  TEXT 
+	, source  TEXT 
+	, tag  TEXT 
+	, c_keyword  TEXT 
+	, attr2  TEXT 
+	, label  TEXT 
+	, group_label  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.customer_id IS 'customerId'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.date IS 'date'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.target_name IS 'targetName'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.c_name IS 'c_name'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.c_type IS 'c_type'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.content_name IS 'contentName'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.source IS 'source'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.tag IS 'tag'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.c_keyword IS 'c_keyword'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.attr2 IS 'attr2'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.label IS 'label'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.group_label IS 'groupLabel'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_af0912.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p12_sfull.S98_S_scrm_leads_af0912 IS '';
+
diff --git a/TK_Cust/dev/tk_cust/scrm_leads_bf0912/S98_S_scrm_leads_bf0912.sql b/TK_Cust/dev/tk_cust/scrm_leads_bf0912/S98_S_scrm_leads_bf0912.sql
new file mode 100644
index 0000000..b5f9077
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/scrm_leads_bf0912/S98_S_scrm_leads_bf0912.sql
@@ -0,0 +1,38 @@
+/*******Main Section**************************************************************************/
+\set ON_ERROR_STOP on
+\set AUTOCOMMIT on
+\timing on
+delete from p10_sa.S98_S_scrm_leads_bf0912
+;
+insert into p10_sa.S98_S_scrm_leads_bf0912
+(	 cue_id  
+	, activate_time  
+	, activate_name  
+	, event_name  
+	, etl_tx_dt   )
+  select 
+	 cue_id  
+	, activate_time  
+	, activate_name  
+	, event_name  
+	, etl_tx_dt  
+  from p00_tal.S98_S_scrm_leads_bf0912
+  ;
+  delete from p12_sfull.S98_S_scrm_leads_bf0912
+;
+;
+insert into p12_sfull.S98_S_scrm_leads_bf0912
+(	 cue_id  
+	, activate_time  
+	, activate_name  
+	, event_name  
+	, etl_tx_dt   )
+  select 
+	 cue_id  
+	, activate_time  
+	, activate_name  
+	, event_name  
+	, etl_tx_dt  
+  from p10_sa.S98_S_scrm_leads_bf0912
+;
+\q
\ No newline at end of file
diff --git a/TK_Cust/dev/tk_cust/scrm_leads_bf0912/sa_foreign_tables.sql b/TK_Cust/dev/tk_cust/scrm_leads_bf0912/sa_foreign_tables.sql
new file mode 100644
index 0000000..ed79aa0
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/scrm_leads_bf0912/sa_foreign_tables.sql
@@ -0,0 +1,16 @@
+
+CREATE FOREIGN TABLE if not exists p00_tal.S98_S_scrm_leads_bf0912 (
+ cue_id  TEXT 
+	, activate_time  TEXT 
+	, activate_name  TEXT 
+	, event_name  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) 
+
+
+SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'scrm_leads_bf0912' ); 
+
+
+
+
+
diff --git a/TK_Cust/dev/tk_cust/scrm_leads_bf0912/sa_tables.sql b/TK_Cust/dev/tk_cust/scrm_leads_bf0912/sa_tables.sql
new file mode 100644
index 0000000..854baa7
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/scrm_leads_bf0912/sa_tables.sql
@@ -0,0 +1,35 @@
+
+create table if not exists p10_sa.S98_S_scrm_leads_bf0912 (
+	 cue_id  TEXT 
+	, activate_time  TEXT 
+	, activate_name  TEXT 
+	, event_name  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_bf0912.cue_id IS '线索ID'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_bf0912.activate_time IS '活动时间'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_bf0912.activate_name IS '活动名称'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_bf0912.event_name IS '事件名称'; 
+ COMMENT ON COLUMN p10_sa.S98_S_scrm_leads_bf0912.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p10_sa.S98_S_scrm_leads_bf0912 IS '';
+
+
+
+create table if not exists p12_sfull.S98_S_scrm_leads_bf0912 (
+	 cue_id  TEXT 
+	, activate_time  TEXT 
+	, activate_name  TEXT 
+	, event_name  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_bf0912.cue_id IS '线索ID'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_bf0912.activate_time IS '活动时间'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_bf0912.activate_name IS '活动名称'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_bf0912.event_name IS '事件名称'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_scrm_leads_bf0912.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p12_sfull.S98_S_scrm_leads_bf0912 IS '';
+
diff --git a/TK_Cust/dev/tk_cust/udesk_record/S98_S_udesk_record.sql b/TK_Cust/dev/tk_cust/udesk_record/S98_S_udesk_record.sql
new file mode 100644
index 0000000..44b3ecb
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/udesk_record/S98_S_udesk_record.sql
@@ -0,0 +1,186 @@
+/*******Main Section**************************************************************************/
+\set ON_ERROR_STOP on
+\set AUTOCOMMIT on
+\timing on
+delete from p10_sa.S98_S_udesk_record
+;
+insert into p10_sa.S98_S_udesk_record
+(	 udesk_time  
+	, ring_time  
+	, dura_time  
+	, cust_name  
+	, cust_tel  
+	, con_result  
+	, operator  
+	, follow_up  
+	, location  
+	, source  
+	, relay_number  
+	, satisfaction  
+	, call_type  
+	, device_status  
+	, company  
+	, quest  
+	, queue_status  
+	, dtmf  
+	, queue_time  
+	, cause_of_call_failure  
+	, call_record  
+	, leave_message  
+	, hang_up  
+	, external_telephone  
+	, business_record_template  
+	, theme  
+	, vibration  
+	, customer_service  
+	, work_order  
+	, email  
+	, tag  
+	, description  
+	, charge_person  
+	, charge_group  
+	, level  
+	, blacklist_ind  
+	, company_name  
+	, consultation_content  
+	, ivr_record  
+	, call_id  
+	, other_data  
+	, etl_tx_dt   )
+  select 
+	 udesk_time  
+	, ring_time  
+	, dura_time  
+	, cust_name  
+	, cust_tel  
+	, con_result  
+	, operator  
+	, follow_up  
+	, location  
+	, source  
+	, relay_number  
+	, satisfaction  
+	, call_type  
+	, device_status  
+	, company  
+	, quest  
+	, queue_status  
+	, dtmf  
+	, queue_time  
+	, cause_of_call_failure  
+	, call_record  
+	, leave_message  
+	, hang_up  
+	, external_telephone  
+	, business_record_template  
+	, theme  
+	, vibration  
+	, customer_service  
+	, work_order  
+	, email  
+	, tag  
+	, description  
+	, charge_person  
+	, charge_group  
+	, level  
+	, blacklist_ind  
+	, company_name  
+	, consultation_content  
+	, ivr_record  
+	, call_id  
+	, other_data  
+	, etl_tx_dt  
+  from p00_tal.S98_S_udesk_record
+  ;
+  delete from p12_sfull.S98_S_udesk_record
+;
+;
+insert into p12_sfull.S98_S_udesk_record
+(	 udesk_time  
+	, ring_time  
+	, dura_time  
+	, cust_name  
+	, cust_tel  
+	, con_result  
+	, operator  
+	, follow_up  
+	, location  
+	, source  
+	, relay_number  
+	, satisfaction  
+	, call_type  
+	, device_status  
+	, company  
+	, quest  
+	, queue_status  
+	, dtmf  
+	, queue_time  
+	, cause_of_call_failure  
+	, call_record  
+	, leave_message  
+	, hang_up  
+	, external_telephone  
+	, business_record_template  
+	, theme  
+	, vibration  
+	, customer_service  
+	, work_order  
+	, email  
+	, tag  
+	, description  
+	, charge_person  
+	, charge_group  
+	, level  
+	, blacklist_ind  
+	, company_name  
+	, consultation_content  
+	, ivr_record  
+	, call_id  
+	, other_data  
+	, etl_tx_dt   )
+  select 
+	 udesk_time  
+	, ring_time  
+	, dura_time  
+	, cust_name  
+	, cust_tel  
+	, con_result  
+	, operator  
+	, follow_up  
+	, location  
+	, source  
+	, relay_number  
+	, satisfaction  
+	, call_type  
+	, device_status  
+	, company  
+	, quest  
+	, queue_status  
+	, dtmf  
+	, queue_time  
+	, cause_of_call_failure  
+	, call_record  
+	, leave_message  
+	, hang_up  
+	, external_telephone  
+	, business_record_template  
+	, theme  
+	, vibration  
+	, customer_service  
+	, work_order  
+	, email  
+	, tag  
+	, description  
+	, charge_person  
+	, charge_group  
+	, level  
+	, blacklist_ind  
+	, company_name  
+	, consultation_content  
+	, ivr_record  
+	, call_id  
+	, other_data  
+	, etl_tx_dt  
+  from p10_sa.S98_S_udesk_record
+;
+\q
\ No newline at end of file
diff --git a/TK_Cust/dev/tk_cust/udesk_record/sa_foreign_tables.sql b/TK_Cust/dev/tk_cust/udesk_record/sa_foreign_tables.sql
new file mode 100644
index 0000000..09ea348
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/udesk_record/sa_foreign_tables.sql
@@ -0,0 +1,53 @@
+
+CREATE FOREIGN TABLE if not exists p00_tal.S98_S_udesk_record (
+ udesk_time  TEXT 
+	, ring_time  TEXT 
+	, dura_time  TEXT 
+	, cust_name  TEXT 
+	, cust_tel  TEXT 
+	, con_result  TEXT 
+	, operator  TEXT 
+	, follow_up  TEXT 
+	, location  TEXT 
+	, source  TEXT 
+	, relay_number  TEXT 
+	, satisfaction  TEXT 
+	, call_type  TEXT 
+	, device_status  TEXT 
+	, company  TEXT 
+	, quest  TEXT 
+	, queue_status  TEXT 
+	, dtmf  TEXT 
+	, queue_time  TEXT 
+	, cause_of_call_failure  TEXT 
+	, call_record  TEXT 
+	, leave_message  TEXT 
+	, hang_up  TEXT 
+	, external_telephone  TEXT 
+	, business_record_template  TEXT 
+	, theme  TEXT 
+	, vibration  TEXT 
+	, customer_service  TEXT 
+	, work_order  TEXT 
+	, email  TEXT 
+	, tag  TEXT 
+	, description  TEXT 
+	, charge_person  TEXT 
+	, charge_group  TEXT 
+	, level  TEXT 
+	, blacklist_ind  TEXT 
+	, company_name  TEXT 
+	, consultation_content  TEXT 
+	, ivr_record  TEXT 
+	, call_id  TEXT 
+	, other_data  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) 
+
+
+SERVER pgsql_server_S98_S OPTIONS(schema_name 'data_api', table_name 'udesk_record' ); 
+
+
+
+
+
diff --git a/TK_Cust/dev/tk_cust/udesk_record/sa_tables.sql b/TK_Cust/dev/tk_cust/udesk_record/sa_tables.sql
new file mode 100644
index 0000000..59cf7a2
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/udesk_record/sa_tables.sql
@@ -0,0 +1,183 @@
+
+create table if not exists p10_sa.S98_S_udesk_record (
+	 udesk_time  TEXT 
+	, ring_time  TEXT 
+	, dura_time  TEXT 
+	, cust_name  TEXT 
+	, cust_tel  TEXT 
+	, con_result  TEXT 
+	, operator  TEXT 
+	, follow_up  TEXT 
+	, location  TEXT 
+	, source  TEXT 
+	, relay_number  TEXT 
+	, satisfaction  TEXT 
+	, call_type  TEXT 
+	, device_status  TEXT 
+	, company  TEXT 
+	, quest  TEXT 
+	, queue_status  TEXT 
+	, dtmf  TEXT 
+	, queue_time  TEXT 
+	, cause_of_call_failure  TEXT 
+	, call_record  TEXT 
+	, leave_message  TEXT 
+	, hang_up  TEXT 
+	, external_telephone  TEXT 
+	, business_record_template  TEXT 
+	, theme  TEXT 
+	, vibration  TEXT 
+	, customer_service  TEXT 
+	, work_order  TEXT 
+	, email  TEXT 
+	, tag  TEXT 
+	, description  TEXT 
+	, charge_person  TEXT 
+	, charge_group  TEXT 
+	, level  TEXT 
+	, blacklist_ind  TEXT 
+	, company_name  TEXT 
+	, consultation_content  TEXT 
+	, ivr_record  TEXT 
+	, call_id  TEXT 
+	, other_data  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.udesk_time IS '时间'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.ring_time IS '响铃时间'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.dura_time IS '通话时长'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.cust_name IS '客户'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.cust_tel IS '客户电话'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.con_result IS '通话结果'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.operator IS '客服'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.follow_up IS '后续通话'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.location IS '归属地'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.source IS '来源'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.relay_number IS '中继号'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.satisfaction IS '满意度评价'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.call_type IS '通话类型'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.device_status IS '设备状态'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.company IS '公司'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.quest IS '任务'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.queue_status IS '排队状态'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.dtmf IS 'DTMF'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.queue_time IS '排队耗时'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.cause_of_call_failure IS '外呼失败原因'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.call_record IS '通话录音'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.leave_message IS '留言'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.hang_up IS '通话挂断方'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.external_telephone IS '外部电话'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.business_record_template IS '业务记录模版'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.theme IS '主题'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.vibration IS '顺振'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.customer_service IS '相关客服'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.work_order IS '生成工单'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.email IS '邮箱'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.tag IS '标签'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.description IS '描述'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.charge_person IS '负责人'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.charge_group IS '负责组'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.level IS '等级'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.blacklist_ind IS '是否在黑名单'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.company_name IS '公司名称'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.consultation_content IS '咨询内容'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.ivr_record IS 'IVR录音'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.call_id IS 'Call ID'; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.other_data IS ''; 
+ COMMENT ON COLUMN p10_sa.S98_S_udesk_record.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p10_sa.S98_S_udesk_record IS '';
+
+
+
+create table if not exists p12_sfull.S98_S_udesk_record (
+	 udesk_time  TEXT 
+	, ring_time  TEXT 
+	, dura_time  TEXT 
+	, cust_name  TEXT 
+	, cust_tel  TEXT 
+	, con_result  TEXT 
+	, operator  TEXT 
+	, follow_up  TEXT 
+	, location  TEXT 
+	, source  TEXT 
+	, relay_number  TEXT 
+	, satisfaction  TEXT 
+	, call_type  TEXT 
+	, device_status  TEXT 
+	, company  TEXT 
+	, quest  TEXT 
+	, queue_status  TEXT 
+	, dtmf  TEXT 
+	, queue_time  TEXT 
+	, cause_of_call_failure  TEXT 
+	, call_record  TEXT 
+	, leave_message  TEXT 
+	, hang_up  TEXT 
+	, external_telephone  TEXT 
+	, business_record_template  TEXT 
+	, theme  TEXT 
+	, vibration  TEXT 
+	, customer_service  TEXT 
+	, work_order  TEXT 
+	, email  TEXT 
+	, tag  TEXT 
+	, description  TEXT 
+	, charge_person  TEXT 
+	, charge_group  TEXT 
+	, level  TEXT 
+	, blacklist_ind  TEXT 
+	, company_name  TEXT 
+	, consultation_content  TEXT 
+	, ivr_record  TEXT 
+	, call_id  TEXT 
+	, other_data  TEXT 
+	, etl_tx_dt  TIMESTAMP 
+) ; 
+
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.udesk_time IS '时间'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.ring_time IS '响铃时间'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.dura_time IS '通话时长'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.cust_name IS '客户'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.cust_tel IS '客户电话'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.con_result IS '通话结果'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.operator IS '客服'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.follow_up IS '后续通话'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.location IS '归属地'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.source IS '来源'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.relay_number IS '中继号'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.satisfaction IS '满意度评价'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.call_type IS '通话类型'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.device_status IS '设备状态'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.company IS '公司'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.quest IS '任务'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.queue_status IS '排队状态'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.dtmf IS 'DTMF'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.queue_time IS '排队耗时'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.cause_of_call_failure IS '外呼失败原因'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.call_record IS '通话录音'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.leave_message IS '留言'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.hang_up IS '通话挂断方'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.external_telephone IS '外部电话'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.business_record_template IS '业务记录模版'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.theme IS '主题'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.vibration IS '顺振'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.customer_service IS '相关客服'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.work_order IS '生成工单'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.email IS '邮箱'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.tag IS '标签'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.description IS '描述'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.charge_person IS '负责人'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.charge_group IS '负责组'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.level IS '等级'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.blacklist_ind IS '是否在黑名单'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.company_name IS '公司名称'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.consultation_content IS '咨询内容'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.ivr_record IS 'IVR录音'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.call_id IS 'Call ID'; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.other_data IS ''; 
+ COMMENT ON COLUMN p12_sfull.S98_S_udesk_record.etl_tx_dt IS ''; 
+
+COMMENT ON TABLE p12_sfull.S98_S_udesk_record IS '';
+
diff --git a/TK_Cust/dev/tk_cust/泰克客户/wf_dag_tk_cust.py b/TK_Cust/dev/tk_cust/泰克客户/wf_dag_tk_cust.py
new file mode 100644
index 0000000..087a169
--- /dev/null
+++ b/TK_Cust/dev/tk_cust/泰克客户/wf_dag_tk_cust.py
@@ -0,0 +1,230 @@
+#!/usr/bin/python
+# -*- encoding=utf-8 -*-
+from airflow import DAG
+from datetime import datetime, timedelta
+from airflow.contrib.hooks.ssh_hook import SSHHook
+from airflow.contrib.operators.ssh_operator import SSHOperator
+from airflow.sensors.external_task_sensor import ExternalTaskSensor
+import json
+
+from airflow.operators.email_operator import EmailOperator
+from airflow.utils.trigger_rule import TriggerRule
+
+
+sshHook = SSHHook(ssh_conn_id ='ssh_air')
+default_args = {
+'owner': 'info@idgvalue.com',
+'email': [''],
+'email_on_failure': True,
+'email_on_retry':True,
+'start_date': datetime(2022, 9, 12),
+'depends_on_past': False,
+'retries': 6,
+'retry_delay': timedelta(minutes=10),
+}
+
+dag = DAG('wf_dag_tk_cust', default_args=default_args,
+schedule_interval="0 0 * * *",
+catchup=False,
+dagrun_timeout=timedelta(minutes=160),
+max_active_runs=3)
+
+task_failed = EmailOperator (
+    dag=dag,
+    trigger_rule=TriggerRule.ONE_FAILED,
+    task_id="task_failed",
+    to=["info@idgvalue.com"],
+    cc=[""],
+    subject="tk_cust_failed",
+    html_content='<h3>您好,tk_cust作业失败,请及时处理" </h3>')
+
+file_Tk01 = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_Tk01',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"Tk01"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+file_Update_af0912 = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_Update_af0912',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"Update_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+file_Merge_af0912 = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_Merge_af0912',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"Merge_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+file_SCRM_Contact_af0912 = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_SCRM_Contact_af0912',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"SCRM_Contact_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+file_SCRM_Contact_bf0912 = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_SCRM_Contact_bf0912',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"SCRM_Contact_bf0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+livechat_6381 = SSHOperator(
+ssh_hook=sshHook,
+task_id='livechat_6381',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_livechat"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+scrm_contact_af0912_6333 = SSHOperator(
+ssh_hook=sshHook,
+task_id='scrm_contact_af0912_6333',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_scrm_contact_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+scrm_contact_update_af0912_6448 = SSHOperator(
+ssh_hook=sshHook,
+task_id='scrm_contact_update_af0912_6448',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_scrm_contact_update_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+scrm_contact_merge_af0912_7975 = SSHOperator(
+ssh_hook=sshHook,
+task_id='scrm_contact_merge_af0912_7975',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_scrm_contact_merge_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+scrm_contact_bf0912_6949 = SSHOperator(
+ssh_hook=sshHook,
+task_id='scrm_contact_bf0912_6949',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_scrm_contact_bf0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+T01_SCRM_CONTACT = SSHOperator(
+ssh_hook=sshHook,
+task_id='T01_SCRM_CONTACT',
+command='/data/airflow/etl/PDM/run_sa.sh {{ ds_nodash }} {{params.my_param}} >>/data/airflow/logs/run_tpt_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"T01_SCRM_CONTACT_agi"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+file_Udesk_record = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_Udesk_record',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"Udesk_record"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+file_CRM_Raw_Leads = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_CRM_Raw_Leads',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"CRM_Raw_Leads"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+file_scrm_leads_bf0912 = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_scrm_leads_bf0912',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"scrm_leads_bf0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+file_scrm_leads_af0912 = SSHOperator(
+ssh_hook=sshHook,
+task_id='file_scrm_leads_af0912',
+command='python /data/airflow/bin/FILELOD.py {{ params.my_param }} {{ ds_nodash }}  >>/data/airflow/logs/file_load/file_load_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"scrm_leads_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+
+udesk_record_3768 = SSHOperator(
+ssh_hook=sshHook,
+task_id='udesk_record_3768',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_udesk_record"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+scrm_leads_bf0912_508 = SSHOperator(
+ssh_hook=sshHook,
+task_id='scrm_leads_bf0912_508',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_scrm_leads_bf0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+scrm_leads_af0912_5813 = SSHOperator(
+ssh_hook=sshHook,
+task_id='scrm_leads_af0912_5813',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_scrm_leads_af0912"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+crm_raw_leads_6024 = SSHOperator(
+ssh_hook=sshHook,
+task_id='crm_raw_leads_6024',
+command='/data/airflow/etl/SA/run_sa.sh {{ ds_nodash }} {{ params.my_param }} >>/data/airflow/logs/run_psql_{{ds_nodash}}.log 2>&1 ',
+params={'my_param':"S98_S_crm_raw_leads"},
+depends_on_past=False, 
+retries=3, 
+dag=dag)
+
+file_Tk01 >> livechat_6381
+file_Merge_af0912 >> scrm_contact_merge_af0912_7975
+file_SCRM_Contact_bf0912 >> scrm_contact_bf0912_6949
+file_SCRM_Contact_af0912 >> scrm_contact_af0912_6333
+file_Update_af0912 >> scrm_contact_update_af0912_6448
+scrm_contact_af0912_6333 >> T01_SCRM_CONTACT
+file_Udesk_record >> udesk_record_3768
+file_scrm_leads_bf0912 >> scrm_leads_bf0912_508
+file_scrm_leads_af0912 >> scrm_leads_af0912_5813
+file_CRM_Raw_Leads >> crm_raw_leads_6024
+crm_raw_leads_6024 >> task_failed