From 744f42c5496e656a1f9927740a3b37c0b97a6cba Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期五, 14 七月 2023 14:34:12 +0800
Subject: [PATCH] lexcommunityupload0714

---
 force-app/main/default/classes/LexSummonsCreatController.cls | 6292 +++++++++++++++++++++++++++--------------------------------
 1 files changed, 2,925 insertions(+), 3,367 deletions(-)

diff --git a/force-app/main/default/classes/LexSummonsCreatController.cls b/force-app/main/default/classes/LexSummonsCreatController.cls
index 1b620e4..97b98dc 100644
--- a/force-app/main/default/classes/LexSummonsCreatController.cls
+++ b/force-app/main/default/classes/LexSummonsCreatController.cls
@@ -1,498 +1,445 @@
 public without sharing class LexSummonsCreatController {
-  public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
+    public static Map<String, Schema.SObjectType> schemaMap = Schema.getGlobalDescribe();
 
-  /*****************妞滅储鐢�******************/
-  //缁忛攢鍟嗙敤鎴蜂骇鍝佸垎绫伙紙ET銆丒NG锛�
-  @AuraEnabled
-  public static String agencyProType { get; set; }
-  public static Consumable_order__c coc { get; set; } // 鐢籿iew鐢紝 鍙兘鏄� 鍑哄簱鎸囩ず鍗曪紝 涔熸湁鍙兘鏄埌璐у崟锛� 涔熸湁鍙兘 绌篿nstance
-  public static User localuser { get; set; }
-  public static String category1 { get; set; }
-  public static Integer noOfRecords { get; set; }
-  //public String category_Goods {get ; set;}
-  public static Boolean cansee { get; set; }
-  public static Integer size { get; set; }
-  //缁忛攢鍟嗗畾浠锋煡鐪嬫潈闄�
-  //public static ApexPages.StandardSetController setCon { get; set; }
-  public static Boolean dealerPricesee { get; set; }
-  /*****************鐢婚潰鍒濆鍖栫敤********************************/
-  /******20160313_add**************/
-  public static String IdCheck { get; set; }
-  public static Boolean editAble { get; set; }
-  public static String statusEdit { get; set; }
-  public static String alertMessage { get; set; }
-  public static String SearchDone { get; set; }
-  public static List<String> zaikuId = new List<String>();
-  public static List<String> orderzaikuId = new List<String>();
-  //闄勪欢
-  public static List<ConsumableorderdetailsInfo> attachmentRecoeds { get; set; }
-  public static Boolean getExistarrive() {
-    return (coc.Arrive_Order__c != null);
-  }
-  //鎬讳环鏍艰绠楃粨鏋�
-  @AuraEnabled
-  public static Decimal sumPrice { get; set; }
-  /******20160317_add**************/
-  public static String SummonsFlag { get; set; } // 鏂拌: hidden, 鏇存柊: visible
-  public static String category5 { get; set; }
-  public static String category4 { get; set; }
-  public static String category3 { get; set; }
-  public static List<SelectOption> categoryOptionList { get; set; }
-  public static List<SelectOption> category4OptionList { get; set; }
-  public static List<SelectOption> category5OptionList { get; set; }
-  @AuraEnabled
-  public static Map<String, String> categoryOptionMap { get; set; }
-  @AuraEnabled
-  public static Map<String, String> category4OptionMap { get; set; }
-  @AuraEnabled
-  public static Map<String, String> category5OptionMap { get; set; }
-  /*****************鐢婚潰琛ㄧずBean******************/
-  private static List<ConsumableorderdetailsInfo> consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
-  //鏄庣粏2
-  @AuraEnabled
-  public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords {
-    get;
-    set;
-  }
-  //閿欒鏄庣粏
-  @AuraEnabled
-  public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserror {
-    get;
-    set;
-  }
-  @AuraEnabled
-  public static List<ConsumableorderdetailsInfo> pageRecords { get; set; }
-  public static List<ConsumableorderdetailsInfoLwc> pageRecordsLwc { get; set; }
-  //public List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview { get; set; }
-  public static List<ConsumableorderdetailsInfo> consumableorderdetails2Records {
-    get;
-    set;
-  }
-  public static List<Consumable_order__c> consumableInvoiceRecords { get; set; }
-  private static List<ConsumableorderdetailsInfo> consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>();
-  private static List<Attachment> attachmentinfo = new List<Attachment>();
-  public static List<Product2__c> product2Selected = new List<Product2__c>();
-  @AuraEnabled
-  public static Map<String, String> orderpieceorboxMap { get; set; }
-  @AuraEnabled
-  public static List<Consumable_orderdetails__c> orderdetails { get; set; }
-  @AuraEnabled
-  public static Map<String, Decimal> orderagencypriceMap { get; set; }
-  @AuraEnabled
-  public static Map<String, Decimal> orderpriceMap { get; set; }
-  @AuraEnabled
-  public static Map<String, Decimal> orderdetCountMap { get; set; }
-  @AuraEnabled
-  public static Boolean hasSpecialHos { get; set; }
-  //閫夋嫨浜у搧size
-  public static Integer consumableorderdetailsCount {
-    get {
-      return pageRecords == null ? 0 : pageRecords.size();
+    /*****************妞滅储鐢�******************/
+    //缁忛攢鍟嗙敤鎴蜂骇鍝佸垎绫伙紙ET銆丒NG锛�
+    @AuraEnabled
+    public static String agencyProType { get; set; }
+    public static Consumable_order__c coc { get; set; } // 鐢籿iew鐢紝 鍙兘鏄� 鍑哄簱鎸囩ず鍗曪紝 涔熸湁鍙兘鏄埌璐у崟锛� 涔熸湁鍙兘 绌篿nstance
+    public static User localuser { get; set; }
+    public static String category1 { get; set; }
+    public static Integer noOfRecords { get; set; }
+    //public String category_Goods {get ; set;}
+    public static Boolean cansee { get; set; }
+    public static Integer size { get; set; }
+    //缁忛攢鍟嗗畾浠锋煡鐪嬫潈闄�
+    //public static ApexPages.StandardSetController setCon { get; set; }
+    public static Boolean dealerPricesee { get; set; }
+    /*****************鐢婚潰鍒濆鍖栫敤********************************/
+    /******20160313_add**************/
+    public static String IdCheck { get; set; }
+    public static Boolean editAble { get; set; }
+    public static String statusEdit { get; set; }
+    public static String alertMessage { get; set; }
+    public static String SearchDone { get; set; }
+    public static List<String> zaikuId = new List<String>();
+    public static List<String> orderzaikuId = new List<String>();
+    //闄勪欢
+    public static List<ConsumableorderdetailsInfo> attachmentRecoeds { get; set; }
+    public static Boolean getExistarrive() {
+        return (coc.Arrive_Order__c != null);
     }
-  }
-  //娑堣�楀搧鏄庣粏2鏁伴噺
-  public static Integer consumableorderdetails2Count {
-    get {
-      return consumableorderdetails2Records == null
-        ? 0
-        : consumableorderdetails2Records.size();
-    }
-  }
-  //璁㈣揣鍗曞彿
-  public static String consumableorderId {
-    get {
-      return (coc.Arrive_Order__c);
-    }
-  }
-  //閫夋嫨妗�
-  public static List<SelectOption> provinceOpts { get; set; }
-  @AuraEnabled
-  public static Map<String, String> provinceOptsMap { get; set; }
-  public static String SecondDealer { get; set; }
-  //public List<SelectOption> orderForHospitalOpts { get; set; }
-  public static String HospitalInfo { get; set; }
-  public static String HospitalName { get; set; }
-
-  public static Boolean EditDelCommitBtnDisabled { get; private set; }
-  public static Boolean saveBtnDisabled { get; private set; }
-  public static Boolean SorderBtnDisabled { get; private set; }
-
-  // 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 addSize { get; set; }
-  //List<ConsumableorderdetailsInfoLwc> reSetLwc
-  public static List<ConsumableorderdetailsInfo> addData { get; set; }
-  public static Map<String, String> skipData { get; set; }
-  // 淇濆瓨鍚庡姩浣滐細 1.妫�绱� 2.鎺掑簭
-  // public static String sortKey { get; set; }
-  // public static String preSortKey { get; private set; }
-  // public static Boolean sortOrderAsc { get; private set; }
-  // public static String[] sortOrder { get; private set; }
-  // private static String[] columus = new List<String>{
-  //     'Consumable_Product__r.Name',
-  //     'Consumable_Product__r.Asset_Model_No__c',
-  //     'Consumable_Product__r.Intra_Trade_List_RMB__c',
-  //     '',
-  //     '',
-  //     'Consumable_Product__r.Category3__c',
-  //     'Consumable_Product__r.Category4__c',
-  //     'Consumable_Product__r.Category5__c'
-  // };
-  // private static String[] columus_no = new List<String>{
-  //     'Product2__c.Name',
-  //     'Product2__c.Asset_Model_No__c',
-  //     'Product2__c.Intra_Trade_List_RMB__c',
-  //     '',
-  //     '',
-  //     'Category3__c',
-  //     'Category4__c',
-  //     'Category5__c'
-  // };
-
-  //鍒拌揣鍗曟槑缁�1
-  private static List<Consumable_Orderdetails__c> consumableorderdetailsSelected = new List<Consumable_Orderdetails__c>();
-  //鍒拌揣鍗曟槑缁�2
-  private static List<Consumable_order_details2__c> consumablearriveproductdetailsSelected = new List<Consumable_order_details2__c>();
-
-  //鍑哄簱鍗曟槑缁�2
-  private static List<Consumable_order_details2__c> consumableorderdetails2RecordsList = new List<Consumable_order_details2__c>();
-  /*****************銈姐兗銉堟檪鍐嶆绱㈡潯浠讹紙鐢婚潰銇嬨倝銇叆鍔涙潯浠躲倰鐒¤銇欍倠銇熴倎锛�******************/
-  //private String cate1ForSort = null;
-  private static String accountid = null;
-  @AuraEnabled
-  public static String accountName { get; set; }
-
-  // 浜у搧 ID
-  private static String ESetId = '';
-  @AuraEnabled
-  public static String arriveorder { get; set; }
-  private static String userId = '';
-  //private String[] ProidListAll = new String[]{};
-
-  // 鐧诲綍鑰呭伐浣滃湴
-  @AuraEnabled
-  public static String userWorkLocation { get; set; }
-
-  //add by rentx 2021-01-29
-  public static List<SelectOption> outOutPatternOptionList { get; set; }
-  @AuraEnabled
-  public static Map<String, String> outOutPatternOptionMap { get; set; }
-  public static String outOutPattern { get; set; }
-  public static Boolean hasHos { get; set; }
-  @AuraEnabled
-  public static Boolean hasHosPro { get; set; }
-
-  private static Map<String, String> HosProMap = new Map<String, String>();
-  //add by rentx 2021-01-29
-
-  public LexSummonsCreatController() {
-    System.debug('LexSummonsCreatController');
-    size = Integer.valueOf(System.Label.orderdetLimitsize);
-    // ESetId = ApexPages.currentPage().getParameters().get('esetId');
-    // arriveorder = ApexPages.currentPage().getParameters().get('arriveorder');
-    // statusEdit = ApexPages.currentPage().getParameters().get('KeyWords');
-    provinceOpts = new List<SelectOption>();
-    provinceOptsMap = new Map<String, String>();
-    pageRecords = new List<ConsumableorderdetailsInfo>();
-    consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>();
-    consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
-    attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
-    consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>();
-    consumableInvoiceRecords = new List<Consumable_order__c>();
-    categoryOptionList = new List<SelectOption>();
-    category4OptionList = new List<SelectOption>();
-    category5OptionList = new List<SelectOption>();
-
-    categoryOptionMap = new Map<String, String>();
-    category4OptionMap = new Map<String, String>();
-    category5OptionMap = new Map<String, String>();
-
-    outOutPatternOptionMap = new Map<String, String>();
-    outOutPatternOptionMap.put('', '-鏃�-');
-    outOutPatternOptionMap.put('ishos', '鍖婚櫌鐗逛环浜у搧');
-    outOutPatternOptionMap.put('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�');
-
-    outOutPatternOptionList.add(new SelectOption('', '-鏃�-'));
-    outOutPatternOptionList.add(new SelectOption('ishos', '鍖婚櫌鐗逛环浜у搧'));
-    outOutPatternOptionList.add(new SelectOption('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�'));
-    HospitalName = '';
-  }
-
-  public static void firstInit(String ESetidJs) {
-    System.debug('enter firstInit');
-    ESetid = ESetidJs;
-    System.debug('ESetid = ' + ESetid);
-    size = Integer.valueOf(System.Label.orderdetLimitsize);
-    provinceOpts = new List<SelectOption>();
-    provinceOptsMap = new Map<String, String>();
-    pageRecords = new List<ConsumableorderdetailsInfo>();
-    consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>();
-    consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
-    attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
-    consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>();
-    consumableInvoiceRecords = new List<Consumable_order__c>();
-    categoryOptionList = new List<SelectOption>();
-    category4OptionList = new List<SelectOption>();
-    category5OptionList = new List<SelectOption>();
-
-    categoryOptionMap = new Map<String, String>();
-    category4OptionMap = new Map<String, String>();
-    category5OptionMap = new Map<String, String>();
-
-    outOutPatternOptionMap = new Map<String, String>();
-    outOutPatternOptionMap.put('', '-鏃�-');
-    outOutPatternOptionMap.put('ishos', '鍖婚櫌鐗逛环浜у搧');
-    outOutPatternOptionMap.put('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�');
-
-    // outOutPatternOptionList.add(new SelectOption('', '-鏃�-'));
-    // outOutPatternOptionList.add(new SelectOption('ishos', '鍖婚櫌鐗逛环浜у搧'));
-    // outOutPatternOptionList.add(new SelectOption('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�'));
-    HospitalName = '';
-  }
-
-  // 鐢婚潰鍒濆鍖�
-  @AuraEnabled
-  public static ResponseBodyLWC init(
-    String ESetidJs,
-    String statusEdit,
-    Integer pageSizeLWC,
-    Integer pageTokenLWC,
-    String arriveorderLWC
-  ) {
-    try {
-      firstInit(ESetidJs);
-      statusEdit = statusEdit;
-      arriveorder = arriveorderLWC;
-      HospitalName = '';
-      provinceOpts = new List<SelectOption>();
-      provinceOptsMap = new Map<String, String>();
-      ResponseBodyLWC res = new ResponseBodyLWC();
-      Map<String, object> data = new Map<String, object>();
-      res.entity = data;
-      // public static Integer pagesize { get; set; }
-      // public static Integer pageToken { get; set; }
-      // public static String sortField { get; set; }
-      // public static String sortOrder { get; set; }
-      pagesize = pageSizeLWC;
-      pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC;
-
-      // sortKey = '1';
-      // preSortKey = '1';
-      // sortOrderAsc = false;
-      // sortOrder = new List<String>(8);
-      // sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '鈫�', '', '', '' };
-      //cate1ForSort = '';
-      sumPrice = 0;
-      IdCheck = EsetId;
-      if (
-        ESetId != null &&
-        ESetId != '' &&
-        (statusEdit == '' ||
-        statusEdit == null)
-      ) {
-        editAble = false;
-      } else if (
-        (ESetId == null || ESetId == '') &&
-        (statusEdit == '' ||
-        statusEdit == null)
-      ) {
-        editAble = true;
-      } else if (
-        ESetId != null &&
-        ESetId != '' &&
-        statusEdit != '' &&
-        statusEdit != null
-      ) {
-        editAble = true;
-      }
-      userId = UserInfo.getUserId();
-      localuser = [
-        SELECT id, State_Hospital__c
-        FROM User
-        WHERE id = :UserInfo.getUserId()
-      ];
-      //userId = '00510000005QO75';
-      user Useracc = [
-        SELECT accountid, Work_Location__c, UserPro_Type__c
-        FROM user
-        WHERE id = :userId
-      ];
-      accountid = Useracc.accountid;
-      userWorkLocation = Useracc.Work_Location__c;
-      agencyProType = Useracc.UserPro_Type__c;
-      if (String.isBlank(Useracc.UserPro_Type__c)) {
-        agencyProType = 'ET';
-      }
-      Account accountInfo = [SELECT Name FROM account WHERE id = :accountid];
-      accountName = accountInfo.Name;
-      //coc.Order_date__c = Date.today();
-      list<Dealer_elationship__c> Dealerelationship = new List<Dealer_elationship__c>();
-      Dealerelationship = [
-        SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name
-        FROM Dealer_elationship__c
-        WHERE Dealer_principal__c = :accountid
-      ];
-
-      List<Agency_Hospital_Link__c> AgencyHospitalLink = new List<Agency_Hospital_Link__c>();
-      AgencyHospitalLink = [
-        SELECT Id, Hospital__c, Hospital__r.Name
-        FROM Agency_Hospital_Link__c
-        WHERE Agency__c = :accountid
-      ];
-
-      //add by rentx 2021-3-1 start
-      //鍒ゆ柇褰撳墠缁忛攢鍟嗕笅鏄惁鏈夌壒浠峰尰闄�
-      List<hospitalprice__c> hlist = [
-        SELECT id, product__c
-        FROM hospitalprice__c
-        WHERE account__c = :accountid
-      ];
-      if (hlist == null || hlist.size() == 0) {
-        hasHos = false;
-      } else {
-        for (hospitalprice__c hp : hlist) {
-          HosProMap.put(hp.product__c, '');
+    //鎬讳环鏍艰绠楃粨鏋�
+    @AuraEnabled
+    public static Decimal sumPrice { get; set; }
+    /******20160317_add**************/
+    public static String SummonsFlag { get; set; } // 鏂拌: hidden, 鏇存柊: visible
+    public static String category5 { get; set; }
+    public static String category4 { get; set; }
+    public static String category3 { get; set; }
+    public static List<SelectOption> categoryOptionList { get; set; }
+    public static List<SelectOption> category4OptionList { get; set; }
+    public static List<SelectOption> category5OptionList { get; set; }
+    @AuraEnabled
+    public static Map<String, String> categoryOptionMap { get; set; }
+    @AuraEnabled
+    public static Map<String, String> category4OptionMap { get; set; }
+    @AuraEnabled
+    public static Map<String, String> category5OptionMap { get; set; }
+    /*****************鐢婚潰琛ㄧずBean******************/
+    private static List<ConsumableorderdetailsInfo> consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
+    //鏄庣粏2
+    @AuraEnabled
+    public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords { get; set; }
+    //閿欒鏄庣粏
+    @AuraEnabled
+    public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserror { get; set; }
+    @AuraEnabled
+    public static List<ConsumableorderdetailsInfo> pageRecords { get; set; }
+    public static List<ConsumableorderdetailsInfoLwc> pageRecordsLwc { get; set; }
+    //public List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview { get; set; }
+    public static List<ConsumableorderdetailsInfo> consumableorderdetails2Records { get; set; }
+    public static List<Consumable_order__c> consumableInvoiceRecords { get; set; }
+    private static List<ConsumableorderdetailsInfo> consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>();
+    private static List<Attachment> attachmentinfo = new List<Attachment>();
+    public static List<Product2__c> product2Selected = new List<Product2__c>();
+    @AuraEnabled
+    public static Map<String, String> orderpieceorboxMap { get; set; }
+    @AuraEnabled
+    public static List<Consumable_orderdetails__c> orderdetails { get; set; }
+    @AuraEnabled
+    public static Map<String, Decimal> orderagencypriceMap { get; set; }
+    @AuraEnabled
+    public static Map<String, Decimal> orderpriceMap { get; set; }
+    @AuraEnabled
+    public static Map<String, Decimal> orderdetCountMap { get; set; }
+    @AuraEnabled
+    public static Boolean hasSpecialHos { get; set; }
+    //閫夋嫨浜у搧size
+    public static Integer consumableorderdetailsCount {
+        get {
+            return pageRecords == null ? 0 : pageRecords.size();
         }
-        hasHos = true;
-      }
-      //add by rentx 2021-3-1 end
+    }
+    //娑堣�楀搧鏄庣粏2鏁伴噺
+    public static Integer consumableorderdetails2Count {
+        get {
+            return consumableorderdetails2Records == null ? 0 : consumableorderdetails2Records.size();
+        }
+    }
+    //璁㈣揣鍗曞彿
+    public static String consumableorderId {
+        get {
+            return (coc.Arrive_Order__c);
+        }
+    }
+    //閫夋嫨妗�
+    public static List<SelectOption> provinceOpts { get; set; }
+    @AuraEnabled
+    public static Map<String, String> provinceOptsMap { get; set; }
+    public static String SecondDealer { get; set; }
+    //public List<SelectOption> orderForHospitalOpts { get; set; }
+    public static String HospitalInfo { get; set; }
+    public static String HospitalName { get; set; }
 
-      saveBtnDisabled = false;
-      SorderBtnDisabled = false;
-      String sqlagencyProType = '%' + agencyProType + '%';
-      coc = new Consumable_order__c();
-      consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
-      Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
-      //add by rentx 2021-01-29
-      Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>();
-      //add by rentx 2021-01-29
+    public static Boolean EditDelCommitBtnDisabled { get; private set; }
+    public static Boolean saveBtnDisabled { get; private set; }
+    public static Boolean SorderBtnDisabled { get; private set; }
 
-      List<AggregateResult> orderdetailCount = [
-        SELECT count(id), Consumable_Product__c cpc, Box_Piece__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 Cancellation_Flag__c = FALSE
-          AND Bar_Code__c != NULL
-          AND Isoverdue__c = 1
-          AND Product_Type__c LIKE :sqlagencyProType
-          AND Dealer_Info_text__c = :accountName
-          AND Arrive_Owner_Work_Location__c = :userWorkLocation
-        GROUP BY Consumable_Product__c, Box_Piece__c
-      ];
-      for (AggregateResult orderdetail : orderdetailCount) {
-        zaikuId.add(String.valueOf(orderdetail.get('cpc')));
-      }
-      System.debug('sqlagencyProType = ' + sqlagencyProType);
-      System.debug('userWorkLocation = ' + userWorkLocation);
-      System.debug('accountName = ' + accountName);
-      List<Consumable_order_details2__c> CountDel = [
-        SELECT
-          Id,
-          Bar_Code__c,
-          Name,
-          Inventory_date__c,
-          Consumable_Product__c,
-          Consumable_Product__r.Asset_Model_No__c,
-          Recordtypeid,
-          Box_Piece__c,
-          ProductPacking_list_manual__c,
-          //add by rentx 2020-11-27 start
-          hospitalSpecialOffer__c
-        //add by rentx 2020-11-27 end
-        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 Isoverdue__c = 1
-          AND Product_Type__c LIKE :sqlagencyProType
-          AND Arrive_Owner_Work_Location__c = :userWorkLocation
-          AND Dealer_Info_text__c = :accountName
-      ];
-      // 鏂拌
-      if (ESetId == null || ESetId == '') {
-        SummonsFlag = 'hidden';
-        String msoql = makeSoqlinventory();
-        initStandardController(msoql);
-        System.debug('msoql = ' + msoql);
-        product2Selected = Database.query(msoql);
-        if (String.isBlank(arriveorder)) {
-          EditDelCommitBtnDisabled = true;
-          for (Integer i = 0; i < product2Selected.size(); i++) {
-            MidMap.put(
-              product2Selected[i].Id,
-              new ConsumableorderdetailsInfo(product2Selected[i])
-            );
-          }
-          for (Integer i = 0; i < CountDel.size(); i++) {
-            String str = '';
-            if (CountDel[i].hospitalSpecialOffer__c) {
-              str = 'isHos';
+    // 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 addSize { get; set; }
+    //List<ConsumableorderdetailsInfoLwc> reSetLwc
+    public static List<ConsumableorderdetailsInfo> addData { get; set; }
+    public static Map<String, String> skipData { get; set; }
+    // 淇濆瓨鍚庡姩浣滐細 1.妫�绱� 2.鎺掑簭
+    // public static String sortKey { get; set; }
+    // public static String preSortKey { get; private set; }
+    // public static Boolean sortOrderAsc { get; private set; }
+    // public static String[] sortOrder { get; private set; }
+    // private static String[] columus = new List<String>{
+    //     'Consumable_Product__r.Name',
+    //     'Consumable_Product__r.Asset_Model_No__c',
+    //     'Consumable_Product__r.Intra_Trade_List_RMB__c',
+    //     '',
+    //     '',
+    //     'Consumable_Product__r.Category3__c',
+    //     'Consumable_Product__r.Category4__c',
+    //     'Consumable_Product__r.Category5__c'
+    // };
+    // private static String[] columus_no = new List<String>{
+    //     'Product2__c.Name',
+    //     'Product2__c.Asset_Model_No__c',
+    //     'Product2__c.Intra_Trade_List_RMB__c',
+    //     '',
+    //     '',
+    //     'Category3__c',
+    //     'Category4__c',
+    //     'Category5__c'
+    // };
+
+    //鍒拌揣鍗曟槑缁�1
+    private static List<Consumable_Orderdetails__c> consumableorderdetailsSelected = new List<Consumable_Orderdetails__c>();
+    //鍒拌揣鍗曟槑缁�2
+    private static List<Consumable_order_details2__c> consumablearriveproductdetailsSelected = new List<Consumable_order_details2__c>();
+
+    //鍑哄簱鍗曟槑缁�2
+    private static List<Consumable_order_details2__c> consumableorderdetails2RecordsList = new List<Consumable_order_details2__c>();
+    /*****************銈姐兗銉堟檪鍐嶆绱㈡潯浠讹紙鐢婚潰銇嬨倝銇叆鍔涙潯浠躲倰鐒¤銇欍倠銇熴倎锛�******************/
+    //private String cate1ForSort = null;
+    private static String accountid = null;
+    @AuraEnabled
+    public static String accountName { get; set; }
+
+    // 浜у搧 ID
+    private static String ESetId = '';
+    @AuraEnabled
+    public static String arriveorder { get; set; }
+    private static String userId = '';
+    //private String[] ProidListAll = new String[]{};
+
+    // 鐧诲綍鑰呭伐浣滃湴
+    @AuraEnabled
+    public static String userWorkLocation { get; set; }
+
+    //add by rentx 2021-01-29
+    public static List<SelectOption> outOutPatternOptionList { get; set; }
+    @AuraEnabled
+    public static Map<String, String> outOutPatternOptionMap { get; set; }
+    public static String outOutPattern { get; set; }
+    public static Boolean hasHos { get; set; }
+    @AuraEnabled
+    public static Boolean hasHosPro { get; set; }
+
+    private static Map<String, String> HosProMap = new Map<String, String>();
+    //add by rentx 2021-01-29
+
+    public LexSummonsCreatController() {
+        System.debug('LexSummonsCreatController');
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        // ESetId = ApexPages.currentPage().getParameters().get('esetId');
+        // arriveorder = ApexPages.currentPage().getParameters().get('arriveorder');
+        // statusEdit = ApexPages.currentPage().getParameters().get('KeyWords');
+        provinceOpts = new List<SelectOption>();
+        provinceOptsMap = new Map<String, String>();
+        pageRecords = new List<ConsumableorderdetailsInfo>();
+        consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>();
+        consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
+        attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
+        consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>();
+        consumableInvoiceRecords = new List<Consumable_order__c>();
+        categoryOptionList = new List<SelectOption>();
+        category4OptionList = new List<SelectOption>();
+        category5OptionList = new List<SelectOption>();
+
+        categoryOptionMap = new Map<String, String>();
+        category4OptionMap = new Map<String, String>();
+        category5OptionMap = new Map<String, String>();
+
+        outOutPatternOptionMap = new Map<String, String>();
+        outOutPatternOptionMap.put('', '-鏃�-');
+        outOutPatternOptionMap.put('ishos', '鍖婚櫌鐗逛环浜у搧');
+        outOutPatternOptionMap.put('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�');
+
+        outOutPatternOptionList.add(new SelectOption('', '-鏃�-'));
+        outOutPatternOptionList.add(new SelectOption('ishos', '鍖婚櫌鐗逛环浜у搧'));
+        outOutPatternOptionList.add(new SelectOption('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�'));
+        HospitalName = '';
+    }
+
+    public static void firstInit(String ESetidJs) {
+        System.debug('enter firstInit');
+        ESetid = ESetidJs;
+        System.debug('ESetid = ' + ESetid);
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        provinceOpts = new List<SelectOption>();
+        provinceOptsMap = new Map<String, String>();
+        pageRecords = new List<ConsumableorderdetailsInfo>();
+        consumableproductdetailsRecords = new List<ConsumableorderdetailsInfo>();
+        consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
+        attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
+        consumableorderdetails2Records = new List<ConsumableorderdetailsInfo>();
+        consumableInvoiceRecords = new List<Consumable_order__c>();
+        categoryOptionList = new List<SelectOption>();
+        category4OptionList = new List<SelectOption>();
+        category5OptionList = new List<SelectOption>();
+
+        categoryOptionMap = new Map<String, String>();
+        category4OptionMap = new Map<String, String>();
+        category5OptionMap = new Map<String, String>();
+
+        outOutPatternOptionMap = new Map<String, String>();
+        outOutPatternOptionMap.put('', '-鏃�-');
+        outOutPatternOptionMap.put('ishos', '鍖婚櫌鐗逛环浜у搧');
+        outOutPatternOptionMap.put('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�');
+
+        // outOutPatternOptionList.add(new SelectOption('', '-鏃�-'));
+        // outOutPatternOptionList.add(new SelectOption('ishos', '鍖婚櫌鐗逛环浜у搧'));
+        // outOutPatternOptionList.add(new SelectOption('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�'));
+        HospitalName = '';
+    }
+
+    // 鐢婚潰鍒濆鍖�
+    @AuraEnabled
+    public static ResponseBodyLWC init(String ESetidJs, String statusEdit, Integer pageSizeLWC, Integer pageTokenLWC,String arriveorderLWC) {
+        try {
+            firstInit(ESetidJs);
+            statusEdit = statusEdit;
+            arriveorder = arriveorderLWC;
+            HospitalName = '';
+            provinceOpts = new List<SelectOption>();
+            provinceOptsMap = new Map<String, String>();
+            ResponseBodyLWC res = new ResponseBodyLWC();
+            Map<String, object> data = new Map<String, object>();
+            res.entity = data;
+            // public static Integer pagesize { get; set; }
+            // public static Integer pageToken { get; set; }
+            // public static String sortField { get; set; }
+            // public static String sortOrder { get; set; }
+            pagesize = pageSizeLWC;
+            pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC;
+
+            // sortKey = '1';
+            // preSortKey = '1';
+            // sortOrderAsc = false;
+            // sortOrder = new List<String>(8);
+            // sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '鈫�', '', '', '' };
+            //cate1ForSort = '';
+            sumPrice = 0;
+            IdCheck = EsetId;
+            if (ESetId != null && ESetId != '' && (statusEdit == '' || statusEdit == null)) {
+                editAble = false;
+            } else if ((ESetId == null || ESetId == '') && (statusEdit == '' || statusEdit == null)) {
+                editAble = true;
+            } else if (ESetId != null && ESetId != '' && statusEdit != '' && statusEdit != null) {
+                editAble = true;
+            }
+            userId = UserInfo.getUserId();
+            localuser = [SELECT id, State_Hospital__c FROM User WHERE id = :UserInfo.getUserId()];
+            //userId = '00510000005QO75';
+            user Useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c FROM user WHERE id = :userId];
+            accountid = Useracc.accountid;
+            userWorkLocation = Useracc.Work_Location__c;
+            agencyProType = Useracc.UserPro_Type__c;
+            if (String.isBlank(Useracc.UserPro_Type__c)) {
+                agencyProType = 'ET';
+            }
+            Account accountInfo = [SELECT Name FROM account WHERE id = :accountid];
+            accountName = accountInfo.Name;
+            //coc.Order_date__c = Date.today();
+            list<Dealer_elationship__c> Dealerelationship = new List<Dealer_elationship__c>();
+            Dealerelationship = [
+                SELECT Dealer_subordinate__c, Dealer_subordinate__r.Name
+                FROM Dealer_elationship__c
+                WHERE Dealer_principal__c = :accountid
+            ];
+
+            List<Agency_Hospital_Link__c> AgencyHospitalLink = new List<Agency_Hospital_Link__c>();
+            AgencyHospitalLink = [SELECT Id, Hospital__c, Hospital__r.Name FROM Agency_Hospital_Link__c WHERE Agency__c = :accountid];
+
+            //add by rentx 2021-3-1 start
+            //鍒ゆ柇褰撳墠缁忛攢鍟嗕笅鏄惁鏈夌壒浠峰尰闄�
+            List<hospitalprice__c> hlist = [SELECT id, product__c FROM hospitalprice__c WHERE account__c = :accountid];
+            if (hlist == null || hlist.size() == 0) {
+                hasHos = false;
             } else {
-              str = 'notHos';
+                for (hospitalprice__c hp : hlist) {
+                    HosProMap.put(hp.product__c, '');
+                }
+                hasHos = true;
             }
-            //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
-            if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
-              //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
-              if (
-                MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)
-              ) {
-                ConsumableorderdetailsInfo Jstage = MidMap2.get(
-                  CountDel[i].Consumable_Product__c + str
-                );
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
-                }
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
-                }
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
-                }
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              } else {
-                //midmap2涓病鏈夊搴旂殑浜у搧
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                    CountDel[i].Consumable_Product__c
-                  )
-                  .clone();
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
-                }
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
-                }
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
-                }
-                //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              }
+            //add by rentx 2021-3-1 end
+
+            saveBtnDisabled = false;
+            SorderBtnDisabled = false;
+            String sqlagencyProType = '%' + agencyProType + '%';
+            coc = new Consumable_order__c();
+            consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
+            Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
+            //add by rentx 2021-01-29
+            Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>();
+            //add by rentx 2021-01-29
+
+            List<AggregateResult> orderdetailCount = [
+                SELECT count(id), Consumable_Product__c cpc, Box_Piece__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 Cancellation_Flag__c = FALSE
+                    AND Bar_Code__c != NULL
+                    AND Isoverdue__c = 1
+                    AND Product_Type__c LIKE :sqlagencyProType
+                    AND Dealer_Info_text__c = :accountName
+                    AND Arrive_Owner_Work_Location__c = :userWorkLocation
+                GROUP BY Consumable_Product__c, Box_Piece__c
+            ];
+            for (AggregateResult orderdetail : orderdetailCount) {
+                zaikuId.add(String.valueOf(orderdetail.get('cpc')));
             }
-            System.debug('MidMap2.size() = ' + MidMap2.size());
-            /*//鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
+            System.debug('orderdetailCount = ' + orderdetailCount);
+            System.debug('sqlagencyProType = ' + sqlagencyProType);
+            System.debug('userWorkLocation = ' + userWorkLocation);
+            System.debug('accountName = ' + accountName);
+            List<Consumable_order_details2__c> CountDel = [
+                SELECT
+                    Id,
+                    Bar_Code__c,
+                    Name,
+                    Inventory_date__c,
+                    Consumable_Product__c,
+                    Consumable_Product__r.Asset_Model_No__c,
+                    Recordtypeid,
+                    Box_Piece__c,
+                    ProductPacking_list_manual__c,
+                    //add by rentx 2020-11-27 start
+                    hospitalSpecialOffer__c
+                //add by rentx 2020-11-27 end
+                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 Isoverdue__c = 1
+                    AND Product_Type__c LIKE :sqlagencyProType
+                    AND Arrive_Owner_Work_Location__c = :userWorkLocation
+                    AND Dealer_Info_text__c = :accountName
+            ];
+            // 鏂拌
+            if (ESetId == null || ESetId == '') {
+                SummonsFlag = 'hidden';
+                String msoql = makeSoqlinventory();
+                initStandardController(msoql);
+                System.debug('msoql = ' + msoql);
+                product2Selected = Database.query(msoql);
+                if (String.isBlank(arriveorder)) {
+                    EditDelCommitBtnDisabled = true;
+                    for (Integer i = 0; i < product2Selected.size(); i++) {
+                        MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+                    }
+                    System.debug('MidMap = ' + MidMap);
+                    for (Integer i = 0; i < CountDel.size(); i++) {
+                        String str = '';
+                        if (CountDel[i].hospitalSpecialOffer__c) {
+                            str = 'isHos';
+                        } else {
+                            str = 'notHos';
+                        }
+                        System.debug('CountDel[i].Consumable_Product__c= ' + CountDel[i].Consumable_Product__c);
+                        System.debug('CountDel[i].Consumable_Product__c + str= ' + CountDel[i].Consumable_Product__c + str);
+                        //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
+                        if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
+                            //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
+                            if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str);
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            } else {
+                                //midmap2涓病鏈夊搴旂殑浜у搧
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone();
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            }
+                        }
+                        System.debug('MidMap2.size() = ' + MidMap2.size());
+                        /*//鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
                             if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){
                                 ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c);
                                 Jstage.allnumber = Jstage.allnumber+1 ;
@@ -509,144 +456,135 @@
                                 //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
                                 MidMap.put(CountDel[i].Consumable_Product__c+str, Jstage);
                             }*/
-          }
+                    }
 
