public without sharing class LexUpAccountProLimit {
|
@AuraEnabled
|
public static ResponseBodyLWC upAccount(
|
String accountId,
|
String productLimit,
|
String userPro_Type
|
) {
|
ResponseBodyLWC res = new ResponseBodyLWC();
|
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)) {
|
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>{};
|
String[] pro_List = new List<String>{};
|
List<Account> 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<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 '
|
// + ' 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<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 (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<String> asstModelNo = new List<String>();
|
Map<String, String> asstModelNoMap = new Map<String, String>();
|
List<String> asstModelNoCount = new List<String>();
|
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 '';
|
}
|
}
|
}
|