| public without sharing class LexTopPageController { | 
|     //经销商信息 | 
|     public static account accountInfo; | 
|     /*****************画面表示Bean******************/ | 
|     public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords =new List<ConsumableorderdetailsInfo>(); | 
|     public static List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); | 
|     //page | 
|     public static Integer pagesize { get; set; } | 
|     public static Integer pageToken { get; set; } | 
|     public static String sortField { get; set; } | 
|     public static String sortOrder { get; set; } | 
|     public static Integer totalcount { get; set; } | 
|     // public static Integer pagesize = Integer.valueof(system.label.orderdetLimitsize); | 
|     // public static Integer totalcount; | 
|     // public static Integer pagecount; | 
|     // public static Integer currentpage = 0; | 
|     // public static Boolean hasPrevious; | 
|     // public static Boolean hasNext; | 
|     public static List<ConsumableorderdetailsInfo> pageRecords; | 
|     public static String soql {get;set;} | 
|     // 汇总使用 | 
|     public static Integer Total_num; | 
|     public static Integer OrderNumber_arrived; | 
|     public static Integer Delivery_detail_count; | 
|     public static Integer OrderNumber_notarrive; | 
|     public static Integer More_than_seven_days; | 
|     //排序使用 | 
|     // public static String sortKey; | 
|     // public static String preSortKey; | 
|     // public static Boolean sortOrderAsc; | 
|     // public static String[] sortOrder; | 
|     /*****************一周未到货订单一览对应start******************/ | 
|     // 订单 字段标签 | 
|     public static List<String> title; | 
|     // 订单 字段名 | 
|     public static List<String> column; | 
|     public static List<List<String>> columns; | 
|     // 画面显示数据 | 
|     public static List<Consumable_order__c> raesList; | 
|     /*****************一周未到货订单一览对应end******************/ | 
|     //排序使用 | 
|     private static String[] orderby = new String[]{ 'Product2__c.Name__c'}; | 
|     //产品上下限 | 
|     public static String[] proLimitAndDate =new String[]{}; | 
|     public static String product_Limit; | 
|     //库存产品最早有效期限 | 
|     private static Map<String,Date> productkucun = new Map<String,Date>(); | 
|     //消费期限小于一年的产品 | 
|     public static List<ConsumableorderdetailsInfo> overlimitdateorderdetails = new List<ConsumableorderdetailsInfo>(); | 
|     public static String accountid; | 
|     public static String accountName; | 
|     public static List<String> orderDetZaikuList = new List<String>(); | 
|     // 登录者工作地 | 
|     private static String userWorkLocation; | 
|     // 未到货订单信息(超过一周)显示控制 | 
|     public static Boolean over_view { | 
|         get { | 
|             return raesList.size() > 0 ? true : false; | 
|         } | 
|     } | 
|     // 使用期限小于一年的产品 显示控制 | 
|     public static Boolean overlimit { | 
|         get { | 
|             return overlimitdateorderdetails.size() > 0 ? true : false; | 
|         } | 
|     } | 
|     //用户产品区分 | 
|     public static String userPro_Type; | 
|     public static String userPro_Typestr = null; | 
|     public static Boolean EngFlag = false; | 
|     public static Boolean ETFlag = false; | 
|     public static Boolean hasHos; | 
|   | 
|     @AuraEnabled | 
|     public static Results initAgency(){ | 
|         Results results = new Results(); | 
|         results.isNoteStay = LexUtility.getIsNoteStay(); | 
|         try { | 
|             User useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:UserInfo.getUserId()]; | 
|             accountid = useracc.accountid; | 
|             List<Account> accList = new List<Account>(); | 
|             accList = [SELECT Name,Ban_On_Use_Reason__c,Deposit_Price__c, | 
|                     Medical_Equipment_Num__c,Medical_Equipment_Expiration_Date__c, | 
|                     Ban_On_Use_Date__c,Tax_Practice_No__c,Tax_Practice_Expiration_Date__c, | 
|                     Business_Authorization_No__c,Business_Paper_Expiration_Date__c, | 
|                     Credit_Check_No__c,Dealer_discount__c, | 
|                     Phone,Address_Together__c,Is_Active_Formula__c, | 
|                     Management_Code__c,Sales_Shop_Class__c,Postal_Code__c, | 
|                     Fax,Address__c,Deposit_Receipt_Finished__c, | 
|                     Deposit_Receipt_Completion_Day__c, | 
|                     Product_Limit_Date__c, | 
|                     Product_Limit_DateENG__c | 
|                     FROM account WHERE id =:accountid]; | 
|             if(accList.size() == 1){ | 
|                 accountInfo = accList[0]; | 
|             }else{ | 
|                 results.result = 'Fail'; | 
|                 results.errorMsg = '未获取到经销商信息'; | 
|                 return results; | 
|             } | 
|             results.result = 'Success'; | 
|             results.accountInfo = accountInfo; | 
|         }catch(Exception e){ | 
|             results.result = 'Fail'; | 
|             results.errorMsg = e.getLineNumber()+'---'+e.getMessage(); | 
|         } | 
|         return results; | 
|     } | 
|   | 
|     @AuraEnabled | 
|     public static Results initPage(Integer pageSizeLWC,Integer pageTokenLWC){ | 
|         pageSize = pageSizeLWC; | 
|         pageToken = pageTokenLWC; | 
|         Results results = new Results(); | 
|         results.isNoteStay = LexUtility.getIsNoteStay(); | 
|         try { | 
|             consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); | 
|             consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>(); | 
|             overlimitdateorderdetails = new List<ConsumableorderdetailsInfo>(); | 
|             //page | 
|             // pagesize = Integer.valueof(system.label.orderdetLimitsize); | 
|             // currentpage = 0; | 
|   | 
|             User useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:UserInfo.getUserId()]; | 
|             // String uid = '0051000000E7Pv9AAF'; | 
|             // User useracc = [SELECT accountid, Work_Location__c,UserPro_Type__c FROM user WHERE id =:uid]; | 
|             accountid = useracc.accountid; | 
|             userWorkLocation = useracc.Work_Location__c; | 
|             userPro_Type = useracc.UserPro_Type__c; | 
|             if(String.isBlank(userPro_Type)){ | 
|                 userPro_Type = 'ET'; | 
|             } | 
|             userPro_Typestr = '%' + userPro_Type + '%'; | 
|             if(userPro_Type == 'ENG'){ | 
|                 EngFlag = true; | 
|             }else{ | 
|                 ETFlag = true; | 
|             } | 
|             //经销商·基本信息获取 | 
|             List<Account> accList = new List<Account>(); | 
|             accList = [SELECT Name,Ban_On_Use_Reason__c,Deposit_Price__c, | 
|                     Medical_Equipment_Num__c,Medical_Equipment_Expiration_Date__c, | 
|                     Ban_On_Use_Date__c,Tax_Practice_No__c,Tax_Practice_Expiration_Date__c, | 
|                     Business_Authorization_No__c,Business_Paper_Expiration_Date__c, | 
|                     Credit_Check_No__c,Dealer_discount__c, | 
|                     Phone,Address_Together__c,Is_Active_Formula__c, | 
|                     Management_Code__c,Sales_Shop_Class__c,Postal_Code__c, | 
|                     Fax,Address__c,Deposit_Receipt_Finished__c, | 
|                     Deposit_Receipt_Completion_Day__c, | 
|                     Product_Limit_Date__c, | 
|                     Product_Limit_DateENG__c | 
|                     FROM account WHERE id =:accountid]; | 
|             if(accList.size() == 1){ | 
|                 accountInfo = accList[0]; | 
|             }else{ | 
|                 results.result = 'Fail'; | 
|                 results.errorMsg = '未获取到经销商信息'; | 
|                 return results; | 
|             } | 
|             accountName = accountInfo.Name; | 
|             if(EngFlag){ | 
|                 product_Limit = accountInfo.Product_Limit_DateENG__c;     | 
|             }else if(ETFlag){ | 
|                 product_Limit = accountInfo.Product_Limit_Date__c; | 
|             } | 
|             if(product_Limit != null && product_Limit !=''){ | 
|                 proLimitAndDate = product_Limit.split(','); | 
|             } | 
|             List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>(); | 
|              //库存明细取得 | 
|             orderDetZaikuList = new List<String>(); | 
|             List<AggregateResult>  orderDetZaiku = [SELECT count(Id), | 
|                                                         Consumable_Product__c | 
|                                                     FROM Consumable_order_details2__c | 
|                                                     WHERE Dealer_Arrive__c = true | 
|                                                     AND Dealer_Shipment__c = false | 
|                                                     AND Dealer_Saled__c = false | 
|                                                     AND Lose_Flag__c = false | 
|                                                     AND Dealer_Returned__c = false | 
|                                                     AND Cancellation_Flag__c = false | 
|                                                     AND Bar_Code__c !=null | 
|                                                     AND Product_Type__c like : userPro_Typestr | 
|                                                     AND Dealer_Info_text__c = :accountName | 
|                                                     AND Arrive_Owner_Work_Location__c = :userWorkLocation | 
|                                                     group by Consumable_Product__c]; | 
|             for(AggregateResult zaikuId : orderDetZaiku){ | 
|                 orderDetZaikuList.add(String.valueOf(zaikuId.get('Consumable_Product__c'))); | 
|             } | 
|             Map<String,Product2__c> MidMap = new Map<String,Product2__c>(); | 
|             List<Product2__c> product2Selected = [SELECT Id, Name, | 
|                                     Name__c, | 
|                                     Asset_Model_No__c, | 
|                                     Category3__c, | 
|                                     Category4__c, | 
|                                     Category5__c, | 
|                                     SFDA_Status__c, | 
|                                     Product2__r.SFDA_Approbation_No__c, | 
|                                     Product2__r.SFDA_Expiration_Date__c, | 
|                                     Product2__r.Packing_list_manual__c | 
|                                 FROM Product2__c | 
|                                 WHERE Id in :orderDetZaikuList | 
|                                 ]; | 
|   | 
|             for (Integer i = 0; i < product2Selected.size(); i++) { | 
|                 MidMap.put(product2Selected[i].Id, product2Selected[i]); | 
|             } | 
|             //返品库存统计 | 
|             List<Consumable_order_details2__c> CountDel = [SELECT Id, | 
|                     Bar_Code__c, | 
|                     Name, | 
|                     Inventory_date__c, | 
|                     Consumable_Product__c, | 
|                     Recordtypeid, | 
|                     Guarantee_period_for_products__c, | 
|                     Isoverdue__c, | 
|                     Box_Piece__c, | 
|                     hospitalSpecialOffer__c  | 
|                 FROM Consumable_order_details2__c | 
|                 WHERE  Dealer_Arrive__c = true | 
|                 AND Dealer_Shipment__c = false | 
|                 AND Dealer_Saled__c = false | 
|                 AND Dealer_Returned__c = false | 
|                 AND Lose_Flag__c = false | 
|                 AND Cancellation_Flag__c = false | 
|                 AND Bar_Code__c !=null | 
|                 AND Product_Type__c like : userPro_Typestr | 
|                 AND Dealer_Info_text__c = :accountName | 
|                 AND Arrive_Owner_Work_Location__c = :userWorkLocation]; | 
|             Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>(); | 
|             Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>(); | 
|             Map<String,ConsumableorderdetailsInfo> newHosMidBoxMap = new Map<String,ConsumableorderdetailsInfo>(); | 
|             Map<String,ConsumableorderdetailsInfo> newHosMidPieceMap = new Map<String,ConsumableorderdetailsInfo>(); | 
|             for(Integer i = 0 ; i< CountDel.size();i++){ | 
|                 //然后循环CountDel做Box和piece2个map | 
|                 if(MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '盒'){ | 
|                     String tex = 'A'; | 
|                     if (CountDel[i].hospitalSpecialOffer__c) { | 
|                         tex = 'B'; | 
|                     } | 
|                     if(newMidBoxMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex)){ | 
|                         ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex).clone(); | 
|                         Jstage.allnumber = Jstage.allnumber+1 ; | 
|                         if(CountDel[i].Isoverdue__c == 1){ | 
|                             Jstage.limitCount = Jstage.limitCount + 1; | 
|                         } | 
|                         Jstage.BoxPiece = CountDel[i].Box_Piece__c; | 
|                         newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage); | 
|                     }else{ | 
|                         ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c)); | 
|                         Jstage.allnumber = Jstage.allnumber+1 ; | 
|                         if(CountDel[i].Isoverdue__c == 1){ | 
|                             Jstage.limitCount = Jstage.limitCount + 1; | 
|                         } | 
|                         Jstage.BoxPiece = CountDel[i].Box_Piece__c; | 
|                         if (CountDel[i].hospitalSpecialOffer__c) { | 
|                             Jstage.hospitalSpecialOffer = true; | 
|                             newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage); | 
|                         }else{ | 
|                             Jstage.hospitalSpecialOffer = false; | 
|                             newMidBoxMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage); | 
|                         } | 
|                     } | 
|                 }else if(MidMap.containsKey(CountDel[i].Consumable_Product__c) && CountDel[i].Box_Piece__c == '个'){ | 
|                     String tex = 'A'; | 
|                     if (CountDel[i].hospitalSpecialOffer__c) { | 
|                         tex = 'B'; | 
|                     } | 
|                     if(newMidPieceMap.containsKey(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex )){ | 
|                         ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex).clone(); | 
|                         Jstage.allnumber = Jstage.allnumber+1 ; | 
|                         if(CountDel[i].Isoverdue__c == 1){ | 
|                             Jstage.limitCount = Jstage.limitCount + 1; | 
|                         } | 
|                         Jstage.BoxPiece = CountDel[i].Box_Piece__c; | 
|                         newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c + tex, Jstage); | 
|                     }else{ | 
|                         ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(CountDel[i].Consumable_Product__c)); | 
|                         Jstage.allnumber = Jstage.allnumber+1 ; | 
|                         if(CountDel[i].Isoverdue__c == 1){ | 
|                             Jstage.limitCount = Jstage.limitCount + 1; | 
|                         } | 
|                         Jstage.BoxPiece = CountDel[i].Box_Piece__c; | 
|                         if (CountDel[i].hospitalSpecialOffer__c) { | 
|                             Jstage.hospitalSpecialOffer = true; | 
|                             newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex, Jstage); | 
|                         }else{ | 
|                             Jstage.hospitalSpecialOffer = false; | 
|                             newMidPieceMap.put(CountDel[i].Consumable_Product__c+CountDel[i].Box_Piece__c+ tex, Jstage); | 
|                         } | 
|                     } | 
|                 } | 
|                 //如果是 医院特价创建的明细2  则 | 
|             } | 
|             consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>(); | 
|             List<ConsumableorderdetailsInfo> newHosMidBoxList = new List<ConsumableorderdetailsInfo>(); | 
|             //把Boxmap里的值从新赋给boxRecords | 
|             for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){ | 
|                 if(bss.allnumber>0){ | 
|                     bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c); | 
|                     bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; | 
|                     bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; | 
|                     bss.overlimitCount = bss.allnumber - bss.limitCount; | 
|                     boxRecords.add(bss); | 
|                 } | 
|             } | 
|             boxRecords.sort(); | 
|             for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){ | 
|                 if(bss.allnumber>0){ | 
|                     bss.packing_list = Integer.valueof(bss.Prod.Product2__r.Packing_list_manual__c); | 
|                     bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c; | 
|                     bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c; | 
|                     bss.overlimitCount = bss.allnumber - bss.limitCount; | 
|                 } | 
|             } | 
|             //排序应该是 非医院特价的盒,医院特价的盒,非医院特价的个,医院特价的个 | 
|             //add by rentx 2020-11-27 先判断医院特价的盒 和 个 | 
|             //2020-11-27 日 于 rentx 注释 start | 
|             String temp = 'A'; | 
|             for(ConsumableorderdetailsInfo bss : boxRecords){ | 
|                 consumableorderdetailsRecords.add(bss); | 
|                 //该产品是医院特价产品 | 
|                 if (bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id+'个B')) { | 
|                     if (newMidPieceMap.get(bss.Prod.Id+'个B').hospitalSpecialOffer) { | 
|                         consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id+'个B')); | 
|                         newMidPieceMap.remove(bss.Prod.Id+'个B'); | 
|                     } | 
|                 } | 
|   | 
|                 if (!bss.hospitalSpecialOffer && newMidPieceMap.containsKey(bss.Prod.Id+'个A')) { | 
|                     // if (newMidPieceMap.get(bss.Prod.Id+'个A')) { | 
|                         consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id+'个A')); | 
|                         newMidPieceMap.remove(bss.Prod.Id+'个A'); | 
|                     // } | 
|                 } | 
|             } | 
|   | 
|             for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){ | 
|                 if (newMidPieceMap.containsKey(bss.Prod.Id+'个B')) { | 
|                     consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个B')); | 
|                 } | 
|             } | 
|             for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){ | 
|                 if (newMidPieceMap.containsKey(bss.Prod.Id+'个A')) { | 
|                     consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '个A')); | 
|                 } | 
|             } | 
|             // consumableorderdetailsRecords.addAll(newMidPieceMap.values()); | 
|             //2020-11-27 日 于 rentx 注释 end | 
|             // consumableorderdetailsRecords.addAll(newMidPieceMap.values()); | 
|             //2020-11-27 日 于 rentx 注释 end | 
|              | 
|             notarriveorder(); | 
|             productLimtAndDate(); | 
|             datelimitSearch(); | 
|             //add by rentx | 
|             Integer ishos = 0; | 
|             for(ConsumableorderdetailsInfo bss : consumableorderdetailsRecords){ | 
|                 if(productkucun.get(bss.Prod.Id) != null){ | 
|                     bss.guaranteeperiod = productkucun.get(bss.Prod.Id); | 
|                 } | 
|                 //add by rentx 2021-3-10 start | 
|                 if (bss.hospitalSpecialOffer) { | 
|                     ishos = ishos+1; | 
|                 } | 
|                  | 
|             } | 
|             if (ishos > 0) { | 
|                 hasHos = true; | 
|             }else{ | 
|                 hasHos = false; | 
|             } | 
|             //add by rentx 2021-3-10 end | 
|             //consumableorderdetailsRecords.sort(); | 
|             //list分割 | 
|             //listCut(); | 
|             // sortKey = '0'; | 
|             // preSortKey = '0'; | 
|             // sortOrderAsc = false; | 
|             // sortOrder = new String[1]; | 
|             // sortOrder = new String[]{' ', '↓'}; | 
|             //总件数 | 
|             totalCount = consumableorderdetailsRecords.size(); | 
|             //页数 | 
|             // pagecount=(totalcount  +  pagesize  - 1) / pagesize;  | 
|             //显示第一页 | 
|             // moveToFirst(); | 
|             makeCurrentPageRecords(); | 
|            //分页 | 
|             PaginatedAccounts paginatedAccounts = new PaginatedAccounts(); | 
|             System.debug('pageToken==>'+ pageToken); | 
|             System.debug('pageSize===>'+ pageSize); | 
|   | 
|             paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null; | 
|             paginatedAccounts.recordStart = pageToken + 1; | 
|             paginatedAccounts.pageNumber = pageToken / pageSize + 1; | 
|             Integer recordEnd = pageSize * paginatedAccounts.pageNumber; | 
|             System.debug('paginatedAccounts.recordStart'+  paginatedAccounts.recordStart); | 
|             System.debug('paginatedAccounts.pageNumber'+  paginatedAccounts.pageNumber); | 
|             System.debug('paginatedAccounts.nextPageToken===>'+paginatedAccounts.nextPageToken); | 
|             System.debug('recordEnd'+ recordEnd); | 
|   | 
|             paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount; | 
|             paginatedAccounts.totalRecords = totalCount; | 
|            //end | 
|            System.debug('PaginatedAccounts===>'+PaginatedAccounts); | 
|   | 
|             //赋值回传 | 
|             results.result = 'Success'; | 
|             results.title = title; | 
|             results.raesList = raesList; | 
|             results.columns = columns; | 
|             results.over_view = over_view; | 
|             results.overlimit = overlimit; | 
|             results.hasHos = hasHos; | 
|             results.overlimitdateorderdetails = overlimitdateorderdetails; | 
|             results.accountInfo = accountInfo; | 
|             results.pageRecords = pageRecords; | 
|             results.product_Limit = product_Limit; | 
|             results.totalNum = Total_num; | 
|             results.orderNumberArrived = OrderNumber_arrived; | 
|             results.deliveryDetailCount = Delivery_detail_count; | 
|             results.orderNumberNotarrive = OrderNumber_notarrive; | 
|             results.moreThanSevenDays = More_than_seven_days; | 
|             //add by WangXueqin 2023/05/05        | 
|             results.userPro_Type = userPro_Type; | 
|             results.paginatedAccounts = paginatedAccounts; | 
|         } catch (Exception e) { | 
|             results.result = 'Fail'; | 
|             results.errorMsg = e.getLineNumber()+'---'+e.getMessage(); | 
|         } | 
|         return results; | 
|     } | 
|   | 
|     //超过一周未到货订单 | 
|     public static void notarriveorder(){ | 
|         //over_view = false; | 
|         Date orderdate = Date.today().addDays(-7); | 
|          | 
|         List<Consumable_order_details2__c> orderdetails = [SELECT Id,Name,Consumable_order_minor__c | 
|                                                             FROM Consumable_order_details2__c | 
|                                                             WHERE Deliver_date__c < :orderdate | 
|                                                             and Consumable_order_minor__c !=null | 
|                                                             and Dealer_Info_text__c = :accountName | 
|                                                             AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery | 
|                                                             AND Dealer_Arrive__c = false | 
|                                                             ]; | 
|         //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO , 'userPro_Type——————' + userPro_Type)); | 
|         Map<String, String> notarriveorderMap = new Map<String, String>(); | 
|         List<String> notarriveorderid = new List<String>(); | 
|         for(Integer i = 0; i < orderdetails.size(); i++){ | 
|             if(notarriveorderMap.containsKey(orderdetails[i].Consumable_order_minor__c)){ | 
|                 continue; | 
|             }else{ | 
|                 notarriveorderMap.put(orderdetails[i].Consumable_order_minor__c, orderdetails[i].Consumable_order_minor__c); | 
|                 //notarriveorderid.add('\'' + orderdetails[i].Consumable_order_minor__c +'\''); | 
|                 notarriveorderid.add(orderdetails[i].Consumable_order_minor__c); | 
|             } | 
|         } | 
|         // 获得订单一览 | 
|         Map<String, Schema.FieldSet> fsMap = Schema.getGlobalDescribe().get('Consumable_order__c').getDescribe().fieldSets.getMap(); | 
|         Schema.FieldSet fs = fsMap.get('arrive_view'); | 
|         // 获得订单中的所有项目 | 
|         List<FieldSetMember> fsmList = fs.getFields(); | 
|         // 获得字段标签和字段名 | 
|         title = new List<String>(); | 
|         column = new List<String>(); | 
|         columns = new List<List<String>>(); | 
|         for (FieldSetMember fsm : fsmList) { | 
|             title.add(fsm.getLabel()); | 
|             column.add(fsm.getFieldPath()); | 
|             columns.add(fsm.getFieldPath().split('\\.')); | 
|         } | 
|         system.debug('columns=====================>'+columns); | 
|         // 获得显示数据 | 
|         raesList = new List<Consumable_order__c>(); | 
|         String soql = 'select Id'; | 
|         for (String s : column) { | 
|             soql += ',' + s; | 
|         } | 
|         soql += ' from Consumable_order__c where Order_type__c = \''+'订单'+'\' and  recordtypeid =\'' + System.Label.RT_ConOrder_Delivery + '\' and Dealer_Info__c =\'' + accountid +'\'  and  Delivery_detail_count__c > 0 and showFalseNotshowTrue__c = false  '; | 
|         soql += ' and Order_ProType__c = \'' + userPro_Type  + '\' ' ; | 
|         soql += ' and Order_Owner_WorkLocal__c = \'' + userWorkLocation + '\' '; | 
|         | 
|         if(notarriveorderid.size() < 1){ | 
|             soql +=' AND Id = null '; | 
|         }else{ | 
|             String sqlTail = '(\''; | 
|             for(Integer i = 0 ; i< notarriveorderid.size();i++){ | 
|                 if(i<notarriveorderid.size()-1){ | 
|                     sqlTail += notarriveorderid[i]+'\',\''; | 
|                 }else{ | 
|                     sqlTail += notarriveorderid[i]+'\')'; | 
|                 } | 
|             } | 
|             //over_view = true; | 
|             soql +=' AND Id in ' + sqlTail; | 
|         } | 
|         system.debug('soql_____11111__' + soql); | 
|         raesList = Database.query(soql); | 
|         // update end by vivek2020-01-15  | 
|         Total_num = 0; | 
|         OrderNumber_arrived = 0; | 
|         Delivery_detail_count = 0; | 
|         OrderNumber_notarrive = 0; | 
|         More_than_seven_days = 0; | 
|         for(Consumable_order__c conorder :raesList){ | 
|             Total_num += (Integer)conorder.Total_num__c; | 
|             OrderNumber_arrived += (Integer)conorder.OrderNumber_arrived__c; | 
|             Delivery_detail_count += (Integer)conorder.Delivery_detail_count__c; | 
|             OrderNumber_notarrive += (Integer)conorder.OrderNumber_notarrive__c; | 
|             More_than_seven_days += (Integer)conorder.More_than_seven_days__c; | 
|         } | 
|         // update end by vivek2020-01-15 | 
|     } | 
|   | 
|     public static void productLimtAndDate(){ | 
|         String nowName = null, nowRightAsstModelNo = null; | 
|         Map<String,String> productLimt = new Map<String,String>(); | 
|         for(Integer i = 0; i < proLimitAndDate.size(); i++){ | 
|             nowName = proLimitAndDate[i]; | 
|             if( nowName.indexOf( '|') >= 0) { | 
|                 nowRightAsstModelNo = nowName.subString( 0, nowName.indexOf( '|')); | 
|                 nowName = nowName.subString( nowName.indexOf( '|')+1); | 
|             } | 
|             productLimt.put(nowRightAsstModelNo, nowName); | 
|         } | 
|         for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){ | 
|             if(productLimt.containsKey(ass.Prod.Asset_Model_No__c)){ | 
|                 ass.lowerlimit = decimal.valueOf(productLimt.get(ass.Prod.Asset_Model_No__c).subString(0, productLimt.get(ass.Prod.Asset_Model_No__c).indexOf( '|'))); | 
|                 ass.upperlimit = decimal.valueOf(productLimt.get(ass.Prod.Asset_Model_No__c).subString(productLimt.get(ass.Prod.Asset_Model_No__c).indexOf( '|')+1)); | 
|            } | 
|         } | 
|     } | 
|   | 
|     public static void datelimitSearch(){ | 
|         Set<String> barcodekucun = new Set<String>(); | 
|         //--------UpdateStart-----XHL--------------20180929------------- | 
|          List<Consumable_order_details2__c> orderkucun = [SELECT Id,Bar_Code__c, Name,Consumable_Product__c, | 
|                                                         Recordtypeid,Guarantee_period_for_products__c, | 
|                                                         Sterilization_limit__c,Box_Piece__c | 
|                                                         FROM Consumable_order_details2__c | 
|                                                         WHERE Dealer_Arrive__c = true | 
|                                                         AND Dealer_Shipment__c = false | 
|                                                         AND Dealer_Saled__c = false | 
|                                                         AND Dealer_Returned__c = false | 
|                                                         AND Lose_Flag__c = false | 
|                                                         AND Bar_Code__c !=null | 
|                                                         AND Product_Type__c like :userPro_Typestr | 
|                                                         AND Dealer_Info_text__c = :accountName | 
|                                                         AND Arrive_Owner_Work_Location__c = :userWorkLocation | 
|                                                         ORDER BY Consumable_Product__c, Sterilization_limit__c asc ]; | 
|         //--------UpdateEnd-----XHL--------------20180929------------- | 
|         for(Integer i = 0 ; i< orderkucun.size();i++){ | 
|             if(productkucun.containsKey(orderkucun[i].Consumable_Product__c)){ | 
|                 continue; | 
|             }else{ | 
|                 productkucun.put(orderkucun[i].Consumable_Product__c, orderkucun[i].Sterilization_limit__c); | 
|             } | 
|         } | 
|         barcodekucun.clear(); | 
|         for(Integer i = 0 ; i< orderkucun.size();i++){ | 
|             if(orderkucun[i].Sterilization_limit__c < Date.today().addYears(1)){ | 
|                 if(barcodekucun.contains(orderkucun[i].Bar_Code__c)){ | 
|                     continue; | 
|                 }else{ | 
|                     barcodekucun.add(orderkucun[i].Bar_Code__c); | 
|                 } | 
|             } | 
|         } | 
|         List<AggregateResult>  overlimitdatedetails = [SELECT Asset_Model_No__c prodName , | 
|                                             Box_Piece__c BoxPiece,count(id) countid | 
|                                         FROM Consumable_order_details2__c | 
|                                         WHERE Bar_Code__c in :barcodekucun | 
|                                         AND Dealer_Arrive__c = true | 
|                                         AND Dealer_Shipment__c = false | 
|                                         AND Dealer_Saled__c = false | 
|                                         AND Dealer_Returned__c = false | 
|                                         AND Lose_Flag__c = false | 
|                                         GROUP BY Asset_Model_No__c,Box_Piece__c | 
|                                         ORDER BY Asset_Model_No__c,Box_Piece__c]; | 
|         for(Integer i = 0 ; i< overlimitdatedetails.size();i++){ | 
|             overlimitdateorderdetails.add(new ConsumableorderdetailsInfo(overlimitdatedetails[i])); | 
|         } | 
|     } | 
|   | 
|     //首页 | 
|     // public static void moveToFirst(){ | 
|     //     if(currentpage == 1) return; | 
|     //     currentpage = 1; | 
|     //     canMove(); | 
|     // } | 
|   | 
|     //判断是否可翻页 | 
|     // public static void canMove(){ | 
|     //     hasPrevious = false; | 
|     //     hasNext = false; | 
|     //     if(pagecount > 1 && currentpage > 1) hasPrevious = true; | 
|     //     if(pagecount > 1 && currentpage < pagecount)  hasNext = true; | 
|     // } | 
|   | 
|     //编辑当前页内容 | 
|     public static void makeCurrentPageRecords(){ | 
|         Integer startIdx; | 
|         Integer endIdx; | 
|         pageRecords = new List<ConsumableorderdetailsInfo>(); | 
|         startIdx = pageToken; | 
|         endIdx = pageToken + pageSize; | 
|         if (endIdx > consumableorderdetailsRecords.size()) { | 
|             endIdx = consumableorderdetailsRecords.size(); | 
|         } | 
|         for (Integer i = startIdx; i < endIdx; i++) { | 
|             pageRecords.add(consumableorderdetailsRecords.get(i)); | 
|         } | 
|     } | 
|     //分页Bean | 
|     public class PaginatedAccounts { | 
|         @AuraEnabled | 
|         public Integer nextPageToken; | 
|         @AuraEnabled | 
|         public Integer pageNumber { get; set; } | 
|         @AuraEnabled | 
|         public Integer totalRecords { get; set; } | 
|         @AuraEnabled | 
|         public Integer recordStart { get; set; } | 
|         @AuraEnabled | 
|         public Integer recordEnd { get; set; } | 
|     } | 
|   | 
|     // Data Bean | 
|     public class ConsumableorderdetailsInfo implements Comparable { | 
|         //public Boolean check { get; set; } | 
|         //public Boolean oldCheck { get; set; } | 
|         @AuraEnabled | 
|         public Consumable_order_details2__c esd { get; set; } | 
|         @AuraEnabled | 
|         public Product2__c Prod { get; set; } | 
|         @AuraEnabled | 
|         public Decimal allnumber { get; set; } | 
|         @AuraEnabled | 
|         public Decimal oldConsumableCount { get; set; } | 
|         @AuraEnabled | 
|         public Integer packing_list { get; set; } | 
|         @AuraEnabled | 
|         public Date expiration_Date { get; set; } | 
|         @AuraEnabled | 
|         public String approbation_No { get; set; } | 
|         @AuraEnabled | 
|         public Decimal upperlimit { get; set; } | 
|         @AuraEnabled | 
|         public Decimal lowerlimit { get; set; } | 
|         @AuraEnabled | 
|         public Date guaranteeperiod { get; set; } | 
|         @AuraEnabled | 
|         public Decimal countid { get; set; } | 
|         @AuraEnabled | 
|         public String prodName { get; set; } | 
|         @AuraEnabled | 
|         public Decimal limitCount { get; set; } | 
|         @AuraEnabled | 
|         public Decimal overlimitCount { get; set; } | 
|         @AuraEnabled | 
|         public String BoxPiece { get; set; } | 
|         @AuraEnabled | 
|         public Boolean hospitalSpecialOffer { get; set ;} | 
|   | 
|         public ConsumableorderdetailsInfo(Product2__c e) { | 
|             //check = false; | 
|             //oldCheck = false; | 
|             esd = new Consumable_order_details2__c(); | 
|             Prod = e; | 
|             oldConsumableCount = null; | 
|             allnumber = 0; | 
|             limitCount = 0; | 
|             overlimitCount = 0; | 
|   | 
|         } | 
|   | 
|         public ConsumableorderdetailsInfo(AggregateResult e) { | 
|             countid =Integer.valueOf(e.get('countid')); | 
|             prodName = String.valueOf(e.get('prodname')); | 
|             BoxPiece = String.valueOf(e.get('BoxPiece')); | 
|         } | 
|   | 
|         // 排序 | 
|         public Integer compareTo(Object compareTo) { | 
|             ConsumableorderdetailsInfo compareToesd =(ConsumableorderdetailsInfo)compareTo; | 
|             Integer returnValue = 0; | 
|             if (allnumber > compareToesd.allnumber) { | 
|                 returnValue = -1; | 
|             } else if (allnumber < compareToesd.allnumber) { | 
|                 returnValue = 1; | 
|             } | 
|             return returnValue; | 
|         } | 
|     } | 
|   | 
|     public class Results { | 
|         @AuraEnabled | 
|         public String result; | 
|         @AuraEnabled | 
|         public String errorMsg; | 
|         @AuraEnabled | 
|         public List<String> title; | 
|         @AuraEnabled | 
|         public List<Consumable_order__c> raesList; | 
|         @AuraEnabled | 
|         public List<List<String>> columns; | 
|         @AuraEnabled | 
|         public Boolean over_view; | 
|         @AuraEnabled | 
|         public Boolean overlimit; | 
|         @AuraEnabled | 
|         public Boolean hasHos; | 
|         @AuraEnabled | 
|         public List<ConsumableorderdetailsInfo> overlimitdateorderdetails; | 
|         @AuraEnabled | 
|         public Account accountInfo; | 
|         @AuraEnabled | 
|         public List<ConsumableorderdetailsInfo> pageRecords; | 
|         @AuraEnabled | 
|         public String product_Limit; | 
|         @AuraEnabled | 
|         public Integer totalNum; | 
|         @AuraEnabled | 
|         public Integer orderNumberArrived; | 
|         @AuraEnabled | 
|         public Integer deliveryDetailCount; | 
|         @AuraEnabled | 
|         public Integer orderNumberNotarrive; | 
|         @AuraEnabled | 
|         public Integer moreThanSevenDays; | 
|         @AuraEnabled | 
|         public Boolean isNoteStay; | 
|         //add by WangXueqin 2023/05/05 | 
|         @AuraEnabled | 
|         public String userPro_Type; | 
|         @AuraEnabled | 
|         public List<ConsumableorderdetailsInfo> pageCodeRecords; | 
|         @AuraEnabled | 
|         public PaginatedAccounts paginatedAccounts; | 
|   | 
|         | 
|     } | 
| } |