-          //update by rentx 2021-01-29 end
+                    //update by rentx 2021-01-29 end
 
-          //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
-          //update by rentx 2021-01-29
-          // for(ConsumableorderdetailsInfo bss : MidMap.values()){
-          for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
-            //update by rentx 2021-01-29
-            //if(bss.allnumber>0){
-            bss.packinglist = 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;
-            consumableorderdetailsSelectRecords.add(bss);
-            //}
-          }
+                    //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
+                    //update by rentx 2021-01-29
+                    // for(ConsumableorderdetailsInfo bss : MidMap.values()){
+                    for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
+                        //update by rentx 2021-01-29
+                        //if(bss.allnumber>0){
+                        bss.packinglist = 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;
+                        consumableorderdetailsSelectRecords.add(bss);
+                        //}
+                    }
 
-          Integer ishosnum = 0;
-          for (
-            ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords
-          ) {
-            //ass.sortBy = sortOrderAsc;
-            //add by rentx 2021-3-10
-            if (ass.hospitalSpecialOffer) {
-              ishosnum = ishosnum + 1;
-            }
-          }
-          if (ishosnum > 0) {
-            hasHosPro = true;
-          } else {
-            hasHosPro = false;
-          }
-          consumableorderdetailsSelectRecords.sort();
-          //add by rentx
-          noOfRecords = consumableorderdetailsSelectRecords.size();
-          //add by rentx
-          System.debug('makepagerecords1');
-          makepagerecords();
-          //listCut();
-        } else {
-          if (statusEdit == '' || statusEdit == null) {
-            editAble = false;
-          } else if (statusEdit != '' && statusEdit != null) {
-            editAble = true;
-          }
-          // upadte start by vivek 2019-7-15
-          // coc = [SELECT Id,Name,Summons_Order_type__c,SummonsStatus_c__c,Order_ForDealerText__c,
-          //             Dealer_Info__c,Order_ForDealer__c,Order_ForDealer__r.Name,Order_ForDealerTextID__c,
-          //             Order_ForHospital__c,SummonsForDirction__c,Order_date__c,Arrive_Order__c,
-          //             Order_status__c,Shipment_total_amount__c,Offers_Price__c,
-          //             Billed_Status__c,ShipmentAccount__c,Order_Dealer_Info__c,Order_ForCustomerText__c,ConInvoice_Code__c,Onchange_order__c
-          //         FROM Consumable_order__c
-          //         WHERE Id =:arriveorder AND Order_Owner_WorkLocal__c =: userWorkLocation
-          //         AND recordtypeid = :System.Label.RT_ConOrder_Arrive];
-          coc = [
-            SELECT
-              Id,
-              Name,
-              Summons_Order_type__c,
-              NoConfirmedPrice__c,
-              SummonsStatus_c__c,
-              Order_ForDealerText__c,
-              Dealer_Info__c,
-              Order_ForDealer__c,
-              Order_ForDealer__r.Name,
-              Order_ForDealerTextID__c,
-              Order_ForHospital__c,
-              SummonsForDirction__c,
-              Order_date__c,
-              Arrive_Order__c,
-              Order_status__c,
-              Shipment_total_amount__c,
-              Offers_Price__c,
-              Billed_Status__c,
-              ShipmentAccount__c,
-              Order_Dealer_Info__c,
-              Order_ForCustomerText__c,
-              ConInvoice_Code__c,
-              Onchange_order__c,
-              OutPattern__c
-            FROM Consumable_order__c
-            WHERE
-              Id = :arriveorder
-              AND Order_Owner_WorkLocal__c = :userWorkLocation
-              AND recordtypeid = :System.Label.RT_ConOrder_Arrive
-          ];
-          // update end by vivek 2019-7-15
-          //鏄庣粏1鑾峰彇
-          consumableorderdetailsSelected = [
-            SELECT
-              Id,
-              Dealer_Custom_Price__c,
-              Delivery_List_RMB__c,
-              Consumable_Product__r.Name__c,
-              Name,
-              Consumable_order__c,
-              Consumable_Product__c,
-              Consumable_Product__r.Name,
-              Consumable_Product__r.Category3__c,
-              Consumable_Product__r.Category4__c,
-              Consumable_Product__r.Category5__c,
-              Shipment_Count__c,
-              Consumable_Product__r.Intra_Trade_List_RMB__c,
-              Consumable_Product__r.Asset_Model_No__c,
-              Sum_of_money__c,
-              Box_Piece__c,
-              ProductPacking_list_manual__c,
-              Consumable_Product__r.SFDA_Status__c,
-              Consumable_count__c,
-              Invoiced_Procount__c,
-              RrturnPro_count__c,
-              InvoiceProNot_count__c,
-              //Unitprice_To_agency__c,
-              Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
-              Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c
-            FROM Consumable_Orderdetails__c
-            WHERE Consumable_order__c = :coc.Arrive_Order__c
-            ORDER BY Name
-          ];
-          for (
-            Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected
-          ) {
-            orderzaikuId.add(cdc1.Consumable_Product__c);
-          }
-          msoql = makeSoqlorderdet();
-          product2Selected = Database.query(msoql);
-          size = product2Selected.size();
-          initStandardController(msoql);
-          for (Integer i = 0; i < product2Selected.size(); i++) {
-            MidMap.put(
-              product2Selected[i].Id,
-              new ConsumableorderdetailsInfo(product2Selected[i])
-            );
-          }
-          //update by rentx 2021-01-29
-          /*for(Integer i = 0 ; i< CountDel.size();i++){
+                    Integer ishosnum = 0;
+                    for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) {
+                        //ass.sortBy = sortOrderAsc;
+                        //add by rentx 2021-3-10
+                        if (ass.hospitalSpecialOffer) {
+                            ishosnum = ishosnum + 1;
+                        }
+                    }
+                    if (ishosnum > 0) {
+                        hasHosPro = true;
+                    } else {
+                        hasHosPro = false;
+                    }
+                    consumableorderdetailsSelectRecords.sort();
+                    //add by rentx
+                    noOfRecords = consumableorderdetailsSelectRecords.size();
+                    //add by rentx
+                    System.debug('makepagerecords1');
+                    makepagerecords();
+                    //listCut();
+                } else {
+                    if (statusEdit == '' || statusEdit == null) {
+                        editAble = false;
+                    } else if (statusEdit != '' && statusEdit != null) {
+                        editAble = true;
+                    }
+                    // upadte start by vivek 2019-7-15
+                    // coc = [SELECT Id,Name,Summons_Order_type__c,SummonsStatus_c__c,Order_ForDealerText__c,
+                    //             Dealer_Info__c,Order_ForDealer__c,Order_ForDealer__r.Name,Order_ForDealerTextID__c,
+                    //             Order_ForHospital__c,SummonsForDirction__c,Order_date__c,Arrive_Order__c,
+                    //             Order_status__c,Shipment_total_amount__c,Offers_Price__c,
+                    //             Billed_Status__c,ShipmentAccount__c,Order_Dealer_Info__c,Order_ForCustomerText__c,ConInvoice_Code__c,Onchange_order__c
+                    //         FROM Consumable_order__c
+                    //         WHERE Id =:arriveorder AND Order_Owner_WorkLocal__c =: userWorkLocation
+                    //         AND recordtypeid = :System.Label.RT_ConOrder_Arrive];
+                    coc = [
+                        SELECT
+                            Id,
+                            Name,
+                            Summons_Order_type__c,
+                            NoConfirmedPrice__c,
+                            SummonsStatus_c__c,
+                            Order_ForDealerText__c,
+                            Dealer_Info__c,
+                            Order_ForDealer__c,
+                            Order_ForDealer__r.Name,
+                            Order_ForDealerTextID__c,
+                            Order_ForHospital__c,
+                            SummonsForDirction__c,
+                            Order_date__c,
+                            Arrive_Order__c,
+                            Order_status__c,
+                            Shipment_total_amount__c,
+                            Offers_Price__c,
+                            Billed_Status__c,
+                            ShipmentAccount__c,
+                            Order_Dealer_Info__c,
+                            Order_ForCustomerText__c,
+                            ConInvoice_Code__c,
+                            Onchange_order__c,
+                            OutPattern__c
+                        FROM Consumable_order__c
+                        WHERE
+                            Id = :arriveorder
+                            AND Order_Owner_WorkLocal__c = :userWorkLocation
+                            AND recordtypeid = :System.Label.RT_ConOrder_Arrive
+                    ];
+                    // update end by vivek 2019-7-15
+                    //鏄庣粏1鑾峰彇
+                    consumableorderdetailsSelected = [
+                        SELECT
+                            Id,
+                            Dealer_Custom_Price__c,
+                            Delivery_List_RMB__c,
+                            Consumable_Product__r.Name__c,
+                            Name,
+                            Consumable_order__c,
+                            Consumable_Product__c,
+                            Consumable_Product__r.Name,
+                            Consumable_Product__r.Category3__c,
+                            Consumable_Product__r.Category4__c,
+                            Consumable_Product__r.Category5__c,
+                            Shipment_Count__c,
+                            Consumable_Product__r.Intra_Trade_List_RMB__c,
+                            Consumable_Product__r.Asset_Model_No__c,
+                            Sum_of_money__c,
+                            Box_Piece__c,
+                            ProductPacking_list_manual__c,
+                            Consumable_Product__r.SFDA_Status__c,
+                            Consumable_count__c,
+                            Invoiced_Procount__c,
+                            RrturnPro_count__c,
+                            InvoiceProNot_count__c,
+                            //Unitprice_To_agency__c,
+                            Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
+                            Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c
+                        FROM Consumable_Orderdetails__c
+                        WHERE Consumable_order__c = :coc.Arrive_Order__c
+                        ORDER BY Name
+                    ];
+                    for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) {
+                        orderzaikuId.add(cdc1.Consumable_Product__c);
+                    }
+                    msoql = makeSoqlorderdet();
+                    product2Selected = Database.query(msoql);
+                    size = product2Selected.size();
+                    initStandardController(msoql);
+                    for (Integer i = 0; i < product2Selected.size(); i++) {
+                        MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+                    }
+                    //update by rentx 2021-01-29
+                    /*for(Integer i = 0 ; i< CountDel.size();i++){
                             //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
                             if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){
                                 ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c);
@@ -661,327 +599,275 @@
                             }
 
                         }*/
-          for (Integer i = 0; i < CountDel.size(); i++) {
-            String str = '';
-            if (CountDel[i].hospitalSpecialOffer__c) {
-              str = 'isHos';
+                    for (Integer i = 0; i < CountDel.size(); i++) {
+                        String str = '';
+                        if (CountDel[i].hospitalSpecialOffer__c) {
+                            str = 'isHos';
+                        } else {
+                            str = 'notHos';
+                        }
+                        //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
+                        if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
+                            //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
+                            if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str);
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            } else {
+                                //midmap2涓病鏈夊搴旂殑浜у搧
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone();
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            }
+                        }
+                    }
+
+                    //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
+                    //update by rentx 2021-01-29
+                    // for(ConsumableorderdetailsInfo bss : MidMap.values()){
+                    for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
+                        //update by rentx 2021-01-29
+                        bss.packinglist = 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;
+                        consumableorderdetailsSelectRecords.add(bss);
+                    }
+                    //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test11111' + consumableorderdetailsSelected.size()));
+                    //return;
+
+                    Integer ishosnum = 0;
+                    for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) {
+                        //ass.sortBy = sortOrderAsc;
+                        for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) {
+                            cdc1.Shipment_Count__c = cdc1.Consumable_count__c;
+                            if (ass.prod.Id == cdc1.Consumable_Product__c) {
+                                ass.check = true;
+                                ass.orderdetails1 = cdc1;
+                            }
+                        }
+                        if (ass.hospitalSpecialOffer == true) {
+                            ishosnum = ishosnum + 1;
+                        }
+                    }
+                    if (ishosnum > 0) {
+                        hasHosPro = true;
+                    } else {
+                        hasHosPro = false;
+                    }
+
+                    consumableorderdetailsSelectRecords.sort();
+                    //add by rentx
+                    noOfRecords = consumableorderdetailsSelectRecords.size();
+                    //add by rentx
+                    System.debug('makepagerecords2');
+                    makepagerecords();
+                    consumablearriveproductdetailsSelected = [
+                        SELECT
+                            Id,
+                            Name,
+                            Intra_Trade_List_RMB__c,
+                            Asset_Model_No__c,
+                            Consumable_Product__c,
+                            Consumable_Product__r.Name,
+                            Consumable_Product__r.Name__c,
+                            Consumable_Product__r.Category3__c,
+                            Consumable_Product__r.Category4__c,
+                            Consumable_Product__r.Category5__c,
+                            Sterilization_limit__c,
+                            Deliver_date__c,
+                            Bar_Code__c,
+                            Arrive_date__c,
+                            Send_Date__c,
+                            Consumable_order_minor__r.Name,
+                            Consumable_order_minor__c,
+                            Dealer_Arrive__c,
+                            Delivery_List_RMB__c,
+                            Box_Piece__c,
+                            ProductPacking_list_manual__c,
+                            //add by rentx start
+                            hospitalSpecialOffer__c
+                        //add by rentx end
+                        FROM Consumable_order_details2__c
+                        WHERE
+                            Consumable_order_minor__c = :coc.Arrive_Order__c
+                            AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery
+                            AND Dealer_Arrive__c = TRUE
+                        ORDER BY Name
+                    ];
+                    for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) {
+                        if (
+                            consumablearriveproductdetailsSelected[i].hospitalSpecialOffer__c &&
+                            HosProMap.containsKey(consumablearriveproductdetailsSelected[i].Consumable_product__c)
+                        ) {
+                            coc.OutPattern__c = true;
+                        }
+                        consumableproductdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i]));
+                    }
+                }
             } else {
-              str = 'notHos';
-            }
-            //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
-            if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
-              //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
-              if (
-                MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)
-              ) {
-                ConsumableorderdetailsInfo Jstage = MidMap2.get(
-                  CountDel[i].Consumable_Product__c + str
-                );
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                // 鏇存柊銆�
+                SummonsFlag = 'visible';
+                // update start by vivek 2019-7-15 add 鈥淣oConfirmedPrice__c鈥� in select
+                consumableInvoiceRecords = [
+                    SELECT Id, Name, Invoice_Date__c, NoConfirmedPrice__c, Invoice_total_amount__c, Invoice_status__c
+                    FROM Consumable_order__c
+                    WHERE
+                        Id IN (SELECT Invoice_Code_link__c FROM Consumable_order_LinkTable__c WHERE Outboundorder_Code_link__c = :ESetId)
+                        AND Invoice_status__c != '鑽夋涓�'
+                ];
+
+                System.debug('coc ESetId = ' + ESetId);
+                System.debug('coc userWorkLocation = ' + userWorkLocation);
+                coc = [
+                    SELECT
+                        Id,
+                        Name,
+                        Summons_Order_type__c,
+                        NoConfirmedPrice__c,
+                        SummonsStatus_c__c,
+                        Order_ForDealerText__c,
+                        Dealer_Info__c,
+                        Order_ForDealer__c,
+                        Order_ForDealer__r.Name,
+                        Order_ForDealerTextID__c,
+                        Order_ForHospital__c,
+                        SummonsForDirction__c,
+                        Order_date__c,
+                        Arrive_Order__c,
+                        Order_status__c,
+                        Shipment_total_amount__c,
+                        Offers_Price__c,
+                        Billed_Status__c,
+                        ShipmentAccount__c,
+                        Order_Dealer_Info__c,
+                        Order_ForCustomerText__c,
+                        ConInvoice_Code__c,
+                        Onchange_order__c,
+                        OutPattern__c
+                    FROM Consumable_order__c
+                    WHERE Id = :ESetId AND Order_Owner_WorkLocal__c = :userWorkLocation AND Order_type__c = '浼犵エ'
+                ];
+                // update start by vivek 2019-7-15
+                if (getExistarrive()) {
+                    arriveorder = coc.Arrive_Order__c;
                 }
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
-                }
+                // 鍒拌揣璁㈠崟鏉ョ殑鏃跺��
+                if (getExistarrive()) {
+                    if (editAble) {
+                        alertMessage = '鍒拌揣璁㈠崟鐩存帴鍑哄簱锛屽嚭搴撳崟鏄庣粏涓嶅彲缂栬緫';
+                    }
+                    if (coc.SummonsStatus_c__c == '宸叉彁浜�' || coc.SummonsStatus_c__c == '鎵瑰噯') {
+                        system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c);
+                        saveBtnDisabled = true;
+                        SorderBtnDisabled = true;
+                        EditDelCommitBtnDisabled = false;
+                    }
+                    //鍖婚櫌浜岀骇缁忛攢鍟嗗垎绫�
+                    Integer io = 0;
+                    while (io < Dealerelationship.size()) {
+                        if (coc.Order_ForDealer__c == Dealerelationship[io].Dealer_subordinate__c) {
+                            SecondDealer = Dealerelationship[io].Dealer_subordinate__c;
+                            coc.Order_ForDealer__c = null;
+                            io = io + Dealerelationship.size();
+                        }
+                        io++;
+                    }
 
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
-                }
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              } else {
-                //midmap2涓病鏈夊搴旂殑浜у搧
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                    CountDel[i].Consumable_Product__c
-                  )
-                  .clone();
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
-                }
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
-                }
+                    Integer ik = 0;
+                    while (ik < AgencyHospitalLink.size()) {
+                        if (coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c) {
+                            HospitalInfo = AgencyHospitalLink[ik].Hospital__c;
+                            HospitalName = AgencyHospitalLink[ik].Hospital__r.Name;
+                            coc.Order_ForHospital__c = null;
+                            ik = ik + AgencyHospitalLink.size();
+                        }
+                        ik++;
+                    }
+                    //鍑哄簱鍗曟槑缁�1鍙栧緱
+                    consumableorderdetailsSelected = [
+                        SELECT
+                            Id,
+                            Dealer_Custom_Price__c,
+                            Delivery_List_RMB__c,
+                            Consumable_Product__r.Name__c,
+                            Consumable_Product__r.SFDA_Status__c,
+                            Name,
+                            Consumable_order__c,
+                            Consumable_Product__c,
+                            Consumable_Product__r.Name,
+                            Shipment_Count__c,
+                            Consumable_Product__r.Intra_Trade_List_RMB__c,
+                            Consumable_Product__r.Asset_Model_No__c,
+                            Consumable_Product__r.Category3__c,
+                            Consumable_Product__r.Category4__c,
+                            Consumable_Product__r.Category5__c,
+                            Shipment_amount__c,
+                            //Unitprice_To_agency__c,
+                            Box_Piece__c,
+                            ProductPacking_list_manual__c,
+                            Invoiced_Procount__c,
+                            RrturnPro_count__c,
+                            InvoiceProNot_count__c,
+                            Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
+                            Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c,
+                            isOutPattern__c
+                        FROM Consumable_orderdetails__c
+                        WHERE Consumable_order__c = :ESetId AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation
+                        ORDER BY Name
+                    ];
+                    Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>();
 
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
-                }
-                //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              }
-            }
-          }
+                    for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) {
+                        sumPrice += cdc1.Shipment_amount__c;
+                        orderzaikuId.add(cdc1.Consumable_Product__c);
+                        //add by rentx 2021-2-26
+                        String tempId = cdc1.Consumable_product__c;
+                        if (cdc1.isOutPattern__c) {
+                            cocMap.put(tempId + 'ishos', cdc1);
+                        } else {
+                            cocMap.put(tempId + 'nothos', cdc1);
+                        }
+                        //add by rentx 2021-2-26
+                    }
+                    String msoql = makeSoqlorderdet();
+                    product2Selected = Database.query(msoql);
+                    size = product2Selected.size();
+                    initStandardController(msoql);
 
