public with sharing class buttonAssetCtl {
    @AuraEnabled
    public static InitData init(String recordId){
        InitData res = new initData();
        try{
            Asset report =  [SELECT Order_No__c,SerialNumber,Asset_day__c,Posting_Date__c,InstallDate,Asset_Owner__c,AssetMark__c,Id,NoPartRiskDate_F__c,Product_ID__c,AccountId,HP_Id__c,Hospital__c,Hospital__r.Id,Department_Class__c,Department_Class__r.Id,Name FROM Asset WHERE Id =: recordId LIMIT 1];
            System.debug(LoggingLevel.INFO, '*** opp: ' + report);

            res.AssetMarkC = report.AssetMark__c;
            res.AssetOwnerC = report.Asset_Owner__c;
            res.InstallDate = report.InstallDate;
            res.PostingDateC = report.Posting_Date__c;
            res.AssetDayC = report.Asset_day__c;
            res.SerialNumber = report.SerialNumber;
            res.OrderNoC = report.Order_No__c;


            res.Id = report.Id;
            res.Name = report.Name;
            res.NoPartRiskDateFC = report.NoPartRiskDate_F__c;
            res.ProductIDC = report.Product_ID__c;
            res.AccountId = report.AccountId;
            res.HPIdC = report.HP_Id__c;
            res.HospitalC = report.Hospital__c;
            res.DepartmentClassC = report.Department_Class__c;
            res.HospitalId = report.Hospital__r.Id;
            res.DepartmentClassId = report.Department_Class__r.Id;

            res.userID = UserInfo.getUserId();

            res.day = Date.today();
            res.day1 = Date.today().addDays(-10);
            res.day2 = Date.today().addDays(+365);
         res.notCreateRepairFromAssetButton=   System.Label.notCreateRepairFromAssetButton;
         res.notCreateRepairFromAssetButton02=   System.Label.notCreateRepairFromAssetButton02;

            System.debug(LoggingLevel.INFO, '*** res: ' + res);
            if (System.Test.isrunningTest()) {
                throw new ControllerUtil.myException('test。');
            }
        }catch(Exception e){
            System.debug(LoggingLevel.INFO, '*** e: ' + e);
        }
        return res;
    }   

    // 查找UserName
    @AuraEnabled
    public static List<User> initUserName(String userId){
        List<User> res = new List<User>();
        try{
            res = [SELECT Id,name,RepairSalesPoint_Province_China__c,Employee_No__c FROM User WHERE Id=: userId ];
            if (System.Test.isrunningTest()) {
                throw new ControllerUtil.myException('test。');
            }
        }catch(Exception e){
            System.debug(LoggingLevel.INFO, '*** e: ' + e);
        }
        return res;
    }
    
     //查询Account修理画面“修理品返送地”问题调查-后续 
     @AuraEnabled
     public static List<Account> selecctAccountBySegmentId(String segmentId){
         try {
           List<Account> accounts = [SELECT id,ParentId,Parent.RecordTypeId, Parent.Parent.FSE_GI_Main_Leader__r.Work_Location__c,Parent.Parent.FSE_SP_Main_Leader__r.Work_Location__c FROM Account WHERE Id=:segmentId];
           return accounts;
           
       } catch (Exception e) {
             throw new AuraHandledException(e.getMessage());
          }
      }

      //查询Product2
    @AuraEnabled
    public static List<Product2> selecctProduct2ById(String Id){
        try {
          List<Product2> accounts = [SELECT id,Name,Can_Repair__c from Product2 where ID=:Id];
          return accounts;
          
      } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
         }
     }

     //查询QIS_Report__c
    @AuraEnabled
    public static List<QIS_Report__c> selecctQISReportByFomatToday(String AssetId,Date fomatToday){
        try {
          List<QIS_Report__c> accounts = [SELECT id,Name,QIS_Submit_day__c from QIS_Report__c where nonyushohin__c=:AssetId and QIS_Submit_day__c != null and QIS_Submit_day__c >=:fomatToday];
          return accounts;
          
      } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
         }
     }

     //查询Repair__c
    @AuraEnabled
    public static List<Repair__c> selecctRepairByFomatToday(String AssetId, Date fomatToday){
        try {
          List<Repair__c> accounts = [SELECT Name from Repair__c where Delivered_Product__c =:AssetId and Status2__c!='00.删除' and Status2__c!='00.取消' and FSE_ApplyForRepair_Day__c >=: fomatToday order by FSE_ApplyForRepair_Day__c desc limit 1];
          return accounts;
          
      } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
         }
     }

     @AuraEnabled
     public static List<QIS_Report__c> selecctQISReportrByFomatToday(String AssetId, Date fomatToday){
         try {
           List<QIS_Report__c> accounts = [SELECT id,QIS_Submit_day__c from QIS_Report__c where nonyushohin__c=:AssetId and QIS_Submit_day__c != null and QIS_Submit_day__c >=: fomatToday];
           return accounts;
           
       } catch (Exception e) {
             throw new AuraHandledException(e.getMessage());
          }
      }

         //查询Repair__c
    @AuraEnabled
    public static List<Account> selecctAccountByAccountId(String AccountId){
        try {
          List<Account> accounts = [SELECT id,Parent.RecordTypeId, Parent.RecordType_DeveloperName__c ,Parent.Parent.FSE_GI_Main_Leader__c, Parent.Parent.FSE_GI_Main_Leader__r.Name,Parent.Parent.FSE_SP_Main_Leader__r.Name,Parent.Parent.FSE_SP_Main_Leader__c,Parent.Parent.FSE_GI_Main_Leader__r.Work_Location__c,Parent.Parent.FSE_SP_Main_Leader__r.Work_Location__c FROM Account WHERE ID=: AccountId];
          return accounts;
          
      } catch (Exception e) {
            throw new AuraHandledException(e.getMessage());
         }
     }

     @AuraEnabled
     public static String  selectCASE(String AssetOwnerC){
        String res='';
        if(AssetOwnerC.equals('病院資産')){
            res='病院資産';
        }else if(AssetOwnerC.equals('购买')){
            res='购买';
        }
        else if(AssetOwnerC.equals('Olympus')){
            res='Olympus';
        }
        else if(AssetOwnerC.equals('备品')){
            res='备品';
        }
        else if(AssetOwnerC.equals('リース会社')){
            res='リース会社';
        }
        else if(AssetOwnerC.equals('其他')){
            res='其他';
        }
        else if(AssetOwnerC.equals('经销商资产')){
            res='经销商资产';
        }else{
            res='';
        }
        return res;
      }

      @AuraEnabled
      public static String selectNullvalue(String InstallDate,String PostingDateC,String AssetDayC){
        String res='';
        if(InstallDate!=null){
            res=InstallDate;
        }else {
            if(PostingDateC!=null){
                res=PostingDateC;
            }else {
                res=AssetDayC;
            }
        }
        return res;
       }

    public class InitData{
        @AuraEnabled
        public String AssetMarkC;
        @AuraEnabled
        public String AssetOwnerC;
        @AuraEnabled
        public Date InstallDate;
        @AuraEnabled
        public Date PostingDateC;
        @AuraEnabled
        public Date AssetDayC;
        @AuraEnabled
        public String SerialNumber;
        @AuraEnabled
        public String OrderNoC;

        @AuraEnabled
        public String Id;
        @AuraEnabled
        public String userID;
        @AuraEnabled
        public Date day;
        @AuraEnabled
        public Date day2;
        @AuraEnabled
        public Date day1;
        @AuraEnabled
        public String Name;
        @AuraEnabled
        public Date NoPartRiskDateFC;
        @AuraEnabled
        public String ProductIDC;
        @AuraEnabled
        public String AccountId;
        @AuraEnabled
        public String HPIdC;
        @AuraEnabled
        public String HospitalC;
        @AuraEnabled
        public String DepartmentClassC;
        @AuraEnabled
        public String HospitalId;
        @AuraEnabled
        public String DepartmentClassId;
        @AuraEnabled
        public String notCreateRepairFromAssetButton;
        @AuraEnabled
        public String notCreateRepairFromAssetButton02;

     }
}