付煜
2022-03-21 84b24801b8e0e071589ea57b29e64f73e13b1c0c
SWAG-CCEB67【委托】【重要】保有设备所属变更审批报错
1个文件已修改
58 ■■■■■ 已修改文件
force-app/main/default/classes/AssetModifyBelongsChangeHandler.cls 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
force-app/main/default/classes/AssetModifyBelongsChangeHandler.cls
@@ -41,11 +41,12 @@
        // 合同询价编码   维修合同/保有设备集合
        Map<String,List<Maintenance_Contract_Asset__c>> OppAssMap = new Map<String,List<Maintenance_Contract_Asset__c>>();
        // 目标客户  合同询价编码set
        Map <string, Set<Maintenance_Contract_Asset__c>> vMOppMap = new  map <string, Set<Maintenance_Contract_Asset__c>>();
        Map <string, Set<Maintenance_Contract__c>> vMOppMap = new  map <string, Set<Maintenance_Contract__c>>();
        // Map <string, Set<Maintenance_Contract_Asset__c>> vMOppMap = new  map <string, Set<Maintenance_Contract_Asset__c>>();
        //add by rentx LJPH-C493WW  
        //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  start
        List<Maintenance_Contract__c> MainCList=new List<Maintenance_Contract__c>();
        Map<String,Maintenance_Contract__c> MainCMap=new Map<String,Maintenance_Contract__c>();
        //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  end
        if(idList != null && idList.size() > 0){
            
@@ -152,11 +153,18 @@
                        //update by rentx LJPH-C493WW  start
                        //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  start
                        if (!vMOppMap.containsKey(accountIdStr)) {
                            vMOppMap.put(accountIdStr, new Set<Maintenance_Contract_Asset__c>());
                            vMOppMap.put(accountIdStr, new Set<Maintenance_Contract__c>());
                            // vMOppMap.put(accountIdStr, new Set<Maintenance_Contract_Asset__c>());
                        }
                        vMOppMap.get(accountIdStr).add(maAssetMap.get(asset.Id));
                        Maintenance_Contract__c maintenancecontc=new Maintenance_Contract__c();
                        maintenancecontc.Id = maAssetMap.get(asset.Id).Maintenance_Contract__c;
                        maintenancecontc.Add_Number__c = maAssetMap.get(asset.Id).Maintenance_Contract__r.Add_Number__c;
                        maintenancecontc.Management_Code__c = maAssetMap.get(asset.Id).Maintenance_Contract__r.Management_Code__c;
                        vMOppMap.get(accountIdStr).add(maintenancecontc);
                        // vMOppMap.get(accountIdStr).add(maAssetMap.get(asset.Id));
                        //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  end
                        //update by rentx LJPH-C493WW  end
                        System.debug('maAssetMap.get(asset.Id)=====:'+maAssetMap.get(asset.Id));
                    }
                }
                System.debug('154::: vMOppMap '+vMOppMap);
