| | |
| | | |
| | | //初始化 |
| | | @AuraEnabled |
| | | public static ResponseBodyLWC init(Integer pageSizeLWC, Integer pageTokenLWC, String fiscalYear) { |
| | | public static ResponseBodyLWC init( |
| | | Integer pageSizeLWC, |
| | | Integer pageTokenLWC, |
| | | String fiscalYear |
| | | ) { |
| | | try { |
| | | ResponseBodyLWC res = new ResponseBodyLWC(); |
| | | Map<String, object> data = new Map<String, object>(); |
| | |
| | | pageSize = pageSizeLWC; |
| | | pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC; |
| | | |
| | | User Useracc = [SELECT accountid, UserPro_Type__c FROM user WHERE id = :UserInfo.getUserId()]; |
| | | accountId = [SELECT id, Name FROM account WHERE id = :Useracc.accountid].id; |
| | | User Useracc = [ |
| | | SELECT accountid, UserPro_Type__c |
| | | FROM user |
| | | WHERE id = :UserInfo.getUserId() |
| | | ]; |
| | | accountId = [SELECT id, Name FROM account WHERE id = :Useracc.accountid] |
| | | .id; |
| | | agencyProType = Useracc.UserPro_Type__c; |
| | | if (String.isBlank(Useracc.UserPro_Type__c)) { |
| | | agencyProType = 'ET'; |
| | |
| | | id IN ( |
| | | SELECT Hospital__c |
| | | FROM Agency_Hospital_Link__c |
| | | WHERE Agency__c = :accountId AND Hosptial_Type__c LIKE :agencyProTypestr |
| | | WHERE |
| | | Agency__c = :accountId |
| | | AND Hosptial_Type__c LIKE :agencyProTypestr |
| | | ) |
| | | ]; |
| | | totalCount = allSelectAccount.size(); |
| | |
| | | id IN ( |
| | | SELECT Hospital__c |
| | | FROM Agency_Hospital_Link__c |
| | | WHERE Agency__c = :accountId AND Hosptial_Type__c LIKE :agencyProTypestr |
| | | WHERE |
| | | Agency__c = :accountId |
| | | AND Hosptial_Type__c LIKE :agencyProTypestr |
| | | ) |
| | | LIMIT :pageSize |
| | | ]; |
| | | System.debug('selectAccList = ' + selectAccList); |
| | | PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) |
| | | ? pageToken + pageSize |
| | | : null; |
| | | paginatedAccounts.recordStart = pageToken + 1; |
| | | paginatedAccounts.pageNumber = pageToken / pageSize + 1; |
| | | Integer recordEnd = pageSize * paginatedAccounts.pageNumber; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd |
| | | ? recordEnd |
| | | : totalCount; |
| | | paginatedAccounts.totalRecords = totalCount; |
| | | |
| | | //销量前十的客户 |
| | |
| | | |
| | | System.debug('fiscalYear = ' + fiscalYear); |
| | | if (fiscalYear == 'thisYear') { |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(thisDatetime, nextDatetime); |
| | | topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales( |
| | | thisDatetime, |
| | | nextDatetime |
| | | ); |
| | | topInfo.saleAmount = Decimal.valueOf( |
| | | String.valueOf(saleAmountList[0].get('saleAmount')) |
| | | ); |
| | | System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); |
| | | arList = LexConsumableAccountSOQL.getAccountBySales(thisDatetime, nextDatetime); |
| | | 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'))); |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales( |
| | | lastDatetime, |
| | | thisDatetime2 |
| | | ); |
| | | topInfo.saleAmount = Decimal.valueOf( |
| | | String.valueOf(saleAmountList[0].get('saleAmount')) |
| | | ); |
| | | System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); |
| | | arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, thisDatetime2); |
| | | arList = LexConsumableAccountSOQL.getAccountBySales( |
| | | lastDatetime, |
| | | thisDatetime2 |
| | | ); |
| | | } else { |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(lastDatetime, nextDatetime); |
| | | topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales( |
| | | lastDatetime, |
| | | nextDatetime |
| | | ); |
| | | topInfo.saleAmount = Decimal.valueOf( |
| | | String.valueOf(saleAmountList[0].get('saleAmount')) |
| | | ); |
| | | System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); |
| | | arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, nextDatetime); |
| | | 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'))); |
| | | topInfo.deList.add(Decimal.valueOf(String.valueOf(ar.get('thisAmount')))); |
| | | accountList.add(String.valueOf(ar.get('Order_ForHospital__c'))); |
| | | topInfo.deList.add( |
| | | Decimal.valueOf(String.valueOf(ar.get('thisAmount'))) |
| | | ); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | res.msg = ''; |
| | | return res; |
| | | } catch (Exception e) { |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getLineNumber(), ''); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | e.getMessage() + e.getLineNumber(), |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | |
| | | System.debug('lastYear = ' + lastYear); |
| | | |
| | | if (fiscalYear == 'thisYear') { |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(thisDatetime, nextDatetime); |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales( |
| | | thisDatetime, |
| | | nextDatetime |
| | | ); |
| | | if(saleAmountList[0].get('saleAmount') != null){ |
| | | topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); |
| | | topInfo.saleAmount = Decimal.valueOf( |
| | | String.valueOf(saleAmountList[0].get('saleAmount')) |
| | | ); |
| | | System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); |
| | | } |
| | | arList = LexConsumableAccountSOQL.getAccountBySales(thisDatetime, nextDatetime); |
| | | arList = LexConsumableAccountSOQL.getAccountBySales( |
| | | thisDatetime, |
| | | nextDatetime |
| | | ); |
| | | } else if (fiscalYear == 'lastYear') { |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(lastDatetime, thisDatetime2); |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales( |
| | | lastDatetime, |
| | | thisDatetime2 |
| | | ); |
| | | if(saleAmountList[0].get('saleAmount') != null){ |
| | | topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); |
| | | topInfo.saleAmount = Decimal.valueOf( |
| | | String.valueOf(saleAmountList[0].get('saleAmount')) |
| | | ); |
| | | System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); |
| | | } |
| | | arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, thisDatetime2); |
| | | arList = LexConsumableAccountSOQL.getAccountBySales( |
| | | lastDatetime, |
| | | thisDatetime2 |
| | | ); |
| | | } else { |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(lastDatetime, nextDatetime); |
| | | AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales( |
| | | lastDatetime, |
| | | nextDatetime |
| | | ); |
| | | if(saleAmountList[0].get('saleAmount') != null){ |
| | | topInfo.saleAmount = Decimal.valueOf(String.valueOf(saleAmountList[0].get('saleAmount'))); |
| | | topInfo.saleAmount = Decimal.valueOf( |
| | | String.valueOf(saleAmountList[0].get('saleAmount')) |
| | | ); |
| | | System.debug('topInfo.saleAmount = ' + topInfo.saleAmount); |
| | | } |
| | | arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, nextDatetime); |
| | | arList = LexConsumableAccountSOQL.getAccountBySales( |
| | | lastDatetime, |
| | | nextDatetime |
| | | ); |
| | | } |
| | | //查询客户信息(名称,省,县) |
| | | 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'))); |
| | | topInfo.deList.add(Decimal.valueOf(String.valueOf(ar.get('thisAmount')))); |
| | | 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); |
| | |
| | | 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); |
| | | } |
| | | } |
| | |
| | | res.msg = ''; |
| | | return res; |
| | | } catch (Exception e) { |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage() + e.getLineNumber(), ''); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | e.getMessage() + e.getLineNumber(), |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | |
| | | 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); |
| | |
| | | System.debug('selectAccList = ' + selectAccList); |
| | | |
| | | PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; |
| | | paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) |
| | | ? pageToken + pageSize |
| | | : null; |
| | | paginatedAccounts.recordStart = pageToken + 1; |
| | | paginatedAccounts.pageNumber = pageToken / pageSize + 1; |
| | | Integer recordEnd = pageSize * paginatedAccounts.pageNumber; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; |
| | | paginatedAccounts.recordEnd = totalCount >= recordEnd |
| | | ? recordEnd |
| | | : totalCount; |
| | | paginatedAccounts.totalRecords = totalCount; |
| | | |
| | | data.put('pageRecords', selectAccList); |
| | |
| | | res.msg = ''; |
| | | return res; |
| | | } catch (Exception e) { |
| | | return new ResponseBodyLWC('Error', 500, e.getMessage() + ' ' + e.getLineNumber(), ''); |
| | | return new ResponseBodyLWC( |
| | | 'Error', |
| | | 500, |
| | | e.getMessage() + ' ' + e.getLineNumber(), |
| | | '' |
| | | ); |
| | | } |
| | | } |
| | | |
| | | //sql文作成 |
| | | private static String makeSoql(String viewName, String accountId) { |
| | | Date st = Date.today().addDays(-7).toStartOfWeek(); |
| | | lastweekstart = Datetime.newInstance(st.year(), st.month(), st.day(), 8, 0, 0); |
| | | lastweekstart = Datetime.newInstance( |
| | | st.year(), |
| | | st.month(), |
| | | st.day(), |
| | | 8, |
| | | 0, |
| | | 0 |
| | | ); |
| | | lastweekend = lastweekstart.addDays(7); |
| | | String soql = 'SELECT id,Name,State_Master__c,Salesdepartment_HP__c,CreatedDate,Is_Active__c,RecordType.Name,State_Master__r.Name,City_Master__r.Name'; |
| | | soql += ' ,Grade__c,OCM_Category__c,City_Master__c,Town__c,Phone FROM Account'; |