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 List{}; String[] pro_List = new List{}; 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 ''; } } }