zoukankan      html  css  js  c++  java
  • When you are finished renamed the Item number Jobs

    When you are finished renamed the Item number, you must record original Item number, related configure  and so on!

     

    static void Jimmy_ItemRenamedAfterUpdate(Args _args)
    {
        InventTableCompany      ITCompany,delITCompany;
        InventTable             IT,ITUpdateOrg;
        ConfigTable             ConfigTable;
        InventDimCombination    Combination;
        Dialog                  dlg     = new Dialog("updated to comoany Items infomation");
        DialogField             dlgItem = dlg.addField(types::String,'after rename Items:',"Format such as :Items + ',' + Items + ','  + items");
        ListEnumerator          le;
        ItemId                  ItemConfig;
        InventTrans             InventTrans;
        int                     ITCompanys,Combinations,NoConfig;
    
        SysDataBaseLog          SysDataBaseLog;
        Container               Con;
        fieldId                 fieldId;
        List                    datalist;
        ListEnumerator          enumerator;
    ;
        dlgItem.displayHeight(20);
        dlgItem.displayLength(50);
        dlg.doInit();
        if(!dlg.run())
            return ;
    
        le = global::strSplit(dlgItem.value(),',').getEnumerator();
        while (le.moveNext())
        {
    
            ttsbegin;
            ITUpdateOrg = InventTable::find(le.current(),true);
            if(ITUpdateOrg)
            {
                select firstonly SysDataBaseLog
                        where SysDataBaseLog.table == tablenum(InventTable)
                        && SysDataBaseLog.LogType == DatabaseLogType::RenameKey
                        && SysDataBaseLog.Description like ITUpdateOrg.ItemId + '*';
                if(SysDataBaseLog)
                {
                    datalist = SysDataBaseLog.getDataAslist();
                    enumerator = datalist.getEnumerator();
                    while (enumerator.moveNext())
                    {
                        Con          = enumerator.current();
                        fieldId      = conpeek(Con, 1);
                        ITUpdateOrg.OrgItemId = sysdatabaselog.contents2Str(conpeek(Con, 3), fieldId);
                        break;
                    }
                }
                if(!ITUpdateOrg.OrgItemId)
                    ITUpdateOrg.OrgItemId = ITUpdateOrg.ItemId;
                ITUpdateOrg.Update();
            }
            ttscommit;
    
            select firstonly forupdate IT where IT.ItemId == le.current();
            if(IT)
            {
                /*
                select firstonly InventTrans where InventTrans.ItemId == le.current();
                if(InventTrans)
                    throw Error(StrFmt("The ItemId %1 Exists InventTrans,do not rename of Items!",le.current()));
                */
                select firstonly ConfigTable where ConfigTable.ItemId == IT.ItemId;
                //Have Configuration
                ItemConfig = '';
                if(ConfigTable)
                {
                    ConfigTable.clear();
    
                    while select ConfigTable where ConfigTable.ItemId == IT.ItemId
                    {
                        ItemConfig = IT.ItemId + '_' + ConfigTable.ConfigId;
    
                        ttsbegin;
                        select firstonly forupdate ITCompany where ITCompany.ItemId == ItemConfig;
                        if(!ITCompany)
                        {
                            ITCompany.initValue();
                            ITCompany.ItemId        = ItemConfig;
                            ITCompany.Name          = IT.itemName;
                            ITCompany.OrgItemId     = IT.OrgItemId;
                            ITCompany.NormalItemId  = IT.ItemId;
    
                            ITCompany.insert();
                            ITCompanys++;
                        }
                        else
                        {
                            ITCompany.ItemId        = ItemConfig;
                            ITCompany.Name          = IT.itemName;
                            ITCompany.OrgItemId     = IT.OrgItemId;
                            ITCompany.NormalItemId  = IT.ItemId;
                            ITCompany.update();
                        }
                        ttscommit;
    
                        ttsbegin;
                        delete_from delITCompany where delITCompany.ItemId == IT.OrgItemId + '_' + ConfigTable.ConfigId
                            && delITCompany.OrgItemId == '' && delITCompany.NormalItemId == '';
    
                        ttscommit;
    
                        ttsbegin;
                        select firstonly forupdate Combination
                            where Combination.ItemId == ConfigTable.ItemId
                            &&    Combination.ConfigId == ConfigTable.ConfigId;
                        if(Combination)
                        {
                            Combination.ItemIdCompany = ItemConfig;
                            Combination.update();
                            Combinations++;
                        }
                        ttscommit;
                    }
                }
                else //Have not Configuration
                {
                    ttsbegin;
                    select firstonly forupdate ITCompany where ITCompany.ItemId == IT.ItemId;
                    if(!ITCompany)
                    {
                        ITCompany.initValue();
                        ITCompany.ItemId        = IT.ItemId;
                        ITCompany.Name          = IT.itemName;
                        ITCompany.OrgItemId     = IT.OrgItemId;
                        ITCompany.NormalItemId  = IT.ItemId;
                        ITCompany.insert();
                    }
                    else
                    {
                        ITCompany.ItemId        = IT.ItemId;
                        ITCompany.Name          = IT.itemName;
                        ITCompany.OrgItemId     = IT.OrgItemId;
                        ITCompany.NormalItemId  = IT.ItemId;
                        ITCompany.update();
                    }
                    ttscommit;
                    ttsbegin;
                    IT.ItemIdCompany = it.ItemId;
                    IT.update();
                    ttscommit;
                    NoConfig ++;
                    info(IT.ItemId);
    
                }
            }
            ELSE
               info("Not exists Item detail " + le.current());
        }
        info(strfmt("NoConfig : %1,Combinations : %2,ITCompanys : %3",NoConfig,Combinations,ITCompanys));
    }
    
  • 相关阅读:
    dubbo学习(一)认识
    MySQL学习(九)小结
    MySQL学习(八)删除表数据
    MySQL学习(六)change-buffer
    RPC 学习(一)认识
    MySQL学习(五)事务隔离
    MySQL学习(四)死锁及死锁检测
    计算机操作系统 --- 进程和进程的上下文切换
    MySQL 学习(三)事务学习
    消息队列(七)--- RocketMQ延时发送和消息重试(半原创)
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2105403.html
Copyright © 2011-2022 走看看