-          //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
-          //update by rentx 2021-01-29
-          // for(ConsumableorderdetailsInfo bss : MidMap.values()){
-          for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
-            //update by rentx 2021-01-29
-            bss.packinglist = 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;
-            consumableorderdetailsSelectRecords.add(bss);
-          }
-          //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test11111' + consumableorderdetailsSelected.size()));
-          //return;
-
-          Integer ishosnum = 0;
-          for (
-            ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords
-          ) {
-            //ass.sortBy = sortOrderAsc;
-            for (
-              Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected
-            ) {
-              cdc1.Shipment_Count__c = cdc1.Consumable_count__c;
-              if (ass.prod.Id == cdc1.Consumable_Product__c) {
-                ass.check = true;
-                ass.orderdetails1 = cdc1;
-              }
-            }
-            if (ass.hospitalSpecialOffer == true) {
-              ishosnum = ishosnum + 1;
-            }
-          }
-          if (ishosnum > 0) {
-            hasHosPro = true;
-          } else {
-            hasHosPro = false;
-          }
-
-          consumableorderdetailsSelectRecords.sort();
-          //add by rentx
-          noOfRecords = consumableorderdetailsSelectRecords.size();
-          //add by rentx
-          System.debug('makepagerecords2');
-          makepagerecords();
-          consumablearriveproductdetailsSelected = [
-            SELECT
-              Id,
-              Name,
-              Intra_Trade_List_RMB__c,
-              Asset_Model_No__c,
-              Consumable_Product__c,
-              Consumable_Product__r.Name,
-              Consumable_Product__r.Name__c,
-              Consumable_Product__r.Category3__c,
-              Consumable_Product__r.Category4__c,
-              Consumable_Product__r.Category5__c,
-              Sterilization_limit__c,
-              Deliver_date__c,
-              Bar_Code__c,
-              Arrive_date__c,
-              Send_Date__c,
-              Consumable_order_minor__r.Name,
-              Consumable_order_minor__c,
-              Dealer_Arrive__c,
-              Delivery_List_RMB__c,
-              Box_Piece__c,
-              ProductPacking_list_manual__c,
-              //add by rentx start
-              hospitalSpecialOffer__c
-            //add by rentx end
-            FROM Consumable_order_details2__c
-            WHERE
-              Consumable_order_minor__c = :coc.Arrive_Order__c
-              AND recordtypeid = :System.Label.RT_ConOrderDetail2_Delivery
-              AND Dealer_Arrive__c = TRUE
-            ORDER BY Name
-          ];
-          for (
-            Integer i = 0;
-            i < consumablearriveproductdetailsSelected.size();
-            i++
-          ) {
-            if (
-              consumablearriveproductdetailsSelected[i]
-                .hospitalSpecialOffer__c &&
-              HosProMap.containsKey(
-                consumablearriveproductdetailsSelected[i].Consumable_product__c
-              )
-            ) {
-              coc.OutPattern__c = true;
-            }
-            consumableproductdetailsRecords.add(
-              new ConsumableorderdetailsInfo(
-                consumablearriveproductdetailsSelected[i]
-              )
-            );
-          }
-        }
-      } else {
-        // 鏇存柊銆�
-        SummonsFlag = 'visible';
-        // update start by vivek 2019-7-15 add 鈥淣oConfirmedPrice__c鈥� in select
-        consumableInvoiceRecords = [
-          SELECT
-            Id,
-            Name,
-            Invoice_Date__c,
-            NoConfirmedPrice__c,
-            Invoice_total_amount__c,
-            Invoice_status__c
-          FROM Consumable_order__c
-          WHERE
-            Id IN (
-              SELECT Invoice_Code_link__c
-              FROM Consumable_order_LinkTable__c
-              WHERE Outboundorder_Code_link__c = :ESetId
-            )
-            AND Invoice_status__c != '鑽夋涓�'
-        ];
-
-        System.debug('coc ESetId = ' + ESetId);
-        System.debug('coc userWorkLocation = ' + userWorkLocation);
-        coc = [
-          SELECT
-            Id,
-            Name,
-            Summons_Order_type__c,
-            NoConfirmedPrice__c,
-            SummonsStatus_c__c,
-            Order_ForDealerText__c,
-            Dealer_Info__c,
-            Order_ForDealer__c,
-            Order_ForDealer__r.Name,
-            Order_ForDealerTextID__c,
-            Order_ForHospital__c,
-            SummonsForDirction__c,
-            Order_date__c,
-            Arrive_Order__c,
-            Order_status__c,
-            Shipment_total_amount__c,
-            Offers_Price__c,
-            Billed_Status__c,
-            ShipmentAccount__c,
-            Order_Dealer_Info__c,
-            Order_ForCustomerText__c,
-            ConInvoice_Code__c,
-            Onchange_order__c,
-            OutPattern__c
-          FROM Consumable_order__c
-          WHERE
-            Id = :ESetId
-            AND Order_Owner_WorkLocal__c = :userWorkLocation
-            AND Order_type__c = '浼犵エ'
-        ];
-        // update start by vivek 2019-7-15
-        if (getExistarrive()) {
-          arriveorder = coc.Arrive_Order__c;
-        }
-        // 鍒拌揣璁㈠崟鏉ョ殑鏃跺��
-        if (getExistarrive()) {
-          if (editAble) {
-            alertMessage = '鍒拌揣璁㈠崟鐩存帴鍑哄簱锛屽嚭搴撳崟鏄庣粏涓嶅彲缂栬緫';
-          }
-          if (
-            coc.SummonsStatus_c__c == '宸叉彁浜�' ||
-            coc.SummonsStatus_c__c == '鎵瑰噯'
-          ) {
-            system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c);
-            saveBtnDisabled = true;
-            SorderBtnDisabled = true;
-            EditDelCommitBtnDisabled = false;
-          }
-          //鍖婚櫌浜岀骇缁忛攢鍟嗗垎绫�
-          Integer io = 0;
-          while (io < Dealerelationship.size()) {
-            if (
-              coc.Order_ForDealer__c ==
-              Dealerelationship[io].Dealer_subordinate__c
-            ) {
-              SecondDealer = Dealerelationship[io].Dealer_subordinate__c;
-              coc.Order_ForDealer__c = null;
-              io = io + Dealerelationship.size();
-            }
-            io++;
-          }
-
-          Integer ik = 0;
-          while (ik < AgencyHospitalLink.size()) {
-            if (
-              coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c
-            ) {
-              HospitalInfo = AgencyHospitalLink[ik].Hospital__c;
-              HospitalName = AgencyHospitalLink[ik].Hospital__r.Name;
-              coc.Order_ForHospital__c = null;
-              ik = ik + AgencyHospitalLink.size();
-            }
-            ik++;
-          }
-          //鍑哄簱鍗曟槑缁�1鍙栧緱
-          consumableorderdetailsSelected = [
-            SELECT
-              Id,
-              Dealer_Custom_Price__c,
-              Delivery_List_RMB__c,
-              Consumable_Product__r.Name__c,
-              Consumable_Product__r.SFDA_Status__c,
-              Name,
-              Consumable_order__c,
-              Consumable_Product__c,
-              Consumable_Product__r.Name,
-              Shipment_Count__c,
-              Consumable_Product__r.Intra_Trade_List_RMB__c,
-              Consumable_Product__r.Asset_Model_No__c,
-              Consumable_Product__r.Category3__c,
-              Consumable_Product__r.Category4__c,
-              Consumable_Product__r.Category5__c,
-              Shipment_amount__c,
-              //Unitprice_To_agency__c,
-              Box_Piece__c,
-              ProductPacking_list_manual__c,
-              Invoiced_Procount__c,
-              RrturnPro_count__c,
-              InvoiceProNot_count__c,
-              Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
-              Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c,
-              isOutPattern__c
-            FROM Consumable_orderdetails__c
-            WHERE
-              Consumable_order__c = :ESetId
-              AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation
-            ORDER BY Name
-          ];
-          Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>();
-
-          for (
-            Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected
-          ) {
-            sumPrice += cdc1.Shipment_amount__c;
-            orderzaikuId.add(cdc1.Consumable_Product__c);
-            //add by rentx 2021-2-26
-            String tempId = cdc1.Consumable_product__c;
-            if (cdc1.isOutPattern__c) {
-              cocMap.put(tempId + 'ishos', cdc1);
-            } else {
-              cocMap.put(tempId + 'nothos', cdc1);
-            }
-            //add by rentx 2021-2-26
-          }
-          String msoql = makeSoqlorderdet();
-          product2Selected = Database.query(msoql);
-          size = product2Selected.size();
-          initStandardController(msoql);
-
-          for (Integer i = 0; i < product2Selected.size(); i++) {
-            MidMap.put(
-              product2Selected[i].Id,
-              new ConsumableorderdetailsInfo(product2Selected[i])
-            );
-          }
-          //update by rentx 2021-01-29
-          /*for(Integer i = 0 ; i< CountDel.size();i++){
+                    for (Integer i = 0; i < product2Selected.size(); i++) {
+                        MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+                    }
+                    //update by rentx 2021-01-29
+                    /*for(Integer i = 0 ; i< CountDel.size();i++){
                             //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
                             if(MidMap.containsKey(CountDel[i].Consumable_Product__c)){
                                 ConsumableorderdetailsInfo Jstage =  MidMap.get(CountDel[i].Consumable_Product__c);
@@ -996,2475 +882,2147 @@
                             }
                         }*/
 
-          for (Integer i = 0; i < CountDel.size(); i++) {
-            String str = '';
-            if (CountDel[i].hospitalSpecialOffer__c) {
-              str = 'isHos';
+                    for (Integer i = 0; i < CountDel.size(); i++) {
+                        String str = '';
+                        if (CountDel[i].hospitalSpecialOffer__c) {
+                            str = 'isHos';
+                        } else {
+                            str = 'notHos';
+                        }
+                        //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
+                        if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
+                            //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
+                            if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str);
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            } else {
+                                //midmap2涓病鏈夊搴旂殑浜у搧
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone();
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            }
+                        }
+                    }
+                    //update by rentx 2021-01-29
+                    consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
+                    //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
+                    //update by rentx 2021-01-29
+                    // for(ConsumableorderdetailsInfo bss : MidMap.values()){
+                    for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
+                        //update by rentx 2021-01-29
+
+                        //if(bss.allnumber > 0){
+                        //bss.UnitpriceToagency = bss.orderdetails1.Unitprice_To_agency__c == null  || bss.orderdetails1.Unitprice_To_agency__c == 0 ? '' :bss.orderdetails1.Unitprice_To_agency__c.format();
+                        bss.packinglist = 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;
+
+                        //update by rentx 2021-2-26 start
+                        if (cocMap.containsKey(bss.Prod.Id + 'ishos') && bss.hospitalSpecialOffer == true) {
+                            consumableorderdetailsSelectRecords.add(bss);
+                        } else if (cocMap.containsKey(bss.Prod.Id + 'nothos') && bss.hospitalSpecialOffer == false) {
+                            consumableorderdetailsSelectRecords.add(bss);
+                        }
+                        //update by rentx 2021-2-26 end
+                        // consumableorderdetailsSelectRecords.add(bss);
+                        //}
+                    }
+                    Integer ishosnum = 0;
+                    for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) {
+                        for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) {
+                            //update by rentx 2012-3-1 start
+                            // if(ass.prod.Id == cdc1.Consumable_Product__c){
+                            //     ass.check = true;
+                            //     ass.orderdetails1 = cdc1;
+                            // }
+                            if (ass.Prod.Id == cdc1.Consumable_Product__c && ass.hospitalSpecialOffer == cdc1.isOutPattern__c) {
+                                ass.check = true;
+                                ass.orderdetails1 = cdc1;
+                            }
+                            //update by rentx 2012-3-1 end
+                        }
+                        if (ass.hospitalSpecialOffer == true) {
+                            ishosnum = ishosnum + 1;
+                        }
+                    }
+                    if (ishosnum > 0) {
+                        hasHosPro = true;
+                    } else {
+                        hasHosPro = false;
+                    }
+
+                    //add by rentx
+                    noOfRecords = consumableorderdetailsSelectRecords.size();
+                    //add by rentx
+                    System.debug('makepagerecords3');
+                    makepagerecords();
+                    //listCut();
+                    // 娑堣�楀搧鏄庣粏2銈掑彇寰�
+                    consumableorderdetails2RecordsList = [
+                        SELECT
+                            Id,
+                            Name,
+                            SerialLotNo__c,
+                            Consumable_Product__r.Name__c,
+                            TracingCode__c,
+                            Sterilization_limit__c,
+                            Consumable_Product__c,
+                            Consumable_Product__r.Name,
+                            Consumable_Product__r.Category3__c,
+                            Consumable_Product__r.Category4__c,
+                            Consumable_Product__r.Category5__c,
+                            Return_date__c,
+                            Invoice_Date__c,
+                            Box_Piece__c,
+                            ProductPacking_list_manual__c,
+                            //add by rentx start
+                            hospitalSpecialOffer__c
+                        //add by rentx end
+                        FROM Consumable_order_details2__c
+                        WHERE Consumable_ZS_order__c = :ESetId
+                        ORDER BY Name
+                    ];
+                    for (Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++) {
+                        consumableorderdetails2Records.add(new ConsumableorderdetailsInfo(consumableorderdetails2RecordsList[i]));
+                    }
+                    //浜у搧鏄庣粏鍙栧緱
+                    consumablearriveproductdetailsSelected = [
+                        SELECT
+                            Id,
+                            Delivery_List_RMB__c,
+                            Consumable_Product__r.Name__c,
+                            Name,
+                            Consumable_Product__r.SFDA_Status__c,
+                            Consumable_Product__r.Category3__c,
+                            Consumable_Product__r.Category4__c,
+                            Consumable_Product__r.Category5__c,
+                            Consumable_Product__c,
+                            Consumable_Product__r.Name,
+                            Sterilization_limit__c,
+                            Consumable_Product__r.Intra_Trade_List_RMB__c,
+                            Consumable_Product__r.Asset_Model_No__c,
+                            Box_Piece__c,
+                            ProductPacking_list_manual__c,
+                            //add by rentx start
+                            hospitalSpecialOffer__c
+                        //add by rentx end
+                        FROM Consumable_order_details2__c
+                        WHERE Consumable_ZS_order__c = :ESetId
+                        ORDER BY Name
+                    ];
+                    for (Integer i = 0; i < consumablearriveproductdetailsSelected.size(); i++) {
+                        consumableproductdetailsRecords.add(new ConsumableorderdetailsInfo(consumablearriveproductdetailsSelected[i]));
+                    }
+                } else {
+                    // 涓嶆槸鍒拌揣璁㈠崟鏉ョ殑鏃跺��
+                    if (coc.SummonsStatus_c__c == '宸叉彁浜�' || coc.SummonsStatus_c__c == '鎵瑰噯') {
+                        system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c);
+                        saveBtnDisabled = true;
+                        SorderBtnDisabled = true;
+                        EditDelCommitBtnDisabled = false;
+                    }
+                    //鍖婚櫌浜岀骇缁忛攢鍟嗗垎绫�
+                    Integer io = 0;
+                    while (io < Dealerelationship.size()) {
+                        if (coc.Order_ForDealer__c == Dealerelationship[io].Dealer_subordinate__c) {
+                            SecondDealer = Dealerelationship[io].Dealer_subordinate__c;
+                            coc.Order_ForDealer__c = null;
+                            io = io + Dealerelationship.size();
+                        }
+                        io++;
+                    }
+                    Integer ik = 0;
+                    while (ik < AgencyHospitalLink.size()) {
+                        if (coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c) {
+                            HospitalInfo = AgencyHospitalLink[ik].Hospital__c;
+                            HospitalName = AgencyHospitalLink[ik].Hospital__r.Name;
+                            coc.Order_ForHospital__c = null;
+                            ik = ik + AgencyHospitalLink.size();
+                        }
+                        ik++;
+                    }
+                    // 娑堣�楀搧鏄庣粏1銈掑彇寰�
+                    consumableorderdetailsSelected = [
+                        SELECT
+                            Id,
+                            Dealer_Custom_Price__c,
+                            Delivery_List_RMB__c,
+                            Consumable_Product__r.Name__c,
+                            Consumable_Product__r.SFDA_Status__c,
+                            Name,
+                            Consumable_order__c,
+                            Consumable_Product__c,
+                            Consumable_Product__r.Name,
+                            Shipment_Count__c,
+                            Consumable_Product__r.Intra_Trade_List_RMB__c,
+                            Consumable_Product__r.Asset_Model_No__c,
+                            Shipment_amount__c,
+                            Box_Piece__c,
+                            ProductPacking_list_manual__c,
+                            Invoiced_Procount__c,
+                            RrturnPro_count__c,
+                            //Unitprice_To_agency__c,
+                            InvoiceProNot_count__c,
+                            Consumable_Product__r.Category3__c,
+                            Consumable_Product__r.Category4__c,
+                            Consumable_Product__r.Category5__c,
+                            Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
+                            Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c,
+                            isOutPattern__c
+                        FROM Consumable_orderdetails__c
+                        WHERE Consumable_order__c = :ESetId AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation
+                        ORDER BY Name
+                    ];
+                    //add by rentx 202-2-26
+                    Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>();
+
+                    for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) {
+                        sumPrice += cdc1.Shipment_amount__c;
+                        orderzaikuId.add(cdc1.Consumable_Product__c);
+                        //add by rentx 2021-2-26
+                        String tempId = cdc1.Consumable_product__c;
+                        if (cdc1.isOutPattern__c) {
+                            cocMap.put(tempId + 'ishos', cdc1);
+                        } else {
+                            cocMap.put(tempId + 'nothos', cdc1);
+                        }
+                        //add by rentx 2021-2-26
+                    }
+
+                    String msoql = makeSoqlorderdet();
+                    product2Selected = Database.query(msoql);
+                    size = product2Selected.size();
+                    initStandardController(msoql);
+                    for (Integer i = 0; i < product2Selected.size(); i++) {
+                        MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+                    }
+
+                    for (Integer i = 0; i < CountDel.size(); i++) {
+                        String str = '';
+                        if (CountDel[i].hospitalSpecialOffer__c) {
+                            str = 'isHos';
+                        } else {
+                            str = 'notHos';
+                        }
+                        //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
+                        if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
+                            //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
+                            if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str);
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            } else {
+                                //midmap2涓病鏈夊搴旂殑浜у搧
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone();
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                                if (CountDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                                } else if (CountDel[i].Box_Piece__c == '涓�') {
+                                    Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                                }
+
+                                if (CountDel[i].hospitalSpecialOffer__c) {
+                                    Jstage.hospitalSpecialOffer = true;
+                                } else {
+                                    Jstage.hospitalSpecialOffer = false;
+                                }
+                                if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                                    Jstage.hosPro = true;
+                                }
+                                Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                            }
+                        }
+                    }
+
+                    //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
+                    //update by rentx 2021-01-29
+                    // for(ConsumableorderdetailsInfo bss : MidMap.values()){
+                    for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
+                        //update by rentx 2021-01-29
+
+                        //if(bss.allnumber>0){
+                        bss.packinglist = 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;
+
+                        //update by rentx 2021-2-26 start
+                        if (cocMap.containsKey(bss.Prod.Id + 'ishos') && bss.hospitalSpecialOffer == true) {
+                            consumableorderdetailsSelectRecords.add(bss);
+                        } else if (cocMap.containsKey(bss.Prod.Id + 'nothos') && bss.hospitalSpecialOffer == false) {
+                            consumableorderdetailsSelectRecords.add(bss);
+                        }
+                        // consumableorderdetailsSelectRecords.add(bss);
+                        //}
+                    }
+                    // return null;
+                    Integer ishosnum = 0;
+                    for (ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords) {
+                        //ass.sortBy = sortOrderAsc;
+                        for (Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected) {
+                            //update by rentx 2012-3-1 start
+                            // if(ass.prod.Id == cdc1.Consumable_Product__c){
+                            //     ass.check = true;
+                            //     ass.orderdetails1 = cdc1;
+                            // }
+                            if (ass.Prod.Id == cdc1.Consumable_Product__c && ass.hospitalSpecialOffer == cdc1.isOutPattern__c) {
+                                ass.check = true;
+                                ass.orderdetails1 = cdc1;
+                            }
+                            //update by rentx 2012-3-1 end
+                        }
+
+                        if (ass.hospitalSpecialOffer == true) {
+                            ishosnum = ishosnum + 1;
+                        }
+                    }
+
+                    if (ishosnum > 0) {
+                        hasHosPro = true;
+                    } else {
+                        hasHosPro = false;
+                    }
+
+                    consumableorderdetailsSelectRecords.sort();
+                    //add by rentx
+                    noOfRecords = consumableorderdetailsSelectRecords.size();
+                    //add by rentx
+                    System.debug('makepagerecords4');
+                    makepagerecords();
+
+                    // 娑堣�楀搧鏄庣粏2銈掑彇寰�
+                    consumableorderdetails2RecordsList = [
+                        SELECT
+                            Id,
+                            Name,
+                            SerialLotNo__c,
+                            Consumable_Product__r.Name__c,
+                            TracingCode__c,
+                            Sterilization_limit__c,
+                            Consumable_Product__c,
+                            Consumable_Product__r.Name,
+                            Consumable_Product__r.Category3__c,
+                            Consumable_Product__r.Category4__c,
+                            Consumable_Product__r.Category5__c,
+                            Return_date__c,
+                            Invoice_Date__c,
+                            Box_Piece__c,
+                            ProductPacking_list_manual__c,
+                            //add by rentx start
+                            hospitalSpecialOffer__c
+                        //add by rentx end
+
+                        FROM Consumable_order_details2__c
+                        WHERE Consumable_ZS_order__c = :ESetId
+                        ORDER BY Name
+                    ];
+                    for (Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++) {
+                        consumableorderdetails2Records.add(new ConsumableorderdetailsInfo(consumableorderdetails2RecordsList[i]));
+                    }
+                }
+            }
+            //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test++++++' + SecondDealer));
+            if (SecondDealer == null || SecondDealer == '') {
+                provinceOpts.add(new SelectOption('', '-鏃�-'));
+                provinceOptsMap.put('', '-鏃�-');
+                for (Integer i = 0; i < Dealerelationship.size(); i++) {
+                    provinceOpts.add(
+                        new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name)
+                    );
+                    provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name);
+                }
             } else {
-              str = 'notHos';
-            }
-            //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
-            if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
-              //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
-              if (
-                MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)
-              ) {
-                ConsumableorderdetailsInfo Jstage = MidMap2.get(
-                  CountDel[i].Consumable_Product__c + str
-                );
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                provinceOpts.add(new SelectOption('', '-鏃�-'));
+                provinceOptsMap.put('', '-鏃�-');
+                for (Integer i = 0; i < Dealerelationship.size(); i++) {
+                    if (Dealerelationship[i].Dealer_subordinate__c == SecondDealer) {
+                        provinceOpts.add(
+                            new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name)
+                        );
+                        provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name);
+                    }
                 }
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
+                for (Integer i = 0; i < Dealerelationship.size(); i++) {
+                    if (Dealerelationship[i].Dealer_subordinate__c != SecondDealer) {
+                        provinceOpts.add(
+                            new SelectOption(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name)
+                        );
+                        provinceOptsMap.put(Dealerelationship[i].Dealer_subordinate__c, Dealerelationship[i].Dealer_subordinate__r.Name);
+                    }
                 }
+            }
 
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
+            Schema.DescribeFieldResult dfr = Product2__c.Intra_Trade_List_RMB__c.getDescribe();
+            cansee = dfr.isAccessible();
+            Schema.DescribeFieldResult dealerPrice = Consumable_orderdetails__c.Dealer_Custom_Price__c.getDescribe();
+            dealerPricesee = dealerPrice.isAccessible();
+            // 鏄剧ず鏁版嵁鏉℃暟淇℃伅
+            //    makeMessage();
+            //闄勪欢
+            attachmentinfo = [SELECT Id, Name, OwnerId FROM Attachment WHERE parentid = :ESetId];
+            if (attachmentinfo.size() > 0) {
+                for (Integer i = 0; i < attachmentinfo.size(); i++) {
+                    attachmentRecoeds.add(new ConsumableorderdetailsInfo(attachmentinfo[i]));
                 }
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              } else {
-                //midmap2涓病鏈夊搴旂殑浜у搧
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                    CountDel[i].Consumable_Product__c
-                  )
-                  .clone();
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
-                }
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
-                }
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
-                }
-                //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              }
             }
-          }
-          //update by rentx 2021-01-29
-          consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
-          //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
-          //update by rentx 2021-01-29
-          // for(ConsumableorderdetailsInfo bss : MidMap.values()){
-          for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
-            //update by rentx 2021-01-29
+            AggregateResult[] categoryList = [
+                SELECT Count(id), Category3_text__c c3c
+                FROM Product2__c
+                WHERE Category3_text__c != NULL
+                GROUP BY Category3_text__c
+            ];
 
-            //if(bss.allnumber > 0){
-            //bss.UnitpriceToagency = bss.orderdetails1.Unitprice_To_agency__c == null  || bss.orderdetails1.Unitprice_To_agency__c == 0 ? '' :bss.orderdetails1.Unitprice_To_agency__c.format();
-            bss.packinglist = 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;
-
-            //update by rentx 2021-2-26 start
-            if (
-              cocMap.containsKey(bss.Prod.Id + 'ishos') &&
-              bss.hospitalSpecialOffer == true
-            ) {
-              consumableorderdetailsSelectRecords.add(bss);
-            } else if (
-              cocMap.containsKey(bss.Prod.Id + 'nothos') &&
-              bss.hospitalSpecialOffer == false
-            ) {
-              consumableorderdetailsSelectRecords.add(bss);
-            }
-            //update by rentx 2021-2-26 end
-            // consumableorderdetailsSelectRecords.add(bss);
-            //}
-          }
-          Integer ishosnum = 0;
-          for (
-            ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords
-          ) {
-            for (
-              Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected
-            ) {
-              //update by rentx 2012-3-1 start
-              // if(ass.prod.Id == cdc1.Consumable_Product__c){
-              //     ass.check = true;
-              //     ass.orderdetails1 = cdc1;
-              // }
-              if (
-                ass.Prod.Id == cdc1.Consumable_Product__c &&
-                ass.hospitalSpecialOffer == cdc1.isOutPattern__c
-              ) {
-                ass.check = true;
-                ass.orderdetails1 = cdc1;
-              }
-              //update by rentx 2012-3-1 end
-            }
-            if (ass.hospitalSpecialOffer == true) {
-              ishosnum = ishosnum + 1;
-            }
-          }
-          if (ishosnum > 0) {
-            hasHosPro = true;
-          } else {
-            hasHosPro = false;
-          }
-
-          //add by rentx
-          noOfRecords = consumableorderdetailsSelectRecords.size();
-          //add by rentx
-          System.debug('makepagerecords3');
-          makepagerecords();
-          //listCut();
-          // 娑堣�楀搧鏄庣粏2銈掑彇寰�
-          consumableorderdetails2RecordsList = [
-            SELECT
-              Id,
-              Name,
-              SerialLotNo__c,
-              Consumable_Product__r.Name__c,
-              TracingCode__c,
-              Sterilization_limit__c,
-              Consumable_Product__c,
-              Consumable_Product__r.Name,
-              Consumable_Product__r.Category3__c,
-              Consumable_Product__r.Category4__c,
-              Consumable_Product__r.Category5__c,
-              Return_date__c,
-              Invoice_Date__c,
-              Box_Piece__c,
-              ProductPacking_list_manual__c,
-              //add by rentx start
-              hospitalSpecialOffer__c
-            //add by rentx end
-            FROM Consumable_order_details2__c
-            WHERE Consumable_ZS_order__c = :ESetId
-            ORDER BY Name
-          ];
-          for (
-            Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++
-          ) {
-            consumableorderdetails2Records.add(
-              new ConsumableorderdetailsInfo(
-                consumableorderdetails2RecordsList[i]
-              )
-            );
-          }
-          //浜у搧鏄庣粏鍙栧緱
-          consumablearriveproductdetailsSelected = [
-            SELECT
-              Id,
-              Delivery_List_RMB__c,
-              Consumable_Product__r.Name__c,
-              Name,
-              Consumable_Product__r.SFDA_Status__c,
-              Consumable_Product__r.Category3__c,
-              Consumable_Product__r.Category4__c,
-              Consumable_Product__r.Category5__c,
-              Consumable_Product__c,
-              Consumable_Product__r.Name,
-              Sterilization_limit__c,
-              Consumable_Product__r.Intra_Trade_List_RMB__c,
-              Consumable_Product__r.Asset_Model_No__c,
-              Box_Piece__c,
-              ProductPacking_list_manual__c,
-              //add by rentx start
-              hospitalSpecialOffer__c
-            //add by rentx end
-            FROM Consumable_order_details2__c
-            WHERE Consumable_ZS_order__c = :ESetId
-            ORDER BY Name
-          ];
-          for (
-            Integer i = 0;
-            i < consumablearriveproductdetailsSelected.size();
-            i++
-          ) {
-            consumableproductdetailsRecords.add(
-              new ConsumableorderdetailsInfo(
-                consumablearriveproductdetailsSelected[i]
-              )
-            );
-          }
-        } else {
-          // 涓嶆槸鍒拌揣璁㈠崟鏉ョ殑鏃跺��
-          if (
-            coc.SummonsStatus_c__c == '宸叉彁浜�' ||
-            coc.SummonsStatus_c__c == '鎵瑰噯'
-          ) {
-            system.debug('coc.SummonsStatus_c__c : ' + coc.SummonsStatus_c__c);
-            saveBtnDisabled = true;
-            SorderBtnDisabled = true;
-            EditDelCommitBtnDisabled = false;
-          }
-          //鍖婚櫌浜岀骇缁忛攢鍟嗗垎绫�
-          Integer io = 0;
-          while (io < Dealerelationship.size()) {
-            if (
-              coc.Order_ForDealer__c ==
-              Dealerelationship[io].Dealer_subordinate__c
-            ) {
-              SecondDealer = Dealerelationship[io].Dealer_subordinate__c;
-              coc.Order_ForDealer__c = null;
-              io = io + Dealerelationship.size();
-            }
-            io++;
-          }
-          Integer ik = 0;
-          while (ik < AgencyHospitalLink.size()) {
-            if (
-              coc.Order_ForHospital__c == AgencyHospitalLink[ik].Hospital__c
-            ) {
-              HospitalInfo = AgencyHospitalLink[ik].Hospital__c;
-              HospitalName = AgencyHospitalLink[ik].Hospital__r.Name;
-              coc.Order_ForHospital__c = null;
-              ik = ik + AgencyHospitalLink.size();
-            }
-            ik++;
-          }
-          // 娑堣�楀搧鏄庣粏1銈掑彇寰�
-          consumableorderdetailsSelected = [
-            SELECT
-              Id,
-              Dealer_Custom_Price__c,
-              Delivery_List_RMB__c,
-              Consumable_Product__r.Name__c,
-              Consumable_Product__r.SFDA_Status__c,
-              Name,
-              Consumable_order__c,
-              Consumable_Product__c,
-              Consumable_Product__r.Name,
-              Shipment_Count__c,
-              Consumable_Product__r.Intra_Trade_List_RMB__c,
-              Consumable_Product__r.Asset_Model_No__c,
-              Shipment_amount__c,
-              Box_Piece__c,
-              ProductPacking_list_manual__c,
-              Invoiced_Procount__c,
-              RrturnPro_count__c,
-              //Unitprice_To_agency__c,
-              InvoiceProNot_count__c,
-              Consumable_Product__r.Category3__c,
-              Consumable_Product__r.Category4__c,
-              Consumable_Product__r.Category5__c,
-              Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
-              Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c,
-              isOutPattern__c
-            FROM Consumable_orderdetails__c
-            WHERE
-              Consumable_order__c = :ESetId
-              AND Consumable_order__r.Order_Owner_WorkLocal__c = :userWorkLocation
-            ORDER BY Name
-          ];
-          //add by rentx 202-2-26
-          Map<String, Consumable_Orderdetails__c> cocMap = new Map<String, Consumable_Orderdetails__c>();
-
-          for (
-            Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected
-          ) {
-            sumPrice += cdc1.Shipment_amount__c;
-            orderzaikuId.add(cdc1.Consumable_Product__c);
-            //add by rentx 2021-2-26
-            String tempId = cdc1.Consumable_product__c;
-            if (cdc1.isOutPattern__c) {
-              cocMap.put(tempId + 'ishos', cdc1);
-            } else {
-              cocMap.put(tempId + 'nothos', cdc1);
-            }
-            //add by rentx 2021-2-26
-          }
-
-          String msoql = makeSoqlorderdet();
-          product2Selected = Database.query(msoql);
-          size = product2Selected.size();
-          initStandardController(msoql);
-          for (Integer i = 0; i < product2Selected.size(); i++) {
-            MidMap.put(
-              product2Selected[i].Id,
-              new ConsumableorderdetailsInfo(product2Selected[i])
-            );
-          }
-
-          for (Integer i = 0; i < CountDel.size(); i++) {
-            String str = '';
-            if (CountDel[i].hospitalSpecialOffer__c) {
-              str = 'isHos';
-            } else {
-              str = 'notHos';
-            }
-            //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
-            if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
-              //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
-              if (
-                MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)
-              ) {
-                ConsumableorderdetailsInfo Jstage = MidMap2.get(
-                  CountDel[i].Consumable_Product__c + str
-                );
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
-                }
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
-                }
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
-                }
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              } else {
-                //midmap2涓病鏈夊搴旂殑浜у搧
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                    CountDel[i].Consumable_Product__c
-                  )
-                  .clone();
-                Jstage.allnumber = Jstage.allnumber + 1;
-                if (CountDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.Boxnumber = Jstage.Boxnumber + 1;
-                } else if (CountDel[i].Box_Piece__c == '涓�') {
-                  Jstage.Piecenumber = Jstage.Piecenumber + 1;
-                }
-
-                if (CountDel[i].hospitalSpecialOffer__c) {
-                  Jstage.hospitalSpecialOffer = true;
-                } else {
-                  Jstage.hospitalSpecialOffer = false;
-                }
-                if (HosProMap.containsKey(Jstage.Prod.Id)) {
-                  Jstage.hosPro = true;
-                }
-                Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-                MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-              }
-            }
-          }
-
-          //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
-          //update by rentx 2021-01-29
-          // for(ConsumableorderdetailsInfo bss : MidMap.values()){
-          for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
-            //update by rentx 2021-01-29
-
-            //if(bss.allnumber>0){
-            bss.packinglist = 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;
-
-            //update by rentx 2021-2-26 start
-            if (
-              cocMap.containsKey(bss.Prod.Id + 'ishos') &&
-              bss.hospitalSpecialOffer == true
-            ) {
-              consumableorderdetailsSelectRecords.add(bss);
-            } else if (
-              cocMap.containsKey(bss.Prod.Id + 'nothos') &&
-              bss.hospitalSpecialOffer == false
-            ) {
-              consumableorderdetailsSelectRecords.add(bss);
-            }
-            // consumableorderdetailsSelectRecords.add(bss);
-            //}
-          }
-          // return null;
-          Integer ishosnum = 0;
-          for (
-            ConsumableorderdetailsInfo ass : consumableorderdetailsSelectRecords
-          ) {
-            //ass.sortBy = sortOrderAsc;
-            for (
-              Consumable_Orderdetails__c cdc1 : consumableorderdetailsSelected
-            ) {
-              //update by rentx 2012-3-1 start
-              // if(ass.prod.Id == cdc1.Consumable_Product__c){
-              //     ass.check = true;
-              //     ass.orderdetails1 = cdc1;
-              // }
-              if (
-                ass.Prod.Id == cdc1.Consumable_Product__c &&
-                ass.hospitalSpecialOffer == cdc1.isOutPattern__c
-              ) {
-                ass.check = true;
-                ass.orderdetails1 = cdc1;
-              }
-              //update by rentx 2012-3-1 end
+            categoryOptionList = new List<SelectOption>();
+            categoryOptionList.add(new SelectOption('', '-鏃�-'));
+            categoryOptionMap = new Map<String, String>();
+            categoryOptionMap.put('', '-鏃�-');
+            for (AggregateResult category3Search : categoryList) {
+                String deliverycnt = String.valueOf(category3Search.get('c3c'));
+                categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt));
+                categoryOptionMap.put(deliverycnt, deliverycnt);
             }
 
