blob: 4f24c9bfff487a3f0ed5e5928c07e6d3cd51876e [file] [log] [blame]
/*
// 配置格式说明:
// name: 转换目标表名
// action: 装换前的操作,truncate 表示先执行truncate 操作,none 表示无任何动作
// desc: 转换规则的描述
// pre_exec: 执行转换前需要执行一次的 sql 语句,格式如 [ "insert into ....", "delete from ...."],
// 可以有多条 sql 语句, 这个操作是在原始数据库执行
// post_exec: 转换完成后需要执行一次的 sql 语句, 格式同 pre_exec 这个操作是在目标数据库执行
// src_sql: 转换原始表查询 sql
// dest_column: 转换目标表 column , src_sql 查询出来的字段与 dest_column 的字段
*/
[
{
"name": "T_DEVICE",
"action": "truncate",
"desc": "设备注册表",
"src_sql": "SELECT T1.DEVICE_ID,T1.DEVICE_NAME,T1.DEVPHY999_ID,T1.DEV999_NO,
T1.PHYTYPE DEVPHYTYPE,T1.DEVTYPE,'' DEVVERNO,T1.CARDSTR,T2.DEVICE_ID,
1 RUNSTATUS,(case when T1.STATE_ID between 1 and 4 then 1
else 2 end) STATUS,
T1.PORTCOUNT,T1.PORTNO,T1.JOINMODE,T1.COMADD,nvl(trim(T1.PORT),0),T1.BAUDRATE,
'' CARDSET,T1.BSHEETVER,T1.LASTTRASERNO,T1.OPERATE_TIME LASTTRANSTIME,
trim(T1.PUSERNO),0 MAXAMT,T1.SUBSYSTEM_ID,T1.AREA,'' DOORLSTVER,T1.DEV_USAGE,
'' OPENDATE,'' CLOSEDATE,'' BATCHNO,'' LASTSAVED,'' REMARK FROM
YKT_CUR.T_PIF_DEVICE T1 LEFT JOIN YKT_CUR.T_PIF_DEVICE T2 ON
T1.FDEV_ID=T2.DEVICE_ID AND T1.DEVPHY999_ID NOT IN ('FFFFFFFF','00000000')
AND T2.STATE_ID<5 ORDER BY T1.DEVICE_ID",
"dest_column": "DEVICEID, DEVICENAME, DEVPHYID,DEVICENO, DEVPHYTYPE, DEVTYPECODE,
DEVVERNO, CARDPHYTYPE, FDEVICEID,RUNSTATUS, STATUS,SVRPORTCNT,
SVRPORTNO,COMMTYPE, IP,PORTNO, BAUDRATE, CARDSET,CARDVERNO,
LASTSEQNO,LASTTRANSTIME,PURSENO, MAXAMT, SYSID,AREACODE,
DOORLSTVER, DEVUSAGE,OPENDATE, CLOSEDATE, BATCHNO,
LASTSAVED, REMARK",
"post_exec": ["update t_syskey set keyval=(select max(deviceid) from t_device)
where keycode='TERMID'",
"update t_device x set devphyid=substr(devphyid,1,4)
|| lpad(to_number(substr(devphyid,5,1), 'XX'),2,'0')
|| lpad(to_number(substr(devphyid,6,1), 'XX'),2,'0')
|| substr(devphyid,7,2)
where x.devphytype=1001 and length(x.devphyid) = 8
and regexp_like(devphyid, '[A-F0-9]{8}')"]
},
{
"name": "T_CUSTOMER",
"action": "truncate",
"desc": "客户信息表",
"src_sql": "select cut_id,stuemp_no,cut_type,fee_type,cut_state,cut_name,area,
classdept_no,classdept_name,s_code,class_no,class_no,1 idtype,man_id,
sex,'' country,nation,'' email,tel,'' mobile, address,'' zipcode,
'' custattr,substr(in_date,1,8),substr(can_time,1,8),
substr(reg_time,1,8) opendate,'' closedate,batch_no,1 openflag,
0 holdcardcnt,1 useflag,0 eaccflag,'' lastsaved
from ykt_cur.t_cif_customer",
"dest_column": "CUSTID, STUEMPNO, CUSTTYPE, FEETYPE, STATUS, CUSTNAME, AREACODE,
DEPTCODE, DEPTFULLNAME, SPECIALTYCODE, CLASSCODE, CLASSNAME,
IDTYPE, IDNO, SEX, COUNTRY, NATION, EMAIL, TEL, MOBILE, ADDR,
ZIPCODE, CUSTATTR, INDATE,OUTDATE, OPENDATE, CLOSEDATE, BATCHNO,
OPENFLAG, HOLDCARDCNT, USEFLAG, EACCFLAG, LASTSAVED",
"post_exec": ["update t_customer a set holdcardcnt=(select count(*) from t_card t
where t.custid=a.custid and t.status=1)",
"update t_syskey set keyval=(select max(custid) from t_customer)
where keycode='CUSTID'"]
},
{
"name": "T_CARD",
"action": "truncate",
"desc": "卡信息表",
"src_sql": "select c.card_id,(case when a.account_id is null then '3000000001'
else '1'||substr(a.account_id,8) end),
type_id,phytype,(case when c1.fee_type>0 then c1.fee_type
else c1.cut_type end) feetype,
c.cosumer_id,c.showid,c.physical_no,c.password,
(case when c.end_time ='' then '20000101'
else c.end_time end) expiredate,
substr(c.state_id,1,1) status,
(case when substr(c.state_id,2,1)='1' then '1'
else '0' end) lossflag,
'' lossdate,'' lossefttime,
(case when substr(c.state_id,3,1)='1' then '1'
else '0' end) frozeflag,
'' frozedate,'0' badflag,'' badtype,'' baddate,'0' lockflag,
'' lockdate,c.begin_time opendate,'' closedate,'' cardverno,'' lastsaved
from YKT_CUR.T_PIF_CARD c left join ykt_cur.t_aif_account a on
c.card_id=a.card_id left join ykt_cur.t_cif_customer c1 on
c.cosumer_id=c1.cut_id order by c.card_id",
"dest_column": "CARDNO, ACCNO, CARDTYPE,CARDPHYTYPE, FEETYPE, CUSTID, SHOWCARDNO,
CARDPHYID, CARDPWD,EXPIREDATE, STATUS, LOSSFLAG, LOSSDATE, LOSSEFTTIME,
FROZEFLAG, FROZEDATE, BADFLAG, BADTYPE, BADDATE, LOCKFLAG, LOCKDATE,
OPENDATE, CLOSEDATE, CARDVERNO, LASTSAVED",
"remark": "导入卡表前更新 begin_time 不能为空",
"post_exec": ["update t_syskey set keyval=(select max(cardno) from t_card)
where keycode='CARDNO'",
"update t_card set cardphytype=20"]
},
{
"name": "T_SHOPACC",
"action": "truncate",
"desc": "商户账户表",
"src_sql": "select (case when a.account_id is null then ''
else '2'||substr(a.account_id,8) end) accno,
s.shop_id shopid,a.cut_name,'2004',a.password,a.current_state,
a.last_bala ydaybal,a.last_bala balance,0,0,'' lasttransdate,
'' lastaccdate, a.open_date,a.close_date from
ykt_cur.t_aif_account a left join ykt_cur.t_cif_shop s on
a.customer_id=s.cut_id where a.act_type=2 and s.shop_id is not null
order by s.shop_id",
"dest_column": "ACCNO, SHOPID, ACCNAME, SUBJNO, ACCPWD, STATUS, YDAYBAL, BALANCE,
AVAILBAL, FROZEBAL, LASTTRANSDATE, LASTACCDATE, OPENDATE, CLOSEDATE",
"post_exec": ["update t_syskey set keyval=(select max(to_number(substr(accno,2)))
from t_shopacc) where keycode='SHOPACCNO'"]
},
{
"desc": "商户信息表",
"name": "T_SHOP",
"action": "truncate",
"src_sql":"select t.shop_id,t.dept_id,'' areacode,'' deptcode,t.shop_name shopname,
(case when t.is_leaf ='1' then 1 else 0 end) shop_type,
(case when t.is_leaf='1' then 1 else 0 end) accflag ,shop_state,
(case when a.account_id is null then '' else '2'||substr(a.account_id,8) end) accno,
t.man,1 idtype,t.man_id,t.tel,'' mobile,'' email,t.address,'' zipcode,
(case when t.is_getfee='1' then 1 else 0 end) boardfeeflag,'' RAKEOFFTYPE,
0, '' DEPOSITAGIO,'' DEPOSITCNT,'' DEPOSITAMT,'' DISCOUNTAMT, '' BANKCODE,
'' BANKACCNO,'' BANKACCNAME,'' OPENDATE,'' CLOSEDATE,'' USEFLAG
from ykt_cur.t_cif_shop t left join ykt_cur.t_aif_account a on
t.cut_id=a.customer_id and t.is_leaf='1'",
"dest_column": "SHOPID, FSHOPID, AREACODE,DEPTCODE, SHOPNAME, SHOPTYPE,ACCFLAG,
STATUS, ACCNO, CONTACTMAN, IDTYPE, IDNO, TEL, MOBILE, EMAIL, ADDR,
ZIPCODE, BOARDFEEFLAG, RAKEOFFTYPE, RAKEOFFRATE, DEPOSITAGIO,DEPOSITCNT,
DEPOSITAMT, DISCOUNTAMT, BANKCODE, BANKACCNO, BANKACCNAME, OPENDATE,
CLOSEDATE, USEFLAG",
"post_exec": ["update t_syskey set keyval=(select max(shopid) from t_shop)
where keycode='SHOPID'",
"update t_shop set areacode=11 where rowid in (
select rowid shop_rowid from t_shop c
start with c.shopid=11
connect by prior c.shopid=c.fshopid)",
"update t_shop set areacode=12 where rowid in (
select rowid shop_rowid from t_shop c
start with c.shopid=43
connect by prior c.shopid=c.fshopid)",
"update t_shop set areacode=13 where rowid in (
select rowid shop_rowid from t_shop c
start with c.shopid=44
connect by prior c.shopid=c.fshopid)"]
},
{
"name": "T_INNERACC",
"action": "truncate",
"desc": "内部账户表",
"src_sql": "select (case when a.account_id='1011' then '1001'
when a.account_id='1021' then '1002'
when a.account_id='1031' then '112101'
when a.account_id='1041' then '112102'
when a.account_id='2051' then '2002'
when a.account_id='2041' then '220299'
when a.account_id='2071' then '2203'
when a.account_id='5011' then '6002'
when a.account_id='5021' then '6005'
when a.account_id='5041' then '6001'
when a.account_id='5071' then '6201'
else a.account_id end) account_id,
a.cut_name, (case when a.account_id='1011' then '1001'
when a.account_id='1021' then '1002'
when a.account_id='1031' then '112101'
when a.account_id='1041' then '112102'
when a.account_id='2051' then '2002'
when a.account_id='2041' then '220299'
when a.account_id='2071' then '2203'
when a.account_id='5011' then '6002'
when a.account_id='5021' then '6005'
when a.account_id='5041' then '6001'
when a.account_id='5071' then '6201'
else a.account_id end) subno,
0 ,last_BALA,(CASE WHEN SUBSTR(A.ACCOUNT_ID,1,1)='1' THEN 1
ELSE 2 END) BALFLAG,
'','' from (select rtrim(a.account_id) account_id,a.last_bala,
a.cut_name from ykt_cur.t_aif_account a where a.act_type=7 and
a.account_id not in ('1122','2031','1071')) a",
"dest_column": "ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE,
LASTACCDATE",
"remark": "导入内部账户,并更新错误的借贷标志",
"post_exec": ["update t_inneracc set balance=abs(balance),ydaybal=abs(ydaybal),
balflag=1 where accno in ('6201','6202')",
"update t_syspara set paraval=:bala_date where paraid=2",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('112201', '易支付充值款', '112201', 0, 0, 1, null, null)",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('112299', '其他应收款', '112299', 0, 0, 1, null, null)",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('2006', '水控存款', '2006', 0, 0, 2, null, null)",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('220201', '批量销户应付款', '220201', 0, 0, 2, null, null)",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('6003', '商户佣金收入', '6003', 0, 0, 2, null, null)",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('6004', '搭伙费收入', '6004', 0, 0, 2, null, null)",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('6006', '退卡盈余收入', '6006', 0, 0, 2, null, null)",
"insert into T_INNERACC (ACCNO, ACCNAME, SUBJNO, YDAYBAL, BALANCE, BALFLAG, LASTTRANSDATE, LASTACCDATE)
values ('6202', '商户提成支出', '6202', 0, 0, 1, null, null)"
]
},
{
"desc": "账户信息表",
"name": "T_ACCOUNT",
"action": "truncate",
"src_sql": "select (case when a.account_id is null then ''
else '1'||substr(a.account_id,8) end) accno,
a.cut_name,'2001',a.password,a.customer_id,a.card_id,a.purse_id,
'' singlemaxamt,'' daycostmaxamt,'' daycostamt,'' cardmaxbal,
a.current_state,(case when a.current_state=1 then c.deposit_fee
else 0 end) foregift,
0 ydaybal,a.last_bala,a.last_freebala,a.last_frozebala,0 subsidybal,
0 subsidyno,a.card_balance,a.consume_count,0 dpscnt,a.consume_count paycnt,
0 termid,'' transtime,0 lastsubsidyamt,0 lastsubsidyno,0 lastbala,
0 lastcardcnt,0 lastdpscnt,0 lastpaycnt,'' lasttransdate,'' lastaccdate,
a.open_date,a.close_date from ykt_cur.t_aif_account a left join
ykt_cur.t_pif_card c on a.card_id=c.card_id where a.act_type=1 and a.current_state<>2",
"dest_column": "ACCNO, ACCNAME, SUBJNO, ACCPWD, CUSTID, CARDNO, PURSENO, SINGLEMAXAMT,
DAYCOSTMAXAMT,DAYCOSTAMT, CARDMAXBAL, STATUS, FOREGIFT, YDAYBAL,
BALANCE, AVAILBAL, FROZEBAL, SUBSIDYBAL, SUBSIDYNO, CARDBAL, CARDCNT,
DPSCNT, PAYCNT, TERMID, TRANSTIME, LASTSUBSIDYAMT, LASTSUBSIDYNO,
LASTCARDBAL, LASTCARDCNT, LASTDPSCNT, LASTPAYCNT, LASTTRANSDATE,
LASTACCDATE, OPENDATE, CLOSEDATE",
"post_exec":["update t_syskey set keyval=(select max(to_number(substr(accno,2)))
from t_account) where keycode='CARDACCNO'",
"update t_account set balance=balance+:diff_bala,
availbal=availbal+:diff_bala where accno='1002246656'"]
},
{
"name": "T_SHOPPOS",
"action": "truncate",
"desc": "商户设备对应表",
"src_sql": "select t1.id,t1.device_id,t2.devphy999_id,t1.shop_id,t1.end_time,
t1.comments,t1.begin_date,t1.end_date,1,'','' from
ykt_cur.t_cif_shop_pos t1,ykt_cur.t_pif_device t2
where t1.device_id=t2.device_id",
"dest_column": "ID, DEVICEID, DEVPHYID, SHOPID, ENDTIME, REMARK, STARTDATE,
ENDDATE, STATUS, OPERCODE, LASTSAVED",
"post_exec" : ["update t_shoppos t set t.devphyid=(select x.devphyid from t_device x
where x.deviceid=t.deviceid)"]
},
{
"name": "T_RPTACCBAL",
"action": "truncate",
"desc": "账户结算表",
"src_sql": "select :tx_date,'2001',(case when a.account_id is null then ''
else '1'||substr(a.account_id,8) end) accno,
2 ,last_bala from ykt_cur.t_aif_account a where act_type=1 and current_state<>2
union all
select :tx_date,'2004',(case when a.account_id is null then ''
else '2'||substr(a.account_id,8) end) accno,
2,last_bala from ykt_cur.t_aif_account a where act_type=2 and current_state<>2
union all
select :tx_date, (case when a.account_id='1011' then '1001'
when a.account_id='1021' then '1002'
when a.account_id='1031' then '112101'
when a.account_id='1041' then '112102'
when a.account_id='2041' then '220299'
when a.account_id='2051' then '2002'
when a.account_id='2071' then '2203'
when a.account_id='5011' then '6002'
when a.account_id='5021' then '6005'
when a.account_id='5041' then '6001'
when a.account_id='5071' then '6201'
else rtrim(a.account_id) end) subno,
(case when a.account_id='1011' then '1001'
when a.account_id='1021' then '1002'
when a.account_id='1031' then '112101'
when a.account_id='1041' then '112102'
when a.account_id='2051' then '2002'
when a.account_id='2041' then '220299'
when a.account_id='2071' then '2203'
when a.account_id='5011' then '6002'
when a.account_id='5021' then '6005'
when a.account_id='5041' then '6001'
when a.account_id='5071' then '6201'
else rtrim(a.account_id) end) account_id,
(case when substr(a.account_id,1,1)='1' then 1 else 2 end) flag,
last_bala from ykt_cur.t_aif_account a where act_type=7 and
a.account_id not in ('1122','2031','1071')",
"dest_column": "ACCDATE, SUBJNO, ACCNO, BALFLAG, BALANCE",
"remark": "导入内部账户报表,并更新错误的借贷标志",
"post_exec": ["update t_rptaccbal set balance=abs(balance),balflag=1
where accno in ('6201','6202')",
// "insert into t_rptaccbal(accdate,subjno,accno,balflag,balance)
// select :tx_date,s.subjno,s.subjno,
// (case when substr(s.subjno,1,1)='1' then 1
// else 2 end) flag1,0
// from t_subject s left join t_rptaccbal b on
// (s.subjno=b.subjno and b.accdate=:tx_date)
// where b.accdate is null",
"insert into t_rptaccbal(accdate,subjno,accno,balflag,balance)
select :tx_date,s.subjno,s.subjno,2,0 from t_rptsubjbal s
where s.subjno in (2001,2004,2006,220201,6004)
and s.accdate=:tx_date",
"insert into t_rptaccbal(accdate,subjno,accno,balflag,balance)
select :tx_date,s.subjno,s.subjno,1,0 from t_rptsubjbal s
where s.subjno in (6202)
and s.accdate=:tx_date",
"update t_rptaccbal set balance=balance+1.93 where accdate=:tx_date
and accno='1002246656'"
]
},
{
"name": "T_RPTSUBJBAL",
"action": "truncate",
"desc": "科目结算表",
"src_sql": "select :tx_date,'2001',2 ,sum(last_bala),0,0,2,sum(last_bala)
from ykt_cur.t_aif_account a where act_type=1 and a.current_state<>2
union all
select :tx_date,'2004',2,sum(last_bala),0,0,2,sum(last_bala)
from ykt_cur.t_aif_account a where act_type=2 and a.current_state<>2
union all select :tx_date,
(case when a.account_id='1011' then '1001'
when a.account_id='1021' then '1002'
when a.account_id='1031' then '112101'
when a.account_id='1041' then '112102'
when a.account_id='2051' then '2002'
when a.account_id='2041' then '220299'
when a.account_id='2071' then '2203'
when a.account_id='5011' then '6002'
when a.account_id='5021' then '6005'
when a.account_id='5041' then '6001'
when a.account_id='5071' then '6201'
else rtrim(a.account_id) end) subno,
(case when substr(a.account_id,1,1)='1' then 1
else 2 end) flag1,
sum(last_bala),0,0,
(case when substr(a.account_id,1,1)='1' then 1
else 2 end) flag2,sum(last_bala) from
ykt_cur.t_aif_account a where act_type=7 and
a.account_id not in ('1122','2031','1071')
group by a.account_id",
"dest_column": "ACCDATE, SUBJNO, BEGINBALFLAG, BEGINBAL, DRAMT, CRAMT,
ENDBALFLAG, ENDBAL",
"post_exec" : ["insert into t_rptsubjbal(ACCDATE, SUBJNO, BEGINBALFLAG, BEGINBAL,
DRAMT, CRAMT, ENDBALFLAG, ENDBAL)
select :tx_date, subjno, 1,
(select nvl(sum(beginbal),0) from t_rptsubjbal t where accdate=:tx_date
and t.subjno like s.subjno || '__'),
0,0,1,
(select nvl(sum(endbal),0) from t_rptsubjbal t where accdate=:tx_date
and t.subjno like s.subjno || '__') from t_subject s
where subjno in ('1121','6202')",
"insert into t_rptsubjbal(ACCDATE, SUBJNO, BEGINBALFLAG, BEGINBAL,
DRAMT, CRAMT, ENDBALFLAG, ENDBAL)
select :tx_date, subjno, 2,
(select nvl(sum(beginbal),0) from t_rptsubjbal t where accdate=:tx_date
and t.subjno like s.subjno || '__'),
0,0,2,
(select nvl(sum(endbal),0) from t_rptsubjbal t where accdate=:tx_date
and t.subjno like s.subjno || '__') from t_subject s
where subjno in ('2202')",
"update t_rptsubjbal set beginbalflag=1,endbalflag=1,
beginbal=abs(beginbal),endbal=abs(endbal) where
subjno in ('6201','6202')",
"update t_rptsubjbal set beginbal=beginbal+:diff_bala, endbal=endbal+:diff_bala
where accdate=:tx_date and subjno='2001'",
"delete from t_servicelog"],
"remark": "生成结算科目数据"
},
{
"name": "T_CARDVER",
"action": "truncate",
"desc": "卡版本号表",
"src_sql": " select t.operate_date, 0, 0, t.volume, t.card_id, x.physical_no, c.stuemp_no,
case when is_ad = 0 then 3
when is_ad = 1 then 6
else 3 end ,
case when t.is_ad = 0 then 1
when t.is_ad = 1 then 2
else 0 end , t.state_id
from t_tif_black_sheet t, t_pif_card x, t_cif_customer c
where t.card_id = x.card_id and x.cosumer_id = c.cut_id",
"dest_column": "ACCDATE, TERMID, TERMSEQNO, CARDVERNO, CARDNO, CARDPHYID, STUEMPNO,
CARDVERTYPE, ADDDELFLAG, STATUS"
}
]