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