-            if (ass.hospitalSpecialOffer == true) {
-              ishosnum = ishosnum + 1;
-            }
-          }
-
-          if (ishosnum > 0) {
-            hasHosPro = true;
-          } else {
-            hasHosPro = false;
-          }
-
-          consumableorderdetailsSelectRecords.sort();
-          //add by rentx
-          noOfRecords = consumableorderdetailsSelectRecords.size();
-          //add by rentx
-          System.debug('makepagerecords4');
-          makepagerecords();
-
-          // 娑堣�楀搧鏄庣粏2銈掑彇寰�
-          consumableorderdetails2RecordsList = [
-            SELECT
-              Id,
-              Name,
-              SerialLotNo__c,
-              Consumable_Product__r.Name__c,
-              TracingCode__c,
-              Sterilization_limit__c,
-              Consumable_Product__c,
-              Consumable_Product__r.Name,
-              Consumable_Product__r.Category3__c,
-              Consumable_Product__r.Category4__c,
-              Consumable_Product__r.Category5__c,
-              Return_date__c,
-              Invoice_Date__c,
-              Box_Piece__c,
-              ProductPacking_list_manual__c,
-              //add by rentx start
-              hospitalSpecialOffer__c
-            //add by rentx end
-
-            FROM Consumable_order_details2__c
-            WHERE Consumable_ZS_order__c = :ESetId
-            ORDER BY Name
-          ];
-          for (
-            Integer i = 0; i < consumableorderdetails2RecordsList.size(); i++
-          ) {
-            consumableorderdetails2Records.add(
-              new ConsumableorderdetailsInfo(
-                consumableorderdetails2RecordsList[i]
-              )
-            );
-          }
-        }
-      }
-      //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, 'test++++++' + SecondDealer));
-      if (SecondDealer == null || SecondDealer == '') {
-        provinceOpts.add(new SelectOption('', '-鏃�-'));
-        provinceOptsMap.put('', '-鏃�-');
-        for (Integer i = 0; i < Dealerelationship.size(); i++) {
-          provinceOpts.add(
-            new SelectOption(
-              Dealerelationship[i].Dealer_subordinate__c,
-              Dealerelationship[i].Dealer_subordinate__r.Name
-            )
-          );
-          provinceOptsMap.put(
-            Dealerelationship[i].Dealer_subordinate__c,
-            Dealerelationship[i].Dealer_subordinate__r.Name
-          );
-        }
-      } else {
-        provinceOpts.add(new SelectOption('', '-鏃�-'));
-        provinceOptsMap.put('', '-鏃�-');
-        for (Integer i = 0; i < Dealerelationship.size(); i++) {
-          if (Dealerelationship[i].Dealer_subordinate__c == SecondDealer) {
-            provinceOpts.add(
-              new SelectOption(
-                Dealerelationship[i].Dealer_subordinate__c,
-                Dealerelationship[i].Dealer_subordinate__r.Name
-              )
-            );
-            provinceOptsMap.put(
-              Dealerelationship[i].Dealer_subordinate__c,
-              Dealerelationship[i].Dealer_subordinate__r.Name
-            );
-          }
-        }
-        for (Integer i = 0; i < Dealerelationship.size(); i++) {
-          if (Dealerelationship[i].Dealer_subordinate__c != SecondDealer) {
-            provinceOpts.add(
-              new SelectOption(
-                Dealerelationship[i].Dealer_subordinate__c,
-                Dealerelationship[i].Dealer_subordinate__r.Name
-              )
-            );
-            provinceOptsMap.put(
-              Dealerelationship[i].Dealer_subordinate__c,
-              Dealerelationship[i].Dealer_subordinate__r.Name
-            );
-          }
-        }
-      }
-
-      Schema.DescribeFieldResult dfr = Product2__c.Intra_Trade_List_RMB__c.getDescribe();
-      cansee = dfr.isAccessible();
-      Schema.DescribeFieldResult dealerPrice = Consumable_orderdetails__c.Dealer_Custom_Price__c.getDescribe();
-      dealerPricesee = dealerPrice.isAccessible();
-      // 鏄剧ず鏁版嵁鏉℃暟淇℃伅
-      //    makeMessage();
-      //闄勪欢
-      attachmentinfo = [
-        SELECT Id, Name, OwnerId
-        FROM Attachment
-        WHERE parentid = :ESetId
-      ];
-      if (attachmentinfo.size() > 0) {
-        for (Integer i = 0; i < attachmentinfo.size(); i++) {
-          attachmentRecoeds.add(
-            new ConsumableorderdetailsInfo(attachmentinfo[i])
-          );
-        }
-      }
-      AggregateResult[] categoryList = [
-        SELECT Count(id), Category3_text__c c3c
-        FROM Product2__c
-        WHERE Category3_text__c != NULL
-        GROUP BY Category3_text__c
-      ];
-
-      categoryOptionList = new List<SelectOption>();
-      categoryOptionList.add(new SelectOption('', '-鏃�-'));
-      categoryOptionMap = new Map<String, String>();
-      categoryOptionMap.put('', '-鏃�-');
-      for (AggregateResult category3Search : categoryList) {
-        String deliverycnt = String.valueOf(category3Search.get('c3c'));
-        categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt));
-        categoryOptionMap.put(deliverycnt, deliverycnt);
-      }
-
-      category4OptionList = new List<SelectOption>();
-      category4OptionList.add(new SelectOption('', '-鏃�-'));
-      category4OptionMap = new Map<String, String>();
-      category4OptionMap.put('', '-鏃�-');
-      /*for(AggregateResult category4Search : category4List) {
+            category4OptionList = new List<SelectOption>();
+            category4OptionList.add(new SelectOption('', '-鏃�-'));
+            category4OptionMap = new Map<String, String>();
+            category4OptionMap.put('', '-鏃�-');
+            /*for(AggregateResult category4Search : category4List) {
                     String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
                     category4OptionList.add(new SelectOption(deliverycnt4,deliverycnt4));
                 }*/
 
-      category5OptionList = new List<SelectOption>();
-      category5OptionList.add(new SelectOption('', '-鏃�-'));
-      category5OptionMap = new Map<String, String>();
-      category5OptionMap.put('', '-鏃�-');
+            category5OptionList = new List<SelectOption>();
+            category5OptionList.add(new SelectOption('', '-鏃�-'));
+            category5OptionMap = new Map<String, String>();
+            category5OptionMap.put('', '-鏃�-');
 
-      //鍒嗛〉
-      PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
-      totalCount = pageRecords.size();
-      System.debug('pageToken = ' + pageToken);
-      System.debug('pageSize = ' + pageSize);
-      System.debug('totalCount = ' + totalCount);
-      paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount)
-        ? pageToken + pageSize
-        : null;
-      System.debug(
-        'paginatedAccounts.nextPageToken = ' + paginatedAccounts.nextPageToken
-      );
-      paginatedAccounts.recordStart = pageToken + 1;
-      paginatedAccounts.pageNumber = pageToken / pageSize + 1;
-      Integer recordEnd = pageSize * paginatedAccounts.pageNumber;
-      paginatedAccounts.recordEnd = totalCount >= recordEnd
-        ? recordEnd
-        : totalCount;
-      paginatedAccounts.totalRecords = totalCount;
+            //鍒嗛〉
+            PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
+            totalCount = pageRecords.size();
+            System.debug('pageToken = ' + pageToken);
+            System.debug('pageSize = ' + pageSize);
+            System.debug('totalCount = ' + totalCount);
+            paginatedAccounts.nextPageToken = (pageToken + pageSize < totalCount) ? pageToken + pageSize : null;
+            System.debug('paginatedAccounts.nextPageToken = ' + paginatedAccounts.nextPageToken);
+            paginatedAccounts.recordStart = pageToken + 1;
+            paginatedAccounts.pageNumber = pageToken / pageSize + 1;
+            Integer recordEnd = pageSize * paginatedAccounts.pageNumber;
+            paginatedAccounts.recordEnd = totalCount >= recordEnd ? recordEnd : totalCount;
+            paginatedAccounts.totalRecords = totalCount;
 
