From 744f42c5496e656a1f9927740a3b37c0b97a6cba Mon Sep 17 00:00:00 2001 From: buli <137736985@qq.com> Date: 星期五, 14 七月 2023 14:34:12 +0800 Subject: [PATCH] lexcommunityupload0714 --- force-app/main/default/classes/LexConsumableAccountController.cls | 77 ++++++++++++++++++++++++++++---------- 1 files changed, 56 insertions(+), 21 deletions(-) diff --git a/force-app/main/default/classes/LexConsumableAccountController.cls b/force-app/main/default/classes/LexConsumableAccountController.cls index 21d519d..19c44c7 100644 --- a/force-app/main/default/classes/LexConsumableAccountController.cls +++ b/force-app/main/default/classes/LexConsumableAccountController.cls @@ -144,32 +144,60 @@ Date thisDatetime2 = Date.newInstance(thisYear, 4, 1); Date nextDatetime = Date.newInstance(nextYear, 4, 1); - AggregateResult[] arList = null; - + //AggregateResult[] arList = null; + AggregateResult[] arList = new List<AggregateResult>(); System.debug('fiscalYear = ' + fiscalYear); if (fiscalYear == 'thisYear') { AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(thisDatetime, nextDatetime); - topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + Object saleAmountObject = saleAmountList[0].get('saleAmount'); + topInfo.saleAmount = saleAmountObject != null ? Decimal.valueOf(String.valueOf(saleAmountObject)) : Decimal.valueOf('0'); + //topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); arList = LexConsumableAccountSOQL.getAccountBySales(thisDatetime, nextDatetime); } else if (fiscalYear == 'lastYear') { AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(lastDatetime, thisDatetime2); - topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + //topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + Object saleAmountObject = saleAmountList[0].get('saleAmount'); + topInfo.saleAmount = saleAmountObject != null ? Decimal.valueOf(String.valueOf(saleAmountObject)) : Decimal.valueOf('0'); System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, thisDatetime2); } else { AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(lastDatetime, nextDatetime); - topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + //topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + Object saleAmountObject = saleAmountList[0].get('saleAmount'); + topInfo.saleAmount = saleAmountObject != null ? Decimal.valueOf(String.valueOf(saleAmountObject)) : Decimal.valueOf('0'); System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, nextDatetime); } + // Map<String,Decimal> mapTemp = new Map<String,Decimal>(); + // for (AggregateResult ar : arList) { + // if(!mapTemp.get(String.valueOf(ar.get('hospitalName')))){ + // mapTemp.put(String.valueOf(ar.get('hospitalName'),Decimal.valueOf(String.valueOf(ar.get('thisAmount'))))); + // }else { + // Decimal decimal = mapTemp.get(String.valueOf(ar.get('hospitalName'))); + // decimal += Decimal.valueOf(String.valueOf(ar.get('thisAmount'))); + // mapTemp.put(String.valueOf(ar.get('hospitalName'),decimal)); + // } + // } + // System.debug('mapTemp = ' + mapTemp); + // //鎺掑簭Decimal浠庡ぇ鍒板皬 + // List<Decimal> decimalList = new List<Decimal>(mapTemp.values()); + // decimalList.sort((a, b) => b.compareTo(a)); + // Map<String, Decimal> sortedMap = new Map<String, Decimal>(); + // for (String key : mapTemp.keySet()) { + // sortedMap.put(key, mapTemp.get(key)); + // } + + // System.debug('Sorted Map: ' + sortedMap); + //鏌ヨ瀹㈡埛淇℃伅锛堝悕绉帮紝鐪侊紝鍘匡級 + System.debug('arList = ' + arList); List<String> accountList = new List<String>(); for (AggregateResult ar : arList) { System.debug('thisAmount = ' + String.valueOf(ar.get('thisAmount'))); if(String.valueOf(ar.get('thisAmount')) != '0.0'){ - accountList.add(String.valueOf(ar.get('hospitalName'))); + accountList.add(String.valueOf(ar.get('Order_ForHospital__c'))); topInfo.deList.add(Decimal.valueOf(String.valueOf(ar.get('thisAmount')))); } } @@ -194,14 +222,14 @@ Town__c, Phone FROM Account - WHERE Name = :accountList + WHERE Id = :accountList ]; List<Account> acListTemp = new List<Account>(); for (String s : accountList) { for (Account a : acList) { - if (s == a.Name) { + if (s == a.id) { acListTemp.add(a); } } @@ -241,7 +269,8 @@ Date thisDatetime2 = Date.newInstance(thisYear, 4, 1); Date nextDatetime = Date.newInstance(nextYear, 4, 1); - AggregateResult[] arList = null; + //AggregateResult[] arList = null; + AggregateResult[] arList = new List<AggregateResult>(); System.debug('fiscalYear = ' + fiscalYear); System.debug('thisYear = ' + thisYear); @@ -249,22 +278,28 @@ if (fiscalYear == 'thisYear') { AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(thisDatetime, nextDatetime); - if(saleAmountList[0].get('saleAmount') != null){ - topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + if (saleAmountList[0].get('saleAmount') != null) { + //topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + Object saleAmountObject = saleAmountList[0].get('saleAmount'); + topInfo.saleAmount = saleAmountObject != null ? Decimal.valueOf(String.valueOf(saleAmountObject)) : Decimal.valueOf('0'); System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); } arList = LexConsumableAccountSOQL.getAccountBySales(thisDatetime, nextDatetime); } else if (fiscalYear == 'lastYear') { AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(lastDatetime, thisDatetime2); - if(saleAmountList[0].get('saleAmount') != null){ - topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + if (saleAmountList[0].get('saleAmount') != null) { + //topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + Object saleAmountObject = saleAmountList[0].get('saleAmount'); + topInfo.saleAmount = saleAmountObject != null ? Decimal.valueOf(String.valueOf(saleAmountObject)) : Decimal.valueOf('0'); System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); } arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, thisDatetime2); } else { AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(lastDatetime, nextDatetime); - if(saleAmountList[0].get('saleAmount') != null){ - topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + if (saleAmountList[0].get('saleAmount') != null) { + //topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); + Object saleAmountObject = saleAmountList[0].get('saleAmount'); + topInfo.saleAmount = saleAmountObject != null ? Decimal.valueOf(String.valueOf(saleAmountObject)) : Decimal.valueOf('0'); System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); } arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, nextDatetime); @@ -273,11 +308,10 @@ List<String> accountList = new List<String>(); for (AggregateResult ar : arList) { System.debug('thisAmount = ' + String.valueOf(ar.get('thisAmount'))); - if(String.valueOf(ar.get('thisAmount')) != '0.0'){ - accountList.add(String.valueOf(ar.get('hospitalName'))); + if (String.valueOf(ar.get('thisAmount')) != '0.0') { + accountList.add(String.valueOf(ar.get('Order_ForHospital__c'))); topInfo.deList.add(Decimal.valueOf(String.valueOf(ar.get('thisAmount')))); } - } System.debug('accountList = ' + accountList); System.debug('topInfo = ' + topInfo); @@ -298,12 +332,12 @@ Town__c, Phone FROM Account - WHERE Name = :accountList + WHERE Id = :accountList ]; List<Account> acListTemp = new List<Account>(); for (String s : accountList) { for (Account a : acList) { - if (s == a.Name) { + if (s == a.id) { acListTemp.add(a); } } @@ -347,8 +381,9 @@ List<Account> allSelectAccount = Database.query(soql); totalCount = allSelectAccount.size(); + String nullFL = sortOrder.toLowerCase() == 'asc' ? 'NULLS FIRST': 'NULLS LAST'; if (String.isNotBlank(sortField)) { - soql += ' order by ' + sortField + ' ' + sortOrder; + soql += ' order by ' + sortField + ' ' + sortOrder + ' ' + nullFL; } soql += ' limit ' + pagesize + ' offset ' + pageToken; System.debug('soql2+++++++ ' + soql); -- Gitblit v1.9.1