DEL_FLAG,
        PK_COUNTRY,
        CREATION_TIME,
        MODIFIED_TIME,
        PK_ID, PK_ASSESS, PK_MEMBER, PK_ORDER, CHANGE_TYPE, TRADE_TIME, CREATOR, MODIFIED
    
    
        merge into cu_member_assess_detail a
        using (select ca.pk_id,ca.pk_member,(case when ca.assess_type=0 then 1 else 3 end) change_type,
        ca.assess_target trade_achieve,ca.pk_creator,ca.pk_country from ${tableName} ca
        where ca.assess_status=2 and ca.period = #{period} and pk_member in
        
            #{item.pkMember}
        
        and assess_type = #{assessType}
        and ca.assess_target <= ca.month_balance+ca.month_add) b
        on (a.pk_assess = b.pk_id and a.pk_member = b.pk_member and a.change_type=b.change_type)
        when not matched then
        insert (pk_assess,pk_member,change_type,trade_achieve, pk_creator,pk_country)
            values(b.pk_id,b.pk_member,b.change_type,b.trade_achieve, b.pk_creator,b.pk_country)
    
    
        insert into cu_member_assess_detail (pk_assess,pk_member,PK_ORDER,change_type,trade_achieve,TRADE_TIME, pk_creator,pk_country)
        select nvl(ca.pk_id,0) PK_ASSESS,so.PK_MEMBER,so.pk_id pk_order,
        0 CHANGE_TYPE,order_achieve TRADE_ACHIEVE,
        pay_time TRADE_TIME,so.PK_MEMBER,so.pk_country from sa_order so
        left join  (select * from ${tableName} where period = #{period} and ASSESS_TYPE=0) ca
        on so.pk_member = ca.pk_member
        where so.del_flag=0 and so.order_status=1 and order_type in(3,12,14,22,26,31)
        and so.order_achieve >0
        and pay_time >=#{startDate, jdbcType=DATE}
        and pay_time < #{endDate, jdbcType=DATE}
        union
        select nvl(ca.pk_id,0) PK_ASSESS,so.PK_MEMBER,so.pk_id pk_order,
               0 CHANGE_TYPE,order_achieve TRADE_ACHIEVE,
               pay_time TRADE_TIME,so.PK_MEMBER,so.pk_country from sa_t_order so
       left join  (select * from ${tableName} where period = #{period} and ASSESS_TYPE=0) ca
                    on so.pk_member = ca.pk_member
        where so.del_flag=0 and so.order_status=1 and order_type in (21)
          and so.order_achieve >0
          and pay_time >=#{startDate, jdbcType=DATE}
          and pay_time < #{endDate, jdbcType=DATE}
        union
        select nvl(ca.pk_id,0) PK_ASSESS,so.PK_MEMBER,so.pk_id pk_order,
               2 CHANGE_TYPE,order_ass_achieve TRADE_ACHIEVE,
               pay_time TRADE_TIME,so.PK_MEMBER,so.pk_country from sa_order so
        left join  (select * from ${tableName} where period = #{period} and ASSESS_TYPE=1) ca
                   on so.pk_member = ca.pk_member
        where so.del_flag=0 and so.order_status=1 and order_type =13
          and pay_time >=#{startDate, jdbcType=DATE}
          and pay_time < #{endDate, jdbcType=DATE}
    
    
        merge into cu_member_assess_detail a
        using (select pk_id,pk_member,(case when assess_type=0 then 1 else 3 end)change_type,
        assess_target trade_achieve,pk_creator,pk_country from ${tableName}
        where assess_status=2 and period = #{period}
        and assess_target <= month_balance+month_add) b
        on (a.pk_assess = b.pk_id and a.pk_member = b.pk_member and a.change_type=b.change_type)
        when matched then
        update set a.trade_achieve = b.trade_achieve
        when not matched then
        insert (pk_assess,pk_member,change_type,trade_achieve, pk_creator,pk_country)
            values(b.pk_id,b.pk_member,b.change_type,b.trade_achieve, b.pk_creator,b.pk_country)
    
    
        merge into cu_member_assess_detail a
        using(
        
            select #{item.changeType} change_type,#{item.pkMember} pk_member,#{item.pkAssess} pk_assess from dual
        
        )b on (a.pk_assess=b.pk_assess and a.pk_member=b.pk_member and a.change_type=b.change_type)
        when matched then
        update set a.del_flag=1
    
    
        DELETE  FROM  cu_member_assess_detail  WHERE  pk_assess  IN  (
        SELECT  pk_id  FROM  ${tableName}  WHERE  period= #{period})