diff --git a/dev/workflow/TK_Cust/tk_crm/CRM原始线索/t01_crm_raw_leads.sql b/dev/workflow/TK_Cust/tk_crm/CRM原始线索/t01_crm_raw_leads.sql new file mode 100644 index 0000000..06e9661 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_crm/CRM原始线索/t01_crm_raw_leads.sql @@ -0,0 +1,48 @@ + +DROP TABLE IF EXISTS p20_pdm.t01_crm_raw_leads; +CREATE TABLE IF NOT EXISTS p20_pdm.t01_crm_raw_leads ( + crm_contact_account varchar(20) + , lead_number varchar(20) + , name varchar(50) + , create_time timestamp(0) + , company_name varchar(50) + , email varchar(50) + , mobile_phone varchar(20) + , mql_time varchar(20) + , campaign_name varchar(50) + , industry varchar(20) + , market_type varchar(20) + , tek_sqldate text + , tek_assigntopartnercompanyidname 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( crm_contact_account,lead_number ) +); + + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.crm_contact_account IS 'CRM_CONTACT账号'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.lead_number IS 'lead_number'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.name IS '姓名'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.create_time IS '创建时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.company_name IS '公司名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.email IS '电子邮箱'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.mobile_phone IS '手机号'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.mql_time IS 'mql时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.campaign_name IS '活动名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.industry IS '行业'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.market_type IS '市场类型'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.tek_sqldate IS 'sql时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.tek_assigntopartnercompanyidname IS '分配至合作公司ID'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Batch_No IS '作业批次号'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_First_Dt IS '最初入库时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Job IS '作业名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Proc_Dt IS '本次入库时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Etl_Tx_Dt IS '作业运行时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Src_Sysname IS '来源系统'; + COMMENT ON COLUMN p20_pdm.t01_crm_raw_leads.Src_Table IS '来源表'; + +COMMENT ON TABLE p20_pdm.t01_crm_raw_leads IS 'CRM原始线索'; \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_crm/CRM原始线索/t01_crm_raw_leads_agi.sql b/dev/workflow/TK_Cust/tk_crm/CRM原始线索/t01_crm_raw_leads_agi.sql new file mode 100644 index 0000000..a9bb423 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_crm/CRM原始线索/t01_crm_raw_leads_agi.sql @@ -0,0 +1,244 @@ +/***************************************************************************************************/ +/*script in Sql, generate by SdmCreateScript 2024(by IdgValue, qihang.feng@idgvalue.COM) */ +/*VERSION 01.10 revised on 2020-08-25 */ +/*Brilliance stems from wisdoms. */ +/*************Head Section**************************************************************************/ +/*Script Use: Periodically load data to :t01_crm_raw_leads(CRM原始线索) */ +/*Create Date:2025-12-09 15:32:27 */ +/*SDM Developed By: dev */ +/*SDM Developed Date: 2024-01-12 */ +/*SDM Checked By: dev */ +/*SDM Checked Date: 2025-12-09 */ +/*Script Developed By: dev */ +/*Script Checked By: dev */ +/*Source table 1: p10_sa.s98_s_crm_raw_leads */ +/*Job Type: Inbound transform (Tier 1 to Tier 2) */ +/*Target Table:t01_crm_raw_leads */ +/*ETL Job Name:t01_crm_raw_leads */ +/*ETL Frequency:Daily */ +/*ETL Policy:F2 */ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + + +/*创建临时表加载当前数据 */ +CREATE TEMPORARY TABLE t01_crm_raw_leads_agi_CUR_I + ( LIKE :PDMDB.t01_crm_raw_leads) +ON COMMIT PRESERVE ROWS; + + + +/*创建临时表加载不同数据 */ +CREATE TEMPORARY TABLE t01_crm_raw_leads_agi_INS +( LIKE :PDMDB.t01_crm_raw_leads) +ON COMMIT PRESERVE ROWS; + + +/*****************************************************************************************************/ +/* GROUP 1:Source Table:s98_s_crm_raw_leads***********************************************************/ +/*****************************************************************************************************/ +INSERT INTO t01_crm_raw_leads_agi_CUR_I ( + crm_contact_account /*CRM_CONTACT账号*/ + ,lead_number /*lead_number*/ + ,name /*姓名*/ + ,create_time /*创建时间*/ + ,company_name /*公司名称*/ + ,email /*电子邮箱*/ + ,mobile_phone /*手机号*/ + ,mql_time /*mql时间*/ + ,campaign_name /*活动名称*/ + ,industry /*行业*/ + ,market_type /*市场类型*/ + ,tek_sqldate /*sql时间*/ + ,tek_assigntopartnercompanyidname /*分配至合作公司ID*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + ) +SELECT + COALESCE(TRIM(CAST(p0.tek_contactnumber AS varchar(20))),'') /*crm_contact_account*/ + ,COALESCE(TRIM(CAST(p0.tek_leadnumber AS varchar(20))),'') /*lead_number*/ + ,COALESCE(TRIM(CAST(p0.fullname AS varchar(50))),'') /*name*/ + ,COALESCE(TO_TIMESTAMP(CAST(p0.createdon AS VARCHAR(19)),'YYYY/MM/DD HH24:mi:ss'),TO_TIMESTAMP('19000102','YYYYMMDD')) /*create_time*/ + ,COALESCE(TRIM(CAST(p0.companyname AS varchar(50))),'') /*company_name*/ + ,COALESCE(TRIM(CAST(p0.emailaddress1 AS varchar(50))),'') /*email*/ + ,COALESCE(TRIM(CAST(p0.mobilephone AS varchar(20))),'') /*mobile_phone*/ + ,case when p0.tek_mqldate = 'NULL' THEN TO_TIMESTAMP('19000102','YYYYMMDD') ELSE COALESCE(TO_TIMESTAMP(CAST(p0.tek_mqldate AS VARCHAR(19)),'YYYY/MM/DD HH24:mi:ss'),TO_TIMESTAMP('19000102','YYYYMMDD')) END /*mql_time*/ + ,COALESCE(TRIM(CAST(p0.campaignidname AS varchar(50))),'') /*campaign_name*/ + ,COALESCE(TRIM(CAST(p0.tek_industry2idname AS varchar(20))),'') /*industry*/ + ,COALESCE(TRIM(CAST(p0.tek_marketing_program_type_idname AS varchar(20))),'') /*market_type*/ + ,case when p0.tek_sqldate = '' THEN TO_TIMESTAMP('19000102','YYYYMMDD') ELSE COALESCE(TO_TIMESTAMP(CAST(p0.tek_sqldate AS VARCHAR(19)),'YYYY/MM/DD HH24:mi:ss'),TO_TIMESTAMP('19000102','YYYYMMDD')) END /*tek_sqldate*/ + ,COALESCE(TRIM(p0.tek_assigntopartnercompanyidname),'') /*tek_assigntopartnercompanyidname*/ + ,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_crm_raw_leads',1,3) /*Src_Sysname*/ + ,'s98_s_crm_raw_leads' /*Src_Table*/ + +FROM p10_sa.s98_s_crm_raw_leads p0 +; + + + +/*将不同数据插入到临时表 */ +;INSERT INTO t01_crm_raw_leads_agi_INS ( + name /*姓名*/ + ,create_time /*创建时间*/ + ,company_name /*公司名称*/ + ,email /*电子邮箱*/ + ,mobile_phone /*手机号*/ + ,mql_time /*mql时间*/ + ,campaign_name /*活动名称*/ + ,industry /*行业*/ + ,market_type /*市场类型*/ + ,tek_sqldate /*sql时间*/ + ,tek_assigntopartnercompanyidname /*分配至合作公司ID*/ + ,crm_contact_account /*CRM_CONTACT账号*/ + ,lead_number /*lead_number*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) + SELECT + P1.name /*姓名*/ + ,P1.create_time /*创建时间*/ + ,P1.company_name /*公司名称*/ + ,P1.email /*电子邮箱*/ + ,P1.mobile_phone /*手机号*/ + ,P1.mql_time /*mql时间*/ + ,P1.campaign_name /*活动名称*/ + ,P1.industry /*行业*/ + ,P1.market_type /*市场类型*/ + ,P1.tek_sqldate /*sql时间*/ + ,P1.tek_assigntopartnercompanyidname /*分配至合作公司ID*/ + ,P1.crm_contact_account /*CRM_CONTACT账号*/ + ,P1.lead_number /*lead_number*/ + ,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_crm_raw_leads_agi_CUR_I P1 +LEFT JOIN :PDMDB.t01_crm_raw_leads P2 +ON P1.name = P2.name + AND P1.create_time = P2.create_time + AND P1.company_name = P2.company_name + AND P1.email = P2.email + AND P1.mobile_phone = P2.mobile_phone + AND P1.mql_time = P2.mql_time + AND P1.campaign_name = P2.campaign_name + AND P1.industry = P2.industry + AND P1.market_type = P2.market_type + AND P1.tek_sqldate = P2.tek_sqldate + AND P1.tek_assigntopartnercompanyidname = P2.tek_assigntopartnercompanyidname + AND P1.crm_contact_account = P2.crm_contact_account + AND P1.lead_number = P2.lead_number + +WHERE P2.name IS NULL + OR P2.create_time IS NULL + OR P2.company_name IS NULL + OR P2.email IS NULL + OR P2.mobile_phone IS NULL + OR P2.mql_time IS NULL + OR P2.campaign_name IS NULL + OR P2.industry IS NULL + OR P2.market_type IS NULL + OR P2.tek_sqldate IS NULL + OR P2.tek_assigntopartnercompanyidname IS NULL + OR P2.crm_contact_account IS NULL + OR P2.lead_number IS NULL + +; +/*将新增数据插入到目标表 */ +;INSERT INTO :PDMDB.t01_crm_raw_leads ( + name /*姓名*/ + ,create_time /*创建时间*/ + ,company_name /*公司名称*/ + ,email /*电子邮箱*/ + ,mobile_phone /*手机号*/ + ,mql_time /*mql时间*/ + ,campaign_name /*活动名称*/ + ,industry /*行业*/ + ,market_type /*市场类型*/ + ,tek_sqldate /*sql时间*/ + ,tek_assigntopartnercompanyidname /*分配至合作公司ID*/ + ,crm_contact_account /*CRM_CONTACT账号*/ + ,lead_number /*lead_number*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) +SELECT + P1.name /*姓名*/ + ,P1.create_time /*创建时间*/ + ,P1.company_name /*公司名称*/ + ,P1.email /*电子邮箱*/ + ,P1.mobile_phone /*手机号*/ + ,P1.mql_time /*mql时间*/ + ,P1.campaign_name /*活动名称*/ + ,P1.industry /*行业*/ + ,P1.market_type /*市场类型*/ + ,P1.tek_sqldate /*sql时间*/ + ,P1.tek_assigntopartnercompanyidname /*分配至合作公司ID*/ + ,P1.crm_contact_account /*CRM_CONTACT账号*/ + ,P1.lead_number /*lead_number*/ + ,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_crm_raw_leads_agi_INS P1 +ON CONFLICT ( crm_contact_account,lead_number) +DO UPDATE SET + crm_contact_account=excluded.crm_contact_account + ,lead_number=excluded.lead_number + ,name=excluded.name + ,create_time=excluded.create_time + ,company_name=excluded.company_name + ,email=excluded.email + ,mobile_phone=excluded.mobile_phone + ,mql_time=excluded.mql_time + ,campaign_name=excluded.campaign_name + ,industry=excluded.industry + ,market_type=excluded.market_type + ,tek_sqldate=excluded.tek_sqldate + ,tek_assigntopartnercompanyidname=excluded.tek_assigntopartnercompanyidname + ,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/dev/workflow/TK_Cust/tk_crm/CRM订单/t01_crm_order.sql b/dev/workflow/TK_Cust/tk_crm/CRM订单/t01_crm_order.sql new file mode 100644 index 0000000..90dded3 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_crm/CRM订单/t01_crm_order.sql @@ -0,0 +1,90 @@ + +DROP TABLE IF EXISTS p20_pdm.t01_crm_order; +CREATE TABLE IF NOT EXISTS p20_pdm.t01_crm_order ( + salesorderdetailid text + , tek_ordernumber text + , uomid text + , tek_companyname text + , tek_pivotalordernumber text + , tek_orderrelatedopportunity text + , tek_shiptocompanyname text + , productname text + , tek_productfamilycode text + , tek_productgroup3code text + , tek_productgroup3name text + , tek_productgroup2name text + , extendedamount numeric(24,6) + , qty int + , extendedamount_base numeric(24,6) + , priceperunit_base numeric(24,6) + , priceperunit numeric(24,6) + , extendedamount_base2 numeric(24,6) + , baseamount_base numeric(24,6) + , baseamount numeric(24,6) + , transactioncurrencyid text + , totalamount_base numeric(24,6) + , totalamount numeric(24,6) + , tek_orderstatus text + , tek_billtocompanyname text + , tek_contactcompanyname text + , tek_accountmanagerid text + , tek_orderbookdate text + , tek_shiptocompanyid text + , tek_companylegalname text + , statecode text + , tek_ordertype text + , tek_channelid text + , tek_regionidname text + , Etl_Batch_No varchar(50) + , Etl_First_Dt timestamp(0) + , Etl_Job varchar(200) + , Etl_Proc_Dt timestamp(0) + , Etl_Tx_Dt timestamp(0) + , Src_Sysname varchar(50) + , Src_Table varchar(50) + ,primary key( salesorderdetailid ) +); + + COMMENT ON COLUMN p20_pdm.t01_crm_order.salesorderdetailid IS '销售订单编号明细'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_ordernumber IS '泰克订单编号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.uomid IS 'Uom编号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_companyname IS '泰克公司名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_pivotalordernumber IS '泰克关键订单号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_orderrelatedopportunity IS '泰克订单相关机会编号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_shiptocompanyname IS '泰克收货公司名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.productname IS '产品名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_productfamilycode IS '泰克产品系列代码'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_productgroup3code IS '泰克产品系列3代码'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_productgroup3name IS '泰克产品系列2代码'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_productgroup2name IS '泰克产品系列2名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.extendedamount IS '金额扩展'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.qty IS '数量'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.extendedamount_base IS '基础金额扩展'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.priceperunit_base IS '基础单价'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.priceperunit IS '单价'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.extendedamount_base2 IS '基础金额扩展2'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.baseamount_base IS '基础金额基础'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.baseamount IS '基础金额'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.transactioncurrencyid IS '交易货币编号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.totalamount_base IS '基础总金额'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.totalamount IS '总金额'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_orderstatus IS '泰克订单状态'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_billtocompanyname IS '泰克订单公司'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_contactcompanyname IS '泰克联系人公司'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_accountmanagerid IS '泰克Account管理员ID'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_orderbookdate IS '泰克订单预定日期'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_shiptocompanyid IS '泰克收货公司编号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_companylegalname IS '泰克公司合法名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.statecode IS '状态代码'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_ordertype IS '泰克订单类型'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_channelid IS '泰克渠道编号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.tek_regionidname IS '泰克区域名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.Etl_Batch_No IS '作业批次号'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.Etl_First_Dt IS '最初入库时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.Etl_Job IS '作业名称'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.Etl_Proc_Dt IS '本次入库时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.Etl_Tx_Dt IS '作业运行时间'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.Src_Sysname IS '来源系统'; + COMMENT ON COLUMN p20_pdm.t01_crm_order.Src_Table IS '来源表'; + +COMMENT ON TABLE p20_pdm.t01_crm_order IS 'CRM订单'; \ No newline at end of file diff --git a/dev/workflow/TK_Cust/tk_crm/CRM订单/t01_crm_order_agi.sql b/dev/workflow/TK_Cust/tk_crm/CRM订单/t01_crm_order_agi.sql new file mode 100644 index 0000000..be37f66 --- /dev/null +++ b/dev/workflow/TK_Cust/tk_crm/CRM订单/t01_crm_order_agi.sql @@ -0,0 +1,433 @@ +/***************************************************************************************************/ +/*script in Sql, generate by SdmCreateScript 2024(by IdgValue, qihang.feng@idgvalue.COM) */ +/*VERSION 01.10 revised on 2020-08-25 */ +/*Brilliance stems from wisdoms. */ +/*************Head Section**************************************************************************/ +/*Script Use: Periodically load data to :t01_crm_order(CRM订单) */ +/*Create Date:2025-12-09 16:43:31 */ +/*SDM Developed By: dev */ +/*SDM Developed Date: 2025-12-09 */ +/*SDM Checked By: dev */ +/*SDM Checked Date: 2025-12-09 */ +/*Script Developed By: dev */ +/*Script Checked By: dev */ +/*Source table 1: p10_sa.s98_s_crm_order */ +/*Job Type: Inbound transform (Tier 1 to Tier 2) */ +/*Target Table:t01_crm_order */ +/*ETL Job Name:t01_crm_order */ +/*ETL Frequency:None */ +/*ETL Policy:F2 */ +/********************************************************************************************/ +/*******Main Section**************************************************************************/ +\set ON_ERROR_STOP on +\set AUTOCOMMIT on +\timing on + + + +/*创建临时表加载当前数据 */ +CREATE TEMPORARY TABLE t01_crm_order_agi_CUR_I + ( LIKE :PDMDB.t01_crm_order) +ON COMMIT PRESERVE ROWS; + + + +/*创建临时表加载不同数据 */ +CREATE TEMPORARY TABLE t01_crm_order_agi_INS +( LIKE :PDMDB.t01_crm_order) +ON COMMIT PRESERVE ROWS; + + +/*****************************************************************************************************/ +/* GROUP 1:Source Table:s98_s_crm_order***************************************************************/ +/*****************************************************************************************************/ +INSERT INTO t01_crm_order_agi_CUR_I ( + salesorderdetailid /*销售订单编号明细*/ + ,tek_ordernumber /*泰克订单编号*/ + ,uomid /*Uom编号*/ + ,tek_companyname /*泰克公司名称*/ + ,tek_pivotalordernumber /*泰克关键订单号*/ + ,tek_orderrelatedopportunity /*泰克订单相关机会编号*/ + ,tek_shiptocompanyname /*泰克收货公司名称*/ + ,productname /*产品名称*/ + ,tek_productfamilycode /*泰克产品系列代码*/ + ,tek_productgroup3code /*泰克产品系列3代码*/ + ,tek_productgroup3name /*泰克产品系列2代码*/ + ,tek_productgroup2name /*泰克产品系列2名称*/ + ,extendedamount /*金额扩展*/ + ,qty /*数量*/ + ,extendedamount_base /*基础金额扩展*/ + ,priceperunit_base /*基础单价*/ + ,priceperunit /*单价*/ + ,extendedamount_base2 /*基础金额扩展2*/ + ,baseamount_base /*基础金额基础*/ + ,baseamount /*基础金额*/ + ,transactioncurrencyid /*交易货币编号*/ + ,totalamount_base /*基础总金额*/ + ,totalamount /*总金额*/ + ,tek_orderstatus /*泰克订单状态*/ + ,tek_billtocompanyname /*泰克订单公司*/ + ,tek_contactcompanyname /*泰克联系人公司*/ + ,tek_accountmanagerid /*泰克Account管理员ID*/ + ,tek_orderbookdate /*泰克订单预定日期*/ + ,tek_shiptocompanyid /*泰克收货公司编号*/ + ,tek_companylegalname /*泰克公司合法名称*/ + ,statecode /*状态代码*/ + ,tek_ordertype /*泰克订单类型*/ + ,tek_channelid /*泰克渠道编号*/ + ,tek_regionidname /*泰克区域名称*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + ) +SELECT + COALESCE(TRIM(p0.salesorderdetailid),'') /*salesorderdetailid*/ + ,COALESCE(TRIM(p0.tek_ordernumber),'') /*tek_ordernumber*/ + ,COALESCE(TRIM(p0.uomid),'') /*uomid*/ + ,COALESCE(TRIM(p0.tek_companyname),'') /*tek_companyname*/ + ,COALESCE(TRIM(p0.tek_pivotalordernumber),'') /*tek_pivotalordernumber*/ + ,COALESCE(TRIM(p0.tek_orderrelatedopportunity),'') /*tek_orderrelatedopportunity*/ + ,COALESCE(TRIM(p0.tek_shiptocompanyname),'') /*tek_shiptocompanyname*/ + ,COALESCE(TRIM(p0.productname),'') /*productname*/ + ,COALESCE(TRIM(p0.tek_productfamilycode),'') /*tek_productfamilycode*/ + ,COALESCE(TRIM(p0.tek_productgroup3code),'') /*tek_productgroup3code*/ + ,COALESCE(TRIM(p0.tek_productgroup3name),'') /*tek_productgroup3name*/ + ,COALESCE(TRIM(p0.tek_productgroup2name),'') /*tek_productgroup2name*/ + ,COALESCE(CAST(p0.extendedamount AS numeric(24,6)),0) /*extendedamount*/ + ,COALESCE(CAST(p0.quantity AS int),0) /*qty*/ + ,COALESCE(CAST(p0.extendedamount_base AS numeric(24,6)),0) /*extendedamount_base*/ + ,COALESCE(CAST(p0.priceperunit_base AS numeric(24,6)),0) /*priceperunit_base*/ + ,COALESCE(CAST(p0.priceperunit AS numeric(24,6)),0) /*priceperunit*/ + ,COALESCE(CAST(p0.extendedamount_base2 AS numeric(24,6)),0) /*extendedamount_base2*/ + ,COALESCE(CAST(p0.baseamount_base AS numeric(24,6)),0) /*baseamount_base*/ + ,COALESCE(CAST(p0.baseamount AS numeric(24,6)),0) /*baseamount*/ + ,COALESCE(TRIM(p0.transactioncurrencyid),'') /*transactioncurrencyid*/ + ,COALESCE(CAST(p0.totalamount_base AS numeric(24,6)),0) /*totalamount_base*/ + ,COALESCE(CAST(p0.totalamount AS numeric(24,6)),0) /*totalamount*/ + ,COALESCE(TRIM(p0.tek_orderstatus),'') /*tek_orderstatus*/ + ,COALESCE(TRIM(p0.tek_billtocompanyname),'') /*tek_billtocompanyname*/ + ,COALESCE(TRIM(p0.tek_contactcompanyname),'') /*tek_contactcompanyname*/ + ,COALESCE(TRIM(p0.tek_accountmanagerid),'') /*tek_accountmanagerid*/ + ,COALESCE(TRIM(p0.tek_orderbookdate),'') /*tek_orderbookdate*/ + ,COALESCE(TRIM(p0.tek_shiptocompanyid),'') /*tek_shiptocompanyid*/ + ,COALESCE(TRIM(p0.tek_companylegalname),'') /*tek_companylegalname*/ + ,COALESCE(TRIM(p0.statecode),'') /*statecode*/ + ,COALESCE(TRIM(p0.tek_ordertype),'') /*tek_ordertype*/ + ,COALESCE(TRIM(p0.tek_channelid),'') /*tek_channelid*/ + ,COALESCE(TRIM(p0.tek_regionidname),'') /*tek_regionidname*/ + ,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_crm_order',1,3) /*Src_Sysname*/ + ,'s98_s_crm_order' /*Src_Table*/ + +FROM p10_sa.s98_s_crm_order p0 +; + + + +/*将不同数据插入到临时表 */ +;INSERT INTO t01_crm_order_agi_INS ( + tek_ordernumber /*泰克订单编号*/ + ,uomid /*Uom编号*/ + ,tek_companyname /*泰克公司名称*/ + ,tek_pivotalordernumber /*泰克关键订单号*/ + ,tek_orderrelatedopportunity /*泰克订单相关机会编号*/ + ,tek_shiptocompanyname /*泰克收货公司名称*/ + ,productname /*产品名称*/ + ,tek_productfamilycode /*泰克产品系列代码*/ + ,tek_productgroup3code /*泰克产品系列3代码*/ + ,tek_productgroup3name /*泰克产品系列2代码*/ + ,tek_productgroup2name /*泰克产品系列2名称*/ + ,extendedamount /*金额扩展*/ + ,qty /*数量*/ + ,extendedamount_base /*基础金额扩展*/ + ,priceperunit_base /*基础单价*/ + ,priceperunit /*单价*/ + ,extendedamount_base2 /*基础金额扩展2*/ + ,baseamount_base /*基础金额基础*/ + ,baseamount /*基础金额*/ + ,transactioncurrencyid /*交易货币编号*/ + ,totalamount_base /*基础总金额*/ + ,totalamount /*总金额*/ + ,tek_orderstatus /*泰克订单状态*/ + ,tek_billtocompanyname /*泰克订单公司*/ + ,tek_contactcompanyname /*泰克联系人公司*/ + ,tek_accountmanagerid /*泰克Account管理员ID*/ + ,tek_orderbookdate /*泰克订单预定日期*/ + ,tek_shiptocompanyid /*泰克收货公司编号*/ + ,tek_companylegalname /*泰克公司合法名称*/ + ,statecode /*状态代码*/ + ,tek_ordertype /*泰克订单类型*/ + ,tek_channelid /*泰克渠道编号*/ + ,tek_regionidname /*泰克区域名称*/ + ,salesorderdetailid /*销售订单编号明细*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) + SELECT + P1.tek_ordernumber /*泰克订单编号*/ + ,P1.uomid /*Uom编号*/ + ,P1.tek_companyname /*泰克公司名称*/ + ,P1.tek_pivotalordernumber /*泰克关键订单号*/ + ,P1.tek_orderrelatedopportunity /*泰克订单相关机会编号*/ + ,P1.tek_shiptocompanyname /*泰克收货公司名称*/ + ,P1.productname /*产品名称*/ + ,P1.tek_productfamilycode /*泰克产品系列代码*/ + ,P1.tek_productgroup3code /*泰克产品系列3代码*/ + ,P1.tek_productgroup3name /*泰克产品系列2代码*/ + ,P1.tek_productgroup2name /*泰克产品系列2名称*/ + ,P1.extendedamount /*金额扩展*/ + ,P1.qty /*数量*/ + ,P1.extendedamount_base /*基础金额扩展*/ + ,P1.priceperunit_base /*基础单价*/ + ,P1.priceperunit /*单价*/ + ,P1.extendedamount_base2 /*基础金额扩展2*/ + ,P1.baseamount_base /*基础金额基础*/ + ,P1.baseamount /*基础金额*/ + ,P1.transactioncurrencyid /*交易货币编号*/ + ,P1.totalamount_base /*基础总金额*/ + ,P1.totalamount /*总金额*/ + ,P1.tek_orderstatus /*泰克订单状态*/ + ,P1.tek_billtocompanyname /*泰克订单公司*/ + ,P1.tek_contactcompanyname /*泰克联系人公司*/ + ,P1.tek_accountmanagerid /*泰克Account管理员ID*/ + ,P1.tek_orderbookdate /*泰克订单预定日期*/ + ,P1.tek_shiptocompanyid /*泰克收货公司编号*/ + ,P1.tek_companylegalname /*泰克公司合法名称*/ + ,P1.statecode /*状态代码*/ + ,P1.tek_ordertype /*泰克订单类型*/ + ,P1.tek_channelid /*泰克渠道编号*/ + ,P1.tek_regionidname /*泰克区域名称*/ + ,P1.salesorderdetailid /*销售订单编号明细*/ + ,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_crm_order_agi_CUR_I P1 +LEFT JOIN :PDMDB.t01_crm_order P2 +ON P1.tek_ordernumber = P2.tek_ordernumber + AND P1.uomid = P2.uomid + AND P1.tek_companyname = P2.tek_companyname + AND P1.tek_pivotalordernumber = P2.tek_pivotalordernumber + AND P1.tek_orderrelatedopportunity = P2.tek_orderrelatedopportunity + AND P1.tek_shiptocompanyname = P2.tek_shiptocompanyname + AND P1.productname = P2.productname + AND P1.tek_productfamilycode = P2.tek_productfamilycode + AND P1.tek_productgroup3code = P2.tek_productgroup3code + AND P1.tek_productgroup3name = P2.tek_productgroup3name + AND P1.tek_productgroup2name = P2.tek_productgroup2name + AND P1.extendedamount = P2.extendedamount + AND P1.qty = P2.qty + AND P1.extendedamount_base = P2.extendedamount_base + AND P1.priceperunit_base = P2.priceperunit_base + AND P1.priceperunit = P2.priceperunit + AND P1.extendedamount_base2 = P2.extendedamount_base2 + AND P1.baseamount_base = P2.baseamount_base + AND P1.baseamount = P2.baseamount + AND P1.transactioncurrencyid = P2.transactioncurrencyid + AND P1.totalamount_base = P2.totalamount_base + AND P1.totalamount = P2.totalamount + AND P1.tek_orderstatus = P2.tek_orderstatus + AND P1.tek_billtocompanyname = P2.tek_billtocompanyname + AND P1.tek_contactcompanyname = P2.tek_contactcompanyname + AND P1.tek_accountmanagerid = P2.tek_accountmanagerid + AND P1.tek_orderbookdate = P2.tek_orderbookdate + AND P1.tek_shiptocompanyid = P2.tek_shiptocompanyid + AND P1.tek_companylegalname = P2.tek_companylegalname + AND P1.statecode = P2.statecode + AND P1.tek_ordertype = P2.tek_ordertype + AND P1.tek_channelid = P2.tek_channelid + AND P1.tek_regionidname = P2.tek_regionidname + AND P1.salesorderdetailid = P2.salesorderdetailid + +WHERE P2.tek_ordernumber IS NULL + OR P2.uomid IS NULL + OR P2.tek_companyname IS NULL + OR P2.tek_pivotalordernumber IS NULL + OR P2.tek_orderrelatedopportunity IS NULL + OR P2.tek_shiptocompanyname IS NULL + OR P2.productname IS NULL + OR P2.tek_productfamilycode IS NULL + OR P2.tek_productgroup3code IS NULL + OR P2.tek_productgroup3name IS NULL + OR P2.tek_productgroup2name IS NULL + OR P2.extendedamount IS NULL + OR P2.qty IS NULL + OR P2.extendedamount_base IS NULL + OR P2.priceperunit_base IS NULL + OR P2.priceperunit IS NULL + OR P2.extendedamount_base2 IS NULL + OR P2.baseamount_base IS NULL + OR P2.baseamount IS NULL + OR P2.transactioncurrencyid IS NULL + OR P2.totalamount_base IS NULL + OR P2.totalamount IS NULL + OR P2.tek_orderstatus IS NULL + OR P2.tek_billtocompanyname IS NULL + OR P2.tek_contactcompanyname IS NULL + OR P2.tek_accountmanagerid IS NULL + OR P2.tek_orderbookdate IS NULL + OR P2.tek_shiptocompanyid IS NULL + OR P2.tek_companylegalname IS NULL + OR P2.statecode IS NULL + OR P2.tek_ordertype IS NULL + OR P2.tek_channelid IS NULL + OR P2.tek_regionidname IS NULL + OR P2.salesorderdetailid IS NULL + +; +/*将新增数据插入到目标表 */ +;INSERT INTO :PDMDB.t01_crm_order ( + tek_ordernumber /*泰克订单编号*/ + ,uomid /*Uom编号*/ + ,tek_companyname /*泰克公司名称*/ + ,tek_pivotalordernumber /*泰克关键订单号*/ + ,tek_orderrelatedopportunity /*泰克订单相关机会编号*/ + ,tek_shiptocompanyname /*泰克收货公司名称*/ + ,productname /*产品名称*/ + ,tek_productfamilycode /*泰克产品系列代码*/ + ,tek_productgroup3code /*泰克产品系列3代码*/ + ,tek_productgroup3name /*泰克产品系列2代码*/ + ,tek_productgroup2name /*泰克产品系列2名称*/ + ,extendedamount /*金额扩展*/ + ,qty /*数量*/ + ,extendedamount_base /*基础金额扩展*/ + ,priceperunit_base /*基础单价*/ + ,priceperunit /*单价*/ + ,extendedamount_base2 /*基础金额扩展2*/ + ,baseamount_base /*基础金额基础*/ + ,baseamount /*基础金额*/ + ,transactioncurrencyid /*交易货币编号*/ + ,totalamount_base /*基础总金额*/ + ,totalamount /*总金额*/ + ,tek_orderstatus /*泰克订单状态*/ + ,tek_billtocompanyname /*泰克订单公司*/ + ,tek_contactcompanyname /*泰克联系人公司*/ + ,tek_accountmanagerid /*泰克Account管理员ID*/ + ,tek_orderbookdate /*泰克订单预定日期*/ + ,tek_shiptocompanyid /*泰克收货公司编号*/ + ,tek_companylegalname /*泰克公司合法名称*/ + ,statecode /*状态代码*/ + ,tek_ordertype /*泰克订单类型*/ + ,tek_channelid /*泰克渠道编号*/ + ,tek_regionidname /*泰克区域名称*/ + ,salesorderdetailid /*销售订单编号明细*/ + ,Etl_Batch_No /*作业批次号*/ + ,Etl_First_Dt /*最初入库时间*/ + ,Etl_Job /*作业名称*/ + ,Etl_Proc_Dt /*本次入库时间*/ + ,Etl_Tx_Dt /*作业运行时间*/ + ,Src_Sysname /*来源系统*/ + ,Src_Table /*来源表*/ + +) +SELECT + P1.tek_ordernumber /*泰克订单编号*/ + ,P1.uomid /*Uom编号*/ + ,P1.tek_companyname /*泰克公司名称*/ + ,P1.tek_pivotalordernumber /*泰克关键订单号*/ + ,P1.tek_orderrelatedopportunity /*泰克订单相关机会编号*/ + ,P1.tek_shiptocompanyname /*泰克收货公司名称*/ + ,P1.productname /*产品名称*/ + ,P1.tek_productfamilycode /*泰克产品系列代码*/ + ,P1.tek_productgroup3code /*泰克产品系列3代码*/ + ,P1.tek_productgroup3name /*泰克产品系列2代码*/ + ,P1.tek_productgroup2name /*泰克产品系列2名称*/ + ,P1.extendedamount /*金额扩展*/ + ,P1.qty /*数量*/ + ,P1.extendedamount_base /*基础金额扩展*/ + ,P1.priceperunit_base /*基础单价*/ + ,P1.priceperunit /*单价*/ + ,P1.extendedamount_base2 /*基础金额扩展2*/ + ,P1.baseamount_base /*基础金额基础*/ + ,P1.baseamount /*基础金额*/ + ,P1.transactioncurrencyid /*交易货币编号*/ + ,P1.totalamount_base /*基础总金额*/ + ,P1.totalamount /*总金额*/ + ,P1.tek_orderstatus /*泰克订单状态*/ + ,P1.tek_billtocompanyname /*泰克订单公司*/ + ,P1.tek_contactcompanyname /*泰克联系人公司*/ + ,P1.tek_accountmanagerid /*泰克Account管理员ID*/ + ,P1.tek_orderbookdate /*泰克订单预定日期*/ + ,P1.tek_shiptocompanyid /*泰克收货公司编号*/ + ,P1.tek_companylegalname /*泰克公司合法名称*/ + ,P1.statecode /*状态代码*/ + ,P1.tek_ordertype /*泰克订单类型*/ + ,P1.tek_channelid /*泰克渠道编号*/ + ,P1.tek_regionidname /*泰克区域名称*/ + ,P1.salesorderdetailid /*销售订单编号明细*/ + ,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_crm_order_agi_INS P1 +ON CONFLICT ( salesorderdetailid) +DO UPDATE SET + salesorderdetailid=excluded.salesorderdetailid + ,tek_ordernumber=excluded.tek_ordernumber + ,uomid=excluded.uomid + ,tek_companyname=excluded.tek_companyname + ,tek_pivotalordernumber=excluded.tek_pivotalordernumber + ,tek_orderrelatedopportunity=excluded.tek_orderrelatedopportunity + ,tek_shiptocompanyname=excluded.tek_shiptocompanyname + ,productname=excluded.productname + ,tek_productfamilycode=excluded.tek_productfamilycode + ,tek_productgroup3code=excluded.tek_productgroup3code + ,tek_productgroup3name=excluded.tek_productgroup3name + ,tek_productgroup2name=excluded.tek_productgroup2name + ,extendedamount=excluded.extendedamount + ,qty=excluded.qty + ,extendedamount_base=excluded.extendedamount_base + ,priceperunit_base=excluded.priceperunit_base + ,priceperunit=excluded.priceperunit + ,extendedamount_base2=excluded.extendedamount_base2 + ,baseamount_base=excluded.baseamount_base + ,baseamount=excluded.baseamount + ,transactioncurrencyid=excluded.transactioncurrencyid + ,totalamount_base=excluded.totalamount_base + ,totalamount=excluded.totalamount + ,tek_orderstatus=excluded.tek_orderstatus + ,tek_billtocompanyname=excluded.tek_billtocompanyname + ,tek_contactcompanyname=excluded.tek_contactcompanyname + ,tek_accountmanagerid=excluded.tek_accountmanagerid + ,tek_orderbookdate=excluded.tek_orderbookdate + ,tek_shiptocompanyid=excluded.tek_shiptocompanyid + ,tek_companylegalname=excluded.tek_companylegalname + ,statecode=excluded.statecode + ,tek_ordertype=excluded.tek_ordertype + ,tek_channelid=excluded.tek_channelid + ,tek_regionidname=excluded.tek_regionidname + ,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/dev/workflow/TK_Cust/tk_crm/泰克CRM/wf_dag_tk_crm.py b/dev/workflow/TK_Cust/tk_crm/泰克CRM/wf_dag_tk_crm.py index c427ea9..c7120ef 100644 --- a/dev/workflow/TK_Cust/tk_crm/泰克CRM/wf_dag_tk_crm.py +++ b/dev/workflow/TK_Cust/tk_crm/泰克CRM/wf_dag_tk_crm.py @@ -318,6 +318,14 @@ depends_on_past=False, retries=3, dag=dag) +t01_crm_order = SSHOperator( +ssh_hook=sshHook, +task_id='t01_crm_order', +command='/data/airflow/etl/PDM/run_psql.sh {{ ds_nodash }} {{params.my_param}} ', +params={'my_param':"t01_crm_order_agi"}, +depends_on_past=False, +retries=3, +dag=dag) file_CRM_account >> crm_account_4545 file_CRM_contact_ccp >> crm_contact_ccp_5681 file_CCP_mapping_table >> ccp_mapping_table_8972 @@ -343,5 +351,6 @@ cust_contact_info >> cust_all_info t01_crm_raw_leads >> cust_all_info cust_all_info >> cust_enagement_records file_crm_order >> crm_order -crm_order >> task_failed +crm_order >> t01_crm_order +t01_crm_order >> task_failed file_china_city >> task_failed