-      Integer startIdx;
-      Integer endIdx;
-      startIdx = pageToken;
-      endIdx = pageToken + pageSize;
-      List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>();
-      if (endIdx > pageRecords.size()) {
-        endIdx = pageRecords.size();
-      }
-      for (Integer i = startIdx; i < endIdx; i++) {
-        pageRecordsTemp.add(pageRecords.get(i));
-      }
-
-      Boolean Existarrive = (coc.Arrive_Order__c != null);
-      String ConsumableOut_report = System.Label.ConsumableOut_report;
-      System.debug(
-        'consumableproductdetailsRecords = ' + consumableproductdetailsRecords
-      );
-
-      data.put('paginatedAccounts', paginatedAccounts);
-      data.put('ConsumableOut_report', ConsumableOut_report);
-      data.put('accountid', accountid);
-      data.put(
-        'consumableproductdetailsRecords',
-        consumableproductdetailsRecords
-      );
-      data.put('agencyProType', agencyProType);
-      data.put('accountName', accountName);
-      data.put('userWorkLocation', userWorkLocation);
-      data.put('categoryOptionMap', categoryOptionMap);
-      data.put('category4OptionMap', category4OptionMap);
-      data.put('category5OptionMap', category5OptionMap);
-      data.put('outOutPatternOptionMap', outOutPatternOptionMap);
-      data.put('hasHosPro', hasHosPro);
-      data.put('Existarrive', Existarrive);
-      data.put('sumPrice', sumPrice);
-      data.put('HospitalName', HospitalName);
-      data.put('provinceOptsMap', provinceOptsMap);
-      data.put('SummonsFlag', SummonsFlag);
-      data.put('EditDelCommitBtnDisabled', EditDelCommitBtnDisabled);
-      data.put('EditAble', EditAble);
-      data.put('coc', coc);
-      data.put('pageRecords', pageRecordsTemp);
-      data.put('arriveorder', arriveorder);
-      data.put('consumableorderdetails2Count', consumableorderdetails2Count);
-      data.put(
-        'consumableorderdetails2Records',
-        consumableorderdetails2Records
-      );
-      data.put('HospitalInfo', HospitalInfo);
-      res.status = 'Success';
-      res.code = 200;
-      System.debug('res = ' + res);
-      return res;
-    } catch (Exception e) {
-      return new ResponseBodyLWC(
-        'Error',
-        500,
-        e.getMessage() + e.getLineNumber(),
-        ''
-      );
-    }
-  }
-
-  @AuraEnabled
-  public static ResponseBodyLWC categoryAllload(String category3Lwc) {
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-
-    category3 = category3Lwc;
-    AggregateResult[] category4List = [
-      SELECT Count(id), Category4_text__c c4c
-      FROM Product2__c
-      WHERE
-        Category3_text__c = :category3
-        AND Category4_text__c != NULL
-        AND Category5_text__c != NULL
-      GROUP BY Category4_text__c
-    ];
-    category4OptionList = new List<SelectOption>();
-    category4OptionList.add(new SelectOption('', '-鏃�-'));
-    category4OptionMap = new Map<String, String>();
-    category4OptionMap.put('', '-鏃�-');
-    for (AggregateResult category4Search : category4List) {
-      String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
-      category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
-      category4OptionMap.put(deliverycnt4, deliverycnt4);
-    }
-
-    AggregateResult[] category5List = [
-      SELECT Count(id), Category5_text__c c5c
-      FROM Product2__c
-      WHERE
-        Category3_text__c = :category3
-        AND Category4_text__c != NULL
-        AND Category5_text__c != NULL
-      GROUP BY Category5_text__c
-    ];
-
-    category5OptionList = new List<SelectOption>();
-    category5OptionList.add(new SelectOption('', '-鏃�-'));
-    category5OptionMap = new Map<String, String>();
-    category5OptionMap.put('', '-鏃�-');
-    for (AggregateResult category5Search : category5List) {
-      String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
-      category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
-      category5OptionMap.put(deliverycnt5, deliverycnt5);
-    }
-    data.put('category4OptionMap', category4OptionMap);
-    data.put('category5OptionMap', category5OptionMap);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  @AuraEnabled
-  public static ResponseBodyLWC categoryload(
-    String category3Lwc,
-    String category4Lwc
-  ) {
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-
-    category3 = category3Lwc;
-    category4 = category4Lwc;
-    AggregateResult[] category4List = [
-      SELECT Count(id), Category4_text__c c4c
-      FROM Product2__c
-      WHERE
-        Category3_text__c = :category3
-        AND Category4_text__c != NULL
-        AND Category5_text__c != NULL
-      GROUP BY Category4_text__c
-    ];
-    category4OptionList = new List<SelectOption>();
-    category4OptionList.add(new SelectOption('', '-鏃�-'));
-    category4OptionMap = new Map<String, String>();
-    category4OptionMap.put('', '-鏃�-');
-    for (AggregateResult category4Search : category4List) {
-      String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
-      category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
-      category4OptionMap.put(deliverycnt4, deliverycnt4);
-    }
-
-    AggregateResult[] category5List = [
-      SELECT Count(id), Category5_text__c c5c
-      FROM Product2__c
-      WHERE
-        Category3_text__c = :category3
-        AND Category4_text__c = :category4
-        AND Category5_text__c != NULL
-      GROUP BY Category5_text__c
-    ];
-
-    category5OptionList = new List<SelectOption>();
-    category5OptionList.add(new SelectOption('', '-鏃�-'));
-    category5OptionMap = new Map<String, String>();
-    category5OptionMap.put('', '-鏃�-');
-    for (AggregateResult category5Search : category5List) {
-      String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
-      category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
-      category5OptionMap.put(deliverycnt5, deliverycnt5);
-    }
-    data.put('category4OptionMap', category4OptionMap);
-    data.put('category5OptionMap', category5OptionMap);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  // 妫�绱�
-  @AuraEnabled
-  public static ResponseBodyLWC searchConsumableorderdetails(
-    String agencyProTypeLwc,
-    String accountNameLwc,
-    String userWorkLocationLwc,
-    String outOutPattern,
-    String category1,
-    String category3,
-    String category4,
-    String category5,
-    Boolean editAbleLwc,
-    List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc,
-    List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc,
-    String arriveorderLwc,
-    Integer pageSizeLWC,
-    Integer pageTokenLWC
-  ) {
-    consumableproductdetailsRecords = consumableproductdetailsRecordsLwc;
-    pageRecordsLwc = pageRecordsLwcLwc;
-    System.debug('pageRecordsLwc = ' + pageRecordsLwc);
-    arriveorder = arriveorderLwc;
-    accountName = accountNameLwc;
-    userWorkLocation = userWorkLocationLwc;
-    agencyProType = agencyProTypeLwc;
-    product2Selected = new List<Product2__c>();
-    pagesize = pageSizeLWC;
-    pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC;
-    addSize = 0;
-    addData = new List<ConsumableorderdetailsInfo>();
-    System.debug('start addData = ' + addData);
-    System.debug('accountName = ' + accountName);
-    System.debug('userWorkLocation = ' + userWorkLocation);
-    String sqlagencyProType = '%' + agencyProTypeLwc + '%';
-    List<AggregateResult> orderdetailCount = [
-      SELECT count(id), Consumable_Product__c cpc, Box_Piece__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 Cancellation_Flag__c = FALSE
-        AND Bar_Code__c != NULL
-        AND Isoverdue__c = 1
-        AND Product_Type__c LIKE :sqlagencyProType
-        AND Dealer_Info_text__c = :accountNameLwc
-        AND Arrive_Owner_Work_Location__c = :userWorkLocationLwc
-      GROUP BY Consumable_Product__c, Box_Piece__c
-    ];
-    for (AggregateResult orderdetail : orderdetailCount) {
-      zaikuId.add(String.valueOf(orderdetail.get('cpc')));
-    }
-    editAble = editAbleLwc;
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-    SearchDone = 'SearchDone';
-    Map<String, String> selectedIdMap = new Map<String, String>();
-    List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
-    Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
-    //update by rentx 2021-01-29
-    Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>();
-    String countdelSoql = 'SELECT Id,Bar_Code__c,Name,Inventory_date__c,Consumable_Product__c,Consumable_Product__r.Asset_Model_No__c,Recordtypeid,Box_Piece__c,ProductPacking_list_manual__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 Bar_Code__c != null AND Isoverdue__c = 1 AND Arrive_Owner_Work_Location__c =  :userWorkLocation AND Dealer_Info_text__c = :accountName ';
-    if (String.isNotBlank(outOutPattern) && outOutPattern.equals('ishos')) {
-      countdelSoql += ' AND hospitalSpecialOffer__c = true';
-    } else if (
-      String.isNotBlank(outOutPattern) && outOutPattern.equals('nothos')
-    ) {
-      countdelSoql += ' AND hospitalSpecialOffer__c = false';
-    }
-    System.debug('countdelSoql = ' + countdelSoql);
-    List<Consumable_order_details2__c> CountDel = Database.query(countdelSoql);
-    System.debug('CountDel = ' + CountDel);
-    //update by rentx 2021-01-29
-
-    consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
-    //consumableorderdetailsSelectRecords = reSet;
-    String soql = makeSoql(category1, category3, category4, category5);
-    size = Integer.valueOf(System.Label.orderdetLimitsize);
-    initStandardController(soql);
-    System.debug('soql = ' + soql);
-    product2Selected = Database.query(soql);
-    for (Integer i = 0; i < product2Selected.size(); i++) {
-      MidMap.put(
-        product2Selected[i].Id,
-        new ConsumableorderdetailsInfo(product2Selected[i])
-      );
-    }
-
-    for (Integer i = 0; i < CountDel.size(); i++) {
-      String str = '';
-      if (CountDel[i].hospitalSpecialOffer__c) {
-        str = 'isHos';
-      } else {
-        str = 'notHos';
-      }
-      System.debug('MidMap = ' + MidMap);
-      //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
-      if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
-        //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
-        if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) {
-          ConsumableorderdetailsInfo Jstage = MidMap2.get(
-            CountDel[i].Consumable_Product__c + str
-          );
-          Jstage.allnumber = Jstage.allnumber + 1;
-          if (CountDel[i].Box_Piece__c == '鐩�') {
-            Jstage.Boxnumber = Jstage.Boxnumber + 1;
-          } else if (CountDel[i].Box_Piece__c == '涓�') {
-            Jstage.Piecenumber = Jstage.Piecenumber + 1;
-          }
-          if (CountDel[i].hospitalSpecialOffer__c) {
-            Jstage.hospitalSpecialOffer = true;
-          } else {
-            Jstage.hospitalSpecialOffer = false;
-          }
-          if (HosProMap.containsKey(Jstage.Prod.Id)) {
-            Jstage.hosPro = true;
-          }
-          MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-        } else {
-          //midmap2涓病鏈夊搴旂殑浜у搧
-          ConsumableorderdetailsInfo Jstage = MidMap.get(
-              CountDel[i].Consumable_Product__c
-            )
-            .clone();
-          Jstage.allnumber = Jstage.allnumber + 1;
-          if (CountDel[i].Box_Piece__c == '鐩�') {
-            Jstage.Boxnumber = Jstage.Boxnumber + 1;
-          } else if (CountDel[i].Box_Piece__c == '涓�') {
-            Jstage.Piecenumber = Jstage.Piecenumber + 1;
-          }
-          if (CountDel[i].hospitalSpecialOffer__c) {
-            Jstage.hospitalSpecialOffer = true;
-          } else {
-            Jstage.hospitalSpecialOffer = false;
-          }
-          if (HosProMap.containsKey(Jstage.Prod.Id)) {
-            Jstage.hosPro = true;
-          }
-          //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-          MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
-        }
-      }
-    }
-    Integer ishosnum = 0;
-    System.debug('MidMap2 = ' + MidMap2);
-    for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
-      if (selectedIdMap.containsKey(bss.Prod.id)) {
-        continue;
-      } else {
-        bss.sortBy = false;
-        bss.packinglist = 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;
-        consumableorderdetailsSelectRecords.add(bss);
-
-        if (bss.hospitalSpecialOffer == true) {
-          ishosnum = ishosnum + 1;
-        }
-      }
-    }
-    if (ishosnum > 0) {
-      hasHosPro = true;
-    } else {
-      hasHosPro = false;
-    }
-
-    consumableorderdetailsSelectRecords.sort();
-    makepagerecordsLwc();
-    //鍒嗛〉
-    PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
-    totalCount = pageRecords.size();
-    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.totalRecords = totalCount;
-
-    System.debug('addSize = ' + addSize);
-    Integer startIdx;
-    Integer endIdx;
-    startIdx = pageToken;
-    endIdx = pageToken + pageSize;
-    List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>();
-    if (endIdx > pageRecords.size()) {
-      endIdx = pageRecords.size();
-    }
-
-    System.debug('addData.size() = ' + addData.size());
-    for (ConsumableorderdetailsInfo ci : addData) {
-      pageRecordsTemp.add(ci);
-    }
-    System.debug('startIdx = ' + startIdx);
-    System.debug('endIdx = ' + endIdx);
-    System.debug('skipData = ' + skipData);
-    System.debug('pageRecords = ' + pageRecords.size());
-    String hos = '';
-    for (Integer i = startIdx; i < endIdx; i++) {
-      System.debug(
-        'skipData.get(pageRecords.get(i).Prod.Id) = ' +
-        skipData.get(pageRecords.get(i).Prod.Id)
-      );
-      if (pageRecords.get(i).hospitalSpecialOffer == true) {
-        hos = 'ishos';
-      } else {
-        hos = 'nothos';
-      }
-      if (skipData.get(pageRecords.get(i).Prod.Id + hos) == null) {
-        pageRecordsTemp.add(pageRecords.get(i));
-      }
-    }
-
-    System.debug('pageRecordsTemp = ' + pageRecordsTemp.size());
-    data.put('paginatedAccounts', paginatedAccounts);
-    data.put('pageRecords', pageRecordsTemp);
-    data.put('SearchDone', SearchDone);
-    data.put('hasHosPro', hasHosPro);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  private static String makeSoql(
-    String CateName,
-    String Category3,
-    String Category4,
-    String Category5
-  ) {
-    String sqlTail1 = '(\'';
-    for (Integer i = 0; i < zaikuId.size(); i++) {
-      if (zaikuId[i] != null) {
-        if (i < zaikuId.size() - 1) {
-          sqlTail1 += zaikuId[i] + '\',\'';
-        } else {
-          sqlTail1 += zaikuId[i];
-        }
-      }
-    }
-    sqlTail1 += '\')';
-    String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c  FROM Product2__c ';
-    soql += ' WHERE Id in' + sqlTail1;
-    if (!String.isBlank(CateName)) {
-      soql +=
-        ' AND (Name__c like \'%' +
-        String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) +
-        '%\' or Asset_Model_No__c like \'%' +
-        String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) +
-        '%\')';
-    }
-    if (!String.isBlank(Category3)) {
-      soql += ' AND Category3__c = \'' + Category3 + '\'';
-    }
-    if (!String.isBlank(Category4)) {
-      soql += ' AND Category4__c = \'' + Category4 + '\'';
-    }
-    if (!String.isBlank(Category5)) {
-      soql += ' AND Category5__c = \'' + Category5 + '\'';
-    }
-    return soql;
-  }
-
-  public static String makeSoqlorderdet() {
-    String sqlTail = '(\'';
-    for (Integer i = 0; i < orderzaikuId.size(); i++) {
-      if (i < orderzaikuId.size() - 1) {
-        sqlTail += orderzaikuId[i] + '\',\'';
-      } else {
-        sqlTail += orderzaikuId[i];
-      }
-    }
-    sqlTail += '\')';
-    String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c  FROM Product2__c ';
-    msoql += ' WHERE Id in' + sqlTail;
-    return msoql;
-  }
-
-  public static String makeSoqlinventory() {
-    String sqlTail = '(\'';
-    for (Integer i = 0; i < zaikuId.size(); i++) {
-      if (zaikuId[i] != null) {
-        if (i < zaikuId.size() - 1) {
-          sqlTail += zaikuId[i] + '\',\'';
-        } else {
-          sqlTail += zaikuId[i];
-        }
-      }
-    }
-    sqlTail += '\')';
-    String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c  FROM Product2__c ';
-    msoql += ' WHERE Id in' + sqlTail;
-    return msoql;
-  }
-
-  public static void initStandardController(String soql) {
-    // init standard controller
-    System.debug('soql =' + soql);
-    System.debug('initStandardController star');
-    //setCon = new ApexPages.StandardSetController(Database.getQueryLocator(soql));
-    // sets the number of records in each page set
-    //setCon.setPageSize(size);
-    System.debug('initStandardController end');
-  }
-
-  public static List<ConsumableorderdetailsInfo> makepagerecords() {
-    List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
-    Map<String, String> selectedIdMap = new Map<String, String>();
-    System.debug('zhj1');
-    //鍙栧嚭閫夋嫨鐨勪骇鍝�
-    if (pageRecords != null) {
-      System.debug('zhj2');
-      for (ConsumableorderdetailsInfo ass : pageRecords) {
-        if (ass.check == true) {
-          if (ass.hospitalSpecialOffer == true) {
-            selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id);
-          } else {
-            selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id);
-          }
-          reSet.add(ass);
-        }
-      }
-    }
-    System.debug('zhj3');
-    pageRecords = new List<ConsumableorderdetailsInfo>();
-    System.debug('reSet.size() = ' + reSet.size());
-    if (editAble && String.isBlank(arriveorder)) {
-      pageRecords = reSet;
-    }
-    //Integer pagestartNo = (setCon.getPageNumber() * size)-size;
-    //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1);
-    Integer addNo = 0;
-    //update by rentx 2021-2-26 start
-    System.debug(
-      'consumableorderdetailsSelectRecords.size() = ' +
-      consumableorderdetailsSelectRecords.size()
-    );
-    for (
-      ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords
-    ) {
-      Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
-      if (
-        (info.hospitalSpecialOffer &&
-        selectedIdMap.containsKey(info.Prod.Id + 'ishos')) ||
-        (info.hospitalSpecialOffer == false &&
-        selectedIdMap.containsKey(info.Prod.Id + 'nothos'))
-      ) {
-        addNo++;
-      } else {
-        if (info.check == false) {
-          info.orderdetails1 = orderdetails1;
-        }
-        pageRecords.add(info);
-        addNo++;
-      }
-    }
-    System.debug('pageRecords 2 = ' + pageRecords);
-    System.debug('zhj5');
-    System.debug('pageRecords = ' + pageRecords);
-    return pageRecords;
-  }
-
-  public static List<ConsumableorderdetailsInfo> makepagerecordsLwc() {
-    List<ConsumableorderdetailsInfoLwc> reSetLwc = new List<ConsumableorderdetailsInfoLwc>();
-    Map<String, String> selectedIdMap = new Map<String, String>();
-    skipData = new Map<String, String>();
-    System.debug('makepagerecordsLwc pageRecordsLwc = ' + pageRecordsLwc);
-    //鍙栧嚭閫夋嫨鐨勪骇鍝�
-    if (pageRecordsLwc != null) {
-      for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
-        System.debug('ass.check = ' + ass.check);
-        if (ass.check == true) {
-          if (ass.hospitalSpecialOffer == true) {
-            selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id);
-            skipData.put(ass.Prod.Id + 'ishos', ass.Prod.Id);
-          } else {
-            selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id);
-            skipData.put(ass.Prod.Id + 'nothos', ass.Prod.Id);
-          }
-          reSetLwc.add(ass);
-        }
-      }
-    }
-    System.debug('selectedIdMap = ' + selectedIdMap);
-    pageRecords = new List<ConsumableorderdetailsInfo>();
-    if (editAble && String.isBlank(arriveorder)) {
-      List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
-      System.debug('reSetLwc = ' + reSetLwc);
-      for (ConsumableorderdetailsInfoLwc assLwc : reSetLwc) {
-        ConsumableorderdetailsInfo ci = new ConsumableorderdetailsInfo();
-        ci.check = assLwc.check;
-        ci.oldCheck = assLwc.oldCheck;
-        ci.orderdetails1 = assLwc.orderdetails1;
-        ci.orderdetails2 = assLwc.orderdetails2;
-        ci.Prod = assLwc.Prod;
-        ci.Boxnumber = assLwc.Boxnumber;
-        ci.Piecenumber = assLwc.Piecenumber;
-        ci.allnumber = assLwc.allnumber;
-        ci.oldConsumableCount = assLwc.oldConsumableCount;
-        ci.canSelect = assLwc.canSelect;
-        ci.sortBy = assLwc.sortBy;
-        ci.packinglist = assLwc.packinglist;
-        ci.approbation_No = assLwc.approbation_No;
-        ci.expiration_Date = assLwc.expiration_Date;
-        ci.boxorpiecein = assLwc.boxorpiecein;
-        ci.boxorpiece = assLwc.boxorpiece;
-        ci.boxorpieceMap = assLwc.boxorpieceMap;
-        ci.concc = assLwc.concc;
-        ci.BoxPiece = assLwc.BoxPiece;
-        ci.hospitalSpecialOffer = assLwc.hospitalSpecialOffer;
-        ci.hosPro = assLwc.hosPro;
-        reSet.add(ci);
-      }
-      pageRecords = reSet;
-      System.debug('reSet = ' + reSet);
-      addData = reSet.clone();
-      System.debug('addData = reSet = ' + addData);
-    }
-    //Integer pagestartNo = (setCon.getPageNumber() * size)-size;
-    //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1);
-    Integer addNo = 0;
-    //update by rentx 2021-2-26 start
-    System.debug(
-      'consumableorderdetailsSelectRecords.size() = ' +
-      consumableorderdetailsSelectRecords.size()
-    );
-    for (
-      ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords
-    ) {
-      Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
-      if (
-        (info.hospitalSpecialOffer &&
-        selectedIdMap.containsKey(info.Prod.Id + 'ishos')) ||
-        (info.hospitalSpecialOffer == false &&
-        selectedIdMap.containsKey(info.Prod.Id + 'nothos'))
-      ) {
-        System.debug('鍘绘帀鐨刬d : ' + info.Prod.Id);
-        addNo++;
-        addSize++;
-      } else {
-        if (info.check == false) {
-          info.orderdetails1 = orderdetails1;
-        }
-        pageRecords.add(info);
-        addNo++;
-      }
-    }
-    System.debug('pageRecords.size() = ' + pageRecords.size());
-    System.debug('end  addData = ' + addData);
-    return pageRecords;
-  }
-
-  // 淇濆瓨鎸夐挳
-  @AuraEnabled
-  public static ResponseBodyLWC save(
-    Consumable_order__c cocLwc,
-    String hospitalInfoLwc,
-    String hospitalNameLwc,
-    String secondaryDistributorLwc,
-    List<ConsumableorderdetailsInfoLwc> pageRecordsLwc,
-    String accountidLwc,
-    String ESetIdLwc,
-    List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc,
-    String agencyProTypeLwc,
-    String userWorkLocationLwc
-  ) {
-    coc = cocLwc;
-    HospitalInfo = hospitalInfoLwc;
-    HospitalName = hospitalNameLwc;
-    SecondDealer = secondaryDistributorLwc;
-    pageRecordsLwc = pageRecordsLwc;
-    accountid = accountidLwc;
-    consumableproductdetailsRecords = consumableproductdetailsRecordsLwc;
-    ESetId = ESetIdLwc;
-    agencyProType = agencyProTypeLwc;
-    userWorkLocation = userWorkLocationLwc;
-
-    System.debug('coc = ' + coc);
-    System.debug('HospitalInfo = ' + HospitalInfo);
-    System.debug('HospitalName = ' + HospitalName);
-    System.debug('SecondDealer = ' + SecondDealer);
-    System.debug('pageRecordsLwc = ' + pageRecordsLwc);
-    System.debug('accountid = ' + accountid);
-    System.debug(
-      'consumableproductdetailsRecords = ' + consumableproductdetailsRecords
-    );
-    System.debug('ESetId = ' + ESetId);
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-    //璁㈠崟淇℃伅纭
-    if (coc.SummonsForDirction__c == '' || coc.SummonsForDirction__c == null) {
-      // coc.SummonsForDirction__c.addError('璇疯緭鍏ユ寚绀哄崟鐩殑');
-      // return null;
-      return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ユ寚绀哄崟鐩殑', '');
-    } else if (coc.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌') {
-      if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) {
-        // coc.addError('璇疯緭鍏ュ尰闄�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ尰闄�', '');
-      }
-      if (String.isBlank(coc.Order_ForCustomerText__c)) {
-        // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', '');
-      } else if (
-        String.isNotBlank(SecondDealer) ||
-        String.isNotBlank(coc.Order_ForDealerText__c)
-      ) {
-        // coc.addError('涓嶉渶瑕佷簩绾х粡閿�鍟嗗拰缁忛攢鍟�(褰曞叆)淇℃伅' );
-        // return null;
-        return new ResponseBodyLWC(
-          'Error',
-          500,
-          '涓嶉渶瑕佷簩绾х粡閿�鍟嗗拰缁忛攢鍟�(褰曞叆)淇℃伅',
-          ''
-        );
-      }
-    } else if (coc.SummonsForDirction__c == '鍖婚櫌璇曠敤') {
-      if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) {
-        // coc.addError('璇疯緭鍏ュ尰闄�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ尰闄�', '');
-      }
-      if (String.isBlank(coc.Order_ForCustomerText__c)) {
-        // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', '');
-      }
-    } else if (coc.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�') {
-      if (
-        String.isBlank(SecondDealer) &&
-        String.isBlank(coc.Order_ForDealerText__c)
-      ) {
-        // coc.addError('蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)');
-        // return null;
-        return new ResponseBodyLWC(
-          'Error',
-          500,
-          '蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)',
-          ''
-        );
-      }
-      if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) {
-        // coc.addError('璇疯緭鍏ュ尰闄�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ尰闄�', '');
-      }
-      if (String.isBlank(coc.Order_ForCustomerText__c)) {
-        // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', '');
-      }
-    } else if (coc.SummonsForDirction__c == '浜掔浉璋冭揣') {
-      if (String.isNotBlank(HospitalInfo) || String.isNotBlank(HospitalName)) {
-        // coc.addError('涓嶉渶瑕佽緭鍏ュ尰闄�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ュ尰闄�', '');
-      }
-      if (String.isNotBlank(coc.Order_ForCustomerText__c)) {
-        // coc.Order_ForCustomerText__c.addError('涓嶉渶瑕佽緭鍏ョ瀹�');
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ョ瀹�', '');
-      }
-      if (
-        String.isBlank(SecondDealer) &&
-        String.isBlank(coc.Order_ForDealerText__c)
-      ) {
-        // coc.addError('蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)');
-        // return null;
-        return new ResponseBodyLWC(
-          'Error',
-          500,
-          '蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)',
-          ''
-        );
-      }
-    }
-
-    Integer isHos = 0;
-
-    Integer FLG = 0;
-    Integer Count = 0;
-    for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) {
-      FLG = FLG + 1;
-      if (CheckCount.check == false) {
-        Count = Count + 1;
-      } else {
-        //add by rentx
-        if (CheckCount.hospitalSpecialOffer) {
-          isHos = isHos + 1;
-        }
-        //add by rentx
-      }
-    }
-    if (Count == FLG) {
-      // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇烽�夋嫨鎵�闇�娑堣�楀搧'));
-      // return null;
-      return new ResponseBodyLWC('Error', 500, '璇烽�夋嫨鎵�闇�娑堣�楀搧', '');
-    }
-    // gzw 娉ㄩ噴 鍒ゆ柇鎻愬墠 20210308
-    //checkOutPattern();
-    //鏍规嵁鐢ㄦ埛閫変腑鐨勪骇鍝佺粰 鍑哄簱鍗曚笂鐨勬槸鍚﹀尰闄㈢壒浠峰嚭搴撳瓧娈佃祴鍊�
-    Integer isHosCheckOutPattern = 0;
-    for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) {
-      if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) {
-        isHosCheckOutPattern = isHosCheckOutPattern + 1;
-      }
-    }
-    if (isHosCheckOutPattern > 0) {
-      coc.OutPattern__c = true;
-    } else {
-      coc.OutPattern__c = false;
-    }
-
-    // add by rentx 2021-3-10 start
-    //鐗逛环鍖婚櫌鍑哄簱闈炴湰鍖婚櫌缁存姢鐨勭壒浠峰晢鍝佹椂,鎶ラ敊 闈炵壒浠峰尰闄㈠嚭搴撶淮鎶ゅ湪鍖婚櫌鐗逛环鍏崇郴琛ㄧ殑浜у搧鏃� 鎶ラ敊
-    if (coc.SummonsForDirction__c != '浜掔浉璋冭揣') {
-      //闈炵壒浠峰尰闄㈠嚭搴撶壒浠蜂骇鍝佹椂 鎶ラ敊(褰撳墠缁忛攢鍟嗕笅娌℃湁鐗逛环鍖婚櫌闄ゅ)
-      List<hospitalprice__c> hopList = [
-        SELECT id, hospital__c, product__c
-        FROM hospitalprice__c
-        WHERE account__c = :accountid
-      ];
-      //缁忛攢鍟嗗搴斿尰闄笅鐨勬墍鏈夌壒浠蜂骇鍝�
-      Map<String, String> proMap = new Map<String, String>();
-      //缁忛攢鍟嗕笅鐨勬墍鏈夌壒浠蜂骇鍝�
-      Map<String, String> allProMap = new Map<String, String>();
-
-      if (hopList != null && hopList.size() > 0) {
-        Boolean flag = false;
-        if (HospitalInfo != null && HospitalInfo != '') {
-          for (hospitalprice__c hp : hopList) {
-            allProMap.put(hp.product__c, '');
-            //濡傛灉褰撳墠 鍖婚櫌鐗逛环鍏崇郴涓殑鍖婚櫌瀵瑰簲鍑哄簱鍗曚笂鍑哄簱鐨勫尰闄�,鍒欐斁浜у搧id鍒癿ap
-            if (hp.hospital__c == HospitalInfo) {
-              flag = true;
-              proMap.put(hp.product__c, '');
+            Integer startIdx;
+            Integer endIdx;
+            startIdx = pageToken;
+            endIdx = pageToken + pageSize;
+            List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>();
+            if (endIdx > pageRecords.size()) {
+                endIdx = pageRecords.size();
             }
-          }
+            for (Integer i = startIdx; i < endIdx; i++) {
+                pageRecordsTemp.add(pageRecords.get(i));
+            }
+
+            Boolean Existarrive = (coc.Arrive_Order__c != null);
+            String ConsumableOut_report = System.Label.ConsumableOut_report;
+            System.debug('consumableproductdetailsRecords = ' + consumableproductdetailsRecords);
+
+            data.put('paginatedAccounts', paginatedAccounts);
+            data.put('ConsumableOut_report', ConsumableOut_report);
+            data.put('accountid', accountid);
+            data.put('consumableproductdetailsRecords', consumableproductdetailsRecords);
+            data.put('agencyProType', agencyProType);
+            data.put('accountName', accountName);
+            data.put('userWorkLocation', userWorkLocation);
+            data.put('categoryOptionMap', categoryOptionMap);
+            data.put('category4OptionMap', category4OptionMap);
+            data.put('category5OptionMap', category5OptionMap);
+            data.put('outOutPatternOptionMap', outOutPatternOptionMap);
+            data.put('hasHosPro', hasHosPro);
+            data.put('Existarrive', Existarrive);
+            data.put('sumPrice', sumPrice);
+            data.put('HospitalName', HospitalName);
+            data.put('provinceOptsMap', provinceOptsMap);
+            data.put('SummonsFlag', SummonsFlag);
+            data.put('EditDelCommitBtnDisabled', EditDelCommitBtnDisabled);
+            data.put('EditAble', EditAble);
+            data.put('coc', coc);
+            data.put('pageRecords', pageRecordsTemp);
+            data.put('arriveorder', arriveorder);
+            data.put('consumableorderdetails2Count', consumableorderdetails2Count);
+            data.put('consumableorderdetails2Records', consumableorderdetails2Records);
+            data.put('HospitalInfo', HospitalInfo);
+            res.status = 'Success';
+            res.code = 200;
+            System.debug('res = ' + res);
+            return res;
+        } catch (Exception e) {
+            return new ResponseBodyLWC('Error',500, e.getMessage() + e.getLineNumber(), '');
         }
-        for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
-          if (ass.check == true) {
-            //鍒ゆ柇閫変腑鐨勫尰闄㈢壒浠蜂骇鍝�
-            if (ass.hospitalSpecialOffer == true) {
-              //鐢ㄦ埛閫変腑浜嗗綋鍓嶅尰闄笅鐨勭壒浠蜂骇鍝�
-              if (proMap.containsKey(ass.Prod.Id)) {
+    }
+
+    @AuraEnabled
+    public static ResponseBodyLWC categoryAllload(String category3Lwc) {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+
+        category3 = category3Lwc;
+        AggregateResult[] category4List = [
+            SELECT Count(id), Category4_text__c c4c
+            FROM Product2__c
+            WHERE Category3_text__c = :category3 AND Category4_text__c != NULL AND Category5_text__c != NULL
+            GROUP BY Category4_text__c
+        ];
+        System.debug('category4List ' + category4List);
+        category4OptionList = new List<SelectOption>();
+        category4OptionList.add(new SelectOption('', '-鏃�-'));
+        category4OptionMap = new Map<String, String>();
+        category4OptionMap.put('', '-鏃�-');
+        for (AggregateResult category4Search : category4List) {
+            String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
+            category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
+            category4OptionMap.put(deliverycnt4, deliverycnt4);
+        }
+
+        AggregateResult[] category5List = [
+            SELECT Count(id), Category5_text__c c5c
+            FROM Product2__c
+            WHERE Category3_text__c = :category3 AND Category4_text__c != NULL AND Category5_text__c != NULL
+            GROUP BY Category5_text__c
+        ];
+
+        System.debug('category5List ' + category5List);
+        category5OptionList = new List<SelectOption>();
+        category5OptionList.add(new SelectOption('', '-鏃�-'));
+        category5OptionMap = new Map<String, String>();
+        category5OptionMap.put('', '-鏃�-');
+        for (AggregateResult category5Search : category5List) {
+            String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
+            category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
+            category5OptionMap.put(deliverycnt5, deliverycnt5);
+        }
+        data.put('category4OptionMap', category4OptionMap);
+        data.put('category5OptionMap', category5OptionMap);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    @AuraEnabled
+    public static ResponseBodyLWC categoryload(String category3Lwc, String category4Lwc) {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+
+        category3 = category3Lwc;
+        category4 = category4Lwc;
+        AggregateResult[] category4List = [
+            SELECT Count(id), Category4_text__c c4c
+            FROM Product2__c
+            WHERE Category3_text__c = :category3 AND Category4_text__c != NULL AND Category5_text__c != NULL
+            GROUP BY Category4_text__c
+        ];
+        System.debug('category4List ' + category4List);
+        category4OptionList = new List<SelectOption>();
+        category4OptionList.add(new SelectOption('', '-鏃�-'));
+        category4OptionMap = new Map<String, String>();
+        category4OptionMap.put('', '-鏃�-');
+        for (AggregateResult category4Search : category4List) {
+            String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
+            category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
+            category4OptionMap.put(deliverycnt4, deliverycnt4);
+        }
+
+        AggregateResult[] category5List = [
+            SELECT Count(id), Category5_text__c c5c
+            FROM Product2__c
+            WHERE Category3_text__c = :category3 AND Category4_text__c = :category4 AND Category5_text__c != NULL
+            GROUP BY Category5_text__c
+        ];
+
+        System.debug('category5List ' + category5List);
+        category5OptionList = new List<SelectOption>();
+        category5OptionList.add(new SelectOption('', '-鏃�-'));
+        category5OptionMap = new Map<String, String>();
+        category5OptionMap.put('', '-鏃�-');
+        for (AggregateResult category5Search : category5List) {
+            String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
+            category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
+            category5OptionMap.put(deliverycnt5, deliverycnt5);
+        }
+        data.put('category4OptionMap', category4OptionMap);
+        data.put('category5OptionMap', category5OptionMap);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    // 妫�绱�
+    @AuraEnabled
+    public static ResponseBodyLWC searchConsumableorderdetails(
+        String agencyProTypeLwc,
+        String accountNameLwc,
+        String userWorkLocationLwc,
+        String outOutPattern,
+        String category1,
+        String category3,
+        String category4,
+        String category5,
+        Boolean editAbleLwc,
+        List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc,
+        List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc,
+        String arriveorderLwc,
+        Integer pageSizeLWC,
+        Integer pageTokenLWC
+    ) {
+        consumableproductdetailsRecords = consumableproductdetailsRecordsLwc;
+        pageRecordsLwc = pageRecordsLwcLwc;
+        System.debug('pageRecordsLwc = ' + pageRecordsLwc);
+        arriveorder = arriveorderLwc;
+        accountName = accountNameLwc;
+        userWorkLocation = userWorkLocationLwc;
+        agencyProType = agencyProTypeLwc;
+        product2Selected = new List<Product2__c>();
+        pagesize = pageSizeLWC;
+        pageToken = pageTokenLWC > 2000 ? 2000 : pageTokenLWC;
+        addSize = 0;
+        addData = new List<ConsumableorderdetailsInfo>();
+        System.debug('start addData = ' + addData);
+        System.debug('accountName = ' + accountName);
+        System.debug('userWorkLocation = ' + userWorkLocation);
+        String sqlagencyProType = '%' + agencyProTypeLwc + '%';
+        List<AggregateResult> orderdetailCount = [
+            SELECT count(id), Consumable_Product__c cpc, Box_Piece__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 Cancellation_Flag__c = FALSE
+                AND Bar_Code__c != NULL
+                AND Isoverdue__c = 1
+                AND Product_Type__c LIKE :sqlagencyProType
+                AND Dealer_Info_text__c = :accountNameLwc
+                AND Arrive_Owner_Work_Location__c = :userWorkLocationLwc
+            GROUP BY Consumable_Product__c, Box_Piece__c
+        ];
+        System.debug('orderdetailCount = ' + orderdetailCount);
+
+        for (AggregateResult orderdetail : orderdetailCount) {
+            zaikuId.add(String.valueOf(orderdetail.get('cpc')));
+        }
+        editAble = editAbleLwc;
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+        SearchDone = 'SearchDone';
+        Map<String, String> selectedIdMap = new Map<String, String>();
+        List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
+        Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
+        //update by rentx 2021-01-29
+        Map<String, ConsumableorderdetailsInfo> MidMap2 = new Map<String, ConsumableorderdetailsInfo>();
+        String countdelSoql = 'SELECT Id,Bar_Code__c,Name,Inventory_date__c,Consumable_Product__c,Consumable_Product__r.Asset_Model_No__c,Recordtypeid,Box_Piece__c,ProductPacking_list_manual__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 Bar_Code__c != null AND Isoverdue__c = 1 AND Arrive_Owner_Work_Location__c =  :userWorkLocation AND Dealer_Info_text__c = :accountName ';
+        if (String.isNotBlank(outOutPattern) && outOutPattern.equals('ishos')) {
+            countdelSoql += ' AND hospitalSpecialOffer__c = true';
+        } else if (String.isNotBlank(outOutPattern) && outOutPattern.equals('nothos')) {
+            countdelSoql += ' AND hospitalSpecialOffer__c = false';
+        }
+        System.debug('countdelSoql = ' + countdelSoql);
+        List<Consumable_order_details2__c> CountDel = Database.query(countdelSoql);
+        System.debug('CountDel = ' + CountDel);
+        //update by rentx 2021-01-29
+
+        consumableorderdetailsSelectRecords = new List<ConsumableorderdetailsInfo>();
+        //consumableorderdetailsSelectRecords = reSet;
+        String soql = makeSoql(category1, category3, category4, category5);
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        initStandardController(soql);
+        System.debug('soql = ' + soql);
+        product2Selected = Database.query(soql);
+        for (Integer i = 0; i < product2Selected.size(); i++) {
+            MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+        }
+
+        for (Integer i = 0; i < CountDel.size(); i++) {
+            String str = '';
+            if (CountDel[i].hospitalSpecialOffer__c) {
+                str = 'isHos';
+            } else {
+                str = 'notHos';
+            }
+            System.debug('MidMap = ' + MidMap);
+            //鏄庣粏2瀵瑰簲鐨勪骇鍝佸瓨鍦ㄤ簬MidMap涓�
+            if (MidMap.containsKey(CountDel[i].Consumable_Product__c)) {
+                //璁剧疆map涓璳ey鐨勫悗缂� 鐢ㄤ簬鍖哄垎鍖婚櫌鐗逛环鍜岄潪鍖婚櫌鐗逛环
+                if (MidMap2.containsKey(CountDel[i].Consumable_Product__c + str)) {
+                    ConsumableorderdetailsInfo Jstage = MidMap2.get(CountDel[i].Consumable_Product__c + str);
+                    Jstage.allnumber = Jstage.allnumber + 1;
+                    if (CountDel[i].Box_Piece__c == '鐩�') {
+                        Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                    } else if (CountDel[i].Box_Piece__c == '涓�') {
+                        Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                    }
+                    if (CountDel[i].hospitalSpecialOffer__c) {
+                        Jstage.hospitalSpecialOffer = true;
+                    } else {
+                        Jstage.hospitalSpecialOffer = false;
+                    }
+                    if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                        Jstage.hosPro = true;
+                    }
+                    MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                } else {
+                    //midmap2涓病鏈夊搴旂殑浜у搧
+                    ConsumableorderdetailsInfo Jstage = MidMap.get(CountDel[i].Consumable_Product__c).clone();
+                    Jstage.allnumber = Jstage.allnumber + 1;
+                    if (CountDel[i].Box_Piece__c == '鐩�') {
+                        Jstage.Boxnumber = Jstage.Boxnumber + 1;
+                    } else if (CountDel[i].Box_Piece__c == '涓�') {
+                        Jstage.Piecenumber = Jstage.Piecenumber + 1;
+                    }
+                    if (CountDel[i].hospitalSpecialOffer__c) {
+                        Jstage.hospitalSpecialOffer = true;
+                    } else {
+                        Jstage.hospitalSpecialOffer = false;
+                    }
+                    if (HosProMap.containsKey(Jstage.Prod.Id)) {
+                        Jstage.hosPro = true;
+                    }
+                    //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                    MidMap2.put(CountDel[i].Consumable_Product__c + str, Jstage);
+                }
+            }
+        }
+        Integer ishosnum = 0;
+        System.debug('MidMap2 = ' + MidMap2);
+        for (ConsumableorderdetailsInfo bss : MidMap2.values()) {
+            if (selectedIdMap.containsKey(bss.Prod.id)) {
                 continue;
-                //鐢ㄦ埛閫変腑浜嗘病鏈夌淮鎶ょ壒浠峰尰闄㈢殑鐗逛环浜у搧
-              } else if (!allProMap.containsKey(ass.Prod.Id)) {
-                continue;
-              } else {
-                //鐢ㄦ埛閫変腑闈炲綋鍓嶅尰闄㈢淮鎶ょ殑鐗逛环浜у搧
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '褰撳墠鍖婚櫌娌℃湁缁存姢 娑堣�楀搧:'+ ass.Prod.Name__c +' 鐨勭壒浠�'));
-                // return null;
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '褰撳墠鍖婚櫌娌℃湁缁存姢 娑堣�楀搧:' + ass.Prod.Name__c + '鐨勭壒浠�',
-                  ''
-                );
-              }
-            } //闈炲尰闄㈢壒浠蜂骇鍝佸彲浠ュ嚭搴撶粰浠绘剰鍖婚櫌,鎵�浠ヤ笉闇�瑕佸垽鏂�
-          }
+            } else {
+                bss.sortBy = false;
+                bss.packinglist = 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;
+                consumableorderdetailsSelectRecords.add(bss);
+
+                if (bss.hospitalSpecialOffer == true) {
+                    ishosnum = ishosnum + 1;
+                }
+            }
         }
-      }
-    } else {
-      //濡傛灉鏄簰鐩歌皟璐�,鍒ゆ柇 缁忛攢鍟�(褰曞叆) 鏄惁缁存姢浜� 褰撳墠閫変腑鐨勭壒浠蜂骇鍝�
-      List<hospitalprice__c> hopList = [
-        SELECT id, hospital__c, product__c
-        FROM hospitalprice__c
-        WHERE account__c = :coc.Order_ForDealerTextID__c
-      ];
-      Map<Id, String> proMap = new Map<Id, String>();
-      if (hopList != null && hopList.size() > 0) {
-        for (hospitalprice__c hpc : hopList) {
-          proMap.put(hpc.product__c, '');
+        if (ishosnum > 0) {
+            hasHosPro = true;
+        } else {
+            hasHosPro = false;
         }
 
-        String proStr = '';
-        for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
-          if (ass.check == true) {
-            if (ass.hospitalSpecialOffer == true) {
-              if (!proMap.containsKey(ass.Prod.Id)) {
-                proStr += ass.Prod.Name__c + ',';
-              }
+        consumableorderdetailsSelectRecords.sort();
+        makepagerecordsLwc();
+        //鍒嗛〉
+        PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
+        totalCount = pageRecords.size();
+        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.totalRecords = totalCount;
+
+        System.debug('addSize = ' + addSize);
+        Integer startIdx;
+        Integer endIdx;
+        startIdx = pageToken;
+        endIdx = pageToken + pageSize;
+        List<ConsumableorderdetailsInfo> pageRecordsTemp = new List<ConsumableorderdetailsInfo>();
+        if (endIdx > pageRecords.size()) {
+            endIdx = pageRecords.size();
+        }
+
+        System.debug('addData.size() = ' + addData.size());
+        for (ConsumableorderdetailsInfo ci : addData) {
+            pageRecordsTemp.add(ci);
+        }
+        System.debug('startIdx = ' + startIdx);
+        System.debug('endIdx = ' + endIdx);
+        System.debug('skipData = ' + skipData);
+        System.debug('pageRecords = ' + pageRecords.size());
+        String hos = '';
+        for (Integer i = startIdx; i < endIdx; i++) {
+            System.debug('skipData.get(pageRecords.get(i).Prod.Id) = ' + skipData.get(pageRecords.get(i).Prod.Id));
+            if (pageRecords.get(i).hospitalSpecialOffer == true) {
+                hos = 'ishos';
+            } else {
+                hos = 'nothos';
             }
-          }
+            if (skipData.get(pageRecords.get(i).Prod.Id + hos) == null) {
+                pageRecordsTemp.add(pageRecords.get(i));
+            }
         }
-        if (proStr != '') {
-          // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '缁忛攢鍟�:'+coc.Order_ForDealerText__c +' 娌℃湁娑堣�楀搧:'+proStr.substring(0,proStr.length()-1) + ' 鐨勭壒浠�'));
-          // return null;
-          return new ResponseBodyLWC(
-            'Error',
-            500,
-            '缁忛攢鍟�:' +
-              coc.Order_ForDealerText__c +
-              ' 娌℃湁娑堣�楀搧:' +
-              proStr.substring(0, proStr.length() - 1) +
-              ' 鐨勭壒浠�',
-            ''
-          );
-        }
-      }
+
+        System.debug('pageRecordsTemp = ' + pageRecordsTemp.size());
+        data.put('paginatedAccounts', paginatedAccounts);
+        data.put('pageRecords', pageRecordsTemp);
+        data.put('SearchDone', SearchDone);
+        data.put('hasHosPro', hasHosPro);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
     }
 
-    // checkOutPattern();
-    Consumable_order__c p = new Consumable_order__c();
-    List<Consumable_orderdetails__c> Ins = new List<Consumable_orderdetails__c>();
-    List<Consumable_order_details2__c> InsProduct = new List<Consumable_order_details2__c>();
-    Savepoint sp = Database.setSavepoint();
-    // try {
-    //鏂板缓璁㈠崟鏃�
-    if (String.isEmpty(ESetId)) {
-      p.Name = '*';
-      p.Order_type__c = '浼犵エ';
-      p.Order_ProType__c = agencyProType;
-      if (
-        coc.SummonsStatus_c__c == null || String.isBlank(coc.SummonsStatus_c__c)
-      )
-        coc.SummonsStatus_c__c = '鑽夋涓�';
-      // update strat by vivek 2019-7-12
-      p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c;
-      // update end by vivek 2019-7-12
-      p.SummonsStatus_c__c = coc.SummonsStatus_c__c;
-      if (coc.Arrive_Order__c != null) {
-        p.Arrive_Order__c = coc.Arrive_Order__c;
-      }
-      p.Offers_Price__c = coc.Offers_Price__c;
-      p.Dealer_Info__c = accountid;
-      if (String.isBlank(SecondDealer)) {
-        p.Order_ForHospital__c = String.isNotBlank(HospitalInfo)
-          ? HospitalInfo
-          : null;
-        p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
-      } else {
-        p.Order_ForHospital__c = String.isNotBlank(HospitalInfo)
-          ? HospitalInfo
-          : null;
-        p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
-        p.Order_ForDealer__c = SecondDealer;
-      }
-      P.Order_ForDealerText__c = coc.Order_ForDealerText__c;
-      P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c;
-      p.Order_date__c = coc.Order_date__c;
-      p.SummonsForDirction__c = coc.SummonsForDirction__c;
-      p.RecordTypeid = System.Label.RT_ConOrder_Outboundorder;
-      // update start by vivek 2019-7-15
-      p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c;
-      // update end by vivek 2019-7-15
-      //add by rentx
-      p.OutPattern__c = coc.OutPattern__c;
-      //add by rentx
-      //Map<String,String> ProductNewMap = new Map<String, String>();
-      for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
-        if (ass.check == true) {
-          if (ass.orderdetails1.Delivery_List_RMB__c < 0) {
-            return new ResponseBodyLWC(
-              'Error',
-              500,
-              '璇疯緭鍏ユ纭殑鍑鸿揣鍗曚环 (鍏�)',
-              ''
-            );
-          }
-          if (
-            ass.orderdetails1.Delivery_List_RMB__c == null &&
-            coc.SummonsForDirction__c != '鍖婚櫌璇曠敤'
-          ) {
-            return new ResponseBodyLWC(
-              'Error',
-              500,
-              '璇疯緭鍏ユ纭殑鍑鸿揣鍗曚环 (鍏�)',
-              ''
-            );
-          }
-          if (
-            (ass.orderdetails1.Delivery_List_RMB__c == null ||
-            ass.orderdetails1.Delivery_List_RMB__c == 0) &&
-            coc.SummonsForDirction__c != '鍖婚櫌璇曠敤'
-          ) {
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
-          }
-          if (
-            ass.orderdetails1.Delivery_List_RMB__c == 0 &&
-            (coc.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�' ||
-            coc.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌')
-          ) {
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
-          }
-          if (
-            ass.orderdetails1.Shipment_Count__c == null ||
-            ass.orderdetails1.Shipment_Count__c == 0
-          ) {
-            // ass.orderdetails1.Shipment_Count__c.addError('璇疯緭鍏ュ嚭璐ф暟閲�');
-            // return null;
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐ф暟閲�', '');
-          }
+    private static String makeSoql(String CateName, String Category3, String Category4, String Category5) {
+        String sqlTail1 = '(\'';
+        for (Integer i = 0; i < zaikuId.size(); i++) {
+            if (zaikuId[i] != null) {
+                if (i < zaikuId.size() - 1) {
+                    sqlTail1 += zaikuId[i] + '\',\'';
+                } else {
+                    sqlTail1 += zaikuId[i];
+                }
+            }
+        }
+        sqlTail1 += '\')';
+        String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c  FROM Product2__c ';
+        soql += ' WHERE Id in' + sqlTail1;
+        if (!String.isBlank(CateName)) {
+            soql +=
+                ' AND (Name__c like \'%' +
+                String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) +
+                '%\' or Asset_Model_No__c like \'%' +
+                String.escapeSingleQuotes(CateName.replaceAll('%', '\\%')) +
+                '%\')';
+        }
+        if (!String.isBlank(Category3)) {
+            soql += ' AND Category3__c = \'' + Category3 + '\'';
+        }
+        if (!String.isBlank(Category4)) {
+            soql += ' AND Category4__c = \'' + Category4 + '\'';
+        }
+        if (!String.isBlank(Category5)) {
+            soql += ' AND Category5__c = \'' + Category5 + '\'';
+        }
+        return soql;
+    }
 
-          if (
-            ass.orderdetails1.Box_Piece__c == null ||
-            ass.orderdetails1.Box_Piece__c == ''
-          ) {
-            // ass.orderdetails1.Box_Piece__c.addError('璇疯緭鍏ュ崟浣�');
-            // return null;
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ崟浣�', '');
-          }
-          if (ass.orderdetails1.Box_Piece__c == '鐩�') {
-            if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) {
-              //ass.orderdetails1.Shipment_Count__c.addError('搴撳瓨涓嶈冻');
-              if (ass.oldCheck == false) {
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻',
-                  ''
-                );
-              } else {
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' +
-                    ass.orderdetails1.Consumable_Product__r.Name__c +
-                    '搴撳瓨涓嶈冻',
-                  ''
-                );
-              }
+    public static String makeSoqlorderdet() {
+        String sqlTail = '(\'';
+        for (Integer i = 0; i < orderzaikuId.size(); i++) {
+            if (i < orderzaikuId.size() - 1) {
+                sqlTail += orderzaikuId[i] + '\',\'';
+            } else {
+                sqlTail += orderzaikuId[i];
             }
-          } else if (ass.orderdetails1.Box_Piece__c == '涓�') {
-            if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) {
-              //ass.orderdetails1.Shipment_Count__c.addError('搴撳瓨涓嶈冻');
-              if (ass.oldCheck == false) {
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻',
-                  ''
-                );
-              } else {
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' +
-                    ass.orderdetails1.Consumable_Product__r.Name__c +
-                    '搴撳瓨涓嶈冻',
-                  ''
-                );
-              }
+        }
+        sqlTail += '\')';
+        String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c  FROM Product2__c ';
+        msoql += ' WHERE Id in' + sqlTail;
+        return msoql;
+    }
+
+    public static String makeSoqlinventory() {
+        String sqlTail = '(\'';
+        for (Integer i = 0; i < zaikuId.size(); i++) {
+            if (zaikuId[i] != null) {
+                if (i < zaikuId.size() - 1) {
+                    sqlTail += zaikuId[i] + '\',\'';
+                } else {
+                    sqlTail += zaikuId[i];
+                }
             }
-          }
         }
-      }
-      insert p;
-      ESetId = p.id;
-      List<Consumable_order__c> detailName = new List<Consumable_order__c>();
-      detailName = [
-        SELECT id, Name
-        FROM Consumable_order__c
-        WHERE id = :ESetId
-      ];
-      Integer i = 1;
-      for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
-        if (ass.check == true) {
-          Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c();
-          String str = string.valueOf(i);
-          if (str.length() == 1) {
-            str = '0' + str;
-          }
-          InsAfterDel.Name = detailName[0].name + '-' + str;
-          InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c;
-          InsAfterDel.Consumable_order__c = p.id;
-          InsAfterDel.Consumable_Product__c = ass.Prod.id;
-          InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
-          InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c;
-          // TODO 榛樿 鐩� 锛岄渶瑕佷慨姝�
-          InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c;
-          InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c;
-          //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c;
-          InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c;
-          InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
-          //add by rentx 2021-2-26 start
-          InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer;
-          //add by rentx 2021-2-26 end
-          i++;
-          Ins.add(InsAfterDel);
+        sqlTail += '\')';
+        String msoql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,Product2__r.Packing_list_manual__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Category3__c,Category4__c,Category5__c  FROM Product2__c ';
+        msoql += ' WHERE Id in' + sqlTail;
+        return msoql;
+    }
+
+    public static void initStandardController(String soql) {
+        // init standard controller
+        System.debug('soql =' + soql);
+        System.debug('initStandardController star');
+        //setCon = new ApexPages.StandardSetController(Database.getQueryLocator(soql));
+        // sets the number of records in each page set
+        //setCon.setPageSize(size);
+        System.debug('initStandardController end');
+    }
+
+    public static List<ConsumableorderdetailsInfo> makepagerecords() {
+        List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
+        Map<String, String> selectedIdMap = new Map<String, String>();
+        System.debug('zhj1');
+        //鍙栧嚭閫夋嫨鐨勪骇鍝�
+        if (pageRecords != null) {
+            System.debug('zhj2');
+            for (ConsumableorderdetailsInfo ass : pageRecords) {
+                if (ass.check == true) {
+                    if (ass.hospitalSpecialOffer == true) {
+                        selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id);
+                    } else {
+                        selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id);
+                    }
+                    reSet.add(ass);
+                }
+            }
         }