@@ -169,16 +177,20 @@
                if (vMOppMap.size() > 0) {
                    for (String str : vMOppMap.keySet()) {
                        //update by rentx LJPH-C493WW  start
                        Set<Maintenance_Contract_Asset__c> vset = vMOppMap.get(str);
                        Set<Maintenance_Contract__c> vset = vMOppMap.get(str);
                        //Set<Maintenance_Contract_Asset__c> vset = vMOppMap.get(str);
                        //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  start
                        for (Maintenance_Contract_Asset__c mcodes : vset) {
                        for (Maintenance_Contract__c mcodes : vset) {
                        //for (Maintenance_Contract_Asset__c mcodes : vset) {
                            Maintenance_Contract__c vmc = new Maintenance_Contract__c();
                            vmc.Name = accMap.get(str).Parent.Parent.Name + '多年保修';
                            vmc.Status__c = '契約';
                            system.debug('mcodes==='+mcodes);
                            // List<String> mcodestrList= mcodes.split('@');
                            String mcode =mcodes.Maintenance_Contract__r.Management_Code__c;
                            String mcid=(String)mcodes.Maintenance_Contract__c;
                            // String mcode =mcodes.Maintenance_Contract__r.Management_Code__c;
                            // String mcid=(String)mcodes.Maintenance_Contract__c;
                            String mcode =mcodes.Management_Code__c;
                            String mcid=(String)mcodes.Id;
                            // String addNumber =mcodestrList[1];
                            Map<String,Decimal> addnumMap = new Map<String,Decimal>();
                            if (String.isNotBlank(mcode) && mcode.substring(mcode.length()-3,mcode.length()-2) == '-' ) {
@@ -186,17 +198,24 @@
                                Integer count = Integer.valueOf(mcode.substring(mcode.length()-2,mcode.length()));
                                
                                vmc.Management_CodeVM__c = startstr + String.valueOf(count +1).leftPad(2,'0');
                                mcodes.Maintenance_Contract__r.Add_Number__c=count +1;
                                addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
                                // mcodes.Maintenance_Contract__r.Add_Number__c=count +1;
                                // addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
                                mcodes.Add_Number__c=count +1;
                                addnumMap.put(mcid,mcodes.Add_Number__c);
                            }else{
                                    system.debug('mcodes.Maintenance_Contract__r.Add_Number__c'+mcodes.Maintenance_Contract__r.Add_Number__c);
                                    if(mcodes.Maintenance_Contract__r.Add_Number__c==null||mcodes.Maintenance_Contract__r.Add_Number__c==0){
                                    system.debug('mcodes.Maintenance_Contract__r.Add_Number__c'+mcodes.Add_Number__c);
                                    if(mcodes.Add_Number__c==null||mcodes.Add_Number__c==0){
                                    // if(mcodes.Maintenance_Contract__r.Add_Number__c==null||mcodes.Maintenance_Contract__r.Add_Number__c==0){
                                        vmc.Management_CodeVM__c = mcode + '-01';
                                        mcodes.Maintenance_Contract__r.Add_Number__c=1;
                                        addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
                                        // mcodes.Maintenance_Contract__r.Add_Number__c=1;
                                        // addnumMap.put(mcid,mcodes.Maintenance_Contract__r.Add_Number__c);
                                        mcodes.Add_Number__c=1;
                                        addnumMap.put(mcid,mcodes.Add_Number__c);
                                    }else{
                                        Decimal addnum = mcodes.Maintenance_Contract__r.Add_Number__c+1;
                                        if(mcodes.Maintenance_Contract__r.Add_Number__c<=9){
                                        // Decimal addnum = mcodes.Maintenance_Contract__r.Add_Number__c+1;
                                        // if(mcodes.Maintenance_Contract__r.Add_Number__c<=9){
                                        Decimal addnum = mcodes.Add_Number__c+1;
                                        if(mcodes.Add_Number__c<=9){
                                            vmc.Management_CodeVM__c = mcode + '-0'+addnum;
                                        }else{
                                            vmc.Management_CodeVM__c = mcode + '-'+addnum;
@@ -231,7 +250,7 @@
                                //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  start
                                mctrobject.Id=mac.Maintenance_Contract__c;
                                mctrobject.Add_Number__c=addnumMap.get(mac.Maintenance_Contract__c);
                                MainCList.add(mctrobject);
                                MainCMap.put(mctrobject.Id,mctrobject);
                                system.debug('mctrobject.Id===='+mctrobject.Id);
                                system.debug('mctrobject.Add_Number__c======='+mctrobject.Add_Number__c);
                                //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  end
@@ -316,8 +335,9 @@
            update assetList;
        }
        //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  start
        if(MainCList != null && MainCList.size() > 0){
            update MainCList;
        if(MainCMap != null && MainCMap.size() > 0){
            List<Maintenance_Contract__c> mainList=MainCMap.values();
            update mainList;
        }
        //LJPH-C493WW  fy    【委托】 【多年保合同】多年保设备转移造成的合同问题  end
    }