| public with sharing class AllAssetController { | 
|      | 
|     public String assECcode { get; set; } | 
|     public String assName { get; set; } | 
|     public Asset rec { get; set; } | 
|     public String setId { get; set; } | 
|   | 
|     public List<EquipmentSetInfo> equipmentSetRecords { get; set; } | 
|     public List<EquipmentSetInfo> loanerSetRecords { get; set; } | 
|   | 
|     private Integer dayCount = 0; | 
|   | 
|   | 
|     private Integer Select_Limit = 200; | 
|   | 
|   | 
|   | 
|     public AllAssetController() { | 
|          equipmentSetRecords = new List<EquipmentSetInfo>(); | 
|     } | 
|   | 
|     public Integer loanerSetNo { | 
|         get { | 
|             return loanerSetRecords == null ? 0 : loanerSetRecords.size(); | 
|         } | 
|     } | 
|   | 
|     public Integer pageRecordNo {  | 
|         get { | 
|             return equipmentSetRecords == null ? 0 : equipmentSetRecords.size(); | 
|         } | 
|     } | 
|   | 
|     public void init() { | 
|         List<Asset> assList = [select Id,Name, SerialNumber, Internal_Asset_number__c, OT_Code__c,EC_Code__c, Name__c,ProductName__c, | 
|                             AssetType__c,status,Count_can_allocate_F__c,RecordTypeId,loaner_place__c,Remarks2__c, | 
|                             Rental_Customer__r.Name,Rental_End_Date__c,Description,Rental_Start_Date__c  | 
|                             from Asset  | 
|                             WHERE Id != null AND Equipment_Type__c = 'BS']; | 
|             | 
|            for(Integer i = 0 ;i<assList.size();i++){ | 
|                if (i == Select_Limit ){ | 
|                    break; | 
|                } | 
|   | 
|                equipmentSetRecords.add(new EquipmentSetInfo(assList[i])); | 
|            } | 
|            this.getLoanerSet(); | 
|            rec = new Asset(); | 
|            rec.Equipment_Type__c = 'BS'; | 
|     } | 
|   | 
|     public void getLoanerSet() { | 
|         // 所有样机Set | 
|         loanerSetRecords = new List<EquipmentSetInfo>(); | 
|         List<loaner_Set__c> loanerSetSearch = [select Id, Name, Equipment_Type__c,Remarks__c,SerialNumber__c,Internal_Asset_number__c,Status__c,loaner_place__c,Reservation_information__c | 
|                                                  from  Loaner_Set__c | 
|                                                  WHERE Equipment_Type__c = 'BS' | 
|                                                  order by Name]; | 
|         Integer line = 0; | 
|         for(loaner_Set__c ls : loanerSetSearch){ | 
|             EquipmentSetInfo li = new EquipmentSetInfo(line, ls); | 
|             loanerSetRecords.add(li); | 
|             line += 1; | 
|         } | 
|         //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, 'loanerSetRecords' + loanerSetRecords)); | 
|     } | 
|   | 
|      public void getLoanerSetdet() { | 
|          | 
|         | 
|         // 样机set中所有样机 | 
|         List<String> loanerSetDetIDList = new List<String>(); | 
|         equipmentSetRecords = new List<EquipmentSetInfo>(); | 
|         for(Loaner_Set_Detail__c lSD : [SELECT Id,Asset__c FROM Loaner_Set_Detail__c WHERE Loaner_Set__c = :setId]){ | 
|             loanerSetDetIDList.add(lSD.Asset__c); | 
|         } | 
|   | 
|         List<Asset> queryList = [select Id,Name, SerialNumber, Internal_Asset_number__c,Name__c,AssetType__c, | 
|                                         OT_Code__c, EC_Code__c, status,Count_can_allocate_F__c, | 
|                                         RecordTypeId,loaner_place__c,Remarks2__c,Rental_Customer__r.Name,Rental_End_Date__c,ProductName__c | 
|                                         ,Description,Rental_Start_Date__c  | 
|                                     from Asset | 
|                                     where Id in :loanerSetDetIDList]; | 
|                                     | 
|         // 新明细行做成   | 
|         for (Integer i = 0;  i < queryList.size(); i++) { | 
|             if (i == Select_Limit) { | 
|                 break; | 
|             } | 
|                 equipmentSetRecords.add(new EquipmentSetInfo(queryList[i])); | 
|               | 
|         } | 
|         | 
|     } | 
|   | 
|       public void searchLoanerApp() { | 
|         //已选择个体管理样机 | 
|         List<String> loanerindividualList = new List<String>(); | 
|         equipmentSetRecords = new List<EquipmentSetInfo>(); | 
|         | 
|         String soql = 'select Id,Name, SerialNumber, Loaner__c,Internal_Asset_number__c, OT_Code__c,EC_Code__c, Name__c,ProductName__c,AssetType__c,'; | 
|               soql += ' status,Count_can_allocate_F__c,RecordTypeId,loaner_place__c,Remarks2__c,Rental_Customer__r.Name,Rental_End_Date__c ,Description,Rental_Start_Date__c from Asset WHERE Id != null '; | 
|   | 
|   | 
|         if (!String.isBlank(assName)) { | 
|             soql += ' and Name like \'%' + String.escapeSingleQuotes(assName.trim().replaceAll('%', '\\%')) + '%\''; | 
|         } | 
|         if (!String.isBlank(rec.OT_Code__c)) { | 
|             soql += ' and OT_Code__c like \'%' + String.escapeSingleQuotes(rec.OT_Code__c.trim().replaceAll('%', '\\%')) + '%\''; | 
|         } | 
|         if (!String.isBlank(assECcode)) { | 
|             soql += ' and EC_Code__c like \'%' + String.escapeSingleQuotes(assECcode.trim().replaceAll('%', '\\%')) + '%\''; | 
|         } | 
|         | 
|             soql += ' and Equipment_Type__c = \'BS\''; | 
|         | 
|         if (!String.isBlank(rec.loaner_place__c)) { | 
|             soql += ' and loaner_place__c = \'' + String.escapeSingleQuotes(rec.loaner_place__c) + '\''; | 
|         } | 
|         if (!String.isBlank(rec.Status)) { | 
|             soql += ' and status = \'' + String.escapeSingleQuotes(rec.Status) + '\''; | 
|         } | 
|          if (!String.isBlank(rec.SerialNumber)) { | 
|             soql += ' and SerialNumber like \'%' + String.escapeSingleQuotes(rec.SerialNumber.trim().replaceAll('%', '\\%')) + '%\''; | 
|         } | 
|         if (!String.isBlank(rec.Internal_Asset_number__c)) { | 
|             soql += ' and Internal_Asset_number__c like \'%' + String.escapeSingleQuotes(rec.Internal_Asset_number__c.trim().replaceAll('%', '\\%')) + '%\''; | 
|         } | 
|   | 
|   | 
|   | 
|   | 
|         List<Asset> queryList = Database.query(soql); | 
|         System.debug(soql); | 
|         System.debug(queryList); | 
|         // 新明细行做成 | 
|         for (Integer i = 0;  i < queryList.size(); i++) { | 
|             if (i == Select_Limit) { | 
|                 break; | 
|             } | 
|                 equipmentSetRecords.add(new EquipmentSetInfo(queryList[i])); | 
|               | 
|         } | 
|         System.debug(equipmentSetRecords); | 
|   | 
|     } | 
|   | 
|   | 
|     /* private void makeMessage() { | 
|         if (Over_Limit) { | 
|             ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '数据超过' + Select_Limit + '件,只显示前' + Select_Limit + '件')); | 
|             Over_Limit = false; | 
|         } | 
|     }*/ | 
|   | 
|   | 
|     class EquipmentSetInfo implements Comparable { | 
|          public Boolean check { get; set; } | 
|         public Boolean oldcheck { get; set; } | 
|         public loaner_application_detail__c lad { get; set; } | 
|         public Asset aset { get; set; } | 
|         public Loaner_Set__c lSet { get; set; } | 
|         public Date Rental_Start_Date { get; set; } | 
|         public Date Rental_End_Date { get; set; } | 
|         //最早可借出时间 | 
|         public Date earliest_Lend_Date { get; set; } | 
|         public Integer SEdayCount { get; set; } | 
|         public Integer deatilNo { get; set; } | 
|         public Boolean canInput { get; set; } | 
|         public Boolean showNo { get; set; } | 
|         public String remark { get; set; } | 
|         //public Date endDate {get; set; } | 
|         //转借元申请明细标记 | 
|         public Boolean firstDet { get; set; } | 
|   | 
|         // 已存产品明细 | 
|         public EquipmentSetInfo(loaner_application_detail__c e) { | 
|             check = true; | 
|             oldcheck= true; | 
|             lad = e; | 
|             aset = e.LOANER__r; | 
|             //endDate = aset.Rental_End_Date__c; | 
|             if(String.isNotBlank(lad.Remark__c)){ | 
|                 remark = lad.Remark__c; | 
|             }else{ | 
|                 remark = aset.Remarks2__c; | 
|             } | 
|             deatilNo = 1; | 
|             canInput = false; | 
|             firstDet = false; | 
|             if(String.valueOf(aset.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type2){ | 
|                 showNo = true; | 
|             }else{ | 
|                 showNo = false; | 
|             } | 
|         } | 
|   | 
|         public EquipmentSetInfo(Integer in_line, Loaner_Set__c e) { | 
|             deatilNo = in_line; | 
|             lSet = e; | 
|   | 
|         } | 
|   | 
|         public EquipmentSetInfo(Asset e) { | 
|             check = false; | 
|             oldcheck = false; | 
|             lad = new loaner_application_detail__c(); | 
|             aset = e; | 
|             remark = aset.Remarks2__c; | 
|             firstDet = false; | 
|             if(String.valueOf(aset.RecordTypeId).subString(0,15) == System.label.Asset_Record_Type2){ | 
|                 canInput = true; | 
|                 showNo = true; | 
|             }else{ | 
|                 //lad.loaner_ApplyNo__c = 1; | 
|                 deatilNo = 1; | 
|                 canInput = false; | 
|                 showNo = false; | 
|             } | 
|         } | 
|         // 排序 | 
|         public Integer compareTo(Object compareTo) { | 
|             return null; | 
|         } | 
|     } | 
| } |