-      }
-      // 濡傛灉 鍑哄簱鍗� 鍜� OCM鍙戣揣Header杩� 鐨勮瘽锛屽彂璐х殑Detail2 Copy鍒� 鍑哄簱鍗曠殑Detail2閲�
-      if (getExistarrive()) {
-        for (ConsumableorderdetailsInfo ass : consumableproductdetailsRecords) {
-          //BlockForP;
-          Consumable_order_details2__c InsProductDet = new Consumable_order_details2__c();
-          InsProductDet.Id = ass.orderdetails2.Id;
-          InsProductDet.Consumable_ZS_order__c = p.id;
-          i++;
-          InsProduct.add(InsProductDet);
+        System.debug('zhj3');
+        pageRecords = new List<ConsumableorderdetailsInfo>();
+        System.debug('reSet.size() = ' + reSet.size());
+        if (editAble && String.isBlank(arriveorder)) {
+            pageRecords = reSet;
         }
-      }
-      if (Ins.size() > 0) {
-        insert Ins;
-      }
-      if (InsProduct.size() > 0) {
-        //ControllerUtil.updateOrderDetailsSatus(InsProduct);
-        update InsProduct;
-      }
-    } else if (ESetId != null || ESetId.length() > 0) {
-      //淇敼涔嬪悗 淇濆瓨璁㈠崟
-      List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
-      // update start by vivek 2019-7-15 add "NoConfirmedPrice__c" in select
-      cocinfo = [
-        SELECT
-          Id,
-          Name,
-          SummonsStatus_c__c,
-          NoConfirmedPrice__c,
-          Dealer_Info__c,
-          Order_ForHospital__c,
-          SummonsForDirction__c
-        FROM Consumable_order__c
-        WHERE Id = :ESetId
-      ];
-      // update end by vivek 2019-7-15
-      if (cocinfo.size() > 0) {
-        p = cocinfo[0];
-      }
-      p.Name = coc.Name;
-      p.Dealer_Info__c = accountid;
-      p.Order_ProType__c = agencyProType;
-      if (String.isEmpty(SecondDealer)) {
-        p.Order_ForHospital__c = String.isNotBlank(HospitalInfo)
-          ? HospitalInfo
-          : null;
-        p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
+        //Integer pagestartNo = (setCon.getPageNumber() * size)-size;
+        //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1);
+        Integer addNo = 0;
+        //update by rentx 2021-2-26 start
+        System.debug('consumableorderdetailsSelectRecords.size() = ' + consumableorderdetailsSelectRecords.size());
+        for (ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords) {
+            Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
+            if (
+                (info.hospitalSpecialOffer && selectedIdMap.containsKey(info.Prod.Id + 'ishos')) ||
+                (info.hospitalSpecialOffer == false && selectedIdMap.containsKey(info.Prod.Id + 'nothos'))
+            ) {
+                addNo++;
+            } else {
+                if (info.check == false) {
+                    info.orderdetails1 = orderdetails1;
+                }
+                pageRecords.add(info);
+                addNo++;
+            }
+        }
+        System.debug('pageRecords 2 = ' + pageRecords);
+        System.debug('zhj5');
+        System.debug('pageRecords = ' + pageRecords);
+        return pageRecords;
+    }
+
+    public static List<ConsumableorderdetailsInfo> makepagerecordsLwc() {
+        List<ConsumableorderdetailsInfoLwc> reSetLwc = new List<ConsumableorderdetailsInfoLwc>();
+        Map<String, String> selectedIdMap = new Map<String, String>();
+        skipData = new Map<String, String>();
+        System.debug('makepagerecordsLwc pageRecordsLwc = ' + pageRecordsLwc);
+        //鍙栧嚭閫夋嫨鐨勪骇鍝�
+        if (pageRecordsLwc != null) {
+            for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
+                System.debug('ass.check = ' + ass.check);
+                if (ass.check == true) {
+                    if (ass.hospitalSpecialOffer == true) {
+                        selectedIdMap.put(ass.Prod.Id + 'ishos', ass.Prod.Id);
+                        skipData.put(ass.Prod.Id + 'ishos', ass.Prod.Id);
+                    } else {
+                        selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id);
+                        skipData.put(ass.Prod.Id + 'nothos', ass.Prod.Id);
+                    }
+                    reSetLwc.add(ass);
+                }
+            }
+        }
+        System.debug('selectedIdMap = ' + selectedIdMap);
+        pageRecords = new List<ConsumableorderdetailsInfo>();
+        if (editAble && String.isBlank(arriveorder)) {
+            List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
+            System.debug('reSetLwc = ' + reSetLwc);
+            for (ConsumableorderdetailsInfoLwc assLwc : reSetLwc) {
+                ConsumableorderdetailsInfo ci = new ConsumableorderdetailsInfo();
+                ci.check = assLwc.check;
+                ci.oldCheck = assLwc.oldCheck;
+                ci.orderdetails1 = assLwc.orderdetails1;
+                ci.orderdetails2 = assLwc.orderdetails2;
+                ci.Prod = assLwc.Prod;
+                ci.Boxnumber = assLwc.Boxnumber;
+                ci.Piecenumber = assLwc.Piecenumber;
+                ci.allnumber = assLwc.allnumber;
+                ci.oldConsumableCount = assLwc.oldConsumableCount;
+                ci.canSelect = assLwc.canSelect;
+                ci.sortBy = assLwc.sortBy;
+                ci.packinglist = assLwc.packinglist;
+                ci.approbation_No = assLwc.approbation_No;
+                ci.expiration_Date = assLwc.expiration_Date;
+                ci.boxorpiecein = assLwc.boxorpiecein;
+                ci.boxorpiece = assLwc.boxorpiece;
+                ci.boxorpieceMap = assLwc.boxorpieceMap;
+                ci.concc = assLwc.concc;
+                ci.BoxPiece = assLwc.BoxPiece;
+                ci.hospitalSpecialOffer = assLwc.hospitalSpecialOffer;
+                ci.hosPro = assLwc.hosPro;
+                reSet.add(ci);
+            }
+            pageRecords = reSet;
+            System.debug('reSet = ' + reSet);
+            addData = reSet.clone();
+            System.debug('addData = reSet = ' + addData);
+        }
+        //Integer pagestartNo = (setCon.getPageNumber() * size)-size;
+        //Integer pageendNo = (setCon.getPageNumber() * size)>noOfRecords ? noOfRecords :(setCon.getPageNumber() * size-1);
+        Integer addNo = 0;
+        //update by rentx 2021-2-26 start
+        System.debug('consumableorderdetailsSelectRecords.size() = ' + consumableorderdetailsSelectRecords.size());
+        for (ConsumableorderdetailsInfo info : consumableorderdetailsSelectRecords) {
+            Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
+            if (
+                (info.hospitalSpecialOffer && selectedIdMap.containsKey(info.Prod.Id + 'ishos')) ||
+                (info.hospitalSpecialOffer == false && selectedIdMap.containsKey(info.Prod.Id + 'nothos'))
+            ) {
+                System.debug('鍘绘帀鐨刬d : ' + info.Prod.Id);
+                addNo++;
+                addSize++;
+            } else {
+                if (info.check == false) {
+                    info.orderdetails1 = orderdetails1;
+                }
+                pageRecords.add(info);
+                addNo++;
+            }
+        }
+        System.debug('pageRecords.size() = ' + pageRecords.size());
+        System.debug('end  addData = ' + addData);
+        return pageRecords;
+    }
+
+    // 淇濆瓨鎸夐挳
+    @AuraEnabled
+    public static ResponseBodyLWC save(
+        Consumable_order__c cocLwc,
+        String hospitalInfoLwc,
+        String hospitalNameLwc,
+        String secondaryDistributorLwc,
+        List<ConsumableorderdetailsInfoLwc> pageRecordsLwc,
+        String accountidLwc,
+        String ESetIdLwc,
+        List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc,
+        String agencyProTypeLwc,
+        String userWorkLocationLwc
+    ) {
+        coc = cocLwc;
+        HospitalInfo = hospitalInfoLwc;
+        HospitalName = hospitalNameLwc;
+        SecondDealer = secondaryDistributorLwc;
+        pageRecordsLwc = pageRecordsLwc;
+        accountid = accountidLwc;
+        consumableproductdetailsRecords = consumableproductdetailsRecordsLwc;
+        ESetId = ESetIdLwc;
+        agencyProType = agencyProTypeLwc;
+        userWorkLocation = userWorkLocationLwc;
+
+        System.debug('coc = ' + coc);
+        System.debug('HospitalInfo = ' + HospitalInfo);
+        System.debug('HospitalName = ' + HospitalName);
         System.debug('SecondDealer = ' + SecondDealer);
-        p.Order_ForDealer__c = null;
-      } else {
-        p.Order_ForHospital__c = String.isNotBlank(HospitalInfo)
-          ? HospitalInfo
-          : null;
-        p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
-        p.Order_ForDealer__c = SecondDealer;
-      }
-      P.Order_ForDealerText__c = coc.Order_ForDealerText__c;
-      P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c;
-      p.Order_date__c = coc.Order_date__c;
-      p.SummonsForDirction__c = coc.SummonsForDirction__c;
-      //add by rentx
-      p.OutPattern__c = coc.OutPattern__c;
-      // update start by vivek 2019-7-15
-      if (p.SummonsStatus_c__c == '浠锋牸鏈畾') {
-        p.NoConfirmedPrice__c = false;
-        p.SummonsStatus_c__c = '宸插畬鎴�';
-      } else {
-        p.SummonsStatus_c__c = '鑽夋涓�';
-      }
-      // p.SummonsStatus_c__c = '鑽夋涓�';
-      // update end by vivek 2019-7-15
-      Integer i = 1;
-      //Map<String,String> ProductOldMap = new Map<String, String>();
-      for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
-        if (ass.check == true) {
-          if (ass.orderdetails1.Delivery_List_RMB__c < 0) {
-            return new ResponseBodyLWC(
-              'Error',
-              500,
-              '璇疯緭鍏ユ纭殑鍑鸿揣鍗曚环 (鍏�)',
-              ''
-            );
-          }
-          Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c();
-          if (
-            (ass.orderdetails1.Delivery_List_RMB__c == null ||
-            ass.orderdetails1.Delivery_List_RMB__c == 0) &&
-            coc.SummonsForDirction__c != '鍖婚櫌璇曠敤'
-          ) {
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
-          }
-          if (
-            ass.orderdetails1.Delivery_List_RMB__c == 0 &&
-            (coc.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�' ||
-            coc.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌')
-          ) {
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
-          }
-          if (
-            ass.orderdetails1.Box_Piece__c == null ||
-            ass.orderdetails1.Box_Piece__c == ''
-          ) {
-            // ass.orderdetails1.Box_Piece__c.addError('璇疯緭鍏ュ崟浣�');
+        System.debug('pageRecordsLwc = ' + pageRecordsLwc);
+        System.debug('accountid = ' + accountid);
+        System.debug('consumableproductdetailsRecords = ' + consumableproductdetailsRecords);
+        System.debug('ESetId = ' + ESetId);
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+        //璁㈠崟淇℃伅纭
+        if (coc.SummonsForDirction__c == '' || coc.SummonsForDirction__c == null) {
+            // coc.SummonsForDirction__c.addError('璇疯緭鍏ユ寚绀哄崟鐩殑');
             // return null;
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ崟浣�', '');
-          }
-          if (ass.orderdetails1.Box_Piece__c == '鐩�') {
-            if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) {
-              //ass.orderdetails1.Shipment_Count__c.addError('搴撳瓨涓嶈冻');
-              if (ass.oldCheck == false) {
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻',
-                  ''
-                );
-              } else {
+            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ユ寚绀哄崟鐩殑', '');
+        } else if (coc.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌') {
+            if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) {
+                // coc.addError('璇疯緭鍏ュ尰闄�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ尰闄�', '');
+            }
+            if (String.isBlank(coc.Order_ForCustomerText__c)) {
+                // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', '');
+            } else if (String.isNotBlank(SecondDealer) || String.isNotBlank(coc.Order_ForDealerText__c)) {
+                // coc.addError('涓嶉渶瑕佷簩绾х粡閿�鍟嗗拰缁忛攢鍟�(褰曞叆)淇℃伅' );
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佷簩绾х粡閿�鍟嗗拰缁忛攢鍟�(褰曞叆)淇℃伅', '');
+            }
+        } else if (coc.SummonsForDirction__c == '鍖婚櫌璇曠敤') {
+            if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) {
+                // coc.addError('璇疯緭鍏ュ尰闄�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ尰闄�', '');
+            }
+            if (String.isBlank(coc.Order_ForCustomerText__c)) {
+                // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', '');
+            }
+        } else if (coc.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�') {
+            if (String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)) {
+                // coc.addError('蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)', '');
+            }
+            if (String.isBlank(HospitalInfo) || String.isBlank(HospitalName)) {
+                // coc.addError('璇疯緭鍏ュ尰闄�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ尰闄�', '');
+            }
+            if (String.isBlank(coc.Order_ForCustomerText__c)) {
+                // coc.Order_ForCustomerText__c.addError('璇疯緭鍏ョ瀹�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ョ瀹�', '');
+            }
+        } else if (coc.SummonsForDirction__c == '浜掔浉璋冭揣') {
+            if (String.isNotBlank(HospitalInfo) || String.isNotBlank(HospitalName)) {
+                // coc.addError('涓嶉渶瑕佽緭鍏ュ尰闄�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ュ尰闄�', '');
+            }
+            if (String.isNotBlank(coc.Order_ForCustomerText__c)) {
+                // coc.Order_ForCustomerText__c.addError('涓嶉渶瑕佽緭鍏ョ瀹�');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '涓嶉渶瑕佽緭鍏ョ瀹�', '');
+            }
+            if (String.isBlank(SecondDealer) && String.isBlank(coc.Order_ForDealerText__c)) {
+                // coc.addError('蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)');
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '蹇呴』杈撳叆浜岀骇缁忛攢鍟嗘垨缁忛攢鍟�(褰曞叆)', '');
+            }
+        }
+
+        Integer isHos = 0;
+
+        Integer FLG = 0;
+        Integer Count = 0;
+        for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) {
+            FLG = FLG + 1;
+            if (CheckCount.check == false) {
+                Count = Count + 1;
+            } else {
+                //add by rentx
+                if (CheckCount.hospitalSpecialOffer) {
+                    isHos = isHos + 1;
+                }
+                //add by rentx
+            }
+        }
+        if (Count == FLG) {
+            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇烽�夋嫨鎵�闇�娑堣�楀搧'));
+            // return null;
+            return new ResponseBodyLWC('Error', 500, '璇烽�夋嫨鎵�闇�娑堣�楀搧', '');
+        }
+        // gzw 娉ㄩ噴 鍒ゆ柇鎻愬墠 20210308
+        //checkOutPattern();
+        //鏍规嵁鐢ㄦ埛閫変腑鐨勪骇鍝佺粰 鍑哄簱鍗曚笂鐨勬槸鍚﹀尰闄㈢壒浠峰嚭搴撳瓧娈佃祴鍊�
+        Integer isHosCheckOutPattern = 0;
+        for (ConsumableorderdetailsInfoLwc CheckCount : pageRecordsLwc) {
+            if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) {
+                isHosCheckOutPattern = isHosCheckOutPattern + 1;
+            }
+        }
+        if (isHosCheckOutPattern > 0) {
+            coc.OutPattern__c = true;
+        } else {
+            coc.OutPattern__c = false;
+        }
+
+        // add by rentx 2021-3-10 start
+        //鐗逛环鍖婚櫌鍑哄簱闈炴湰鍖婚櫌缁存姢鐨勭壒浠峰晢鍝佹椂,鎶ラ敊 闈炵壒浠峰尰闄㈠嚭搴撶淮鎶ゅ湪鍖婚櫌鐗逛环鍏崇郴琛ㄧ殑浜у搧鏃� 鎶ラ敊
+        if (coc.SummonsForDirction__c != '浜掔浉璋冭揣') {
+            //闈炵壒浠峰尰闄㈠嚭搴撶壒浠蜂骇鍝佹椂 鎶ラ敊(褰撳墠缁忛攢鍟嗕笅娌℃湁鐗逛环鍖婚櫌闄ゅ)
+            List<hospitalprice__c> hopList = [SELECT id, hospital__c, product__c FROM hospitalprice__c WHERE account__c = :accountid];
+            //缁忛攢鍟嗗搴斿尰闄笅鐨勬墍鏈夌壒浠蜂骇鍝�
+            Map<String, String> proMap = new Map<String, String>();
+            //缁忛攢鍟嗕笅鐨勬墍鏈夌壒浠蜂骇鍝�
+            Map<String, String> allProMap = new Map<String, String>();
+
+            if (hopList != null && hopList.size() > 0) {
+                Boolean flag = false;
+                if (HospitalInfo != null && HospitalInfo != '') {
+                    for (hospitalprice__c hp : hopList) {
+                        allProMap.put(hp.product__c, '');
+                        //濡傛灉褰撳墠 鍖婚櫌鐗逛环鍏崇郴涓殑鍖婚櫌瀵瑰簲鍑哄簱鍗曚笂鍑哄簱鐨勫尰闄�,鍒欐斁浜у搧id鍒癿ap
+                        if (hp.hospital__c == HospitalInfo) {
+                            flag = true;
+                            proMap.put(hp.product__c, '');
+                        }
+                    }
+                }
+                for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
+                    if (ass.check == true) {
+                        //鍒ゆ柇閫変腑鐨勫尰闄㈢壒浠蜂骇鍝�
+                        if (ass.hospitalSpecialOffer == true) {
+                            //鐢ㄦ埛閫変腑浜嗗綋鍓嶅尰闄笅鐨勭壒浠蜂骇鍝�
+                            if (proMap.containsKey(ass.Prod.Id)) {
+                                continue;
+                                //鐢ㄦ埛閫変腑浜嗘病鏈夌淮鎶ょ壒浠峰尰闄㈢殑鐗逛环浜у搧
+                            } else if (!allProMap.containsKey(ass.Prod.Id)) {
+                                continue;
+                            } else {
+                                //鐢ㄦ埛閫変腑闈炲綋鍓嶅尰闄㈢淮鎶ょ殑鐗逛环浜у搧
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '褰撳墠鍖婚櫌娌℃湁缁存姢 娑堣�楀搧:'+ ass.Prod.Name__c +' 鐨勭壒浠�'));
+                                // return null;
+                                return new ResponseBodyLWC('Error', 500, '褰撳墠鍖婚櫌娌℃湁缁存姢 娑堣�楀搧:' + ass.Prod.Name__c + '鐨勭壒浠�', '');
+                            }
+                        } //闈炲尰闄㈢壒浠蜂骇鍝佸彲浠ュ嚭搴撶粰浠绘剰鍖婚櫌,鎵�浠ヤ笉闇�瑕佸垽鏂�
+                    }
+                }
+            }
+        } else {
+            //濡傛灉鏄簰鐩歌皟璐�,鍒ゆ柇 缁忛攢鍟�(褰曞叆) 鏄惁缁存姢浜� 褰撳墠閫変腑鐨勭壒浠蜂骇鍝�
+            List<hospitalprice__c> hopList = [
+                SELECT id, hospital__c, product__c
+                FROM hospitalprice__c
+                WHERE account__c = :coc.Order_ForDealerTextID__c
+            ];
+            Map<Id, String> proMap = new Map<Id, String>();
+            if (hopList != null && hopList.size() > 0) {
+                for (hospitalprice__c hpc : hopList) {
+                    proMap.put(hpc.product__c, '');
+                }
+
+                String proStr = '';
+                for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
+                    if (ass.check == true) {
+                        if (ass.hospitalSpecialOffer == true) {
+                            if (!proMap.containsKey(ass.Prod.Id)) {
+                                proStr += ass.Prod.Name__c + ',';
+                            }
+                        }
+                    }
+                }
+                if (proStr != '') {
+                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '缁忛攢鍟�:'+coc.Order_ForDealerText__c +' 娌℃湁娑堣�楀搧:'+proStr.substring(0,proStr.length()-1) + ' 鐨勭壒浠�'));
+                    // return null;
+                    return new ResponseBodyLWC(
+                        'Error',
+                        500,
+                        '缁忛攢鍟�:' +
+                        coc.Order_ForDealerText__c +
+                        ' 娌℃湁娑堣�楀搧:' +
+                        proStr.substring(0, proStr.length() - 1) +
+                        ' 鐨勭壒浠�',
+                        ''
+                    );
+                }
+            }
+        }
+
+        // checkOutPattern();
+        Consumable_order__c p = new Consumable_order__c();
+        List<Consumable_orderdetails__c> Ins = new List<Consumable_orderdetails__c>();
+        List<Consumable_order_details2__c> InsProduct = new List<Consumable_order_details2__c>();
+        Savepoint sp = Database.setSavepoint();
+        // try {
+        //鏂板缓璁㈠崟鏃�
+        if (String.isEmpty(ESetId)) {
+            p.Name = '*';
+            p.Order_type__c = '浼犵エ';
+            p.Order_ProType__c = agencyProType;
+            if (coc.SummonsStatus_c__c == null || String.isBlank(coc.SummonsStatus_c__c))
+                coc.SummonsStatus_c__c = '鑽夋涓�';
+            // update strat by vivek 2019-7-12
+            p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c;
+            // update end by vivek 2019-7-12
+            p.SummonsStatus_c__c = coc.SummonsStatus_c__c;
+            if (coc.Arrive_Order__c != null) {
+                p.Arrive_Order__c = coc.Arrive_Order__c;
+            }
+            p.Offers_Price__c = coc.Offers_Price__c;
+            p.Dealer_Info__c = accountid;
+            if (String.isBlank(SecondDealer)) {
+                p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null;
+                p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
+            } else {
+                p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null;
+                p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
+                p.Order_ForDealer__c = SecondDealer;
+            }
+            P.Order_ForDealerText__c = coc.Order_ForDealerText__c;
+            P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c;
+            p.Order_date__c = coc.Order_date__c;
+            p.SummonsForDirction__c = coc.SummonsForDirction__c;
+            p.RecordTypeid = System.Label.RT_ConOrder_Outboundorder;
+            // update start by vivek 2019-7-15
+            p.NoConfirmedPrice__c = coc.NoConfirmedPrice__c;
+            // update end by vivek 2019-7-15
+            //add by rentx
+            p.OutPattern__c = coc.OutPattern__c;
+            //add by rentx
+            //Map<String,String> ProductNewMap = new Map<String, String>();
+            for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
+                if (ass.check == true) {
+                    if (ass.orderdetails1.Delivery_List_RMB__c < 0) {
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ユ纭殑鍑鸿揣鍗曚环 (鍏�)', '');
+                    }
+                    if (ass.orderdetails1.Delivery_List_RMB__c == null && coc.SummonsForDirction__c != '鍖婚櫌璇曠敤') {
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ユ纭殑鍑鸿揣鍗曚环 (鍏�)', '');
+                    }
+                    if ((ass.orderdetails1.Delivery_List_RMB__c == null || ass.orderdetails1.Delivery_List_RMB__c == 0) && coc.SummonsForDirction__c != '鍖婚櫌璇曠敤') {
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
+                    }
+                    if (
+                        ass.orderdetails1.Delivery_List_RMB__c == 0 &&
+                        (coc.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�' ||
+                        coc.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌')
+                    ) {
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
+                    }
+                    if (ass.orderdetails1.Shipment_Count__c == null || ass.orderdetails1.Shipment_Count__c == 0) {
+                        // ass.orderdetails1.Shipment_Count__c.addError('璇疯緭鍏ュ嚭璐ф暟閲�');
+                        // return null;
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐ф暟閲�', '');
+                    }
+
+                    if (ass.orderdetails1.Box_Piece__c == null || ass.orderdetails1.Box_Piece__c == '') {
+                        // ass.orderdetails1.Box_Piece__c.addError('璇疯緭鍏ュ崟浣�');
+                        // return null;
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ崟浣�', '');
+                    }
+                    if (ass.orderdetails1.Box_Piece__c == '鐩�') {
+                        if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) {
+                            //ass.orderdetails1.Shipment_Count__c.addError('搴撳瓨涓嶈冻');
+                            if (ass.oldCheck == false) {
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC('Error', 500, '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻', '');
+                            } else {
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC(
+                                    'Error',
+                                    500,
+                                    '娑堣�楀搧' +
+                                    ass.orderdetails1.Consumable_Product__r.Name__c +
+                                    '搴撳瓨涓嶈冻',
+                                    ''
+                                );
+                            }
+                        }
+                    } else if (ass.orderdetails1.Box_Piece__c == '涓�') {
+                        if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) {
+                            //ass.orderdetails1.Shipment_Count__c.addError('搴撳瓨涓嶈冻');
+                            if (ass.oldCheck == false) {
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC('Error', 500, '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻', '');
+                            } else {
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC(
+                                    'Error',
+                                    500,
+                                    '娑堣�楀搧' +
+                                    ass.orderdetails1.Consumable_Product__r.Name__c +
+                                    '搴撳瓨涓嶈冻',
+                                    ''
+                                );
+                            }
+                        }
+                    }
+                }
+            }
+            insert p;
+            ESetId = p.id;
+            List<Consumable_order__c> detailName = new List<Consumable_order__c>();
+            detailName = [SELECT id, Name FROM Consumable_order__c WHERE id = :ESetId];
+            Integer i = 1;
+            for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
+                if (ass.check == true) {
+                    Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c();
+                    String str = string.valueOf(i);
+                    if (str.length() == 1) {
+                        str = '0' + str;
+                    }
+                    InsAfterDel.Name = detailName[0].name + '-' + str;
+                    InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c;
+                    InsAfterDel.Consumable_order__c = p.id;
+                    InsAfterDel.Consumable_Product__c = ass.Prod.id;
+                    InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
+                    InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c;
+                    // TODO 榛樿 鐩� 锛岄渶瑕佷慨姝�
+                    InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c;
+                    InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c;
+                    //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c;
+                    InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c;
+                    InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
+                    //add by rentx 2021-2-26 start
+                    InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer;
+                    //add by rentx 2021-2-26 end
+                    i++;
+                    Ins.add(InsAfterDel);
+                }
+            }
+            // 濡傛灉 鍑哄簱鍗� 鍜� OCM鍙戣揣Header杩� 鐨勮瘽锛屽彂璐х殑Detail2 Copy鍒� 鍑哄簱鍗曠殑Detail2閲�
+            if (getExistarrive()) {
+                for (ConsumableorderdetailsInfo ass : consumableproductdetailsRecords) {
+                    //BlockForP;
+                    Consumable_order_details2__c InsProductDet = new Consumable_order_details2__c();
+                    InsProductDet.Id = ass.orderdetails2.Id;
+                    InsProductDet.Consumable_ZS_order__c = p.id;
+                    i++;
+                    InsProduct.add(InsProductDet);
+                }
+            }
+            if (Ins.size() > 0) {
+                insert Ins;
+            }
+            if (InsProduct.size() > 0) {
+                //ControllerUtil.updateOrderDetailsSatus(InsProduct);
+                update InsProduct;
+            }
+        } else if (ESetId != null || ESetId.length() > 0) {
+            //淇敼涔嬪悗 淇濆瓨璁㈠崟
+            List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
+            // update start by vivek 2019-7-15 add "NoConfirmedPrice__c" in select
+            cocinfo = [
+                SELECT Id, Name, SummonsStatus_c__c, NoConfirmedPrice__c, Dealer_Info__c, Order_ForHospital__c, SummonsForDirction__c
+                FROM Consumable_order__c
+                WHERE Id = :ESetId
+            ];
+            // update end by vivek 2019-7-15
+            if (cocinfo.size() > 0) {
+                p = cocinfo[0];
+            }
+            p.Name = coc.Name;
+            p.Dealer_Info__c = accountid;
+            p.Order_ProType__c = agencyProType;
+            if (String.isEmpty(SecondDealer)) {
+                p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null;
+                p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
+                System.debug('SecondDealer = ' + SecondDealer);
+                p.Order_ForDealer__c = null;
+            } else {
+                p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null;
+                p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
+                p.Order_ForDealer__c = SecondDealer;
+            }
+            P.Order_ForDealerText__c = coc.Order_ForDealerText__c;
+            P.Order_ForDealerTextID__c = coc.Order_ForDealerTextID__c;
+            p.Order_date__c = coc.Order_date__c;
+            p.SummonsForDirction__c = coc.SummonsForDirction__c;
+            //add by rentx
+            p.OutPattern__c = coc.OutPattern__c;
+            // update start by vivek 2019-7-15
+            if (p.SummonsStatus_c__c == '浠锋牸鏈畾') {
+                p.NoConfirmedPrice__c = false;
+                p.SummonsStatus_c__c = '宸插畬鎴�';
+            } else {
+                p.SummonsStatus_c__c = '鑽夋涓�';
+            }
+            // p.SummonsStatus_c__c = '鑽夋涓�';
+            // update end by vivek 2019-7-15
+            Integer i = 1;
+            //Map<String,String> ProductOldMap = new Map<String, String>();
+            for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
+                if (ass.check == true) {
+                    if (ass.orderdetails1.Delivery_List_RMB__c < 0) {
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ユ纭殑鍑鸿揣鍗曚环 (鍏�)', '');
+                    }
+                    Consumable_orderdetails__c InsAfterDel = new Consumable_orderdetails__c();
+                    if ((ass.orderdetails1.Delivery_List_RMB__c == null || ass.orderdetails1.Delivery_List_RMB__c == 0) && coc.SummonsForDirction__c != '鍖婚櫌璇曠敤') {
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
+                    }
+                    if (
+                        ass.orderdetails1.Delivery_List_RMB__c == 0 &&
+                        (coc.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�' ||
+                        coc.SummonsForDirction__c == '鐩存帴閿�鍞粰鍖婚櫌')
+                    ) {
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐у崟浠� (鍏�)', '');
+                    }
+                    if (ass.orderdetails1.Box_Piece__c == null || ass.orderdetails1.Box_Piece__c == '') {
+                        // ass.orderdetails1.Box_Piece__c.addError('璇疯緭鍏ュ崟浣�');
+                        // return null;
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ崟浣�', '');
+                    }
+                    if (ass.orderdetails1.Box_Piece__c == '鐩�') {
+                        if (ass.orderdetails1.Shipment_Count__c > ass.Boxnumber) {
+                            //ass.orderdetails1.Shipment_Count__c.addError('搴撳瓨涓嶈冻');
+                            if (ass.oldCheck == false) {
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC('Error', 500, '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻', '');
+                            } else {
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC(
+                                    'Error',
+                                    500,
+                                    '娑堣�楀搧' +
+                                    ass.orderdetails1.Consumable_Product__r.Name__c +
+                                    '搴撳瓨涓嶈冻',
+                                    ''
+                                );
+                            }
+                        }
+                    } else if (ass.orderdetails1.Box_Piece__c == '涓�') {
+                        if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) {
+                            if (ass.oldCheck == false) {
+                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC('Error', 500, '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻', '');
+                            } else {
+                                //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
+                                return new ResponseBodyLWC(
+                                    'Error',
+                                    500,
+                                    '娑堣�楀搧' +
+                                    ass.orderdetails1.Consumable_Product__r.Name__c +
+                                    '搴撳瓨涓嶈冻',
+                                    ''
+                                );
+                            }
+                        }
+                    }
+                    if (ass.orderdetails1.Shipment_Count__c == null || ass.orderdetails1.Shipment_Count__c == 0) {
+                        // ass.orderdetails1.Shipment_Count__c.addError('璇疯緭鍏ュ嚭璐ф暟閲�');
+                        // return null;
+                        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐ф暟閲�', '');
+                    } else {
+                        String str = string.valueOf(i);
+                        if (str.length() == 1) {
+                            str = '0' + str;
+                        }
+                        InsAfterDel.Name = p.name + '-' + str;
+                        InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c;
+                        InsAfterDel.Consumable_order__c = ESetId;
+                        System.debug('ass.Prod.id:' + ass.Prod.id);
+                        InsAfterDel.Consumable_Product__c = ass.Prod.id;
+                        InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
+                        InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c;
+                        InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c;
+                        InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c;
+                        //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c;
+                        InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c;
+                        InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
+                        //add by rentx 2021-2-26 start
+                        InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer;
+                        //add by rentx 2021-2-26 end
+                        i++;
+                        Ins.add(InsAfterDel);
+                    }
+                }
+            }
+            update p;
+            List<Consumable_orderdetails__c> qs = new List<Consumable_orderdetails__c>();
+            qs = [SELECT Id FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId];
+            if (qs.size() > 0) {
+                delete qs;
+            }
+            if (Ins.size() > 0) {
+                insert Ins;
+            }
+        }
+        // }catch (Exception ex) {
+        //     Database.rollback(sp);
+        //     // ApexPages.addMessages(ex);
+        //     // return null;
+        //     //return new ResponseBodyLWC('Error',500, ex.getMessage(), '');
+        //     return new ResponseBodyLWC('Error',500, JSON.serialize(ex), '');
+        // }
+        data.put('ESetId', ESetId);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    public static void checkOutPattern() {
+        //鏍规嵁鐢ㄦ埛閫変腑鐨勪骇鍝佺粰 鍑哄簱鍗曚笂鐨勬槸鍚﹀尰闄㈢壒浠峰嚭搴撳瓧娈佃祴鍊�
+        Integer isHos = 0;
+        for (ConsumableorderdetailsInfo CheckCount : pageRecords) {
+            if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) {
+                ishos = ishos + 1;
+            }
+        }
+        if (isHos > 0) {
+            coc.OutPattern__c = true;
+        } else {
+            coc.OutPattern__c = false;
+        }
+    }
+
+    //鎵撳嵃PDF
+    @AuraEnabled
+    public static ResponseBodyLWC PraseToPDF(Consumable_order__c cocLwc, String ESetId) {
+        System.debug('cocLwc = ' + cocLwc);
+        System.debug('ESetId = ' + ESetId);
+        coc = cocLwc;
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+
+        if (coc.SummonsStatus_c__c == '鎵瑰噯') {
+            Consumable_order__c P = new Consumable_order__c();
+            List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
+            // update start by vivek 2019-7-15 add 鈥淣oConfirmedPrice__c鈥� in select
+            cocinfo = [
+                SELECT
+                    Id,
+                    Name,
+                    SummonsStatus_c__c,
+                    NoConfirmedPrice__c,
+                    Dealer_Info__c,
+                    Order_ForHospital__c,
+                    SummonsForDirction__c,
+                    Billed_Status__c
+                FROM Consumable_order__c
+                WHERE Id = :ESetId
+            ];
+            // update end by vivek 2019-7-15
+            if (cocinfo.size() > 0) {
+                p = cocinfo[0];
+            }
+            p.SummonsStatus_c__c = '鍑哄簱鍗曞凡鎵撳嵃';
+            update p;
+        }
+        data.put('ESetId', ESetId);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    //鏌ユ壘缁忛攢鍟�
+    @AuraEnabled(cacheable=true scope='global')
+    public static List<LookupSearchResult> search(String searchTerm) {
+        System.debug('searchTerm = ' + searchTerm);
+        String nameCondition = '';
+        nameCondition += '%' + String.escapeSingleQuotes(searchTerm.replaceAll('%', '\\%')) + '%';
+        List<Account> accs = new List<Account>();
+        System.debug('nameCondition = ' + nameCondition);
+        //鏌ヨ鏉′欢淇敼
+        //绛涢�夊垽鏂潯浠讹細褰撳墠璐㈠勾鐨�4/1 ~ 绗簩骞寸殑6/30 聽& ET or ENG绫诲瀷 & 褰撳墠鐢ㄦ埛绫诲瀷
+        //1 and 2
+        //1. Integer year 2022/4/1 ~ 2023/6/30
+        //寮�濮嬫棩鏈� + 缁撴潫鏃ユ湡
+        //Contract_Decide_Start_Date__c>=寮�濮嬫棩鏈�  and Contract_Decide_End_Date__c<缁撴潫鏃ユ湡
+        //2. 娣诲姞缁忛攢鍟嗗厑閿�绫诲瀷锛欵T缁忛攢鍟嗗崗璁紱ENG鑰楁潗缁忛攢鍟嗗崗璁�
+        //鍙栧綋鍓嶇敤鎴风殑绫诲瀷锛屽鏋滅敤鎴风被鍨嬫槸ET,ET缁忛攢鍟嗗崗璁� = true
+        // Date today = Date.today();
+        // Integer thisYear = today.year();
+        // Integer nextYear = today.year() + 1;
+        // Date thisDatetime = Date.newInstance(thisYear, 4, 1);
+        // Date nextDatetime = Date.newInstance(nextYear, 6, 30);
+        // System.debug('thisDatetime = ' + thisDatetime);
+        // System.debug('nextDatetime = ' + nextDatetime);
+
+        // User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()];
+        // System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId());
+        // System.debug('UserProTypecTemp = ' + UserProTypecTemp);
+        // System.debug('UserProTypecTemp.UserPro_Type__c = ' + UserProTypecTemp.UserPro_Type__c);
+        // if (UserProTypecTemp.UserPro_Type__c == 'ENG') {
+        //     accs = [
+        //         SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity
+        //         FROM Account
+        //         WHERE
+        //             // Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
+        //             // AND 
+        //             Name LIKE :nameCondition
+        //             AND RecordType.DeveloperName = 'AgencyContract'
+        //             AND Contract_Decide_Start_Date__c >= :thisDatetime
+        //             AND Contract_Decide_End_Date__c <= :nextDatetime
+        //             AND ENG_Dealer__c = true
+        //         ORDER BY Name
+        //         LIMIT 49
+        //     ];
+        // }
+        // if (UserProTypecTemp.UserPro_Type__c == 'ET') {
+        //     accs = [
+        //         SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity
+        //         FROM Account
+        //         WHERE
+        //             // Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
+        //             // AND 
+        //             Name LIKE :nameCondition
+        //             AND RecordType.DeveloperName = 'AgencyContract'
+        //             AND Contract_Decide_Start_Date__c >= :thisDatetime
+        //             AND Contract_Decide_End_Date__c <= :nextDatetime
+        //             AND ET_SP_Dealer__c = true
+        //         ORDER BY Name
+        //         LIMIT 49
+        //     ];
+        // }
+
+
+        Date today = Date.today();
+        //Date today = Date.newInstance(2023, 3, 1);
+        Integer thisMonth = today.month();
+        System.debug('thisMonth = ' + thisMonth);
+
+        Integer lastYear = today.year() - 1;
+        Integer thisYear = today.year();
+        Integer nextYear = today.year() + 1;
+        
+        Date lastDatetime = Date.newInstance(lastYear, 4, 1);
+        Date thisDatetime = Date.newInstance(thisYear, 4, 1);
+        Date thisDatetime2 = Date.newInstance(thisYear, 7, 1);
+        Date nextDatetime = Date.newInstance(nextYear, 7, 1);
+        System.debug('lastDatetime = ' + lastDatetime);
+        System.debug('thisDatetime = ' + thisDatetime);
+        System.debug('thisDatetime2 = ' + thisDatetime2);
+        System.debug('nextDatetime = ' + nextDatetime);
+        System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId());
+        User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()];
+
+        String sql = 'SELECT id, Parentid FROM Account WHERE Parent.Name LIKE :nameCondition ';
+        if(thisMonth < 4){
+            sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :thisDatetime2 ';
+        }else if(thisMonth >= 4 && thisMonth <= 6){
+            sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :nextDatetime ';
+        }else{
+            sql += 'AND Contract_Decide_Start_Date__c >= :thisDatetime AND Contract_Decide_End_Date__c < :nextDatetime ';
+        }
+        if (UserProTypecTemp.UserPro_Type__c == 'ENG') {
+            sql += 'AND ENG_Dealer__c = true';
+        }
+        if (UserProTypecTemp.UserPro_Type__c == 'ET') {
+            sql += 'AND ET_SP_Dealer__c = true';
+        }
+        System.debug('sql = ' + sql);
+        accs = Database.query(sql);
+        // 鐢ㄤ簬淇濆瓨鐗圭害缁忛攢鍟嗗尮閰嶅埌鐨勫叾鐖剁被鐨刬d
+        Set<String> pids = new Set<String>();
+        for (Account acc : accs) {
+            pids.add(acc.Parentid);
+        }
+
+        accs = [
+            SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity
+            FROM Account
+            WHERE
+                (Id IN :pids
+                OR (Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
+                AND Name LIKE :nameCondition))
+                AND RecordType.DeveloperName = 'Agency'
+            ORDER BY Name
+            LIMIT 49
+        ];
+
+        // accs = [
+        //     SELECT id, Parentid
+        //     FROM Account
+        //     WHERE
+        //         Parent.Name LIKE :nameCondition
+        //         AND Contract_Decide_Start_Date__c <= :Date.Today()
+        //         AND Contract_Decide_End_Date__c >= :Date.Today()
+        // ];
+
+        // 鐢ㄤ簬淇濆瓨鐗圭害缁忛攢鍟嗗尮閰嶅埌鐨勫叾鐖剁被鐨刬d
+        // Set<String> pids = new Set<String>();
+        // for (Account acc : accs) {
+        //     pids.add(acc.Parentid);
+        // }
+        // accs = [
+        //     SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity
+        //     FROM Account
+        //     WHERE
+        //         (Id IN :pids
+        //         OR (Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
+        //         AND Name LIKE :nameCondition))
+        //         AND RecordType.DeveloperName = 'Agency'
+        //         AND Is_Active__c != '鐒″姽'
+        //     ORDER BY Name
+        //     LIMIT 5
+        // ];
+        System.debug('accs = ' + accs);
+        List<LookupSearchResult> results = new List<LookupSearchResult>();
+        String accountIcon = 'standard:account';
+        for (Account account : accs) {
+            String subtitle = account.BillingCity == null ? 'Account' : 'Account 鈥� ' + account.BillingCity;
+            results.add(new LookupSearchResult(account.Id, 'Account', accountIcon, account.Name, subtitle));
+        }
+        results.sort();
+        System.debug('results = ' + results);
+        return results;
+    }
+
+    //淇濆瓨闄勪欢
+    @AuraEnabled
+    public static String saveFile(Id recordId, String fileName, String base64Data) {
+        base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
+        ContentVersion cv = new ContentVersion();
+        cv.Title = fileName;
+        cv.PathOnClient = '/' + fileName;
+        cv.FirstPublishLocationId = recordId;
+        cv.VersionData = EncodingUtil.base64Decode(base64Data);
+        cv.IsMajorVersion = true;
+        insert cv;
+        return cv.Id;
+    }
+
+    //鑾峰彇闄勪欢
+    @AuraEnabled
+    public static ResponseBodyLWC getFiles(Id recordId) {
+        System.debug('getFiles recordId = ' + recordId);
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+        List<ContentVersion> cvList = new List<ContentVersion>();
+        List<ContentDocumentLink> links = [SELECT Id, ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = :recordId];
+        if (links != null && links.size() > 0) {
+            List<String> documentIds = new List<String>();
+            for (ContentDocumentLink link : links) {
+                documentIds.add(link.ContentDocumentId);
+            }
+            List<ContentVersion> cvInfo = [
+                SELECT Id, Title, OwnerId, Owner.Name, CreatedDate, ContentDocumentId
+                FROM ContentVersion
+                WHERE ContentDocumentId IN :documentIds
+            ];
+            
+            if (cvInfo.size() > 0) {
+                for (Integer i = 0; i < cvInfo.size(); i++) {
+                    cvList.add(cvInfo[i]);
+                }
+            }
+        }
+        // List<ContentVersion> cvList = [
+        //     SELECT id, Title, CreatedBy.Name, PathOnClient, CreatedDate, ContentDocumentId
+        //     FROM ContentVersion
+        //     WHERE FirstPublishLocationId = :recordId
+        // ];
+        data.put('cvList', cvList);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    //鍒犻櫎闄勪欢
+    @AuraEnabled
+    public static ResponseBodyLWC deleteAtt(String contentVersionId){
+        try {
+            ContentVersion conVersion = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :contentVersionId];
+            String contentDocumentId = conVersion.ContentDocumentId;
+            ContentDocument conDocument =  [SELECT Id FROM ContentDocument where Id = :contentDocumentId];
+            delete conDocument;
+            return new ResponseBodyLWC('Success',200,'','');
+        } catch (Exception e) {
+            return new ResponseBodyLWC('Error',500, e.getMessage() + e.getLineNumber(), '');
+        }
+    }
+
+    //璺宠浆鍑鸿揣/閿�鍞�
+    @AuraEnabled
+    public static ResponseBodyLWC GoodsDelivery(
+        Consumable_order__c cocLwc,
+        String ESetId,
+        List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc
+    ) {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+        coc = cocLwc;
+        ESetId = ESetId;
+        pageRecordsLwc = pageRecordsLwcLwc;
+        if (coc.SummonsForDirction__c == '浜掔浉璋冭揣') {
+            List<Account> accList = [
+                SELECT Id
+                FROM Account
+                WHERE Name = :coc.Order_ForDealerText__c AND RecordType.DeveloperName = 'Agency'
+            ];
+            if (accList.size() < 1) {
+                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇疯緭鍏ヤ簩绾х粡閿�鍟嗗叏绉帮紒'));
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ヤ簩绾х粡閿�鍟嗗叏绉帮紒', '');
+            }
+        }
+        if (coc.SummonsStatus_c__c == '鎵瑰噯') {
+            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇峰厛鎵撳嵃鎸囩ず鍗曪紒'));
+            // return null;
+            return new ResponseBodyLWC('Error', 500, '璇峰厛鎵撳嵃鎸囩ず鍗曪紒', '');
+        }
+        for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
+            if (ass.orderdetails1.Shipment_Count__c > ass.allnumber) {
                 // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' +
-                    ass.orderdetails1.Consumable_Product__r.Name__c +
-                    '搴撳瓨涓嶈冻',
-                  ''
-                );
-              }
+                // return null;
+                return new ResponseBodyLWC('Error', 500, '娑堣�楀搧' + ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻', '');
             }
