buli
2023-07-14 744f42c5496e656a1f9927740a3b37c0b97a6cba
force-app/main/default/classes/LexConsumableAccountController.cls
@@ -34,11 +34,7 @@
  //初始化
  @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>();
@@ -47,13 +43,8 @@
      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';
@@ -82,9 +73,7 @@
          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();
@@ -110,23 +99,17 @@
          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;
      //销量前十的客户
@@ -161,48 +144,30 @@
      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'))
        );
                AggregateResult[] saleAmountList = LexConsumableAccountSOQL.getAccountTotalSales(thisDatetime, nextDatetime);
                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
        );
                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')));
                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
        );
                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')));
                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
        );
                arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, nextDatetime);
      }
      // Map<String,Decimal> mapTemp = new Map<String,Decimal>();
@@ -233,9 +198,7 @@
        System.debug('thisAmount = ' + String.valueOf(ar.get('thisAmount')));
        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')))
          );
                    topInfo.deList.add(Decimal.valueOf(String.valueOf(ar.get('thisAmount'))));
        }
      }
@@ -285,12 +248,7 @@
      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(), '');
    }
  }
@@ -311,57 +269,40 @@
      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);
      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')));
                    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
        );
                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')));
                    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
        );
                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')));
                    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
        );
                arList = LexConsumableAccountSOQL.getAccountBySales(lastDatetime, nextDatetime);
      }
      //查询客户信息(名称,省,县)
      List<String> accountList = new List<String>();
@@ -369,9 +310,7 @@
        System.debug('thisAmount = ' + String.valueOf(ar.get('thisAmount')));
        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')))
          );
                    topInfo.deList.add(Decimal.valueOf(String.valueOf(ar.get('thisAmount'))));
        }
      }
      System.debug('accountList = ' + accountList);
@@ -410,12 +349,7 @@
      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(), '');
    }
  }
@@ -447,9 +381,7 @@
      List<Account> allSelectAccount = Database.query(soql);
      totalCount = allSelectAccount.size();
      String nullFL = sortOrder.toLowerCase() == 'asc'
        ? 'NULLS FIRST'
        : 'NULLS LAST';
            String nullFL = sortOrder.toLowerCase() == 'asc' ? 'NULLS FIRST': 'NULLS LAST';
      if (String.isNotBlank(sortField)) {
        soql += ' order by ' + sortField + ' ' + sortOrder + ' ' + nullFL;
      }
@@ -459,15 +391,11 @@
      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);
@@ -477,26 +405,14 @@
      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';