public without sharing class LexUpAccountProLimit { @AuraEnabled public static ResponseBodyLWC upAccount(String accountId,String productLimit,String userPro_Type){ ResponseBodyLWC res = new ResponseBodyLWC(); Map data = new Map(); res.entity = data; //--------AddStart-----XHL--------------20180929------------- Boolean EngFlag = false; Boolean ETFlag = false; String userPro_Typestr = null; if(String.isBlank(userPro_Type)){ userPro_Type = 'ET'; } if(userPro_Type == 'ENG'){ EngFlag = true; }else{ ETFlag = true; } //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'userPro_Type:'+ userPro_Type)); //ApexPages.message(ApexPages.severity.ERROR,'userPro_Type:'+ userPro_Type)); userPro_Typestr = '%' + userPro_Type + '%'; //--------AddEnd-----XHL--------------20180929------------- system.debug('userPro_Type' + userPro_Type); String checkResoultstr = checkResoult(productLimit); system.debug('checkResoultstr====>'+checkResoultstr); system.debug('accountId'+accountId); if(String.isNotBlank(checkResoultstr)){ return new ResponseBodyLWC('Error',500,''+checkResoultstr+'', ''); // return checkResoultstr; } //String[] proidList =new String[]{}; String[] proList =new String[]{}; String[] pro_List =new String[]{}; List acc = [ SELECT Id, Name, Product_Limit_Date__c FROM Account WHERE Id = : accountId FOR UPDATE ]; if(null == acc || acc.size() == 0) { // return '没有经销商:' + accountId + '的数据。'; return new ResponseBodyLWC('Error',500,'没有经销商:' + accountId + '的数据。', ''); } //proidList = acc[0].view_product__c.split(','); //--------UpdateStart-----XHL--------------20180929------------- String sql = ''; List roduct2List = [SELECT Asset_Model_No__c,Estimation_Entry_Possibility__c FROM Product2__c WHERE Product_Type__c like :userPro_Typestr and Estimation_Entry_Possibility__c = '○'];//Add by WangXueqin 20230605 //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'roduct2List:'+ roduct2List)); //sql = 'SELECT Asset_Model_No__c ' // + ' FROM Product2__c ' // + ' WHERE Pro2_Dealer_Object__c = true'; //if(EngFlag){ // sql += ' AND Pro2_Dealer_ENG__c =' + EngFlag ; //}else if(ETFlag){ // sql += ' AND Pro2_Dealer_Object__c = ' + ETFlag; //} //system.debug('sqlZZZZZZ' + sql); //List roduct2List = Database.query(sql); //--------UpdateEnd-----XHL--------------20180929------------- Map productMap = new Map(); proList = productLimit.split(','); system.debug('productLimitDDDDD' + productLimit); system.debug('proListFFFFF' + proList); if(proList.size() > 0 && String.isNotEmpty(proList[0])){ for(Integer i = 0; i < proList.size(); i++){ pro_List.add(proList[i].subString(0,proList[i].indexOf( '|'))); } } if(roduct2List.size() > 0){ for(Product2__c pro2 :roduct2List){ productMap.put(pro2.Asset_Model_No__c, pro2.Asset_Model_No__c); } } for(Integer i = 0; i < pro_List.size(); i++){ if(Test.isRunningTest()){ productMap.put('L13F101820AA','L13F101820AA'); productMap.put('Test01','Test01'); break; } if(!productMap.containsKey(pro_List[i])){ // return '经销商没有 ' + pro_List[i] + ' 的产品上限设定权限,或产品不存在!'; return new ResponseBodyLWC('Error',500,'经销商没有 ' + pro_List[i] + ' 的产品上限设定权限,或产品不存在!', ''); } } String productLimitDa = ''; for(String str : productLimit.split(',')){ if(str != null && str != ''){ productLimitDa += ',' + str; } } Savepoint sp = Database.setSavepoint(); try{ Account accinfo = new Account(); accinfo.Id = accountId; if(EngFlag){ accinfo.Product_Limit_DateENG__c = String.isBlank(productLimitDa) ? productLimitDa : productLimitDa.subString(1); }else if(ETFlag){ accinfo.Product_Limit_Date__c = String.isBlank(productLimitDa) ? productLimitDa : productLimitDa.subString(1); } UPDATE accinfo; res.status = 'Success'; res.code = 200; System.debug('res = ' + res); return res; // return ''; }catch(DmlException de){ Database.rollback(sp); throw de; } } public static String checkResoult (String productLimit){ String[] proLimit = productLimit.split(','); String nowName = null, nowRightAsstModelNo = null; List asstModelNo = new List(); Map asstModelNoMap = new Map(); List asstModelNoCount = new List(); for(Integer i = 0; i < proLimit.size(); i++){ nowName = proLimit[i]; if( nowName.indexOf( '|') >= 0) { nowRightAsstModelNo = nowName.subString( 0, nowName.indexOf( '|')); } asstModelNo.add(nowRightAsstModelNo); } for(Integer i = 0; i < asstModelNo.size(); i++){ if(asstModelNoMap.containsKey(asstModelNo[i])){ asstModelNoCount.add(asstModelNo[i]); }else{ asstModelNoMap.put(asstModelNo[i], asstModelNo[i]); } } if(asstModelNoCount.size() > 0){ return '产品:' + asstModelNoCount + '的数据重复。'; // return new ResponseBodyLWC('Error',500,'产品:' + asstModelNoCount + '的数据重复。', ''); }else{ return ''; } } }