-          } else if (ass.orderdetails1.Box_Piece__c == '涓�') {
-            if (ass.orderdetails1.Shipment_Count__c > ass.Piecenumber) {
-              if (ass.oldCheck == false) {
-                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.Prod.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' + ass.Prod.Name__c + '搴撳瓨涓嶈冻',
-                  ''
-                );
-              } else {
-                //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
-                return new ResponseBodyLWC(
-                  'Error',
-                  500,
-                  '娑堣�楀搧' +
-                    ass.orderdetails1.Consumable_Product__r.Name__c +
-                    '搴撳瓨涓嶈冻',
-                  ''
-                );
-              }
+        }
+        data.put('ESetid', ESetid);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    //鍒犻櫎鎸夐挳
+    @AuraEnabled
+    public static ResponseBodyLWC DelConsumable(String ESetId) {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+
+        ESetId = ESetId;
+
+        Savepoint sp = Database.setSavepoint();
+        try {
+            List<Consumable_order__c> qs = new List<Consumable_order__c>();
+            List<Consumable_orderdetails__c> Dqs = new List<Consumable_orderdetails__c>();
+            Dqs = [SELECT Id FROM Consumable_orderdetails__c WHERE Consumable_order__c = :ESetId];
+            qs = [SELECT Id FROM Consumable_order__c WHERE Id = :ESetId];
+            if (Dqs.size() > 0 || qs.size() > 0) {
+                delete Dqs;
+                delete qs;
             }
-          }
-          if (
-            ass.orderdetails1.Shipment_Count__c == null ||
-            ass.orderdetails1.Shipment_Count__c == 0
-          ) {
-            // ass.orderdetails1.Shipment_Count__c.addError('璇疯緭鍏ュ嚭璐ф暟閲�');
-            // return null;
-            return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ュ嚭璐ф暟閲�', '');
-          } else {
-            String str = string.valueOf(i);
-            if (str.length() == 1) {
-              str = '0' + str;
+        } catch (Exception e) {
+            Database.rollback(sp);
+            System.debug(e.getMessage() + e.getLineNumber());
+            return new ResponseBodyLWC('Error', 500, e.getMessage(), '');
+        }
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    // Data Bean
+    @TestVisible
+    class ConsumableorderdetailsInfo implements Comparable {
+        @AuraEnabled
+        public Boolean check { get; set; }
+        @AuraEnabled
+        public Boolean oldCheck { get; set; }
+        @AuraEnabled
+        public Consumable_Orderdetails__c orderdetails1 { get; set; }
+        @AuraEnabled
+        public Consumable_order_details2__c orderdetails2 { get; set; }
+        @AuraEnabled
+        public Product2__c Prod { get; set; }
+        @AuraEnabled
+        public Decimal Boxnumber { get; set; }
+        @AuraEnabled
+        public Decimal Piecenumber { get; set; }
+        @AuraEnabled
+        public Decimal allnumber { get; set; }
+        @AuraEnabled
+        public Decimal oldConsumableCount { get; set; }
+        @AuraEnabled
+        public Boolean canSelect { get; set; }
+        @AuraEnabled
+        public Boolean sortBy { get; set; }
+        @AuraEnabled
+        public Integer packinglist { get; set; }
+        @AuraEnabled
+        public String approbation_No { get; set; }
+        @AuraEnabled
+        public Date expiration_Date { get; set; }
+        @AuraEnabled
+        public String boxorpiecein { get; set; }
+
+        public List<SelectOption> boxorpiece { get; set; }
+        @AuraEnabled
+        public Map<String, String> boxorpieceMap { get; set; }
+        @AuraEnabled
+        public Attachment concc { get; set; }
+        @AuraEnabled
+        public String BoxPiece { get; set; }
+        @AuraEnabled
+        public Boolean hospitalSpecialOffer { get; set; }
+        @AuraEnabled
+        public Boolean hosPro { get; set; }
+
+        public ConsumableorderdetailsInfo() {
+        }
+
+        public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) {
+            check = true;
+            oldCheck = true;
+            orderdetails1 = e;
+            orderdetails2 = new Consumable_order_details2__c();
+            Prod = e.Consumable_Product__r;
+            oldConsumableCount = e.Shipment_Count__c;
+            canSelect = true;
+            allnumber = 0;
+            Boxnumber = 0;
+            Piecenumber = 0;
+            BoxPiece = e.Box_Piece__c;
+            boxorpiece = new List<SelectOption>();
+            boxorpiece.add(new SelectOption('鐩�', '鐩�'));
+            boxorpiece.add(new SelectOption('涓�', '涓�'));
+
+            boxorpieceMap = new Map<String, String>();
+            boxorpieceMap.put('鐩�', '鐩�');
+            boxorpieceMap.put('涓�', '涓�');
+            hospitalSpecialOffer = false;
+            hosPro = false;
+        }
+
+        // 娑堣�楀搧鍙戣揣鏄庣粏
+        public ConsumableorderdetailsInfo(Consumable_order_details2__c e) {
+            check = true;
+            oldCheck = true;
+            orderdetails1 = new Consumable_Orderdetails__c();
+            orderdetails2 = e;
+            Prod = e.Consumable_Product__r;
+            canSelect = true;
+            allnumber = 0;
+            Boxnumber = 0;
+            Piecenumber = 0;
+            //boxorpiece = new List<SelectOption>();
+            //boxorpiece.add(new SelectOption('鐩�', '鐩�'));
+            //boxorpiece.add(new SelectOption('涓�', '涓�'));
+            hospitalSpecialOffer = false;
+            hosPro = false;
+        }
+        
+        //闄勪欢
+        @TestVisible
+        public ConsumableorderdetailsInfo(Attachment e) {
+            concc = e;
+            hospitalSpecialOffer = false;
+            hosPro = false;
+        }
+
+        public ConsumableorderdetailsInfo(Product2__c e) {
+            check = false;
+            oldCheck = false;
+            orderdetails1 = new Consumable_Orderdetails__c();
+            orderdetails2 = new Consumable_order_details2__c();
+            Prod = e;
+            //oldConsumableCount = null;
+            canSelect = true;
+            allnumber = 0;
+            Boxnumber = 0;
+            Piecenumber = 0;
+            orderdetails1.Box_Piece__c = '鐩�';
+            boxorpiece = new List<SelectOption>();
+            boxorpiece.add(new SelectOption('鐩�', '鐩�'));
+            boxorpiece.add(new SelectOption('涓�', '涓�'));
+
+            boxorpieceMap = new Map<String, String>();
+            boxorpieceMap.put('鐩�', '鐩�');
+            boxorpieceMap.put('涓�', '涓�');
+            hospitalSpecialOffer = false;
+            hosPro = false;
+        }
+
+        // 鎺掑簭
+        public Integer compareTo(Object compareTo) {
+            ConsumableorderdetailsInfo compareToorderdetails1 = (ConsumableorderdetailsInfo) compareTo;
+            Integer returnValue = 0;
+            if (sortBy == false) {
+                if (Boxnumber > compareToorderdetails1.Boxnumber) {
+                    returnValue = -1;
+                } else if (Boxnumber < compareToorderdetails1.Boxnumber) {
+                    returnValue = 1;
+                }
+                return returnValue;
+            } else {
+                if (Boxnumber > compareToorderdetails1.Boxnumber) {
+                    returnValue = 1;
+                } else if (Boxnumber < compareToorderdetails1.Boxnumber) {
+                    returnValue = -1;
+                }
+                return returnValue;
             }
-            InsAfterDel.Name = p.name + '-' + str;
-            InsAfterDel.Shipment_Count__c = ass.orderdetails1.Shipment_Count__c;
-            InsAfterDel.Consumable_order__c = ESetId;
-            InsAfterDel.Consumable_Product__c = ass.Prod.id;
-            InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
-            InsAfterDel.Delivery_List_RMB__c = ass.orderdetails1.Delivery_List_RMB__c;
-            InsAfterDel.Box_Piece__c = ass.orderdetails1.Box_Piece__c;
-            InsAfterDel.Out_unit__c = ass.orderdetails1.Box_Piece__c;
-            //InsAfterDel.Unitprice_To_agency__c = ass.orderdetails1.Unitprice_To_agency__c;
-            InsAfterDel.Dealer_Custom_Price__c = ass.orderdetails1.Dealer_Custom_Price__c;
-            InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
-            //add by rentx 2021-2-26 start
-            InsAfterDel.isOutPattern__c = ass.hospitalSpecialOffer;
-            //add by rentx 2021-2-26 end
-            i++;
-            Ins.add(InsAfterDel);
-          }
         }
-      }
-      update p;
-      List<Consumable_orderdetails__c> qs = new List<Consumable_orderdetails__c>();
-      qs = [
-        SELECT Id
-        FROM Consumable_orderdetails__c
-        WHERE Consumable_order__c = :ESetId
-      ];
-      if (qs.size() > 0) {
-        delete qs;
-      }
-      if (Ins.size() > 0) {
-        insert Ins;
-      }
     }
