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