period NUMBER(6) default 0 not null, pk_member NUMBER(20) not null, pk_parent NUMBER(20) not null, pk_place_parent NUMBER(20), place_dept NUMBER(3), member_code VARCHAR2(30) not null, member_name VARCHAR2(100) not null, customer_type NUMBER(2) not null, phone VARCHAR2(40) not null, pk_grade NUMBER(4) not null, pk_awards NUMBER(4) not null, account_status number(1) default 0 not null, pay_status NUMBER(2) default 0 not null, register_authority number(2) default 0 not null, category number(2) default 0 not null, purchase_type number(2) default 0 not null, purchase_status number(2) default 0 not null, share_status number(2) default 0 not null, income_status number(2) default 0 not null, pk_team_code number(20), pk_center_code number(20), pk_vertex number(20), pk_settle_country number(4) not null, is_real_name NUMBER(1) default 1 not null, is_bus_license NUMBER(1) default 1 not null, is_maker_space NUMBER(1) default 1 not null, pk_country number(4) default 1 not null, store_level NUMBER(2) default 0, is_maker_gift NUMBER(1) default 1, expire_status number(1) default 1 , , pk_rate NUMBER(6) , a_balance NUMBER(17,6) default 0 not null, b_balance NUMBER(17,6) default 0 not null, a_sum_amount NUMBER(17,6) default 0 not null, b_sum_amount NUMBER(17,6) default 0 not null, a_sum_pv NUMBER(17,6) default 0 not null, b_sum_pv NUMBER(17,6) default 0 not null, a_new_amount NUMBER(17,6) default 0 not null, b_new_amount NUMBER(17,6) default 0 not null, a_new_pv NUMBER(17,6) default 0 not null, b_new_pv NUMBER(17,6) default 0 not null, a_sum_real_amount NUMBER(17,6) default 0 not null, b_sum_real_amount NUMBER(17,6) default 0 not null, a_sum_real_pv NUMBER(17,6) default 0 not null, b_sum_real_pv NUMBER(17,6) default 0 not null, rep_a_balance NUMBER(17,6) default 0 not null, rep_b_balance NUMBER(17,6) default 0 not null, rep_a_new_amount NUMBER(17,6) default 0 not null, rep_b_new_amount NUMBER(17,6) default 0 not null, rep_a_new_pv NUMBER(17,6) default 0 not null, rep_b_new_pv NUMBER(17,6) default 0 not null, rep_a_sum_amount NUMBER(17,6) default 0 not null, rep_b_sum_amount NUMBER(17,6) default 0 not null, rep_a_sum_pv NUMBER(17,6) default 0 not null, rep_b_sum_pv NUMBER(17,6) default 0 not null, register_amount NUMBER(17,6) default 0 not null, register_pv NUMBER(17,6) default 0 not null, register_new_amount NUMBER(17,6) default 0 not null, register_new_pv NUMBER(17,6) default 0 not null, upgrade_amount NUMBER(17,6) default 0 not null, upgrade_pv NUMBER(17,6) default 0 not null, upgrade_new_amount NUMBER(17,6) default 0 not null, upgrade_new_pv NUMBER(17,6) default 0 not null, repurchase_amount NUMBER(17,6) default 0 not null, repurchase_pv NUMBER(17,6) default 0 not null, repurchase_new_amount NUMBER(17,6) default 0 not null, repurchase_new_pv NUMBER(17,6) default 0 not null, hi_fun_amount NUMBER(17,6) default 0 not null, hi_fun_pv NUMBER(17,6) default 0 not null, hi_fun_new_amount NUMBER(17,6) default 0 not null, hi_fun_new_pv NUMBER(17,6) default 0 not null, mall_amount NUMBER(17,6) default 0 not null, mall_pv NUMBER(17,6) default 0 not null, mall_new_amount NUMBER(17,6) default 0 not null, mall_new_pv NUMBER(17,6) default 0 not null, REGISTER_Blo_NEW_PV NUMBER(17,6) default 0 not null, UPGRADE_Blo_NEW_PV NUMBER(17,6) default 0 not null, REPURCHASE_Blo_NEW_PV NUMBER(17,6) default 0 not null, HI_FUN_Blo_NEW_PV NUMBER(17,6) default 0 not null, MALL_Blo_NEW_PV NUMBER(17,6) default 0 not null, min_achieve number(17,6) default 0 not null, round NUMBER(6) default 0 not null, second NUMBER(4) default 1 not null select pk_member,pk_parent,member_code,member_name,a.pk_awards,account_status,a.register_authority,customer_type, income_status,pk_settle_country,purchase_status,share_status,is_maker_space, a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade, min_achieve,round,second,bg.grade_value,store_level,expire_status from ( ) a inner join bd_grade bg on a.pk_grade = bg.pk_id net_first_achieve NUMBER(17,6) default 0 not null, net_repurchase_achieve NUMBER(17,6) default 0 not null, r_a_balance NUMBER(17,6) default 0 not null, r_b_balance NUMBER(17,6) default 0 not null, r_a_sum_amount NUMBER(17,6) default 0 not null, r_b_sum_amount NUMBER(17,6) default 0 not null, r_a_sum_pv NUMBER(17,6) default 0 not null, r_b_sum_pv NUMBER(17,6) default 0 not null, r_a_sum_real_amount NUMBER(17,6) default 0 not null, r_b_sum_real_amount NUMBER(17,6) default 0 not null, r_a_sum_real_pv NUMBER(17,6) default 0 not null, r_b_sum_real_pv NUMBER(17,6) default 0 not null, r_rep_a_balance NUMBER(17,6) default 0 not null, r_rep_b_balance NUMBER(17,6) default 0 not null, r_rep_a_sum_amount NUMBER(17,6) default 0 not null, r_rep_b_sum_amount NUMBER(17,6) default 0 not null, r_rep_a_sum_pv NUMBER(17,6) default 0 not null, r_rep_b_sum_pv NUMBER(17,6) default 0 not null CREATE OR REPLACE TRIGGER ${tableName}_TRIG BEFORE INSERT OR UPDATE ON ${tableName} FOR EACH ROW DECLARE v_newVal NUMBER(12) := 0; v_incval NUMBER(12) := 0; BEGIN IF INSERTING AND :new.pk_id IS NULL THEN SELECT ${tableNameSeq}.NEXTVAL INTO v_newVal FROM DUAL; IF v_newVal = 1 THEN SELECT NVL(max(pk_id), 0) INTO v_newVal FROM ${tableName}; v_newVal := v_newVal + 1; LOOP EXIT WHEN v_incval >= v_newVal; SELECT ${tableNameSeq}.nextval INTO v_incval FROM dual; END LOOP; END IF; :new.pk_id := v_newVal; END IF; END; select pk_member,pk_parent,member_code,member_name,pk_awards,account_status, register_authority,customer_type,income_status,pk_settle_country,purchase_status,share_status,is_maker_space, a_balance,b_balance,r_a_balance,r_b_balance,rep_a_balance,rep_b_balance,r_rep_a_balance,r_rep_b_balance, register_amount,register_pv,upgrade_amount,upgrade_pv,repurchase_amount,pk_center_code, repurchase_pv,hi_fun_amount,hi_fun_pv,mall_amount,mall_pv,category,pk_grade, min_achieve,round,second,store_level,expire_status from ${settleTableName} where pay_status = 1 start with pk_member = #{item} connect by pk_member = prior pk_parent insert into ${settleTableName}(pk_member,pk_parent,pk_place_parent,place_dept,member_code,member_name, customer_type,phone,pk_grade,pk_awards,account_status,pay_status,register_authority,category, purchase_type,purchase_status,share_status,income_status,pk_team_code,is_maker_space, pk_center_code,pk_vertex,pk_settle_country,is_real_name,pk_country,pk_rate, store_level,is_maker_gift,expire_status) select cm.pk_id,pk_parent,pk_place_parent,place_dept,member_code,member_name, customer_type,phone,pk_settle_grade,pk_awards,account_status,pay_status,register_authority,category, (case when purchase_status = 0 then 1 else 0 end) purchase_type, purchase_status,share_status,income_status,pk_team_code,is_maker_space,pk_center_code, pk_vertex,pk_settle_country,is_real_name,cm.pk_country,nvl(bc.pk_id,-1) pk_rate, nvl(b.store_level,0) store_level,cm.is_maker_gift,cm.expire_status from cu_member cm left join ( select pk_country,max(pk_id) pk_id from bd_currency where del_flag=0 and pk_country=1 and enable_state=0 and effective_date <=sysdate group by pk_country) bc on cm.pk_settle_country = bc.pk_country left join( select pk_member,store_level from cu_maker_space where del_flag=0 and approve_status=5 and apply_status=5 and store_type=1 ) b on cm.pk_id=b.pk_member where cm.del_flag=0 and cm.system_type=0 insert into ${targetTableName}(period,pk_member,pk_parent,pk_place_parent,place_dept,member_code, member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status, register_authority,category,purchase_type,purchase_status, share_status,income_status,pk_team_code,pk_center_code,pk_vertex, pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country) select #{period} period,pk_member,pk_parent,pk_place_parent,place_dept,member_code, member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status, register_authority,category,purchase_type,purchase_status, share_status,income_status,pk_team_code,pk_center_code,pk_vertex, pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country from ${sourceTableName} create table ${tableName} ( pk_id NUMBER(20) primary key, ) create table ${tableName} ( ) create table ${tableName} ( pk_member NUMBER(20) not null, pk_country number(4) default 1 not null, expire_status number(1) default 1, ) create index ${tableName}_parent on ${tableName}(pk_parent) create index ${tableName}_place on ${tableName}(pk_place_parent,place_dept) create unique index ${tableName}_PK_M on ${tableName}(PK_MEMBER,period) create unique index ${tableName}_PK_M on ${tableName}(PK_MEMBER) update ${settleTableName} set customer_type =2,category =1 where pk_member in #{item.pkMember} merge into ${updateTableName} a using( select pk_member,max(new_level) pk_awards from cu_member_awards where period = #{period} and del_flag=0 group by pk_member) b on (a.pk_member = b.pk_member) when matched then update set a.pk_awards = b.pk_awards insert into ${settleTableName}(pk_member,PK_PARENT,PK_PLACE_PARENT,PLACE_DEPT,MEMBER_CODE,member_name, CUSTOMER_TYPE,PHONE,PK_GRADE,PK_AWARDS,ACCOUNT_STATUS,PAY_STATUS,REGISTER_AUTHORITY, CATEGORY,PURCHASE_TYPE,PURCHASE_STATUS,SHARE_STATUS,INCOME_STATUS,PK_TEAM_CODE,PK_CENTER_CODE, PK_VERTEX,PK_SETTLE_COUNTRY,IS_REAL_NAME,IS_BUS_LICENSE,IS_MAKER_SPACE,PK_COUNTRY,PK_RATE, a_balance,b_balance,A_SUM_AMOUNT,B_SUM_AMOUNT,A_SUM_PV,B_SUM_PV, A_NEW_AMOUNT,B_NEW_AMOUNT,A_NEW_PV,B_NEW_PV,A_SUM_REAL_AMOUNT,B_SUM_REAL_AMOUNT,A_SUM_REAL_PV,B_SUM_REAL_PV, REP_A_BALANCE,REP_B_BALANCE,REP_A_NEW_AMOUNT,REP_B_NEW_AMOUNT,REP_A_NEW_PV,REP_B_NEW_PV,REP_A_SUM_AMOUNT, REP_B_SUM_AMOUNT,REP_A_SUM_PV,REP_B_SUM_PV,REGISTER_AMOUNT,REGISTER_PV,REGISTER_NEW_AMOUNT,REGISTER_NEW_PV, UPGRADE_AMOUNT,UPGRADE_PV,UPGRADE_NEW_AMOUNT,UPGRADE_NEW_PV,REPURCHASE_AMOUNT,REPURCHASE_PV, REPURCHASE_NEW_AMOUNT,REPURCHASE_NEW_PV,HI_FUN_AMOUNT,HI_FUN_PV,HI_FUN_NEW_AMOUNT,HI_FUN_NEW_PV, MALL_AMOUNT,MALL_PV,MALL_NEW_AMOUNT,MALL_NEW_PV,REGISTER_BLO_NEW_PV,UPGRADE_BLO_NEW_PV,REPURCHASE_BLO_NEW_PV, HI_FUN_BLO_NEW_PV,MALL_BLO_NEW_PV,MIN_ACHIEVE,ROUND,SECOND) select ca.pk_member,ca.PK_PARENT,ca.PK_PLACE_PARENT,ca.PLACE_DEPT,ca.MEMBER_CODE,ca.member_name, ca.CUSTOMER_TYPE,ca.PHONE,PK_GRADE,PK_AWARDS,ACCOUNT_STATUS,PAY_STATUS,REGISTER_AUTHORITY, CATEGORY,PURCHASE_TYPE,PURCHASE_STATUS,SHARE_STATUS,INCOME_STATUS,PK_TEAM_CODE,PK_CENTER_CODE, PK_VERTEX,ca.PK_SETTLE_COUNTRY,IS_REAL_NAME,IS_BUS_LICENSE,IS_MAKER_SPACE,ca.PK_COUNTRY,PK_RATE, a_balance,b_balance,A_SUM_AMOUNT,B_SUM_AMOUNT,A_SUM_PV,B_SUM_PV, A_NEW_AMOUNT,B_NEW_AMOUNT,A_NEW_PV,B_NEW_PV,A_SUM_REAL_AMOUNT,B_SUM_REAL_AMOUNT,A_SUM_REAL_PV,B_SUM_REAL_PV, REP_A_BALANCE,REP_B_BALANCE,REP_A_NEW_AMOUNT,REP_B_NEW_AMOUNT,REP_A_NEW_PV,REP_B_NEW_PV,REP_A_SUM_AMOUNT, REP_B_SUM_AMOUNT,REP_A_SUM_PV,REP_B_SUM_PV,REGISTER_AMOUNT,REGISTER_PV,REGISTER_NEW_AMOUNT,REGISTER_NEW_PV, UPGRADE_AMOUNT,UPGRADE_PV,UPGRADE_NEW_AMOUNT,UPGRADE_NEW_PV,REPURCHASE_AMOUNT,REPURCHASE_PV, REPURCHASE_NEW_AMOUNT,REPURCHASE_NEW_PV,HI_FUN_AMOUNT,HI_FUN_PV,HI_FUN_NEW_AMOUNT,HI_FUN_NEW_PV, MALL_AMOUNT,MALL_PV,MALL_NEW_AMOUNT,MALL_NEW_PV,REGISTER_BLO_NEW_PV,UPGRADE_BLO_NEW_PV,REPURCHASE_BLO_NEW_PV, HI_FUN_BLO_NEW_PV,MALL_BLO_NEW_PV,0 MIN_ACHIEVE,0 ROUND,1 SECOND from ${achieveTableName} ct inner join ${treeTableName} ca on ca.pk_member=ct.pk_member and ca.period=ct.period where ca.period=#{period} insert into ${settleTableName}(pk_member,pk_parent,member_code,member_name, customer_type,phone,pk_grade,pk_awards,pk_range_awards,pk_benefit_awards,account_status,pay_status,register_authority,category, purchase_status,income_status,pk_team_code, pk_center_code,pk_vertex,pk_settle_country,is_real_name,pk_country,pk_rate,assess_status,month_member,range_store_status,pay_time) select cm.pk_id,pk_parent,member_code,member_name, customer_type,phone,pk_settle_grade,cm.pk_awards,pk_range_awards,pk_benefit_awards,account_status,pay_status,register_authority,category, purchase_status,income_status,pk_team_code,pk_center_code, pk_vertex,pk_settle_country,is_real_name,cm.pk_country,nvl(bc.pk_id,-1) pk_rate, (case when nvl(ca.assess_status,2)=1 then 0 else nvl(ca.assess_status,2) end) assess_status, (case when pay_time>#{firstDate,jdbcType=DATE} then 0 else 1 end) month_member,nvl(cs.status,0) range_store_status,cm.pay_time from cu_member cm left join ( select pk_country,max(pk_id) pk_id from bd_currency where del_flag=0 and pk_country=1 and enable_state=0 and effective_date <=sysdate group by pk_country) bc on cm.pk_settle_country = bc.pk_country left join cu_range_store cs on cs.pk_member=cm.pk_id and cs.del_flag=0 left join cu_member_assess${year} ca on ca.pk_member=cm.pk_id and ca.period=#{period} and ca.assess_type=0 where cm.del_flag=0 and cm.system_type=1 insert into ${settleTableName}(pk_member,pk_parent,member_code,member_name, customer_type,phone,pk_grade,pk_awards,account_status,pay_status,category, purchase_status,income_status,pk_team_code, pk_center_code,pk_vertex,pk_settle_country,is_real_name, pk_country,pk_rate,pay_time,region_address,system_type,enable_status) select cm.pk_id,pk_parent,member_code,member_name, customer_type,phone,pk_settle_grade,cm.pk_awards,account_status,pay_status,category, purchase_status,income_status,pk_team_code,pk_center_code, pk_vertex,pk_settle_country,is_real_name,cm.pk_country,nvl(bc.pk_id,-1) pk_rate, cm.pay_time,nvl(cr.county,0) country,cm.system_type,cm.is_activate from cu_member cm left join ( select pk_country,max(pk_id) pk_id from bd_currency where del_flag=0 and pk_country=1 and enable_state=0 and effective_date <=sysdate group by pk_country) bc on cm.pk_settle_country = bc.pk_country left join cu_member_retail_region cr on cr.pk_member=cm.pk_id and cr.effective=0 and cr.del_flag=0 where cm.del_flag=0 merge into ${updateTableName} a using(select pk_member,pk_awards from tmp_cu_member_awards) b on (a.pk_member = b.pk_member) when matched then update set a.pk_awards = b.pk_awards where period >= #{period} merge into ${settleTableName} a using ( select pk_member,max(purchase_type) purchase_type from( select pk_id pk_member,2 purchase_type from cu_member where del_flag =0 and category =0 and pay_status = 1 and pay_time >= #{startDate, jdbcType=DATE} and pay_time < #{endDate, jdbcType=DATE} union select pk_member,3 purchase_type from cu_member_awards where del_flag=0 and purchase_status= 0 and creation_time >= #{startDate, jdbcType=DATE} and creation_time < #{endDate, jdbcType=DATE}) group by pk_member ) b on (a.pk_member = b.pk_member) when matched then update set a.purchase_status=0,a.purchase_type=b.purchase_type merge into ${settleTableName} a using( select * from ( select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance, #{item.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv} b_new_pv, #{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount, #{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv, #{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewAmount} register_new_amount,#{item.registerNewPv} register_new_pv, #{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewAmount} upgrade_new_amount,#{item.upgradeNewPv} upgrade_new_pv, #{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewAmount} repurchase_new_amount,#{item.repurchaseNewPv} repurchase_new_pV, #{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewAmount} hi_fun_new_amount,#{item.hiFunNewPv} hi_fun_new_pv, #{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewAmount} mall_new_amount,#{item.mallNewPv} mall_new_pv, #{item.registerBloNewPv} register_blo_new_pv,#{item.upgradeBloNewPv} upgrade_blo_new_pv,#{item.repurchaseBloNewPv} repurchase_blo_new_pv, #{item.hiFunBloNewPv} hi_fun_blo_new_pv,#{item.mallBloNewPv} mall_blo_new_pv, #{item.rABalance} r_a_balance,#{item.rBBalance} r_b_balance,#{item.rRepABalance} r_rep_a_balance, #{item.rRepBBalance} r_rep_b_balance,#{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual ) ) b on (a.pk_member = b.pk_member) when matched then update set a.a_balance = b.a_balance, a.b_balance=b.b_balance,a.a_new_amount=b.a_new_amount, a.b_new_amount=b.b_new_amount,a.a_new_pv=b.a_new_pv,a.b_new_pv=b.b_new_pv,a.rep_a_balance=b.rep_a_balance, a.rep_b_balance=b.rep_b_balance, a.rep_a_new_amount=b.rep_a_new_amount,a.rep_b_new_amount=b.rep_b_new_amount, a.rep_a_new_pv=b.rep_a_new_pv,a.rep_b_new_pv=b.rep_b_new_pv, a.register_amount = b.register_amount,a.register_pv=b.register_pv,a.register_new_amount = b.register_new_amount,a.register_new_pv=b.register_new_pv, a.upgrade_amount=b.upgrade_amount,a.upgrade_pv=b.upgrade_pv,a.upgrade_new_amount=b.upgrade_new_amount,a.upgrade_new_pv=b.upgrade_new_pv, a.repurchase_amount=b.repurchase_amount,a.repurchase_pv=b.repurchase_pv,a.repurchase_new_amount=b.repurchase_new_amount,a.repurchase_new_pv=b.repurchase_new_pv, a.hi_fun_amount=b.hi_fun_amount,a.hi_fun_pv=b.hi_fun_pv,a.hi_fun_new_amount=b.hi_fun_new_amount,a.hi_fun_new_pv=b.hi_fun_new_pv, a.mall_amount=b.mall_amount,a.mall_pv=b.mall_pv,a.mall_new_amount=b.mall_new_amount,a.mall_new_pv=b.mall_new_pv, a.register_blo_new_pv=b.register_blo_new_pv,a.upgrade_blo_new_pv=b.upgrade_blo_new_pv,a.repurchase_blo_new_pv=b.repurchase_blo_new_pv, a.hi_fun_blo_new_pv=b.hi_fun_blo_new_pv,a.mall_blo_new_pv=b.mall_blo_new_pv, a.r_a_balance=b.r_a_balance,a.r_b_balance=b.r_b_balance,a.r_rep_a_balance=b.r_rep_a_balance,a.r_rep_b_balance=b.r_rep_b_balance, a.min_achieve=b.min_achieve,a.round = b.round,a.second=b.second, a.a_sum_amount = a.a_sum_amount + b.a_new_amount, a.b_sum_amount = a.b_sum_amount + b.b_new_amount, a.a_sum_pv = a.a_sum_pv + b.a_new_pv, a.b_sum_pv = a.b_sum_pv + b.b_new_pv, a.rep_a_sum_amount = a.rep_a_sum_amount + b.rep_a_new_amount, a.rep_b_sum_amount = a.rep_b_sum_amount + b.rep_b_new_amount, a.rep_a_sum_pv = a.rep_a_sum_pv + b.rep_a_new_pv, a.rep_b_sum_pv = a.rep_b_sum_pv + b.rep_b_new_pv, a.a_sum_real_amount = a.a_sum_real_amount + b.a_new_amount + b.rep_a_new_amount, a.b_sum_real_amount = a.b_sum_real_amount + b.b_new_amount + b.rep_b_new_amount, a.a_sum_real_pv = a.a_sum_real_pv + b.a_new_pv + b.rep_a_new_pv, a.b_sum_real_pv = a.b_sum_real_pv + b.b_new_pv + b.rep_b_new_pv merge into ${settleTableName} a using( select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance, #{item.aNewAmount} a_new_amount,#{item.bNewAmount} b_new_amount,#{item.aNewPv} a_new_pv,#{item.bNewPv} b_new_pv, #{item.repABalance} rep_a_balance,#{item.repBBalance} rep_b_balance,#{item.repANewAmount} rep_a_new_amount, #{item.repBNewAmount} rep_b_new_amount,#{item.repANewPv} rep_a_new_pv,#{item.repBNewPv} rep_b_new_pv, #{item.registerAmount} register_amount,#{item.registerPv} register_pv,#{item.registerNewPv} register_new_pv, #{item.upgradeAmount} upgrade_amount,#{item.upgradePv} upgrade_pv,#{item.upgradeNewPv} upgrade_new_pv, #{item.repurchaseAmount} repurchase_amount,#{item.repurchasePv} repurchase_pv,#{item.repurchaseNewPv} repurchase_new_pv, #{item.hiFunAmount} hi_fun_amount,#{item.hiFunPv} hi_fun_pv,#{item.hiFunNewPv} hi_fun_new_pv, #{item.mallAmount} mall_amount,#{item.mallPv} mall_pv,#{item.mallNewPv} mall_new_pv, #{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual ) b on (a.pk_member = b.pk_member) when matched then update set a.a_balance = b.a_balance, a.b_balance=b.b_balance,a.a_new_amount=b.a_new_amount, a.b_new_amount=b.b_new_amount,a.a_new_pv=b.a_new_pv,a.b_new_pv=b.b_new_pv,a.rep_a_balance=b.rep_a_balance, a.rep_b_balance=b.rep_b_balance, a.rep_a_new_amount=b.rep_a_new_amount,a.rep_b_new_amount=b.rep_b_new_amount, a.rep_a_new_pv=b.rep_a_new_pv,a.rep_b_new_pv=b.rep_b_new_pv, a.register_amount = b.register_amount,a.register_pv=b.register_pv,a.register_new_pv=b.register_new_pv, a.upgrade_amount=b.upgrade_amount,a.upgrade_pv=b.upgrade_pv,a.upgrade_new_pv=b.upgrade_new_pv, a.repurchase_amount=b.repurchase_amount,a.repurchase_pv=b.repurchase_pv,a.repurchase_new_pv=b.repurchase_new_pv, a.hi_fun_amount=b.hi_fun_amount,a.hi_fun_pv=b.hi_fun_pv,a.hi_fun_new_pv=b.hi_fun_new_pv, a.mall_amount=b.mall_amount,a.mall_pv=b.mall_pv,a.mall_new_pv=b.mall_new_pv, a.min_achieve=b.min_achieve,a.round = b.round,a.second=b.second, a.a_sum_amount = a.a_sum_amount + b.a_new_amount, a.b_sum_amount = a.b_sum_amount + b.b_new_amount, a.a_sum_pv = a.a_sum_pv + b.a_new_pv, a.b_sum_pv = a.b_sum_pv + b.b_new_pv, a.rep_a_sum_amount = a.rep_a_sum_amount + b.rep_a_new_amount, a.rep_b_sum_amount = a.rep_b_sum_amount + b.rep_b_new_amount, a.rep_a_sum_pv = a.rep_a_sum_pv + b.rep_a_new_pv, a.rep_b_sum_pv = a.rep_b_sum_pv + b.rep_b_new_pv, a.a_sum_real_amount = a.a_sum_real_amount + b.a_new_amount + b.rep_a_new_amount, a.b_sum_real_amount = a.b_sum_real_amount + b.b_new_amount + b.rep_b_new_amount, a.a_sum_real_pv = a.a_sum_real_pv + b.a_new_pv + b.rep_a_new_pv, a.b_sum_real_pv = a.b_sum_real_pv + b.b_new_pv + b.rep_b_new_pv merge into ${secondTableName} a using ( select B.pk_id,b.pk_settle_country pk_country,nvl(st.A_BALANCE,0) A_BALANCE,nvl(st.B_BALANCE,0) B_BALANCE, nvl(yt.A_SUM_AMOUNT,0) A_SUM_AMOUNT,nvl(yt.B_SUM_AMOUNT,0) B_SUM_AMOUNT, nvl(yt.A_SUM_PV,0) A_SUM_PV,nvl(yt.b_SUM_PV,0) b_SUM_PV,nvl(st.A_NEW_AMOUNT,0) A_NEW_AMOUNT, nvl(st.B_NEW_AMOUNT,0) B_NEW_AMOUNT,nvl(st.A_NEW_PV,0) A_NEW_PV, nvl(ST.B_NEW_PV,0) B_NEW_PV,nvl(yt.A_SUM_REAL_AMOUNT,0) A_SUM_REAL_AMOUNT, nvl(yt.B_SUM_REAL_AMOUNT,0) B_SUM_REAL_AMOUNT, nvl(yt.A_SUM_REAL_PV,0) A_SUM_REAL_PV, nvl(yt.B_SUM_REAL_PV,0) B_SUM_REAL_PV, nvl(ST.REP_A_BALANCE,0) REP_A_BALANCE,nvl(ST.REP_B_BALANCE,0) REP_B_BALANCE, nvl(ST.REP_A_NEW_AMOUNT,0) REP_A_NEW_AMOUNT, nvl(ST.REP_B_NEW_AMOUNT,0) REP_B_NEW_AMOUNT,nvl(ST.REP_A_NEW_PV,0) REP_A_NEW_PV, nvl(ST.REP_B_NEW_PV,0) REP_B_NEW_PV,nvl(yt.REP_A_SUM_AMOUNT,0) REP_A_SUM_AMOUNT, nvl(yt.REP_B_SUM_AMOUNT,0) REP_B_SUM_AMOUNT,nvl(yt.REP_A_SUM_PV,0) REP_A_SUM_PV, nvl(yt.REP_B_SUM_PV,0) REP_B_SUM_PV, nvl(ST.ROUND,0) ROUND,nvl(nvl(ST.SECOND,yt.second),1) SECOND,nvl(ST.MIN_ACHIEVE,0) MIN_ACHIEVE,b.expire_status from (select t.pk_id,t.pk_settle_country,t.expire_status from cu_member t where t.del_flag = 0 start with t.pk_id = #{pkMember} connect by t.pk_id = prior t.pk_place_parent t.pk_parent union select pk_id,t.pk_settle_country,t.expire_status from cu_member t where t.del_flag= 0 and pk_id in #{item} ) b left join ${secondTableName} st on b.pk_id = st.pk_member left join ${settleTableName} yt on b.pk_id=yt.pk_member ) b on (a.pk_member = b.pk_id) when matched then update set a.a_sum_amount=b.a_sum_amount,a.b_sum_amount=b.b_sum_amount, a.a_sum_pv=b.a_sum_pv,a.b_sum_pv=b.b_sum_pv, a.a_sum_real_amount=b.a_sum_real_amount, a.b_sum_real_amount=b.b_sum_real_amount, a.a_sum_real_pv=b.a_sum_real_pv, a.b_sum_real_pv=b.b_sum_real_pv, a.rep_a_sum_amount=b.rep_a_sum_amount,a.rep_b_sum_amount=b.rep_b_sum_amount, a.rep_a_sum_pv=b.rep_a_sum_pv,a.rep_b_sum_pv=b.rep_b_sum_pv when not matched then insert (pk_member,pk_country,a_balance,b_balance,a_sum_amount,b_sum_amount,a_sum_pv,b_sum_pv, a_new_amount,b_new_amount,a_new_pv,b_new_pv,a_sum_real_amount,b_sum_real_amount, a_sum_real_pv,b_sum_real_pv,rep_a_balance,rep_b_balance,rep_a_new_amount, rep_b_new_amount,rep_a_new_pv,rep_b_new_pv,rep_a_sum_amount,rep_b_sum_amount, rep_a_sum_pv,rep_b_sum_pv,round,second,min_achieve,expire_status) values(b.pk_id,b.pk_country,b.a_balance,b.b_balance,b.a_sum_amount, b.b_sum_amount,b.a_sum_pv,b.b_sum_pv, b.a_new_amount,b.b_new_amount,b.a_new_pv,b.b_new_pv,b.a_sum_real_amount,b.b_sum_real_amount, b.a_sum_real_pv,b.b_sum_real_pv,b.rep_a_balance,b.rep_b_balance,b.rep_a_new_amount, b.rep_b_new_amount,b.rep_a_new_pv,b.rep_b_new_pv,b.rep_a_sum_amount,b.rep_b_sum_amount, b.rep_a_sum_pv,b.rep_b_sum_pv,b.round,b.second,b.min_achieve,b.expire_status) drop table ${tableName} merge into ${settleTableName} a using (select cl.pk_id,cl.pk_member,cl.new_level from cu_member_level cl inner join ( select pk_member,max(pk_id) pk_id from cu_member_level where del_flag=0 and upgrade_time < #{currentDate, jdbcType=DATE} and pk_member in #{item.pkMember} group by pk_member) ce on cl.pk_id = ce.pk_id ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_grade = b.new_level merge into ${targetTableName} a using( select #{period} period,pk_member,pk_parent,pk_place_parent,place_dept,member_code, member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status, register_authority,category,purchase_type,purchase_status, share_status,income_status,pk_team_code,pk_center_code,pk_vertex, pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country from ${sourceTableName} ) b on (a.pk_member=b.pk_member and a.period=b.period) WHEN MATCHED THEN update set a.pk_parent = b.pk_parent,a.pk_place_parent = b.pk_place_parent,a.place_dept = b.place_dept, a.member_code = b.member_code,a.member_name = b.member_name,a.customer_type = b.customer_type,a.phone = b.phone, a.pk_grade = b.pk_grade,a.pk_awards = b.pk_awards,a.account_status = b.account_status,a.pay_status = b.pay_status, a.register_authority = b.register_authority,a.category = b.category,a.purchase_type = b.purchase_type, a.purchase_status = b.purchase_status,a.share_status = b.share_status,a.income_status = b.income_status, a.pk_team_code = b.pk_team_code,a.pk_center_code = b.pk_center_code,a.pk_vertex = b.pk_vertex, a.pk_settle_country = b.pk_settle_country,a.is_real_name = b.is_real_name, a.is_bus_license = b.is_bus_license,a.is_maker_space = b.is_maker_space,a.pk_country = b.pk_country WHEN NOT MATCHED THEN insert (period,pk_member,pk_parent,pk_place_parent,place_dept,member_code, member_name,customer_type,phone,pk_grade,pk_awards,account_status,pay_status, register_authority,category,purchase_type,purchase_status, share_status,income_status,pk_team_code,pk_center_code,pk_vertex, pk_settle_country,is_real_name,is_bus_license,is_maker_space,pk_country) values(b.period,b.pk_member,b.pk_parent,b.pk_place_parent,b.place_dept,b.member_code, b.member_name,b.customer_type,b.phone,b.pk_grade,b.pk_awards,b.account_status,b.pay_status, b.register_authority,b.category,b.purchase_type,b.purchase_status, b.share_status,b.income_status,b.pk_team_code,b.pk_center_code,b.pk_vertex, b.pk_settle_country,b.is_real_name,b.is_bus_license,b.is_maker_space,b.pk_country) merge into ${settleTableName} a using (select pk_member,max(old_level) old_level from cu_member_awards where period = #{period} group by pk_member ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_awards = b.old_level merge into ${rangeTableName} a using ( select pk_member,old_level,ba.pk_awards from( select pk_member,max(old_level) old_level from cu_member_awards where period = #{period} and up_type = 1 and system_type=1 group by pk_member) ca inner join bd_range_awards ba on ca.old_level=ba.pk_id where ba.del_flag=0 ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_awards = b.pk_awards,a.pk_range_awards=b.old_level merge into ${rangeTableName} a using ( select ca.pk_member,max(old_level) pk_awards from cu_member_awards ca inner join ${rangeTableName} cm on ca.pk_member=cm.pk_member where ca.period = #{period} and ca.up_type = 1 and ca.award_type = #{awardType} and cm.pk_awards <= ca.new_level and cm.pk_share_awards <= ca.new_level group by ca.pk_member ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_awards = b.pk_awards a.pk_share_awards=b.pk_awards merge into ${rangeTableName} a using ( select y.pk_member,y.pk_awards from ${rangeTableName} x inner join ( select a.pk_member,a.new_level pk_awards from cu_member_awards a inner join( select pk_member,max(pk_id) pk_id from cu_member_awards where del_flag=0 and up_type=2 and end_validity_date <=#{settleDate, jdbcType=DATE} and award_type = #{awardType} group by pk_member) b on a.pk_id=b.pk_id ) y on x.pk_member=y.pk_member where x.pk_awards < y.pk_awards x.pk_share_awards < y.pk_awards ) b on (a.pk_member = b.pk_member) when matched then update set a.pk_awards = b.pk_awards a.pk_share_awards=b.pk_awards update ${rangeTableName} set pk_awards=(select pk_id from bd_awards where awards_value=0) ,pk_share_awards=(select pk_id from bd_awards where awards_value=0) merge into ${settleTableName} a using( select * from ( select #{item.pkMember} pk_member,#{item.aBalance} a_balance, #{item.bBalance} b_balance, #{item.minAchieve} min_achieve,#{item.round} round,#{item.second} second from dual ) ) b on (a.pk_member = b.pk_member) when matched then update set a.a_balance = b.a_balance, a.b_balance=b.b_balance, a.min_achieve=b.min_achieve,a.round = b.round,a.second=b.second merge into cu_member a using ( select ca.pk_member,max(ca.pk_awards) pk_awards from cu_member_settle_awards ca inner join cu_member cm on cm.pk_id=ca.pk_member where cm.system_type= 0 and period between #{startPeriod} and #{period} group by ca.pk_member ) b on (a.pk_id=b.pk_member) when matched then update set a.pk_awards=b.pk_awards merge into ${settleTableName} a using ( select pk_member,max(pk_awards) pk_awards from cu_member_settle_awards where period between #{startPeriod} and #{period} group by pk_member ) b on (a.pk_member=b.pk_member) when matched then update set a.pk_awards=b.pk_awards merge into cu_member a using ( select pk_member,max(pk_awards) pk_awards from cu_member_settle_awards group by pk_member ) b on (a.pk_id=b.pk_member) when matched then update set a.pk_max_awards=b.pk_awards merge into cu_member a using( select ct.pk_id,ba.pk_id pk_awards from cu_member ct inner join bd_awards ba on ct.pk_settle_country = ba.pk_country where ba.awards_value=0 and ba.del_flag=0 and ct.system_type=0) b on (a.pk_id=b.pk_id) when matched then update set a.pk_awards=b.pk_awards,a.pk_max_awards=b.pk_awards merge into ${settleTableName} a using( select ct.pk_member,ba.pk_id pk_awards from ${settleTableName} ct inner join bd_awards ba on ct.pk_settle_country = ba.pk_country where ba.awards_value=0 and ba.del_flag=0) b on (a.pk_member=b.pk_member) when matched then update set a.pk_awards=b.pk_awards create table ${tableName} ( pk_member NUMBER(20) not null, pk_parent NUMBER(20) not null, member_code VARCHAR2(30) not null, member_name VARCHAR2(100) not null, customer_type NUMBER(2) not null, phone VARCHAR2(40) not null, pk_grade NUMBER(4) not null, pk_awards NUMBER(4) not null, pk_range_awards number(4) default 1 not null, pk_benefit_awards number(6) default 1 not null, account_status number(1) default 0 not null, pay_status NUMBER(2) default 0 not null, pay_time DATE, register_authority number(2) default 0 not null, category number(2) default 0 not null, purchase_status number(2) default 0 not null, income_status number(2) default 0 not null, pk_team_code number(20), pk_center_code number(20), pk_vertex number(20), pk_settle_country number(4) not null, is_real_name NUMBER(1) default 1 not null, pk_country number(4) default 1 not null, pk_rate NUMBER(6) , consume_status number(2) default 1 not null, consume_pv number(17,6) default 0 not null, month_pv number(17,6) default 0 not null, new_pv number(17,6) default 0 not null, new_team_pv number(17,6) default 0 not null, dept_new_team_pv number(17,6) default 0 not null, effective_num number(8) default 0 not null, ev_effective_num number(8) default 0 not null, provide_state number(1) default 1 not null, buy_effective_num number(8) default 0 not null, first_agent number(4) default 0 not null, second_agent number(4) default 0 not null, recommend_num number(8) default 0 not null, team_num number(8) default 0 not null, team_consume_amount number(17,6) default 0 not null, team_consume_pv number(17,6) default 0 not null, team_month_amount number(17,6) default 0 not null, team_month_pv number(17,6) default 0 not null, dept_team_consume_amount number(17,6) default 0 not null, dept_team_consume_pv number(17,6) default 0 not null, dept_team_month_amount number(17,6) default 0 not null, dept_team_month_pv number(17,6) default 0 not null, small_area_pv number(17,6) default 0 not null, assess_status number(2) default 3 not null, month_member number(1) default 1 not null, range_store_status number(1) default 0 not null ) create table ${tableName} ( pk_member NUMBER(20) not null, pk_parent NUMBER(20) not null, pk_range_awards number(4) default 1 not null, buy_effective_num number(8) default 0 not null, first_agent number(4) default 0 not null, second_agent number(4) default 0 not null, new_pv number(17,6) default 0 not null, new_effective_num number(8) default 0 not null, new_team_pv number(17,6) default 0 not null, dept_new_team_pv number(17,6) default 0 not null, assess_status number(2) default 3 not null, consume_status number(2) default 1 not null, month_member number(1) default 1 not null ) create table ${tableName} ( pk_member NUMBER(20) not null, pk_parent NUMBER(20) not null, pk_grade NUMBER(4) not null, pk_awards number(4) default 1 not null, enable_status number(2) default 1 not null, system_type NUMBER(2) default 2 not null, new_box_num number(8) default 0 not null, team_new_box_num number(8) default 0 not null, new_consume_pv number(17,6) default 0 not null, team_new_amount number(17,6) default 0 not null, team_new_pv number(17,6) default 0 not null ) merge into ${rangeTableName} a using( select ct.pk_member,ba.pk_id pk_awards from ${rangeTableName} ct inner join bd_awards ba on ct.pk_settle_country = ba.pk_country where ba.awards_value=0 and ba.del_flag=0) b on (a.pk_member=b.pk_member) when matched then update set a.pk_benefit_awards=b.pk_awards merge into ${rangeTableName} a using ( select pk_member,max(pk_awards) pk_awards from cu_member_settle_awards where period between #{startPeriod} and #{period} group by pk_member ) b on (a.pk_member=b.pk_member) when matched then update set a.pk_benefit_awards=b.pk_awards merge into cu_member a using( select ct.pk_id,ba.pk_id pk_awards from cu_member ct inner join bd_awards ba on ct.pk_settle_country = ba.pk_country where ba.awards_value=0 and ba.del_flag=0 and ct.system_type=1) b on (a.pk_id=b.pk_id) when matched then update set a.pk_benefit_awards=b.pk_awards,a.pk_max_awards=b.pk_awards merge into cu_member a using ( select ca.pk_member,max(ca.pk_awards) pk_awards from cu_member_settle_awards ca inner join cu_member cm on cm.pk_id=ca.pk_member where cm.system_type= 1 and period between #{startPeriod} and #{period} group by ca.pk_member ) b on (a.pk_id=b.pk_member) when matched then update set a.pk_benefit_awards=b.pk_awards create table ${tableName} ( pk_member NUMBER(20) not null, pk_parent NUMBER(20) not null, member_code VARCHAR2(30) not null, member_name VARCHAR2(100) not null, customer_type NUMBER(2) not null, phone VARCHAR2(40) not null, pk_grade NUMBER(4) not null, pk_awards number(4) default 1 not null, pk_share_awards number(4) default 12 not null, enable_status number(2) default 1 not null, account_status number(1) default 0 not null, pay_status NUMBER(2) default 0 not null, pay_time DATE, category number(2) default 0 not null, purchase_status number(2) default 0 not null, income_status number(2) default 0 not null, pk_team_code number(20), pk_center_code number(20), pk_vertex number(20), pk_settle_country number(4) not null, is_real_name NUMBER(1) default 1 not null, pk_country number(4) default 1 not null, system_type NUMBER(2) default 2 not null, pk_rate NUMBER(6) , consume_box_num number(8) default 0 not null, new_box_num number(8) default 0 not null, team_box_num number(8) default 0 not null, month_box_num number(8) default 0 not null, team_new_box_num number(8) default 0 not null, consume_pv number(17,6) default 0 not null, month_consume_pv number(17,6) default 0 not null, new_consume_pv number(17,6) default 0 not null, team_consume_amount number(17,6) default 0 not null, team_consume_pv number(17,6) default 0 not null, team_month_amount number(17,6) default 0 not null, team_month_pv number(17,6) default 0 not null, team_new_amount number(17,6) default 0 not null, team_new_pv number(17,6) default 0 not null, recommend_num number(8) default 0 not null, team_num number(8) default 0 not null, region_address number(8) default 0 not null, big_box_num number(8) default 0 not null, small_box_num number(8) default 0 not null, big_team_pv number(17,6) default 0 not null, small_team_pv number(17,6) default 0 not null ) update ${rangeTableName} set pk_awards=(select pk_id from bd_awards where awards_value=5) ,pk_share_awards=(select pk_id from bd_awards where awards_value=5) where pk_grade = ( select pk_id from bd_grade where grade_value=70 and del_flag=0 ) delete from ${targetTableName} where period=#{period} truncate table ${tableName}