-    // }catch (Exception ex) {
-    //     Database.rollback(sp);
-    //     // ApexPages.addMessages(ex);
-    //     // return null;
-    //     //return new ResponseBodyLWC('Error',500, ex.getMessage(), '');
-    //     return new ResponseBodyLWC('Error',500, JSON.serialize(ex), '');
-    // }
-    data.put('ESetId', ESetId);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  public static void checkOutPattern() {
-    //鏍规嵁鐢ㄦ埛閫変腑鐨勪骇鍝佺粰 鍑哄簱鍗曚笂鐨勬槸鍚﹀尰闄㈢壒浠峰嚭搴撳瓧娈佃祴鍊�
-    Integer isHos = 0;
-    for (ConsumableorderdetailsInfo CheckCount : pageRecords) {
-      if (CheckCount.check == true && CheckCount.hospitalSpecialOffer == true) {
-        ishos = ishos + 1;
-      }
-    }
-    if (isHos > 0) {
-      coc.OutPattern__c = true;
-    } else {
-      coc.OutPattern__c = false;
-    }
-  }
-
-  //鎵撳嵃PDF
-  @AuraEnabled
-  public static ResponseBodyLWC PraseToPDF(
-    Consumable_order__c cocLwc,
-    String ESetId
-  ) {
-    System.debug('cocLwc = ' + cocLwc);
-    System.debug('ESetId = ' + ESetId);
-    coc = cocLwc;
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-
-    if (coc.SummonsStatus_c__c == '鎵瑰噯') {
-      Consumable_order__c P = new Consumable_order__c();
-      List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
-      // update start by vivek 2019-7-15 add 鈥淣oConfirmedPrice__c鈥� in select
-      cocinfo = [
-        SELECT
-          Id,
-          Name,
-          SummonsStatus_c__c,
-          NoConfirmedPrice__c,
-          Dealer_Info__c,
-          Order_ForHospital__c,
-          SummonsForDirction__c,
-          Billed_Status__c
-        FROM Consumable_order__c
-        WHERE Id = :ESetId
-      ];
-      // update end by vivek 2019-7-15
-      if (cocinfo.size() > 0) {
-        p = cocinfo[0];
-      }
-      p.SummonsStatus_c__c = '鍑哄簱鍗曞凡鎵撳嵃';
-      update p;
-    }
-    data.put('ESetId', ESetId);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  //鏌ユ壘缁忛攢鍟�
-  @AuraEnabled(cacheable=true scope='global')
-  public static List<LookupSearchResult> search(String searchTerm) {
-    System.debug('searchTerm = ' + searchTerm);
-    String nameCondition = '';
-    nameCondition +=
-      '%' +
-      String.escapeSingleQuotes(searchTerm.replaceAll('%', '\\%')) +
-      '%';
-    List<Account> accs = new List<Account>();
-    System.debug('nameCondition = ' + nameCondition);
-    //鏌ヨ鏉′欢淇敼
-    //绛涢�夊垽鏂潯浠讹細褰撳墠璐㈠勾鐨�4/1 ~ 绗簩骞寸殑6/30 聽& ET or ENG绫诲瀷 & 褰撳墠鐢ㄦ埛绫诲瀷
-    //1 and 2
-    //1. Integer year 2022/4/1 ~ 2023/6/30
-    //寮�濮嬫棩鏈� + 缁撴潫鏃ユ湡
-    //Contract_Decide_Start_Date__c>=寮�濮嬫棩鏈�  and Contract_Decide_End_Date__c<缁撴潫鏃ユ湡
-    //2. 娣诲姞缁忛攢鍟嗗厑閿�绫诲瀷锛欵T缁忛攢鍟嗗崗璁紱ENG鑰楁潗缁忛攢鍟嗗崗璁�
-    //鍙栧綋鍓嶇敤鎴风殑绫诲瀷锛屽鏋滅敤鎴风被鍨嬫槸ET,ET缁忛攢鍟嗗崗璁� = true
-    // Date today = Date.today();
-    // Integer thisYear = today.year();
-    // Integer nextYear = today.year() + 1;
-    // Date thisDatetime = Date.newInstance(thisYear, 4, 1);
-    // Date nextDatetime = Date.newInstance(nextYear, 6, 30);
-    // System.debug('thisDatetime = ' + thisDatetime);
-    // System.debug('nextDatetime = ' + nextDatetime);
-
-    // User UserProTypecTemp = [select UserPro_Type__c from User where id =: UserInfo.getUserId()];
-    // System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId());
-    // System.debug('UserProTypecTemp = ' + UserProTypecTemp);
-    // System.debug('UserProTypecTemp.UserPro_Type__c = ' + UserProTypecTemp.UserPro_Type__c);
-    // if (UserProTypecTemp.UserPro_Type__c == 'ENG') {
-    //     accs = [
-    //         SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity
-    //         FROM Account
-    //         WHERE
-    //             // Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
-    //             // AND
-    //             Name LIKE :nameCondition
-    //             AND RecordType.DeveloperName = 'AgencyContract'
-    //             AND Contract_Decide_Start_Date__c >= :thisDatetime
-    //             AND Contract_Decide_End_Date__c <= :nextDatetime
-    //             AND ENG_Dealer__c = true
-    //         ORDER BY Name
-    //         LIMIT 49
-    //     ];
-    // }
-    // if (UserProTypecTemp.UserPro_Type__c == 'ET') {
-    //     accs = [
-    //         SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity
-    //         FROM Account
-    //         WHERE
-    //             // Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
-    //             // AND
-    //             Name LIKE :nameCondition
-    //             AND RecordType.DeveloperName = 'AgencyContract'
-    //             AND Contract_Decide_Start_Date__c >= :thisDatetime
-    //             AND Contract_Decide_End_Date__c <= :nextDatetime
-    //             AND ET_SP_Dealer__c = true
-    //         ORDER BY Name
-    //         LIMIT 49
-    //     ];
-    // }
-
-    Date today = Date.today();
-    //Date today = Date.newInstance(2023, 3, 1);
-    Integer thisMonth = today.month();
-    System.debug('thisMonth = ' + thisMonth);
-
-    Integer lastYear = today.year() - 1;
-    Integer thisYear = today.year();
-    Integer nextYear = today.year() + 1;
-
-    Date lastDatetime = Date.newInstance(lastYear, 4, 1);
-    Date thisDatetime = Date.newInstance(thisYear, 4, 1);
-    Date thisDatetime2 = Date.newInstance(thisYear, 7, 1);
-    Date nextDatetime = Date.newInstance(nextYear, 7, 1);
-    System.debug('lastDatetime = ' + lastDatetime);
-    System.debug('thisDatetime = ' + thisDatetime);
-    System.debug('thisDatetime2 = ' + thisDatetime2);
-    System.debug('nextDatetime = ' + nextDatetime);
-    System.debug('UserInfo.getUserId() = ' + UserInfo.getUserId());
-    User UserProTypecTemp = [
-      SELECT UserPro_Type__c
-      FROM User
-      WHERE id = :UserInfo.getUserId()
-    ];
-
-    String sql = 'SELECT id, Parentid FROM Account WHERE Parent.Name LIKE :nameCondition ';
-    if (thisMonth < 4) {
-      sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :thisDatetime2 ';
-    } else if (thisMonth >= 4 && thisMonth <= 6) {
-      sql += 'AND Contract_Decide_Start_Date__c >= :lastDatetime AND Contract_Decide_End_Date__c < :nextDatetime ';
-    } else {
-      sql += 'AND Contract_Decide_Start_Date__c >= :thisDatetime AND Contract_Decide_End_Date__c < :nextDatetime ';
-    }
-    if (UserProTypecTemp.UserPro_Type__c == 'ENG') {
-      sql += 'AND ENG_Dealer__c = true';
-    }
-    if (UserProTypecTemp.UserPro_Type__c == 'ET') {
-      sql += 'AND ET_SP_Dealer__c = true';
-    }
-    System.debug('sql = ' + sql);
-    accs = Database.query(sql);
-    // 鐢ㄤ簬淇濆瓨鐗圭害缁忛攢鍟嗗尮閰嶅埌鐨勫叾鐖剁被鐨刬d
-    Set<String> pids = new Set<String>();
-    for (Account acc : accs) {
-      pids.add(acc.Parentid);
+    @TestVisible
+    class ConsumableorderdetailsInfoLwc {
+        @AuraEnabled
+        public Boolean check { get; set; }
+        @AuraEnabled
+        public Boolean oldCheck { get; set; }
+        @AuraEnabled
+        public Consumable_Orderdetails__c orderdetails1 { get; set; }
+        @AuraEnabled
+        public Consumable_order_details2__c orderdetails2 { get; set; }
+        @AuraEnabled
+        public Product2__c Prod { get; set; }
+        @AuraEnabled
+        public Decimal Boxnumber { get; set; }
+        @AuraEnabled
+        public Decimal Piecenumber { get; set; }
+        @AuraEnabled
+        public Decimal allnumber { get; set; }
+        @AuraEnabled
+        public Decimal oldConsumableCount { get; set; }
+        @AuraEnabled
+        public Boolean canSelect { get; set; }
+        @AuraEnabled
+        public Boolean sortBy { get; set; }
+        @AuraEnabled
+        public Integer packinglist { get; set; }
+        @AuraEnabled
+        public String approbation_No { get; set; }
+        @AuraEnabled
+        public Date expiration_Date { get; set; }
+        @AuraEnabled
+        public String boxorpiecein { get; set; }
+        public List<SelectOption> boxorpiece { get; set; }
+        @AuraEnabled
+        public Map<String, String> boxorpieceMap { get; set; }
+        @AuraEnabled
+        public Attachment concc { get; set; }
+        @AuraEnabled
+        public String BoxPiece { get; set; }
+        @AuraEnabled
+        public Boolean hospitalSpecialOffer { get; set; }
+        @AuraEnabled
+        public Boolean hosPro { get; set; }
+        @AuraEnabled
+        public List<Map<String, String>> unitOptions { get; set; }
+        @AuraEnabled
+        public String unitValue { get; set; }
+        @AuraEnabled
+        public Integer shipmentNumber { get; set; }
+        @AuraEnabled
+        public Decimal shippingUnitPrice { get; set; }
+        @AuraEnabled
+        public String recordId { get; set; }
+        @AuraEnabled
+        public String Id { get; set; }
+        @AuraEnabled
+        public String Name { get; set; }
+        @AuraEnabled
+        public String Category3 { get; set; }
+        @AuraEnabled
+        public String Category4 { get; set; }
+        @AuraEnabled
+        public String Category5 { get; set; }
     }
 
-    accs = [
-      SELECT
-        Id,
-        Name,
-        Department_Class__c,
-        Department_Class__r.Name,
-        Hospital__c,
-        Hospital__r.Name,
-        BillingCity
-      FROM Account
-      WHERE
-        (Id IN :pids
-        OR (Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
-        AND Name LIKE :nameCondition))
-        AND RecordType.DeveloperName = 'Agency'
-      ORDER BY Name
-      LIMIT 49
-    ];
-
-    // accs = [
-    //     SELECT id, Parentid
-    //     FROM Account
-    //     WHERE
-    //         Parent.Name LIKE :nameCondition
-    //         AND Contract_Decide_Start_Date__c <= :Date.Today()
-    //         AND Contract_Decide_End_Date__c >= :Date.Today()
-    // ];
-
-    // 鐢ㄤ簬淇濆瓨鐗圭害缁忛攢鍟嗗尮閰嶅埌鐨勫叾鐖剁被鐨刬d
-    // Set<String> pids = new Set<String>();
-    // for (Account acc : accs) {
-    //     pids.add(acc.Parentid);
-    // }
-    // accs = [
-    //     SELECT Id, Name, Department_Class__c, Department_Class__r.Name, Hospital__c, Hospital__r.Name, BillingCity
-    //     FROM Account
-    //     WHERE
-    //         (Id IN :pids
-    //         OR (Name = '濂ユ灄宸存柉锛堝寳浜級閿�鍞湇鍔℃湁闄愬叕鍙�'
-    //         AND Name LIKE :nameCondition))
-    //         AND RecordType.DeveloperName = 'Agency'
-    //         AND Is_Active__c != '鐒″姽'
-    //     ORDER BY Name
-    //     LIMIT 5
-    // ];
-    System.debug('accs = ' + accs);
-    List<LookupSearchResult> results = new List<LookupSearchResult>();
-    String accountIcon = 'standard:account';
-    for (Account account : accs) {
-      String subtitle = account.BillingCity == null
-        ? 'Account'
-        : 'Account 鈥� ' + account.BillingCity;
-      results.add(
-        new LookupSearchResult(
-          account.Id,
-          'Account',
-          accountIcon,
-          account.Name,
-          subtitle
-        )
-      );
+    //鍒嗛〉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; }
     }
-    results.sort();
-    System.debug('results = ' + results);
-    return results;
-  }
-
-  //淇濆瓨闄勪欢
-  @AuraEnabled
-  public static String saveFile(
-    Id recordId,
-    String fileName,
-    String base64Data
-  ) {
-    base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
-    ContentVersion cv = new ContentVersion();
-    cv.Title = fileName;
-    cv.PathOnClient = '/' + fileName;
-    cv.FirstPublishLocationId = recordId;
-    cv.VersionData = EncodingUtil.base64Decode(base64Data);
-    cv.IsMajorVersion = true;
-    insert cv;
-    return cv.Id;
-  }
-
-  //鑾峰彇闄勪欢
-  @AuraEnabled
-  public static ResponseBodyLWC getFiles(Id recordId) {
-    System.debug('getFiles recordId = ' + recordId);
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-    List<ContentVersion> cvList = [
-      SELECT
-        id,
-        Title,
-        CreatedBy.Name,
-        PathOnClient,
-        CreatedDate,
-        ContentDocumentId
-      FROM ContentVersion
-      WHERE FirstPublishLocationId = :recordId
-    ];
-    data.put('cvList', cvList);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  //鍒犻櫎闄勪欢
-  @AuraEnabled
-  public static ResponseBodyLWC deleteAtt(String contentVersionId) {
-    try {
-      ContentVersion conVersion = [
-        SELECT ContentDocumentId
-        FROM ContentVersion
-        WHERE Id = :contentVersionId
-      ];
-      String contentDocumentId = conVersion.ContentDocumentId;
-      ContentDocument conDocument = [
-        SELECT Id
-        FROM ContentDocument
-        WHERE Id = :contentDocumentId
-      ];
-      delete conDocument;
-      return new ResponseBodyLWC('Success', 200, '', '');
-    } catch (Exception e) {
-      return new ResponseBodyLWC(
-        'Error',
-        500,
-        e.getMessage() + e.getLineNumber(),
-        ''
-      );
-    }
-  }
-
-  //璺宠浆鍑鸿揣/閿�鍞�
-  @AuraEnabled
-  public static ResponseBodyLWC GoodsDelivery(
-    Consumable_order__c cocLwc,
-    String ESetId,
-    List<ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc
-  ) {
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-    coc = cocLwc;
-    ESetId = ESetId;
-    pageRecordsLwc = pageRecordsLwcLwc;
-    if (coc.SummonsForDirction__c == '浜掔浉璋冭揣') {
-      List<Account> accList = [
-        SELECT Id
-        FROM Account
-        WHERE
-          Name = :coc.Order_ForDealerText__c
-          AND RecordType.DeveloperName = 'Agency'
-      ];
-      if (accList.size() < 1) {
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇疯緭鍏ヤ簩绾х粡閿�鍟嗗叏绉帮紒'));
-        // return null;
-        return new ResponseBodyLWC('Error', 500, '璇疯緭鍏ヤ簩绾х粡閿�鍟嗗叏绉帮紒', '');
-      }
-    }
-    if (coc.SummonsStatus_c__c == '鎵瑰噯') {
-      // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '璇峰厛鎵撳嵃鎸囩ず鍗曪紒'));
-      // return null;
-      return new ResponseBodyLWC('Error', 500, '璇峰厛鎵撳嵃鎸囩ず鍗曪紒', '');
-    }
-    for (ConsumableorderdetailsInfoLwc ass : pageRecordsLwc) {
-      if (ass.orderdetails1.Shipment_Count__c > ass.allnumber) {
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '娑堣�楀搧'+ ass.orderdetails1.Consumable_Product__r.Name__c + '搴撳瓨涓嶈冻'));
-        // return null;
-        return new ResponseBodyLWC(
-          'Error',
-          500,
-          '娑堣�楀搧' +
-            ass.orderdetails1.Consumable_Product__r.Name__c +
-            '搴撳瓨涓嶈冻',
-          ''
-        );
-      }
-    }
-    data.put('ESetid', ESetid);
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  //鍒犻櫎鎸夐挳
-  @AuraEnabled
-  public static ResponseBodyLWC DelConsumable(String ESetId) {
-    ResponseBodyLWC res = new ResponseBodyLWC();
-    Map<String, object> data = new Map<String, object>();
-    res.entity = data;
-
-    ESetId = ESetId;
-
-    Savepoint sp = Database.setSavepoint();
-    try {
-      List<Consumable_order__c> qs = new List<Consumable_order__c>();
-      List<Consumable_orderdetails__c> Dqs = new List<Consumable_orderdetails__c>();
-      Dqs = [
-        SELECT Id
-        FROM Consumable_orderdetails__c
-        WHERE Consumable_order__c = :ESetId
-      ];
-      qs = [SELECT Id FROM Consumable_order__c WHERE Id = :ESetId];
-      if (Dqs.size() > 0 || qs.size() > 0) {
-        delete Dqs;
-        delete qs;
-      }
-    } catch (Exception e) {
-      Database.rollback(sp);
-      System.debug(e.getMessage() + e.getLineNumber());
-      return new ResponseBodyLWC('Error', 500, e.getMessage(), '');
-    }
-    res.status = 'Success';
-    res.code = 200;
-    System.debug('res = ' + res);
-    return res;
-  }
-
-  // Data Bean
-  @TestVisible
-  class ConsumableorderdetailsInfo implements Comparable {
-    @AuraEnabled
-    public Boolean check { get; set; }
-    @AuraEnabled
-    public Boolean oldCheck { get; set; }
-    @AuraEnabled
-    public Consumable_Orderdetails__c orderdetails1 { get; set; }
-    @AuraEnabled
-    public Consumable_order_details2__c orderdetails2 { get; set; }
-    @AuraEnabled
-    public Product2__c Prod { get; set; }
-    @AuraEnabled
-    public Decimal Boxnumber { get; set; }
-    @AuraEnabled
-    public Decimal Piecenumber { get; set; }
-    @AuraEnabled
-    public Decimal allnumber { get; set; }
-    @AuraEnabled
-    public Decimal oldConsumableCount { get; set; }
-    @AuraEnabled
-    public Boolean canSelect { get; set; }
-    @AuraEnabled
-    public Boolean sortBy { get; set; }
-    @AuraEnabled
-    public Integer packinglist { get; set; }
-    @AuraEnabled
-    public String approbation_No { get; set; }
-    @AuraEnabled
-    public Date expiration_Date { get; set; }
-    @AuraEnabled
-    public String boxorpiecein { get; set; }
-
-    public List<SelectOption> boxorpiece { get; set; }
-    @AuraEnabled
-    public Map<String, String> boxorpieceMap { get; set; }
-    @AuraEnabled
-    public Attachment concc { get; set; }
-    @AuraEnabled
-    public String BoxPiece { get; set; }
-    @AuraEnabled
-    public Boolean hospitalSpecialOffer { get; set; }
-    @AuraEnabled
-    public Boolean hosPro { get; set; }
-
-    public ConsumableorderdetailsInfo() {
-    }
-
-    public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) {
-      check = true;
-      oldCheck = true;
-      orderdetails1 = e;
-      orderdetails2 = new Consumable_order_details2__c();
-      Prod = e.Consumable_Product__r;
-      oldConsumableCount = e.Shipment_Count__c;
-      canSelect = true;
-      allnumber = 0;
-      Boxnumber = 0;
-      Piecenumber = 0;
-      BoxPiece = e.Box_Piece__c;
-      boxorpiece = new List<SelectOption>();
-      boxorpiece.add(new SelectOption('鐩�', '鐩�'));
-      boxorpiece.add(new SelectOption('涓�', '涓�'));
-
-      boxorpieceMap = new Map<String, String>();
-      boxorpieceMap.put('鐩�', '鐩�');
-      boxorpieceMap.put('涓�', '涓�');
-      hospitalSpecialOffer = false;
-      hosPro = false;
-    }
-
-    // 娑堣�楀搧鍙戣揣鏄庣粏
-    public ConsumableorderdetailsInfo(Consumable_order_details2__c e) {
-      check = true;
-      oldCheck = true;
-      orderdetails1 = new Consumable_Orderdetails__c();
-      orderdetails2 = e;
-      Prod = e.Consumable_Product__r;
-      canSelect = true;
-      allnumber = 0;
-      Boxnumber = 0;
-      Piecenumber = 0;
-      //boxorpiece = new List<SelectOption>();
-      //boxorpiece.add(new SelectOption('鐩�', '鐩�'));
-      //boxorpiece.add(new SelectOption('涓�', '涓�'));
-      hospitalSpecialOffer = false;
-      hosPro = false;
-    }
-
-    //闄勪欢
-    public ConsumableorderdetailsInfo(Attachment e) {
-      concc = e;
-      hospitalSpecialOffer = false;
-      hosPro = false;
-    }
-
-    public ConsumableorderdetailsInfo(Product2__c e) {
-      check = false;
-      oldCheck = false;
-      orderdetails1 = new Consumable_Orderdetails__c();
-      orderdetails2 = new Consumable_order_details2__c();
-      Prod = e;
-      //oldConsumableCount = null;
-      canSelect = true;
-      allnumber = 0;
-      Boxnumber = 0;
-      Piecenumber = 0;
-      orderdetails1.Box_Piece__c = '鐩�';
-      boxorpiece = new List<SelectOption>();
-      boxorpiece.add(new SelectOption('鐩�', '鐩�'));
-      boxorpiece.add(new SelectOption('涓�', '涓�'));
-
-      boxorpieceMap = new Map<String, String>();
-      boxorpieceMap.put('鐩�', '鐩�');
-      boxorpieceMap.put('涓�', '涓�');
-      hospitalSpecialOffer = false;
-      hosPro = false;
-    }
-
-    // 鎺掑簭
-    public Integer compareTo(Object compareTo) {
-      ConsumableorderdetailsInfo compareToorderdetails1 = (ConsumableorderdetailsInfo) compareTo;
-      Integer returnValue = 0;
-      if (sortBy == false) {
-        if (Boxnumber > compareToorderdetails1.Boxnumber) {
-          returnValue = -1;
-        } else if (Boxnumber < compareToorderdetails1.Boxnumber) {
-          returnValue = 1;
-        }
-        return returnValue;
-      } else {
-        if (Boxnumber > compareToorderdetails1.Boxnumber) {
-          returnValue = 1;
-        } else if (Boxnumber < compareToorderdetails1.Boxnumber) {
-          returnValue = -1;
-        }
-        return returnValue;
-      }
-    }
-  }
-  @TestVisible
-  class ConsumableorderdetailsInfoLwc {
-    @AuraEnabled
-    public Boolean check { get; set; }
-    @AuraEnabled
-    public Boolean oldCheck { get; set; }
-    @AuraEnabled
-    public Consumable_Orderdetails__c orderdetails1 { get; set; }
-    @AuraEnabled
-    public Consumable_order_details2__c orderdetails2 { get; set; }
-    @AuraEnabled
-    public Product2__c Prod { get; set; }
-    @AuraEnabled
-    public Decimal Boxnumber { get; set; }
-    @AuraEnabled
-    public Decimal Piecenumber { get; set; }
-    @AuraEnabled
-    public Decimal allnumber { get; set; }
-    @AuraEnabled
-    public Decimal oldConsumableCount { get; set; }
-    @AuraEnabled
-    public Boolean canSelect { get; set; }
-    @AuraEnabled
-    public Boolean sortBy { get; set; }
-    @AuraEnabled
-    public Integer packinglist { get; set; }
-    @AuraEnabled
-    public String approbation_No { get; set; }
-    @AuraEnabled
-    public Date expiration_Date { get; set; }
-    @AuraEnabled
-    public String boxorpiecein { get; set; }
-    public List<SelectOption> boxorpiece { get; set; }
-    @AuraEnabled
-    public Map<String, String> boxorpieceMap { get; set; }
-    @AuraEnabled
-    public Attachment concc { get; set; }
-    @AuraEnabled
-    public String BoxPiece { get; set; }
-    @AuraEnabled
-    public Boolean hospitalSpecialOffer { get; set; }
-    @AuraEnabled
-    public Boolean hosPro { get; set; }
-    @AuraEnabled
-    public List<Map<String, String>> unitOptions { get; set; }
-    @AuraEnabled
-    public String unitValue { get; set; }
-    @AuraEnabled
-    public Integer shipmentNumber { get; set; }
-    @AuraEnabled
-    public Decimal shippingUnitPrice { get; set; }
-    @AuraEnabled
-    public String recordId { get; set; }
-    @AuraEnabled
-    public String Id { get; set; }
-    @AuraEnabled
-    public String Name { get; set; }
-    @AuraEnabled
-    public String Category3 { get; set; }
-    @AuraEnabled
-    public String Category4 { get; set; }
-    @AuraEnabled
-    public String Category5 { get; set; }
-  }
-
-  //鍒嗛〉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; }
-  }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.1