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/LexConsumableController.cls | 4960 +++++++++++++++++++++++++++--------------------------------
 1 files changed, 2,280 insertions(+), 2,680 deletions(-)

diff --git a/force-app/main/default/classes/LexConsumableController.cls b/force-app/main/default/classes/LexConsumableController.cls
index 0584d06..870954c 100644
--- a/force-app/main/default/classes/LexConsumableController.cls
+++ b/force-app/main/default/classes/LexConsumableController.cls
@@ -1,2715 +1,2315 @@
 public without sharing class LexConsumableController {
-  /*****************妞滅储鐢�******************/
-  public static Consumable_order__c coc { get; set; } // FIMXE Consumable_order__c 銇偆銉炽偣銈裤兂銈广�乻ql澶氥仚銇�
-  public static String category1 { get; set; }
-  public static String category5 { get; set; }
-  public static String category4 { get; set; }
-  public static String category3 { get; set; }
-  public static String category_Goods { get; set; }
-  public static Boolean specialCampaign { get; set; }
-  public static Boolean cansee { get; set; }
-  //缁忛攢鍟嗗悎鍚屽悕绉�
-  public static String contractName { get; set; }
-  //缁忛攢鍟嗗悎鍚孖D
-  public static String contractId { get; set; }
-  //缁忛攢鍟嗗畾浠锋煡鐪嬫潈闄�
-  public static Boolean dealerPricesee { get; set; }
-  /*****************鐢婚潰鍒濆鍖栫敤********************************/
-  /******20160313_add**************/
-  //public String idCheck {get;set;}
-  public static Boolean editAble { get; set; }
-  public static Boolean edoffersPrice { get; set; }
-  public static String statusEdit { get; set; }
-  public static Boolean returnOrder { get; set; }
-  public static String searchDone { get; set; }
-  //鏆傜敤20160323
-  public static Decimal disCount = 0;
-  //鎬讳环鏍艰绠楃粨鏋�
-  public static Decimal sumPrice { get; set; }
-  //鑷畾涔夌壒浠烽噾棰�
-  public static Decimal bargainPrice { get; set; }
-  //浜у搧涓婁笅闄�
-  public static String[] proLimitAndDate = new List<String>{};
-  /*****************鐢婚潰琛ㄧずBean******************/
-  private static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
-  public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsview {
-    get;
-    set;
-  }
-  public static Integer ConsumableorderdetailsCount {
-    get {
-      return consumableorderdetailsRecords == null
-        ? 0
-        : consumableorderdetailsRecords.size();
-    }
-  }
-  public static Integer ConsumableorderdetailsviewCount {
-    get {
-      return consumableorderdetailsRecordsview == null
-        ? 0
-        : consumableorderdetailsRecordsview.size();
-    }
-  }
-  public static List<String> lower = new List<String>();
-  //闄勪欢
-  public static List<ConsumableorderdetailsInfo> attachmentRecoeds { get; set; }
-  public static List<String> DealerProductId { get; set; }
-  public static Boolean editDelCommitBtnDisabled { get; private set; }
-  public static Boolean saveBtnDisabled { get; private set; }
-  public static Boolean sorderBtnDisabled { get; private set; }
-  public static String decisionCode { get; set; }
-  // 淇濆瓨鍚庡姩浣滐細 1.妫�绱� 2.鎺掑簭
-  public static String baseUrl { get; private set; }
-  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 List<String> contactDealer = new List<String>();
-  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'
-  };
-  // 宸查�夋嫨浜у搧鏄庣粏
-  private static List<Attachment> attachmentinfo = new List<Attachment>();
-  /*****************銈姐兗銉堟檪鍐嶆绱㈡潯浠讹紙鐢婚潰銇嬨倝銇叆鍔涙潯浠躲倰鐒¤銇欍倠銇熴倎锛�******************/
-  private static String cate1ForSort = null;
-  private static String accountid = null;
-  private static String accountName = null;
-  // 浜у搧 ID
-  public static String ESetId { get; set; }
-  private static String userId = '';
-  //private String[] ProidListAll = new String[]{};
-  public static List<SelectOption> categoryOptionList { get; set; }
-  public static List<SelectOption> category4OptionList { get; set; }
-  public static List<SelectOption> category5OptionList { get; set; }
-  public static List<CusOption> category3Option { get; set; }
-  public static List<CusOption> category4Option { get; set; }
-  public static List<CusOption> category5Option { get; set; }
-  private static Map<Id, Dealer_Product__c> DealerProductMap = new Map<Id, Dealer_Product__c>();
-  public static List<String> orderzaikuId = new List<String>();
-  //鍒嗛〉鍔熻兘
-  public static Integer size { get; set; }
-  public static Integer pageLimit { get; set; }
-  public static Integer noOfRecords { get; set; }
-  public static ApexPages.StandardSetController con { get; set; }
-  public static String soql { get; set; }
-  // 鐧诲綍鑰呭伐浣滃湴
-  private static String userWorkLocation;
-  public static String agencyProType { get; set; }
-  public static String agencyProType1 { get; set; } //lt 20230526 瀹夊窘涓ょエ鍒� add
-  private static Boolean OSHFLG; //lt 20230517 瀹夊窘涓ょエ鍒� add
-  public static String methodType { get; set; }
-  public static String hospitalName { get; set; }
-  public static String hospitalId { get; set; }
-  public static String tempidHp { get; set; }
-  public static String tempidPp { get; set; }
-  private static List<String> hpids = new List<String>();
-  private static Boolean isfirst = false;
-  //鎶ラ敊鍜岃鍛婁俊鎭�
-  public static List<String> errorMsgList = new List<String>();
-  public static List<String> warningMsgList = new List<String>();
-  //鏋勯�犳柟娉�
-  public LexConsumableController() {
-    baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
-    consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
-    DealerProductId = new List<String>();
-    attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
-    consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
-    editAble = false;
-    edoffersPrice = false;
-    returnOrder = false;
-    categoryOptionList = new List<SelectOption>();
-    category4OptionList = new List<SelectOption>();
-    category5OptionList = new List<SelectOption>();
-    size = Integer.valueOf(System.Label.orderdetLimitsize);
-    pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
-  }
-
-  private static void initStandardController() {
-    con = new ApexPages.StandardSetController(Database.getQueryLocator(soql));
-    con.setPageSize(size);
-    noOfRecords = con.getResultSize();
-  }
-
-  public static List<Product2__c> product2s() {
-    return (List<Product2__c>) con.getRecords();
-  }
-
-  private static List<ConsumableorderdetailsInfo> getPageInfo() {
-    List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
-    Map<String, String> selectedIdMap = new Map<String, String>();
-
-    for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsview) {
-      if (ass.check == true) {
-        selectedIdMap.put(ass.Prod.id, ass.Prod.id);
-        reSet.add(ass);
-      }
-    }
-
-    consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
-    if (editAble) {
-      consumableorderdetailsRecordsview = reSet;
-    }
-    Integer pagestartNo = (con.getPageNumber() * size) - size;
-    Integer pageendNo = (con.getPageNumber() * size) > noOfRecords
-      ? noOfRecords
-      : (con.getPageNumber() * size - 1);
-    Integer addNo = 0;
-    for (
-      Integer i = pagestartNo; i < consumableorderdetailsRecords.size(); i++
-    ) {
-      Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
-      if (selectedIdMap.containsKey(consumableorderdetailsRecords[i].Prod.Id)) {
-        addNo++;
-        //continue;
-      }
-      // else if (consumableorderdetailsRecordsview.size() >= pageLimit + size) {
-      //     break;
-      // }
-      else {
-        if (consumableorderdetailsRecords[i].check == false) {
-          consumableorderdetailsRecords[i].esd = orderdetails1;
+    /*****************妞滅储鐢�******************/
+    public static Consumable_order__c coc { get; set; } // FIMXE Consumable_order__c 銇偆銉炽偣銈裤兂銈广�乻ql澶氥仚銇�
+    public static String category1 { get; set; }
+    public static String category5 { get; set; }
+    public static String category4 { get; set; }
+    public static String category3 { get; set; }
+    public static String category_Goods { get; set; }
+    public static Boolean specialCampaign { get; set; }
+    public static Boolean cansee { get; set; }
+    //缁忛攢鍟嗗悎鍚屽悕绉�
+    public static String contractName { get; set; }
+    //缁忛攢鍟嗗悎鍚孖D
+    public static String contractId { get; set; }
+    //缁忛攢鍟嗗畾浠锋煡鐪嬫潈闄�
+    public static Boolean dealerPricesee { get; set; }
+    /*****************鐢婚潰鍒濆鍖栫敤********************************/
+    /******20160313_add**************/
+    //public String idCheck {get;set;}
+    public static Boolean editAble { get; set; }
+    public static Boolean edoffersPrice { get; set; }
+    public static String statusEdit { get; set; }
+    public static Boolean returnOrder { get; set; }
+    public static String searchDone { get; set; }
+    //鏆傜敤20160323
+    public static Decimal disCount = 0;
+    //鎬讳环鏍艰绠楃粨鏋�
+    public static Decimal sumPrice { get; set; }
+    //鑷畾涔夌壒浠烽噾棰�
+    public static Decimal bargainPrice { get; set; }
+    //浜у搧涓婁笅闄�
+    public static String[] proLimitAndDate = new List<String>{};
+    /*****************鐢婚潰琛ㄧずBean******************/
+    private static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+    public static List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsview { get; set; }
+    public static Integer ConsumableorderdetailsCount {
+        get {
+            return consumableorderdetailsRecords == null ? 0 : consumableorderdetailsRecords.size();
         }
-        //consumableorderdetailsRecords[i].esd.Dealer_Custom_Price__c = consumableorderdetailsRecords[i].Prod.Intra_Trade_List_RMB__c * disCount / 100;
-        consumableorderdetailsRecordsview.add(consumableorderdetailsRecords[i]);
-        addNo++;
-      }
-      // if (addNo >= size)
-      //     break;
     }
-    return consumableorderdetailsRecordsview;
-  }
-
-  @AuraEnabled
-  public static Results init(String type, String esetId, String keywordStr) {
-    Results results = new Results();
-    results.isNoteStay = LexUtility.getIsNoteStay();
-    errorMsgList = new List<String>();
-    warningMsgList = new List<String>();
-    baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
-    consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
-    DealerProductId = new List<String>();
-    attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
-    consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
-    editAble = false;
-    edoffersPrice = false;
-    returnOrder = false;
-    categoryOptionList = new List<SelectOption>();
-    category4OptionList = new List<SelectOption>();
-    category5OptionList = new List<SelectOption>();
-    size = Integer.valueOf(System.Label.orderdetLimitsize);
-    pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
-    ESetId = esetId;
-    methodType = type;
-    if (String.isBlank(methodType) && String.isNotBlank(ESetId)) {
-      List<Consumable_order__c> oclist = [
-        SELECT orderPattern__c
-        FROM Consumable_order__c
-        WHERE id = :ESetid
-      ];
-      methodType = oclist.get(0).orderPattern__c;
+    public static Integer ConsumableorderdetailsviewCount {
+        get {
+            return consumableorderdetailsRecordsview == null ? 0 : consumableorderdetailsRecordsview.size();
+        }
     }
-    statusEdit = keywordStr;
-    System.debug('Param:' + ESetId + '---' + methodType + '---' + statusEdit);
-    try {
-      sortKey = '1';
-      preSortKey = '1';
-      sortOrderAsc = false;
-      sortOrder = new String[8];
-      sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '鈫�', '', '', '' };
-      cate1ForSort = '';
-      decisionCode = '';
-      sumPrice = 0;
-      specialCampaign = false;
-      if (
-        ESetId != null &&
-        ESetId != '' &&
-        statusEdit == '' &&
-        statusEdit == null
-      ) {
+    public static List<String> lower = new List<String>();
+    //闄勪欢
+    public static List<ConsumableorderdetailsInfo> attachmentRecoeds { get; set; }
+    public static List<String> DealerProductId { get; set; }
+    public static Boolean editDelCommitBtnDisabled { get; private set; }
+    public static Boolean saveBtnDisabled { get; private set; }
+    public static Boolean sorderBtnDisabled { get; private set; }
+    public static String decisionCode { get; set; }
+    // 淇濆瓨鍚庡姩浣滐細 1.妫�绱� 2.鎺掑簭
+    public static String baseUrl { get; private set; }
+    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 List<String> contactDealer = new List<String>();
+    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'
+    };
+    // 宸查�夋嫨浜у搧鏄庣粏
+    private static List<Attachment> attachmentinfo = new List<Attachment>();
+    /*****************銈姐兗銉堟檪鍐嶆绱㈡潯浠讹紙鐢婚潰銇嬨倝銇叆鍔涙潯浠躲倰鐒¤銇欍倠銇熴倎锛�******************/
+    private static String cate1ForSort = null;
+    private static String accountid = null;
+    private static String accountName = null;
+    // 浜у搧 ID
+    public static String ESetId { get; set; }
+    private static String userId = '';
+    //private String[] ProidListAll = new String[]{};
+    public static List<SelectOption> categoryOptionList { get; set; }
+    public static List<SelectOption> category4OptionList { get; set; }
+    public static List<SelectOption> category5OptionList { get; set; }
+    public static List<CusOption> category3Option { get; set; }
+    public static List<CusOption> category4Option { get; set; }
+    public static List<CusOption> category5Option { get; set; }
+    private static Map<Id, Dealer_Product__c> DealerProductMap = new Map<Id, Dealer_Product__c>();
+    public static List<String> orderzaikuId = new List<String>();
+    //鍒嗛〉鍔熻兘
+    public static Integer size { get; set; }
+    public static Integer pageLimit { get; set; }
+    public static Integer noOfRecords { get; set; }
+    public static ApexPages.StandardSetController con { get; set; }
+    public static String soql { get; set; }
+    // 鐧诲綍鑰呭伐浣滃湴
+    private static String userWorkLocation;
+    public static String agencyProType { get; set; }
+    public static String agencyProType1 { get; set; } //lt 20230526 瀹夊窘涓ょエ鍒� add
+    private static Boolean OSHFLG; //lt 20230517 瀹夊窘涓ょエ鍒� add
+    public static String methodType { get; set; }
+    public static String hospitalName { get; set; }
+    public static String hospitalId { get; set; }
+    public static String tempidHp { get; set; }
+    public static String tempidPp { get; set; }
+    private static List<String> hpids = new List<String>();
+    private static Boolean isfirst = false;
+    //鎶ラ敊鍜岃鍛婁俊鎭�
+    public static List<String> errorMsgList = new List<String>();
+    public static List<String> warningMsgList = new List<String>();
+    //鏋勯�犳柟娉�
+    public LexConsumableController() {
+        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
+        consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+        DealerProductId = new List<String>();
+        attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
+        consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
         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();
-      List<user> Useracc = new List<user>();
-      //lt 20230517 瀹夊窘涓ょエ鍒� add ,OSHFLG__c
-      Useracc = [
-        SELECT accountid, Work_Location__c, UserPro_Type__c, OSHFLG__c
-        FROM user
-        WHERE id = :userId
-      ];
-      accountid = Useracc[0].accountid;
-      userWorkLocation = Useracc[0].Work_Location__c;
-      agencyProType = Useracc[0].UserPro_Type__c;
-      agencyProType1 = Useracc[0].UserPro_Type__c; //lt 20230526 瀹夊窘涓ょエ鍒� add
-      //lt 20230526 瀹夊窘涓ょエ鍒� start
-      OSHFLG = Useracc[0].OSHFLG__c; //lt 20230517 瀹夊窘涓ょエ鍒� add
-      if (OSHFLG) {
-        agencyProType1 = 'OSH';
-      } else if (String.isBlank(Useracc[0].UserPro_Type__c)) {
-        agencyProType1 = 'ET';
-      }
-      //lt 20230526 瀹夊窘涓ょエ鍒� end
-      if (String.isBlank(Useracc[0].UserPro_Type__c)) {
-        agencyProType = 'ET';
-      }
-      //閿欒淇℃伅鎻愮ず
-      if (
-        String.isNotBlank(methodType) &&
-        methodType.equals('hospitalorder') &&
-        agencyProType == 'ET'
-      ) {
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '鎮ㄦ病鏈夎璐у尰闄㈢壒浠蜂骇鍝佺殑鏉冮檺!'));
-        errorMsgList.add('鎮ㄦ病鏈夎璐у尰闄㈢壒浠蜂骇鍝佺殑鏉冮檺!');
-      }
-      contactDealer = new List<String>();
-      Date dateToday = Date.today();
-      //鏌ヨ缁忛攢鍟嗕笅鎵�鏈夋湁鏁堝悎鍚�
-      List<Account> contractList = [
-        SELECT Id, Name, RecordType.DeveloperName
-        FROM Account
-        WHERE
-          RecordType.DeveloperName = 'AgencyContract'
-          AND Contract_Decide_Start_Date__c <= :dateToday
-          AND Contract_Decide_End_Date__c >= :dateToday
-          AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add 1
-          AND Agent_Ref__c = :accountid
-          AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
-      ];
-      for (Account contract : contractList) {
-        contactDealer.add(contract.Id);
-      }
-      DealerProductMap = new Map<Id, Dealer_Product__c>();
-      DealerProductId = getDealerProductId();
-      Account accountInfo = [
-        SELECT
-          Name,
-          Dealer_discount__c,
-          Product_Limit_Date__c,
-          Product_Limit_DateENG__c
-        FROM account
-        WHERE id = :accountid
-      ];
-      accountName = accountInfo.Name;
-      String product_Limit;
-      if (agencyProType == 'ET') {
-        product_Limit = accountInfo.Product_Limit_Date__c;
-      } else {
-        product_Limit = accountInfo.Product_Limit_DateENG__c;
-      }
-      if (product_Limit != null && product_Limit != '') {
-        proLimitAndDate = product_Limit.split(',');
-      }
-      saveBtnDisabled = false;
-      sorderBtnDisabled = false;
-      coc = new Consumable_order__c();
-      consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
-      if (String.isBlank(agencyProType)) {
-        //return ;
-      }
-      List<Product2__c> Product2Selected = new List<Product2__c>();
-      Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
-      //缁忛攢鍟嗗湪搴撴暟鎹�
-      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,
-          hospitalSpecialOffer__c,
-          promotionorder__c
-        FROM Consumable_order_details2__c
-        WHERE
-          Dealer_Arrive__c = TRUE
-          AND Dealer_Shipment__c = FALSE
-          AND Dealer_Saled__c = FALSE
-          AND Dealer_Returned__c = FALSE
-          AND Lose_Flag__c = FALSE
-          AND Cancellation_Flag__c = FALSE
-          AND Bar_Code__c != NULL
-          AND Isoverdue__c = 1
-          AND Arrive_Owner_Work_Location__c = :userWorkLocation
-          AND Dealer_Info_text__c = :accountName
-      ];
-      if (ESetId == null || ESetId == '') {
-        //鑾峰彇缁忛攢鍟嗛粯璁ょ殑涓�涓悎鍚�
-        List<Account> contract = [
-          SELECT id, Name, State_Master__c, State_Master__r.Name
-          FROM Account
-          WHERE
-            ParentId = :accountid
-            AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add 1
-            AND Contract_Decide_Start_Date__c <= :Date.Today()
-            AND Contract_Decide_End_Date__c >= :Date.Today()
-            AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
-        ];
-        if (contract.size() == 1) {
-          contractName = contract[0].Name;
-          contractId = contract[0].Id;
-        }
-        editDelCommitBtnDisabled = true;
-        List<String> DealerProductId = new List<String>();
-        soql = makeSoql('', '', '', '', '', false, DealerProductId);
+        edoffersPrice = false;
+        returnOrder = false;
+        categoryOptionList = new List<SelectOption>();
+        category4OptionList = new List<SelectOption>();
+        category5OptionList = new List<SelectOption>();
         size = Integer.valueOf(System.Label.orderdetLimitsize);
-        initStandardController();
-        product2Selected = Database.query(soql);
+        pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
+    }
 
-        for (Integer i = 0; i < product2Selected.size(); i++) {
-          consumableorderdetailsRecords.add(
-            new ConsumableorderdetailsInfo(product2Selected[i])
-          );
-          MidMap.put(
-            product2Selected[i].Id,
-            new ConsumableorderdetailsInfo(product2Selected[i])
-          );
-        }
-        //鍙湁鍦ㄥ崗璁璐ф椂浼氳蛋杩欎釜for寰幆 鍏朵粬涓ょ璁㈣揣妯″紡閮借蛋鐨剆earchorderdetails鏂规硶
-        if (
-          String.isBlank(methodType) ||
-          (!methodType.equals('promotionorder') &&
-          !methodType.equals('hospitalorder'))
-        ) {
-          for (Integer i = 0; i < countDel.size(); i++) {
-            if (
-              countDel[i].promotionorder__c == false &&
-              countDel[i].hospitalSpecialOffer__c == false
-            ) {
-              if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                  countDel[i].Consumable_Product__c
-                );
-                if (countDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.allnumber = Jstage.allnumber + 1;
-                } else {
-                  Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-                }
-                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-              }
+    private static void initStandardController() {
+        con = new ApexPages.StandardSetController(Database.getQueryLocator(soql));
+        con.setPageSize(size);
+        noOfRecords = con.getResultSize();
+    }
+
+    public static List<Product2__c> product2s() {
+        return (List<Product2__c>) con.getRecords();
+    }
+
+    private static List<ConsumableorderdetailsInfo> getPageInfo() {
+        List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
+        Map<String, String> selectedIdMap = new Map<String, String>();
+
+        for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsview) {
+            if (ass.check == true) {
+                selectedIdMap.put(ass.Prod.id, ass.Prod.id);
+                reSet.add(ass);
             }
-          }
         }
+
+        consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
+        if (editAble) {
+            consumableorderdetailsRecordsview = reSet;
+        }
+        Integer pagestartNo = (con.getPageNumber() * size) - size;
+        Integer pageendNo = (con.getPageNumber() * size) > noOfRecords ? noOfRecords : (con.getPageNumber() * size - 1);
+        Integer addNo = 0;
+        for (Integer i = pagestartNo; i < consumableorderdetailsRecords.size(); i++) {
+            Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
+            if (selectedIdMap.containsKey(consumableorderdetailsRecords[i].Prod.Id)) {
+                addNo++;
+                //continue;
+            }
+            // else if (consumableorderdetailsRecordsview.size() >= pageLimit + size) {
+            //     break;
+            // }
+            else {
+                if (consumableorderdetailsRecords[i].check == false) {
+                    consumableorderdetailsRecords[i].esd = orderdetails1;
+                }
+                //consumableorderdetailsRecords[i].esd.Dealer_Custom_Price__c = consumableorderdetailsRecords[i].Prod.Intra_Trade_List_RMB__c * disCount / 100;
+                consumableorderdetailsRecordsview.add(consumableorderdetailsRecords[i]);
+                addNo++;
+            }
+            // if (addNo >= size)
+            //     break;
+        }
+        return consumableorderdetailsRecordsview;
+    }
+
+    @AuraEnabled
+    public static Results init(String type, String esetId, String keywordStr) {
+        Results results = new Results();
+        results.isNoteStay = LexUtility.getIsNoteStay();
+        errorMsgList = new List<String>();
+        warningMsgList = new List<String>();
+        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
         consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
-        //缁忛攢鍟嗗畾浠� 璁$畻
-        for (ConsumableorderdetailsInfo bss : MidMap.values()) {
-          bss.sortBy = sortOrderAsc;
-          bss.packing_list = Integer.valueOf(
-            bss.Prod.Product2__r.Packing_list_manual__c
-          );
-          bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
-          bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
-          if (DealerProductMap.containsKey(bss.Prod.Id)) {
-            bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id)
-              .Special_Campaign_Price__c;
-            bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id)
-              .Campaign_EndDate__c;
-            bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id)
-              .OrderGoods_Limit__c;
-          }
-          consumableorderdetailsRecords.add(bss);
+        DealerProductId = new List<String>();
+        attachmentRecoeds = new List<ConsumableorderdetailsInfo>();
+        consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
+        editAble = false;
+        edoffersPrice = false;
+        returnOrder = false;
+        categoryOptionList = new List<SelectOption>();
+        category4OptionList = new List<SelectOption>();
+        category5OptionList = new List<SelectOption>();
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
+        ESetId = esetId;
+        methodType = type;
+        if (String.isBlank(methodType) && String.isNotBlank(ESetId)) {
+            List<Consumable_order__c> oclist = [SELECT orderPattern__c FROM Consumable_order__c WHERE id = :ESetid];
+            methodType = oclist.get(0).orderPattern__c;
         }
-        consumableorderdetailsRecords.sort();
-        if (
-          methodType != null &&
-          methodType != '' &&
-          (methodType.equals('hospitalorder') ||
-          methodType.equals('promotionorder'))
-        ) {
-          searchorderdetails(
-            methodType,
-            accountid,
-            hospitalId,
-            contractId,
-            userWorkLocation,
-            accountName,
-            proLimitAndDate,
-            editAble
-          );
-          isfirst = true;
+        statusEdit = keywordStr;
+        System.debug('Param:' + ESetId + '---' + methodType + '---' + statusEdit);
+        try {
+            sortKey = '1';
+            preSortKey = '1';
+            sortOrderAsc = false;
+            sortOrder = new String[8];
+            sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '鈫�', '', '', '' };
+            cate1ForSort = '';
+            decisionCode = '';
+            sumPrice = 0;
+            specialCampaign = false;
+            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();
+            List<user> Useracc = new List<user>();
+            //lt 20230517 瀹夊窘涓ょエ鍒� add ,OSHFLG__c
+            Useracc = [SELECT accountid, Work_Location__c, UserPro_Type__c, OSHFLG__c FROM user WHERE id = :userId];
+            accountid = Useracc[0].accountid;
+            userWorkLocation = Useracc[0].Work_Location__c;
+            agencyProType = Useracc[0].UserPro_Type__c;
+            agencyProType1 = Useracc[0].UserPro_Type__c; //lt 20230526 瀹夊窘涓ょエ鍒� add
+            //lt 20230526 瀹夊窘涓ょエ鍒� start
+            OSHFLG = Useracc[0].OSHFLG__c; //lt 20230517 瀹夊窘涓ょエ鍒� add
+            if (OSHFLG) {
+                agencyProType1 = 'OSH';
+            } else if (String.isBlank(Useracc[0].UserPro_Type__c)) {
+                agencyProType1 = 'ET';
+            }
+            //lt 20230526 瀹夊窘涓ょエ鍒� end
+            if (String.isBlank(Useracc[0].UserPro_Type__c)) {
+                agencyProType = 'ET';
+            }
+            //閿欒淇℃伅鎻愮ず
+            if (String.isNotBlank(methodType) && methodType.equals('hospitalorder') && agencyProType == 'ET') {
+                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '鎮ㄦ病鏈夎璐у尰闄㈢壒浠蜂骇鍝佺殑鏉冮檺!'));
+                errorMsgList.add('鎮ㄦ病鏈夎璐у尰闄㈢壒浠蜂骇鍝佺殑鏉冮檺!');
+            }
+            contactDealer = new List<String>();
+            Date dateToday = Date.today();
+            //鏌ヨ缁忛攢鍟嗕笅鎵�鏈夋湁鏁堝悎鍚�
+            List<Account> contractList = [
+                SELECT Id, Name, RecordType.DeveloperName
+                FROM Account
+                WHERE
+                    RecordType.DeveloperName = 'AgencyContract'
+                    AND Contract_Decide_Start_Date__c <= :dateToday
+                    AND Contract_Decide_End_Date__c >= :dateToday
+                    AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add 1
+                    AND Agent_Ref__c = :accountid
+                    AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
+            ];
+            for (Account contract : contractList) {
+                contactDealer.add(contract.Id);
+            }
+            DealerProductMap = new Map<Id, Dealer_Product__c>();
+            DealerProductId = getDealerProductId();
+            Account accountInfo = [
+                SELECT Name, Dealer_discount__c, Product_Limit_Date__c, Product_Limit_DateENG__c
+                FROM account
+                WHERE id = :accountid
+            ];
+            accountName = accountInfo.Name;
+            String product_Limit;
+            if (agencyProType == 'ET') {
+                product_Limit = accountInfo.Product_Limit_Date__c;
+            } else {
+                product_Limit = accountInfo.Product_Limit_DateENG__c;
+            }
+            if (product_Limit != null && product_Limit != '') {
+                proLimitAndDate = product_Limit.split(',');
+            }
+            saveBtnDisabled = false;
+            sorderBtnDisabled = false;
+            coc = new Consumable_order__c();
+            consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+            if (String.isBlank(agencyProType)) {
+                //return ;
+            }
+            List<Product2__c> Product2Selected = new List<Product2__c>();
+            Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
+            //缁忛攢鍟嗗湪搴撴暟鎹�
+            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,
+                    hospitalSpecialOffer__c,
+                    promotionorder__c
+                FROM Consumable_order_details2__c
+                WHERE
+                    Dealer_Arrive__c = TRUE
+                    AND Dealer_Shipment__c = FALSE
+                    AND Dealer_Saled__c = FALSE
+                    AND Dealer_Returned__c = FALSE
+                    AND Lose_Flag__c = FALSE
+                    AND Cancellation_Flag__c = FALSE
+                    AND Bar_Code__c != NULL
+                    AND Isoverdue__c = 1
+                    AND Arrive_Owner_Work_Location__c = :userWorkLocation
+                    AND Dealer_Info_text__c = :accountName
+            ];
+            if (ESetId == null || ESetId == '') {
+                //鑾峰彇缁忛攢鍟嗛粯璁ょ殑涓�涓悎鍚�
+                List<Account> contract = [
+                    SELECT id, Name, State_Master__c, State_Master__r.Name
+                    FROM Account
+                    WHERE
+                        ParentId = :accountid
+                        AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add 1
+                        AND Contract_Decide_Start_Date__c <= :Date.Today()
+                        AND Contract_Decide_End_Date__c >= :Date.Today()
+                        AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
+                ];
+                if (contract.size() == 1) {
+                    contractName = contract[0].Name;
+                    contractId = contract[0].Id;
+                }
+                editDelCommitBtnDisabled = true;
+                List<String> DealerProductId = new List<String>();
+                soql = makeSoql('', '', '', '', '', false, DealerProductId);
+                size = Integer.valueOf(System.Label.orderdetLimitsize);
+                initStandardController();
+                product2Selected = Database.query(soql);
+
+                for (Integer i = 0; i < product2Selected.size(); i++) {
+                    consumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(product2Selected[i]));
+                    MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+                }
+                //鍙湁鍦ㄥ崗璁璐ф椂浼氳蛋杩欎釜for寰幆 鍏朵粬涓ょ璁㈣揣妯″紡閮借蛋鐨剆earchorderdetails鏂规硶
+                if (String.isBlank(methodType) || (!methodType.equals('promotionorder') && !methodType.equals('hospitalorder'))) {
+                    for (Integer i = 0; i < countDel.size(); i++) {
+                        if (countDel[i].promotionorder__c == false && countDel[i].hospitalSpecialOffer__c == false) {
+                            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                                if (countDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.allnumber = Jstage.allnumber + 1;
+                                } else {
+                                    Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                                }
+                                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                            }
+                        }
+                    }
+                }
+                consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+                //缁忛攢鍟嗗畾浠� 璁$畻
+                for (ConsumableorderdetailsInfo bss : MidMap.values()) {
+                    bss.sortBy = sortOrderAsc;
+                    bss.packing_list = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c);
+                    bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
+                    bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
+                    if (DealerProductMap.containsKey(bss.Prod.Id)) {
+                        bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id).Special_Campaign_Price__c;
+                        bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id).Campaign_EndDate__c;
+                        bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id).OrderGoods_Limit__c;
+                    }
+                    consumableorderdetailsRecords.add(bss);
+                }
+                consumableorderdetailsRecords.sort();
+                if (methodType != null && methodType != '' && (methodType.equals('hospitalorder') || methodType.equals('promotionorder'))) {
+                    searchorderdetails(
+                        methodType,
+                        accountid,
+                        hospitalId,
+                        contractId,
+                        userWorkLocation,
+                        accountName,
+                        proLimitAndDate,
+                        editAble
+                    );
+                    isfirst = true;
+                }
+                getPageInfo();
+            } else {
+                if (methodType != null && methodType.equals('hospitalorder')) {
+                    List<Consumable_order__c> oclist = [
+                        SELECT orderPattern__c, Order_ForHospital__c, Order_ForHospital__r.Name
+                        FROM Consumable_order__c
+                        WHERE id = :ESetid
+                    ];
+                    if (oclist.get(0).orderPattern__c.equals('hospitalorder')) {
+                        hospitalName = oclist.get(0).Order_ForHospital__r.Name;
+                        hospitalId = oclist.get(0).Order_ForHospital__c;
+                    }
+                }
+                List<Consumable_Orderdetails__c> ConsumableorderdetailsSelected = new List<Consumable_Orderdetails__c>();
+                //淇敼
+                List<Consumable_order__c> qs = new List<Consumable_order__c>();
+                qs = [
+                    SELECT
+                        Id,
+                        Name,
+                        Order_status__c,
+                        Consumable_pdf_insert_day__c,
+                        Dealer_Info__c,
+                        Deliver_date__c,
+                        Order_Reason__c,
+                        Order_date__c,
+                        Contract_application_decision__c,
+                        Total_amount__c,
+                        Offers_Price__c,
+                        Order_effective_contact__c,
+                        Order_effective_contact__r.Name
+                    FROM Consumable_order__c
+                    WHERE Id = :ESetId AND Order_Owner_WorkLocal__c = :userWorkLocation
+                ];
+                if (qs.size() > 0) {
+                    coc = qs[0];
+                    decisionCode = coc.Contract_application_decision__c;
+                    contractName = coc.Order_effective_contact__r.Name;
+                    contractId = coc.Order_effective_contact__r.Id;
+                }
+                if (qs[0].Order_status__c == '宸叉彁浜�' || qs[0].Order_status__c == '鎵瑰噯' || qs[0].Order_status__c == '闄勪欢涓婁紶瀹屾垚') {
+                    saveBtnDisabled = true;
+                    sorderBtnDisabled = true;
+                    editDelCommitBtnDisabled = false;
+                }
+                // 閬告姙娓堛伩銇槑缁嗐倰鍙栧緱
+                ConsumableorderdetailsSelected = [
+                    SELECT
+                        Id,
+                        Name,
+                        Consumable_order__c,
+                        Consumable_Product__r.Name__c,
+                        Consumable_Product__c,
+                        Consumable_Product__r.Name,
+                        Consumable_Count__c,
+                        Consumable_Product__r.Category3__c,
+                        Consumable_Product__r.Category4__c,
+                        Consumable_Product__r.Category5__c,
+                        Consumable_Product__r.Intra_Trade_List_RMB__c,
+                        Consumable_Product__r.Asset_Model_No__c,
+                        Sum_of_money__c,
+                        Consumable_Product__r.SFDA_Status__c,
+                        Consumable_Product__r.Product2__r.Packing_list_manual__c,
+                        Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
+                        Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c
+                    FROM Consumable_Orderdetails__c
+                    WHERE
+                        recordtypeid = :System.Label.RT_ConOrderDetail1_Order
+                        AND Consumable_order__c = :ESetId
+                        AND Order_Owner_WorkLocal__c = :userWorkLocation
+                        AND Consumable_order__r.Dealer_Info__c = :accountid
+                ];
+                for (Consumable_Orderdetails__c cdc1 : ConsumableorderdetailsSelected) {
+                    if (cdc1.Consumable_Product__c != null) {
+                        orderzaikuId.add(cdc1.Consumable_Product__c);
+                    }
+                }
+                soql = makeSoqlorderdet();
+                System.debug('soql:' + soql);
+                size = orderzaikuId.size();
+                initStandardController();
+                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++) {
+                    //add by rentx 2020-12-09
+                    if (String.isNotBlank(methodType) && methodType.equals('hospitalorder')) {
+                        if (countDel[i].hospitalSpecialOffer__c == true) {
+                            //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
+                            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                                if (countDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.allnumber = Jstage.allnumber + 1;
+                                } else {
+                                    Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                                }
+                                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                            }
+                        }
+                    } else if (String.isBlank(methodType) || methodType.equals('promotionorder')) {
+                        if (countDel[i].promotionorder__c == true) {
+                            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                                if (countDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.allnumber = Jstage.allnumber + 1;
+                                } else {
+                                    Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                                }
+                                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                            }
+                        }
+                    } else if (
+                        String.isBlank(methodType) || (!methodType.equals('promotionorder') && !methodType.equals('hospitalorder'))
+                    ) {
+                        if (countDel[i].promotionorder__c == false && countDel[i].hospitalSpecialOffer__c == false) {
+                            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                                ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                                if (countDel[i].Box_Piece__c == '鐩�') {
+                                    Jstage.allnumber = Jstage.allnumber + 1;
+                                } else {
+                                    Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                                }
+                                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                            }
+                        }
+                    }
+                }
+                consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+                //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
+                for (ConsumableorderdetailsInfo bss : MidMap.values()) {
+                    bss.packing_list = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c);
+                    bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
+                    bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
+                    if (DealerProductMap.containsKey(bss.Prod.Id)) {
+                        bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id).Special_Campaign_Price__c;
+                        bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id).Campaign_EndDate__c;
+                        bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id).OrderGoods_Limit__c;
+                    }
+                    consumableorderdetailsRecords.add(bss);
+                }
+                for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) {
+                    ass.sortBy = sortOrderAsc;
+                    for (Consumable_Orderdetails__c cdc1 : ConsumableorderdetailsSelected) {
+                        sumPrice += cdc1.Sum_of_money__c;
+                        if (ass.prod.Id == cdc1.Consumable_Product__c) {
+                            ass.check = true;
+                            ass.esd = cdc1;
+                        }
+                    }
+                }
+                //闄勪欢
+                // attachmentinfo = [SELECT Id, Name, OwnerId, Owner.Name FROM Attachment WHERE parentid = :ESetId];
+                // if (attachmentinfo.size() > 0) {
+                //     for (Integer i = 0; i < attachmentinfo.size(); i++) {
+                //         attachmentRecoeds.add(new ConsumableorderdetailsInfo(attachmentinfo[i]));
+                //     }
+                // }
+                List<ContentDocumentLink> links = [SELECT Id, ContentDocumentId FROM ContentDocumentLink WHERE LinkedEntityId = :ESetId];
+                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++) {
+                            attachmentRecoeds.add(new ConsumableorderdetailsInfo(cvInfo[i]));
+                        }
+                    }
+                }
+                //
+                consumableorderdetailsRecords.sort();
+                getPageInfo();
+            }
+            //璁$畻搴撳瓨涓娿�佷笅闄�
+            productLimtAndDate();
+            lowerRecord();
+            //鏄庣粏鎺掑簭
+            List<String> upper = new List<String>();
+            if (String.isNotBlank(ESetid)) {
+                for (ConsumableorderdetailsInfo bss : consumableorderdetailsRecords) {
+                    if (bss.esd.Consumable_count__c != null && bss.allnumber != null && bss.upperlimit != null) {
+                        if (bss.esd.Consumable_count__c + bss.allnumber > bss.upperlimit) {
+                            upper.add(bss.esd.Consumable_Product__r.Name__c);
+                        }
+                    }
+                }
+            }
+            if (upper.size() > 0) {
+                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺瓒呭嚭搴撳瓨涓婇檺!'));
+                warningMsgList.add('瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺瓒呭嚭搴撳瓨涓婇檺!');
+                for (Integer i = 0; i < upper.size(); i++) {
+                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, upper[i]));
+                    warningMsgList.add(upper[i]);
+                }
+            }
+            if (lower.size() > 0) {
+                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺浣庝簬搴撳瓨涓嬮檺!'));
+                warningMsgList.add('瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺浣庝簬搴撳瓨涓嬮檺!');
+                for (Integer i = 0; i < lower.size(); i++) {
+                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, lower[i]));
+                    warningMsgList.add(lower[i]);
+                }
+            }
+            //浠锋牸鏌ョ湅鏉冮檺
+            Schema.DescribeFieldResult dfr = Product2__c.Intra_Trade_List_RMB__c.getDescribe();
+            cansee = dfr.isAccessible();
+            AggregateResult[] categoryList = [
+                SELECT Count(id), Category3_text__c c3c
+                FROM Product2__c
+                WHERE Estimation_Entry_Possibility__c = '鈼�' AND Product_Type__c LIKE :agencyProType AND Category3_text__c != NULL
+                GROUP BY Category3_text__c
+            ];
+            //categoty3
+            // categoryOptionList = new List<SelectOption>();
+            category3Option = new List<CusOption>();
+            // categoryOptionList.add(new SelectOption('', '-鏃�-'));
+            category3Option.add(new CusOption('-鏃�-', ''));
+            for (AggregateResult category3Search : categoryList) {
+                String deliverycnt = String.valueOf(category3Search.get('c3c'));
+                // categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt));
+                category3Option.add(new CusOption(deliverycnt, deliverycnt));
+            }
+            //categoty4
+            // category4OptionList = new List<SelectOption>();
+            category4Option = new List<CusOption>();
+            // category4OptionList.add(new SelectOption('', '-鏃�-'));
+            category4Option.add(new CusOption('-鏃�-', ''));
+            //categoty5
+            // category5OptionList = new List<SelectOption>();
+            category5Option = new List<CusOption>();
+            // category5OptionList.add(new SelectOption('', '-鏃�-'));
+            category5Option.add(new CusOption('-鏃�-', ''));
+            //return msg
+            consumableorderdetailsRecordsview = consumableorderdetailsRecords;
+            getConsumableShowTableFieldValue();
+            results.result = 'Success';
+            results.coc = coc;
+            results.editAble = editAble;
+            results.edoffersPrice = edoffersPrice;
+            results.editDelCommitBtnDisabled = EditDelCommitBtnDisabled;
+            results.category3Option = category3Option;
+            results.category4Option = category4Option;
+            results.category5Option = category5Option;
+            results.hospitalName = hospitalName;
+            results.contractName = contractName;
+            results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
+            results.attachmentRecoeds = attachmentRecoeds;
+            results.cansee = cansee;
+            results.agencyProType = agencyProType;
+            results.agencyProType1 = agencyProType1;
+            results.OSHFLG = OSHFLG;
+            results.userWorkLocation = userWorkLocation;
+            results.accountName = accountName;
+            results.category_Goods = category_Goods;
+            results.specialCampaign = specialCampaign;
+            results.dealerProductId = DealerProductId;
+            results.accountid = accountid;
+            results.hospitalId = hospitalId;
+            results.contractId = contractId;
+            results.contactDealer = contactDealer;
+            results.errorMsgList = errorMsgList;
+            results.warningMsgList = warningMsgList;
+            results.methodType = methodType;
+            results.proLimitAndDate = proLimitAndDate;
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
         }
-        getPageInfo();
-      } else {
-        if (methodType != null && methodType.equals('hospitalorder')) {
-          List<Consumable_order__c> oclist = [
+        return results;
+    }
+
+    @AuraEnabled
+    public static Results categoryAllload(String agencyProTypeStr, String category3Str) {
+        Results results = new Results();
+        agencyProType = agencyProTypeStr;
+        category3 = category3Str;
+        try {
+            AggregateResult[] category4List = [
+                SELECT Count(id), Category4_text__c c4c
+                FROM Product2__c
+                WHERE
+                    Estimation_Entry_Possibility__c = '鈼�'
+                    AND Product_Type__c LIKE :agencyProType
+                    AND Category3_text__c = :category3
+                    AND Category4_text__c != NULL
+                    AND Category5_text__c != NULL
+                GROUP BY Category4_text__c
+            ];
+            // category4OptionList = new List<SelectOption>();
+            category4Option = new List<CusOption>();
+            // category4OptionList.add(new SelectOption('', '-鏃�-'));
+            category4Option.add(new CusOption('-鏃�-', ''));
+            for (AggregateResult category4Search : category4List) {
+                String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
+                // category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
+                category4Option.add(new CusOption(deliverycnt4, deliverycnt4));
+            }
+            AggregateResult[] category5List = [
+                SELECT Count(id), Category5_text__c c5c
+                FROM Product2__c
+                WHERE
+                    Estimation_Entry_Possibility__c = '鈼�'
+                    AND Product_Type__c LIKE :agencyProType
+                    AND Category3_text__c = :category3
+                    AND Category4_text__c != NULL
+                    AND Category5_text__c != NULL
+                GROUP BY Category5_text__c
+            ];
+            // category5OptionList = new List<SelectOption>();
+            category5Option = new List<CusOption>();
+            // category5OptionList.add(new SelectOption('', '-鏃�-'));
+            category5Option.add(new CusOption('-鏃�-', ''));
+            for (AggregateResult category5Search : category5List) {
+                String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
+                // category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
+                category5Option.add(new CusOption(deliverycnt5, deliverycnt5));
+            }
+            results.category4Option = category4Option;
+            results.category5Option = category5Option;
+            results.result = 'Success';
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    @AuraEnabled
+    public static Results categoryload(String agencyProTypeStr, String category3Str, String category4Str) {
+        Results results = new Results();
+        agencyProType = agencyProTypeStr;
+        category3 = category3Str;
+        category4 = category4Str;
+        try {
+            AggregateResult[] category4List = [
+                SELECT Count(id), Category4_text__c c4c
+                FROM Product2__c
+                WHERE
+                    Estimation_Entry_Possibility__c = '鈼�'
+                    AND Product_Type__c LIKE :agencyProType
+                    AND Category3_text__c = :category3
+                    AND Category4_text__c != NULL
+                    AND Category5_text__c != NULL
+                GROUP BY Category4_text__c
+            ];
+            // category4OptionList = new List<SelectOption>();
+            category4Option = new List<CusOption>();
+            // category4OptionList.add(new SelectOption('', '-鏃�-'));
+            category4Option.add(new CusOption('-鏃�-', ''));
+            for (AggregateResult category4Search : category4List) {
+                String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
+                // category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
+                category4Option.add(new CusOption(deliverycnt4, deliverycnt4));
+            }
+
+            AggregateResult[] category5List = [
+                SELECT Count(id), Category5_text__c c5c
+                FROM Product2__c
+                WHERE
+                    Estimation_Entry_Possibility__c = '鈼�'
+                    AND Product_Type__c LIKE :agencyProType
+                    AND Category3_text__c = :category3
+                    AND Category4_text__c = :category4
+                    AND Category5_text__c != NULL
+                GROUP BY Category5_text__c
+            ];
+            // category5OptionList = new List<SelectOption>();
+            category5Option = new List<CusOption>();
+            // category5OptionList.add(new SelectOption('', '-鏃�-'));
+            category5Option.add(new CusOption('-鏃�-', ''));
+            for (AggregateResult category5Search : category5List) {
+                String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
+                // category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
+                category5Option.add(new CusOption(deliverycnt5, deliverycnt5));
+            }
+            results.category4Option = category4Option;
+            results.category5Option = category5Option;
+            results.result = 'Success';
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    // 鐢婚潰鍒濆鍖�
+    public static void lowerRecord() {
+        List<ConsumableorderdetailsInfo> lowerRecord = new List<ConsumableorderdetailsInfo>();
+        //搴撳瓨鏄庣粏鍙栧緱
+        Map<String, ConsumableorderdetailsInfo> midMaprecord = new Map<String, ConsumableorderdetailsInfo>();
+        List<Product2__c> product2Selected = [
+            SELECT Id, Name, Name__c, Intra_Trade_List_RMB__c, Asset_Model_No__c
+            FROM Product2__c
+            WHERE Pro2_Dealer_Object__c = TRUE AND Estimation_Entry_Possibility__c = '鈼�'
+        ];
+        for (Integer i = 0; i < product2Selected.size(); i++) {
+            lowerRecord.add(new ConsumableorderdetailsInfo(product2Selected[i]));
+            //鍏堟妸ConsumableorderdetailsRecords 鍋氭垚map
+            midMaprecord.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+        }
+        List<Consumable_order_details2__c> countDel = [
             SELECT
-              orderPattern__c,
-              Order_ForHospital__c,
-              Order_ForHospital__r.Name
-            FROM Consumable_order__c
-            WHERE id = :ESetid
-          ];
-          if (oclist.get(0).orderPattern__c.equals('hospitalorder')) {
-            hospitalName = oclist.get(0).Order_ForHospital__r.Name;
-            hospitalId = oclist.get(0).Order_ForHospital__c;
-          }
-        }
-        List<Consumable_Orderdetails__c> ConsumableorderdetailsSelected = new List<Consumable_Orderdetails__c>();
-        //淇敼
-        List<Consumable_order__c> qs = new List<Consumable_order__c>();
-        qs = [
-          SELECT
-            Id,
-            Name,
-            Order_status__c,
-            Consumable_pdf_insert_day__c,
-            Dealer_Info__c,
-            Deliver_date__c,
-            Order_Reason__c,
-            Order_date__c,
-            Contract_application_decision__c,
-            Total_amount__c,
-            Offers_Price__c,
-            Order_effective_contact__c,
-            Order_effective_contact__r.Name
-          FROM Consumable_order__c
-          WHERE Id = :ESetId AND Order_Owner_WorkLocal__c = :userWorkLocation
+                Id,
+                Bar_Code__c,
+                Name,
+                Inventory_date__c,
+                Consumable_Product__c,
+                Consumable_Product__r.Asset_Model_No__c,
+                Recordtypeid,
+                Guarantee_period_for_products__c,
+                Isoverdue__c,
+                Box_Piece__c,
+                hospitalSpecialOffer__c,
+                promotionorder__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 Consumable_order_minor__r.Dealer_Info__c = :accountid
+                AND Dealer_Info_text__c = :accountName
         ];
-        if (qs.size() > 0) {
-          coc = qs[0];
-          decisionCode = coc.Contract_application_decision__c;
-          contractName = coc.Order_effective_contact__r.Name;
-          contractId = coc.Order_effective_contact__r.Id;
-        }
-        if (
-          qs[0].Order_status__c == '宸叉彁浜�' ||
-          qs[0].Order_status__c == '鎵瑰噯' ||
-          qs[0].Order_status__c == '闄勪欢涓婁紶瀹屾垚'
-        ) {
-          saveBtnDisabled = true;
-          sorderBtnDisabled = true;
-          editDelCommitBtnDisabled = false;
-        }
-        // 閬告姙娓堛伩銇槑缁嗐倰鍙栧緱
-        ConsumableorderdetailsSelected = [
-          SELECT
-            Id,
-            Name,
-            Consumable_order__c,
-            Consumable_Product__r.Name__c,
-            Consumable_Product__c,
-            Consumable_Product__r.Name,
-            Consumable_Count__c,
-            Consumable_Product__r.Category3__c,
-            Consumable_Product__r.Category4__c,
-            Consumable_Product__r.Category5__c,
-            Consumable_Product__r.Intra_Trade_List_RMB__c,
-            Consumable_Product__r.Asset_Model_No__c,
-            Sum_of_money__c,
-            Consumable_Product__r.SFDA_Status__c,
-            Consumable_Product__r.Product2__r.Packing_list_manual__c,
-            Consumable_Product__r.Product2__r.SFDA_Approbation_No__c,
-            Consumable_Product__r.Product2__r.SFDA_Expiration_Date__c
-          FROM Consumable_Orderdetails__c
-          WHERE
-            recordtypeid = :System.Label.RT_ConOrderDetail1_Order
-            AND Consumable_order__c = :ESetId
-            AND Order_Owner_WorkLocal__c = :userWorkLocation
-            AND Consumable_order__r.Dealer_Info__c = :accountid
-        ];
-        for (Consumable_Orderdetails__c cdc1 : ConsumableorderdetailsSelected) {
-          if (cdc1.Consumable_Product__c != null) {
-            orderzaikuId.add(cdc1.Consumable_Product__c);
-          }
-        }
-        soql = makeSoqlorderdet();
-        System.debug('soql:' + soql);
-        size = orderzaikuId.size();
-        initStandardController();
-        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++) {
-          //add by rentx 2020-12-09
-          if (
-            String.isNotBlank(methodType) && methodType.equals('hospitalorder')
-          ) {
-            if (countDel[i].hospitalSpecialOffer__c == true) {
-              //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
-              if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                  countDel[i].Consumable_Product__c
-                );
-                if (countDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.allnumber = Jstage.allnumber + 1;
-                } else {
-                  Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+            //add by rentx 2020-12-09
+            if (String.isNotBlank(methodType) && methodType.equals('hospitalorder')) {
+                if (countDel[i].hospitalSpecialOffer__c == true) {
+                    //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
+                    if (midMaprecord.containsKey(countDel[i].Consumable_Product__c)) {
+                        ConsumableorderdetailsInfo Jstage = midMaprecord.get(countDel[i].Consumable_Product__c);
+                        if (countDel[i].Box_Piece__c == '鐩�') {
+                            Jstage.allnumber = Jstage.allnumber + 1;
+                        } else {
+                            Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                        }
+                        //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                        midMaprecord.put(countDel[i].Consumable_Product__c, Jstage);
+                    }
                 }
-                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-              }
-            }
-          } else if (
-            String.isBlank(methodType) || methodType.equals('promotionorder')
-          ) {
-            if (countDel[i].promotionorder__c == true) {
-              if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                  countDel[i].Consumable_Product__c
-                );
-                if (countDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.allnumber = Jstage.allnumber + 1;
-                } else {
-                  Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+            } else if (String.isBlank(methodType) || methodType.equals('promotionorder')) {
+                if (countDel[i].promotionorder__c == true) {
+                    if (midMaprecord.containsKey(countDel[i].Consumable_Product__c)) {
+                        ConsumableorderdetailsInfo Jstage = midMaprecord.get(countDel[i].Consumable_Product__c);
+                        if (countDel[i].Box_Piece__c == '鐩�') {
+                            Jstage.allnumber = Jstage.allnumber + 1;
+                        } else {
+                            Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                        }
+                        midMaprecord.put(countDel[i].Consumable_Product__c, Jstage);
+                    }
                 }
-                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-              }
-            }
-          } else if (
-            String.isBlank(methodType) ||
-            (!methodType.equals('promotionorder') &&
-            !methodType.equals('hospitalorder'))
-          ) {
-            if (
-              countDel[i].promotionorder__c == false &&
-              countDel[i].hospitalSpecialOffer__c == false
-            ) {
-              if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-                ConsumableorderdetailsInfo Jstage = MidMap.get(
-                  countDel[i].Consumable_Product__c
-                );
-                if (countDel[i].Box_Piece__c == '鐩�') {
-                  Jstage.allnumber = Jstage.allnumber + 1;
-                } else {
-                  Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+            } else if (String.isBlank(methodType) || (!methodType.equals('promotionorder') && !methodType.equals('hospitalorder'))) {
+                if (countDel[i].promotionorder__c == false && countDel[i].hospitalSpecialOffer__c == false) {
+                    if (midMaprecord.containsKey(countDel[i].Consumable_Product__c)) {
+                        ConsumableorderdetailsInfo Jstage = midMaprecord.get(countDel[i].Consumable_Product__c);
+                        if (countDel[i].Box_Piece__c == '鐩�') {
+                            Jstage.allnumber = Jstage.allnumber + 1;
+                        } else {
+                            Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                        }
+                        midMaprecord.put(countDel[i].Consumable_Product__c, Jstage);
+                    }
                 }
-                MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-              }
             }
-          }
         }
-        consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+        lowerRecord = new List<ConsumableorderdetailsInfo>();
         //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
-        for (ConsumableorderdetailsInfo bss : MidMap.values()) {
-          bss.packing_list = Integer.valueOf(
-            bss.Prod.Product2__r.Packing_list_manual__c
-          );
-          bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
-          bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
-          if (DealerProductMap.containsKey(bss.Prod.Id)) {
-            bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id)
-              .Special_Campaign_Price__c;
-            bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id)
-              .Campaign_EndDate__c;
-            bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id)
-              .OrderGoods_Limit__c;
-          }
-          consumableorderdetailsRecords.add(bss);
+        for (ConsumableorderdetailsInfo bss : midMaprecord.values()) {
+            lowerRecord.add(bss);
+        }
+        allProductLimt(lowerRecord);
+        for (ConsumableorderdetailsInfo bss : lowerRecord) {
+            if (bss.allnumber < bss.lowerlimit) {
+                lower.add(bss.Prod.Name__c);
+            }
+        }
+    }
+
+    //搴撳瓨涓婁笅闄�
+    public static void productLimtAndDate() {
+        String nowName = null, nowRightAsstModelNo = null;
+        Map<String, String> productLimt = new Map<String, String>();
+        for (Integer i = 0; i < proLimitAndDate.size(); i++) {
+            nowName = proLimitAndDate[i];
+            if (nowName.indexOf('|') >= 0) {
+                nowRightAsstModelNo = nowName.subString(0, nowName.indexOf('|'));
+                nowName = nowName.subString(nowName.indexOf('|') + 1);
+            }
+            productLimt.put(nowRightAsstModelNo, nowName);
         }
         for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) {
-          ass.sortBy = sortOrderAsc;
-          for (
-            Consumable_Orderdetails__c cdc1 : ConsumableorderdetailsSelected
-          ) {
-            sumPrice += cdc1.Sum_of_money__c;
-            if (ass.prod.Id == cdc1.Consumable_Product__c) {
-              ass.check = true;
-              ass.esd = cdc1;
+            if (productLimt.containsKey(ass.Prod.Asset_Model_No__c)) {
+                ass.lowerlimit = decimal.valueOf(
+                    productLimt.get(ass.Prod.Asset_Model_No__c).subString(0, productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|'))
+                );
+                ass.upperlimit = decimal.valueOf(
+                    productLimt.get(ass.Prod.Asset_Model_No__c).subString(productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|') + 1)
+                );
             }
-          }
+        }
+    }
+
+    //鍏ㄩ儴搴撳瓨涓婁笅闄�
+    private static void allProductLimt(List<ConsumableorderdetailsInfo> lowerRecord) {
+        String nowName = null, nowRightAsstModelNo = null;
+        Map<String, String> productLimt = new Map<String, String>();
+        for (Integer i = 0; i < proLimitAndDate.size(); i++) {
+            nowName = proLimitAndDate[i];
+            if (nowName.indexOf('|') >= 0) {
+                nowRightAsstModelNo = nowName.subString(0, nowName.indexOf('|'));
+                nowName = nowName.subString(nowName.indexOf('|') + 1);
+            }
+            productLimt.put(nowRightAsstModelNo, nowName);
+        }
+        for (ConsumableorderdetailsInfo ass : lowerRecord) {
+            if (productLimt.containsKey(ass.Prod.Asset_Model_No__c)) {
+                ass.lowerlimit = decimal.valueOf(
+                    productLimt.get(ass.Prod.Asset_Model_No__c).subString(0, productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|'))
+                );
+                ass.upperlimit = decimal.valueOf(
+                    productLimt.get(ass.Prod.Asset_Model_No__c).subString(productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|') + 1)
+                );
+            }
+        }
+    }
+
+    @AuraEnabled
+    public static Results searchConsumableorderdetails(
+        String userWorkLocationStr,
+        String agencyProTypeStr,
+        String accountNameStr,
+        String accountIdStr,
+        String hospitalIdStr,
+        String contractIdStr,
+        String category1Str,
+        String category3Str,
+        String category4Str,
+        String category5Str,
+        String category_GoodStr,
+        Boolean specialCampaignStr,
+        String dealerProductIdStr,
+        String methodTypeStr,
+        String consumableorderdetailsRecordsviewStr,
+        Boolean editAbleStr,
+        List<String> proLimitAndDateList
+    ) {
+        Results results = new Results();
+        errorMsgList = new List<String>();
+        warningMsgList = new List<String>();
+        userWorkLocation = userWorkLocationStr;
+        agencyProType = agencyProTypeStr;
+        accountName = accountNameStr;
+        accountid = accountIdStr;
+        hospitalId = hospitalIdStr;
+        contractId = contractIdStr;
+        category1 = category1Str;
+        category3 = category3Str;
+        category4 = category4Str;
+        category5 = category5Str;
+        category_Goods = category_GoodStr;
+        specialCampaign = specialCampaignStr;
+        methodType = methodTypeStr;
+        editAble = editAbleStr;
+        proLimitAndDate = proLimitAndDateList;
+        dealerProductId = (List<String>) JSON.deserialize(dealerProductIdStr, List<String>.class);
+        consumableorderdetailsRecordsview = (List<ConsumableorderdetailsInfo>) JSON.deserialize(
+            consumableorderdetailsRecordsviewStr,
+            List<ConsumableorderdetailsInfo>.class
+        );
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
+        try {
+            searchDone = 'searchDone';
+            sortKey = '1';
+            preSortKey = '1';
+            sortOrderAsc = false;
+            sortOrder = new String[7];
+            sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '鈫�', '', '', '' };
+            Map<String, String> selectedIdMap = new Map<String, String>();
+            List<ConsumableorderdetailsInfo> derdetailsRecords = new List<ConsumableorderdetailsInfo>();
+            Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
+            List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
+            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,
+                    //add by rentx 2020-12-09
+                    hospitalSpecialOffer__c,
+                    promotionorder__c
+                //add by rentx 2020-12-09
+                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 Arrive_Owner_Work_Location__c = :userWorkLocation
+                    AND Dealer_Info_text__c = :accountName
+            ];
+            List<Product2__c> product2Selected = new List<Product2__c>();
+            consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+            soql = makeSoql(category1, category_Goods, category3, category4, category5, specialCampaign, DealerProductId);
+            size = Integer.valueOf(System.Label.orderdetLimitsize);
+            initStandardController();
+            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++) {
+                //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
+                if (String.isNotBlank(methodType) && methodType.equals('hospitalorder')) {
+                    if (countDel[i].hospitalSpecialOffer__c == true) {
+                        if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                            ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                            if (countDel[i].Box_Piece__c == '鐩�') {
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                            } else {
+                                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                            }
+                            MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                        }
+                    }
+                } else if (String.isBlank(methodType) || methodType.equals('promotionorder')) {
+                    if (countDel[i].promotionorder__c == true) {
+                        if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                            ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                            if (countDel[i].Box_Piece__c == '鐩�') {
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                            } else {
+                                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                            }
+                            MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                        }
+                    }
+                } else if (String.isBlank(methodType) || (!methodType.equals('promotionorder') && !methodType.equals('hospitalorder'))) {
+                    if (countDel[i].promotionorder__c == false && countDel[i].hospitalSpecialOffer__c == false) {
+                        if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                            ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                            if (countDel[i].Box_Piece__c == '鐩�') {
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                            } else {
+                                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                            }
+                            MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                        }
+                    }
+                }
+            }
+            //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecordsa0l0l0000000byXAAQ
+            for (ConsumableorderdetailsInfo bss : MidMap.values()) {
+                if (selectedIdMap.containsKey(bss.Prod.id)) {
+                    continue;
+                } else {
+                    if (DealerProductMap.containsKey(bss.Prod.Id)) {
+                        bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id).Special_Campaign_Price__c;
+                        bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id).Campaign_EndDate__c;
+                        bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id).OrderGoods_Limit__c;
+                    }
+                    bss.sortBy = sortOrderAsc;
+                    bss.packing_list = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c);
+                    bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
+                    bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
+                    consumableorderdetailsRecords.add(bss);
+                }
+            }
+            consumableorderdetailsRecords.sort();
+            productLimtAndDate();
+            getPageInfo();
+            sortKey = '1';
+            preSortKey = '1';
+            sortOrderAsc = false;
+            sortOrder = new String[7];
+            sortOrder = new List<String>{ '  ', '  ', '銆�', '', '', '', '', '' };
+            cate1ForSort = category1;
+            // 鏄剧ず鏁版嵁鏉℃暟淇℃伅
+            // makeMessage();
+            results.errorMsgList = errorMsgList;
+            results.warningMsgList = warningMsgList;
+            if (consumableorderdetailsRecords.size() > 0) {
+                getConsumableShowTableFieldValue();
+                results.result = 'Success';
+                results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
+                results.errorMsg = '鎼滅储鍒�' + consumableorderdetailsRecords.size() + '浠朵骇鍝�';
+            } else {
+                getConsumableShowTableFieldValue();
+                results.result = 'Fail';
+                results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
+                results.errorMsg = '娌℃湁鎼滅储鍒扮浉鍏虫暟鎹�';
+            }
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    //鍖婚櫌--妫�绱�
+    @AuraEnabled
+    public static Results searchorderdetails(
+        String methodTypeStr,
+        String accountIdStr,
+        String hospitalIdStr,
+        String contractIdStr,
+        String userWorkLocationStr,
+        String accountNameStr,
+        List<String> proLimitAndDateList,
+        Boolean editAbleStr
+    ) {
+        Results results = new Results();
+        methodType = methodTypeStr;
+        accountId = accountIdStr;
+        hospitalId = hospitalIdStr;
+        contractId = contractIdStr;
+        userWorkLocation = userWorkLocationStr;
+        accountName = accountNameStr;
+        proLimitAndDate = proLimitAndDateList;
+        editAble = editAbleStr;
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
+        try {
+            soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c,Category3__c,Category4__c,Category5__c FROM Product2__c WHERE Estimation_Entry_Possibility__c = \'鈼媆' ';
+            if (methodType.equals('hospitalorder')) {
+                //鍖婚櫌id 鏈夊��
+                List<hospitalprice__c> hplist = [
+                    SELECT id, product__c
+                    FROM hospitalprice__c
+                    WHERE account__c = :accountid AND hospital__c = :hospitalId
+                ];
+                if (hplist != null && hplist.size() > 0) {
+                    List<String> hpids = new List<String>();
+                    for (hospitalprice__c hc : hplist) {
+                        hpids.add(hc.product__c);
+                    }
+
+                    if (hpids != null && hpids.size() > 0) {
+                        soql += ' AND Id in : hpids ';
+                    }
+                } else {
+                    //璇ュ尰闄笅娌℃湁绗﹀悎鍖婚櫌鐗逛环鐨勪骇鍝�
+                    soql += ' AND Id = null ';
+                }
+            } else if (methodType.equals('promotionorder')) {
+                List<Dealer_Product__c> dpclist = [
+                    SELECT Id, Dealer_Product2__c
+                    FROM Dealer_Product__c
+                    WHERE Dealer_Contact__c = :contractId AND (Special_Discount__c != NULL OR Special_Campaign_Price__c != NULL)
+                ];
+                if (dpclist != null && dpclist.size() > 0) {
+                    String ids = '(';
+                    for (Dealer_Product__c hc : dpclist) {
+                        hpids.add(hc.Dealer_Product2__c);
+                        ids += '\'' + hc.Dealer_Product2__c + '\',';
+                    }
+                    ids = ids.substring(0, ids.length() - 1) + ')';
+                    if (hpids != null && hpids.size() > 0) {
+                        // soql += ' AND Id in : hpids ';
+                        soql += ' AND Id in ' + ids;
+                    }
+                } else {
+                    //璇ョ粡閿�鍟嗕笅娌℃湁淇冮攢浠锋牸鐨勪骇鍝�
+                    soql += ' AND Id = null ';
+                }
+            }
+            size = Integer.valueOf(System.Label.orderdetLimitsize);
+            initStandardController();
+            List<Product2__c> product2Selected = new List<Product2__c>();
+            Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
+            Map<String, String> selectedIdMap = new Map<String, String>();
+            consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+            product2Selected = Database.query(soql);
+            for (Integer i = 0; i < product2Selected.size(); i++) {
+                MidMap.put(product2Selected[i].Id, new ConsumableorderdetailsInfo(product2Selected[i]));
+            }
+            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,
+                    hospitalSpecialOffer__c,
+                    promotionorder__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 Arrive_Owner_Work_Location__c = :userWorkLocation
+                    //AND Consumable_order_minor__r.Dealer_Info__c = :accountid
+                    AND Dealer_Info_text__c = :accountName
+            ];
+            for (Integer i = 0; i < countDel.size(); i++) {
+                if (methodType.equals('hospitalorder')) {
+                    if (countDel[i].hospitalSpecialOffer__c == true) {
+                        //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
+                        if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                            ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                            if (countDel[i].Box_Piece__c == '鐩�') {
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                            } else {
+                                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                            }
+                            //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                            MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                        }
+                    }
+                } else if (methodType.equals('promotionorder')) {
+                    if (countDel[i].promotionorder__c == true) {
+                        //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
+                        if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
+                            ConsumableorderdetailsInfo Jstage = MidMap.get(countDel[i].Consumable_Product__c);
+                            if (countDel[i].Box_Piece__c == '鐩�') {
+                                Jstage.allnumber = Jstage.allnumber + 1;
+                            } else {
+                                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
+                            }
+                            //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
+                            MidMap.put(countDel[i].Consumable_Product__c, Jstage);
+                        }
+                    }
+                }
+            }
+            //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecordsa0l0l0000000byXAAQ
+            for (ConsumableorderdetailsInfo bss : MidMap.values()) {
+                if (selectedIdMap.containsKey(bss.Prod.id)) {
+                    continue;
+                } else {
+                    if (DealerProductMap.containsKey(bss.Prod.Id)) {
+                        bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id).Special_Campaign_Price__c;
+                        bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id).Campaign_EndDate__c;
+                        bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id).OrderGoods_Limit__c;
+                    }
+                    bss.sortBy = sortOrderAsc;
+                    bss.packing_list = Integer.valueOf(bss.Prod.Product2__r.Packing_list_manual__c);
+                    bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
+                    bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
+                    consumableorderdetailsRecords.add(bss);
+                }
+            }
+            consumableorderdetailsRecords.sort();
+            productLimtAndDate();
+            getPageInfoForHos();
+            sortKey = '1';
+            preSortKey = '1';
+            sortOrderAsc = false;
+            sortOrder = new String[7];
+            sortOrder = new List<String>{ '  ', '  ', '銆�', '', '', '', '', '' };
+            cate1ForSort = category1;
+            // 鏄剧ず鏁版嵁鏉℃暟淇℃伅
+            noOfRecords = consumableorderdetailsRecords.size();
+            getConsumableShowTableFieldValue();
+            results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
+            if (consumableorderdetailsRecordsview.size() > 0) {
+                results.result = 'Success';
+                results.errorMsg = '鍏辨悳绱㈠埌' + consumableorderdetailsRecordsview.size() + '鏉℃暟鎹�';
+            } else {
+                results.result = 'Fail';
+                results.errorMsg = '娌℃湁鎼滅储鍒扮浉鍏虫暟鎹�';
+            }
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    //鐢ㄦ埛鍒囨崲鍖婚櫌鏃跺彇娑堥�変腑鐨勪骇鍝�
+    private static List<ConsumableorderdetailsInfo> getPageInfoForHos() {
+        List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
+        Map<String, String> selectedIdMap = new Map<String, String>();
+        consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
+        if (editAble) {
+            consumableorderdetailsRecordsview = reSet;
+        }
+        Integer pagestartNo = (con.getPageNumber() * size) - size;
+        Integer pageendNo = (con.getPageNumber() * size) > noOfRecords ? noOfRecords : (con.getPageNumber() * size - 1);
+        Integer addNo = 0;
+        for (Integer i = pagestartNo; i < consumableorderdetailsRecords.size(); i++) {
+            Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
+            if (selectedIdMap.containsKey(consumableorderdetailsRecords[i].Prod.Id)) {
+                addNo++;
+                //continue;
+            }
+            // else if (consumableorderdetailsRecordsview.size() >= pageLimit + size) {
+            //     break;
+            // }
+            else {
+                if (consumableorderdetailsRecords[i].check == false) {
+                    consumableorderdetailsRecords[i].esd = orderdetails1;
+                }
+                consumableorderdetailsRecordsview.add(consumableorderdetailsRecords[i]);
+                addNo++;
+            }
+            // if (addNo >= size){
+            //     break;
+            // }
+        }
+        return consumableorderdetailsRecordsview;
+    }
+    //add by rentx 2020-12-03 end =====================================================================================================================
+    //鐗逛环
+    public static void OffersPrice() {
+        edoffersPrice = true;
+    }
+
+    //寰楀埌淇冮攢浜у搧Id
+    private static List<String> getDealerProductId() {
+        List<String> ProductId = new List<String>();
+        Map<String, String> DealerProductIdMap = new Map<String, String>();
+        Date dateToday = Date.today();
+        List<Dealer_Product__c> DealerProductList = [
+            SELECT
+                Id,
+                Name,
+                Dealer_Product2__c,
+                Special_Campaign_Price__c,
+                Campaign_StartDate__c,
+                Campaign_EndDate__c,
+                Dealer_Contact__c,
+                OrderGoods_Limit__c
+            FROM Dealer_Product__c
+            WHERE
+                Dealer_Contact__c IN :contactDealer
+                AND Campaign_StartDate__c <= :dateToday
+                AND Campaign_EndDate__c >= :dateToday
+                AND Special_Campaign_Price__c != NULL
+        ];
+        for (Dealer_Product__c dealerProduct : DealerProductList) {
+            if (DealerProductIdMap.containsKey(dealerProduct.Dealer_Product2__c)) {
+                continue;
+            } else {
+                ProductId.add(dealerProduct.Dealer_Product2__c);
+                DealerProductIdMap.put(dealerProduct.Dealer_Product2__c, dealerProduct.Dealer_Product2__c);
+            }
+        }
+        return ProductId;
+    }
+
+    private static String makeSoql(
+        String CateName,
+        String CateCode,
+        String Category3,
+        String Category4,
+        String Category5,
+        Boolean specialCampaign,
+        List<String> DealerProductId
+    ) {
+        String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c,Category3__c,Category4__c,Category5__c FROM Product2__c WHERE Estimation_Entry_Possibility__c = \'鈼媆' ';
+        // add begin ================================================================================================
+        if (methodType != null && methodType.equals('hospitalorder')) {
+            //濡傛灉鏄尰闄㈢壒浠�
+            //1.鍒ゆ柇 鍖婚櫌id鏄惁鏈夊�� 濡傛灉鏈夊�� 鍒欐牴鎹尰闄d鍘� 鍖婚櫌鐗逛环琛ㄤ腑鑾峰彇浜у搧id
+            //鍖婚櫌id 鏈夊��
+            if (hospitalId == null || hospitalId == '') {
+                soql += ' and id = null ';
+                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '璇烽�夋嫨鍖婚櫌'));
+                warningMsgList.add('璇烽�夋嫨鍖婚櫌');
+            } else {
+                List<hospitalprice__c> hplist = [
+                    SELECT id, product__c
+                    FROM hospitalprice__c
+                    WHERE account__c = :accountid AND hospital__c = :hospitalId
+                ];
+                if (hplist != null && hplist.size() > 0) {
+                    hpids = new List<String>();
+                    for (hospitalprice__c hc : hplist) {
+                        hpids.add(hc.product__c);
+                    }
+                    if (hpids != null && hpids.size() > 0) {
+                        soql += ' AND Id in : hpids ';
+                    }
+                } else {
+                    //璇ュ尰闄笅娌℃湁绗﹀悎鍖婚櫌鐗逛环鐨勪骇鍝�
+                    soql += ' AND Id = null ';
+                    return soql;
+                }
+            }
+        }
+        //淇冮攢璁㈣揣
+        if (methodType != null && methodType.equals('promotionorder')) {
+            if (contractId == null || contractId == '') {
+                soql += ' and id = null ';
+                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '璇烽�夋嫨鍚堝悓'));
+                warningMsgList.add('璇烽�夋嫨鍚堝悓');
+            } else {
+                //1.鏌ヨ鎵�鏈夌粡閿�鍟嗕骇鍝�
+                List<Dealer_Product__c> dpclist = [
+                    SELECT Id, Dealer_Product2__c
+                    FROM Dealer_Product__c
+                    WHERE Dealer_Contact__c = :contractId AND (Special_Discount__c != NULL OR Special_Campaign_Price__c != NULL)
+                ];
+
+                if (dpclist != null && dpclist.size() > 0) {
+                    hpids = new List<String>();
+                    for (Dealer_Product__c hc : dpclist) {
+                        hpids.add(hc.Dealer_Product2__c);
+                    }
+                    if (hpids != null && hpids.size() > 0) {
+                        soql += ' AND Id in : hpids ';
+                    }
+                } else {
+                    //璇ョ粡閿�鍟嗕笅娌℃湁淇冮攢浠锋牸鐨勪骇鍝�
+                    soql += ' AND Id = null ';
+                    return soql;
+                }
+            }
+        }
+        //add end ===================================================================================================
+        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 + '\'';
+        }
+        if (agencyProType == 'ET') {
+            soql += ' AND Pro2_Dealer_Object__c = true';
+        }
+        if (agencyProType == 'ENG') {
+            soql += ' AND Pro2_Dealer_ENG__c = true';
+        }
+        soql += ' AND Intra_Trade_List_RMB__c > 0 ';
+        System.debug('soql +++++++++++  ' + soql);
+        return soql;
+    }
+
+    private 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] + '\')';
+            }
+        }
+        String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c,Category3__c,Category4__c,Category5__c FROM Product2__c WHERE Estimation_Entry_Possibility__c = \'鈼媆' ';
+        System.debug('sqlTail:' + sqlTail);
+        System.debug('orderzaikuId:' + orderzaikuId);
+        if (orderzaikuId.size() > 0) {
+            soql += ' AND Id in' + sqlTail;
+        }
+        return soql;
+    }
+
+    // 缂栬緫鎸夐挳
+    @AuraEnabled
+    public static Results setEditAble(String eSetidStr) {
+        Results results = new Results();
+        ESetId = eSetidStr;
+        try {
+            statusEdit = 'Redirect';
+            List<Consumable_order__c> oclist = [SELECT orderPattern__c FROM Consumable_order__c WHERE id = :ESetid];
+            String url = '/lexconsumable?ESetid=' + ESetid + '&KeyWords=' + statusEdit + '&type=' + oclist.get(0).orderPattern__c;
+            results.result = 'Success';
+            results.url = url;
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    // 鍐嶇敵璇�
+    @AuraEnabled
+    public static Results backOrder(String eSetidStr) {
+        Results results = new Results();
+        ESetId = eSetidStr;
+        statusEdit = 'Redirect';
+        returnOrder = true;
+        try {
+            statusEdit = 'Redirect';
+            List<Consumable_order__c> oclist = [SELECT orderPattern__c FROM Consumable_order__c WHERE id = :ESetid];
+            String url = '/lexconsumable?ESetid=' + ESetid + '&KeyWords=' + statusEdit + '&type=' + oclist.get(0).orderPattern__c;
+            results.result = 'Success';
+            results.url = url;
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    //涓婁紶闄勪欢
+    @AuraEnabled
+    public static Results filesUpload(String pId, String fileName, String base64Data) {
+        Results results = new Results();
+        try {
+            base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
+            ContentVersion cv = new ContentVersion();
+            cv.Title = fileName;
+            cv.PathOnClient = '/' + fileName;
+            cv.FirstPublishLocationId = pId;
+            cv.VersionData = EncodingUtil.base64Decode(base64Data);
+            cv.IsMajorVersion = true;
+            insert cv;
+            Consumable_order__c c = [SELECT Id FROM Consumable_order__c WHERE Id = :pId];
+            c.Consumable_pdf_insert_day__c = Date.today();
+            update c;
+            results.result = 'Success';
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    //鍒犻櫎鎸夐挳
+    @AuraEnabled
+    public static Results delConsumable(String eSetidStr) {
+        Results results = new Results();
+        ESetId = eSetidStr;
+        try {
+            Consumable_order__c cord = new Consumable_order__c(Id = ESetId);
+            List<Consumable_Orderdetails__c> orderdetails1 = [
+                SELECT Id
+                FROM Consumable_Orderdetails__c
+                WHERE Consumable_order__c = :EsetId
+            ];
+            delete orderdetails1;
+            delete cord;
+            results.result = 'Success';
+            results.url = '/lexconsumableordermanage';
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    // 鎻愪氦鎸夐挳
+    @AuraEnabled
+    public static Results sorder(String eSetidStr, String accountidStr) {
+        Results results = new Results();
+        errorMsgList = new List<String>();
+        warningMsgList = new List<String>();
+        ESetId = eSetidStr;
+        accountid = accountidStr;
+        Savepoint sp = Database.setSavepoint();
+        try {
+            Map<Id, String> prodMap = new Map<Id, String>();
+            Consumable_order__c P = new Consumable_order__c();
+            P = new Consumable_order__c();
+            p.Id = ESetId;
+            p.Order_date__c = Date.today();
+            p.Order_status__c = '闄勪欢涓婁紶瀹屾垚';
+            for (Consumable_Orderdetails__c cod1 : [
+                SELECT Consumable_product__r.Product2__c, Consumable_product__r.Name__c
+                FROM Consumable_Orderdetails__c
+                WHERE Consumable_order__c = :ESetId
+            ]) {
+                prodMap.put(cod1.Consumable_product__r.Product2__c, cod1.Consumable_product__r.Name__c);
+            }
+            // GZW 鎻愪氦浜у搧鏃犳晥 鍑洪敊璇秷鎭�
+            System.debug(prodMap);
+            Map<String, String> chkMap = OpportunityWebService.MapCheckProRegisterDecide(prodMap, accountid, '');
+            System.debug(chkMap);
+            if (chkMap.size() > 0) {
+                if (chkMap.containsKey('agency')) {
+                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '绗竴缁忛攢鍟嗘病鏈夋湁鏁堢殑鍖荤枟鍣ㄦ缁忚惀璁稿彲璇併��'));
+                    errorMsgList.add('绗竴缁忛攢鍟嗘病鏈夋湁鏁堢殑鍖荤枟鍣ㄦ缁忚惀璁稿彲璇併��');
+                }
+                for (String proId : prodMap.keySet()) {
+                    if (chkMap.containsKey(proId)) {
+                        if (chkMap.get(proId) == '1') {
+                            // ApexPages.addmessage(
+                            //     new ApexPages.message(ApexPages.severity.Error, '浜у搧 ' + prodMap.get(proId) + ' 娌℃湁鏈夋晥鐨勬敞鍐岃瘉銆�')
+                            // );
+                            errorMsgList.add('浜у搧 ' + prodMap.get(proId) + ' 娌℃湁鏈夋晥鐨勬敞鍐岃瘉銆�');
+                        } else if (chkMap.get(proId) == '2') {
+                            // ApexPages.addmessage(
+                            //     new ApexPages.message(ApexPages.severity.Error, '浜у搧 ' + prodMap.get(proId) + ' 瓒呰繃缁忛攢鍟嗙粡钀ヨ寖鍥淬��')
+                            // );
+                            errorMsgList.add('浜у搧 ' + prodMap.get(proId) + ' 瓒呰繃缁忛攢鍟嗙粡钀ヨ寖鍥淬��');
+                        }
+                    }
+                }
+                results.result = 'Fail';
+                results.errorMsg = '';
+                results.errorMsgList = errorMsgList;
+                results.warningMsgList = warningMsgList;
+                return results;
+            }
+            update p;
+            Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
+            psr.setObjectId(ESetId);
+            Approval.ProcessResult submitResult = Approval.process(psr);
+            results.result = 'Success';
+            results.url = '/lexconsumableordermanage';
+        } catch (Exception e) {
+            Database.rollback(sp);
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    // 椹冲洖璁㈠崟copy
+    @AuraEnabled
+    public static Results ordrCopy(
+        String contractNameStr,
+        String cocStr,
+        String agencyProTypeStr,
+        String accountidStr,
+        String consumableorderdetailsRecordsviewStr,
+        String contactDealerStr,
+        String methodTypeStr,
+        String hospitalIdStr,
+        String contractIdStr,
+        String agencyProType1Str,
+        Boolean OSHFLGStr
+    ) {
+        ESetId = '';
+        return save(
+            contractNameStr,
+            cocStr,
+            agencyProTypeStr,
+            accountidStr,
+            consumableorderdetailsRecordsviewStr,
+            contactDealerStr,
+            methodTypeStr,
+            ESetId,
+            hospitalIdStr,
+            contractIdStr,
+            agencyProType1Str,
+            OSHFLGStr
+        );
+    }
+
+    //淇濆瓨鎸夐挳
+    @AuraEnabled
+    public static Results save(
+        String contractNameStr,
+        String cocStr,
+        String agencyProTypeStr,
+        String accountidStr,
+        String consumableorderdetailsRecordsviewStr,
+        String contactDealerStr,
+        String methodTypeStr,
+        String eSetIdStr,
+        String hospitalIdStr,
+        String contractIdStr,
+        String agencyProType1Str,
+        Boolean OSHFLGStr
+    ) {
+        Results results = new Results();
+        errorMsgList = new List<String>();
+        warningMsgList = new List<String>();
+        contractName = contractNameStr;
+        agencyProType = agencyProTypeStr;
+        accountid = accountidStr;
+        methodType = methodTypeStr;
+        ESetId = eSetIdStr;
+        hospitalId = hospitalIdStr;
+        contractId = contractIdStr;
+        agencyProType1 = agencyProType1Str;
+        OSHFLG = OSHFLGStr;
+        coc = (Consumable_order__c) JSON.deserialize(cocStr, Consumable_order__c.class);
+        contactDealer = (List<String>) JSON.deserialize(contactDealerStr, List<String>.class);
+        System.debug('consumableorderdetailsRecordsviewStr:' + consumableorderdetailsRecordsviewStr);
+        consumableorderdetailsRecordsview = (List<ConsumableorderdetailsInfo>) JSON.deserialize(
+            consumableorderdetailsRecordsviewStr,
+            List<ConsumableorderdetailsInfo>.class
+        );
+        if (coc.Offers_Price__c != null) {
+            String offerStr = String.valueOf(coc.Offers_Price__c);
+            bargainPrice = Decimal.valueOf(offerStr.replace(',', ''));
+        }
+        Savepoint sp = Database.setSavepoint();
+        try {
+            if (String.isEmpty(contractName)) {
+                // coc.Order_effective_contact__c.addError('璇烽�夋嫨鍚堝悓');
+                results.result = 'Fail';
+                results.errorMsg = '璇烽�夋嫨鍚堝悓';
+                return results;
+            }
+            List<Account> contract = [
+                SELECT Id, Name, Contract_Department_Class__c, Contract_Quote_Decide_Flag__c
+                FROM account
+                WHERE
+                    Name = :contractName
+                    AND Id = :contractId //lt 20230517 瀹夊窘涓ょエ鍒� add
+                    AND Contract_Decide_Start_Date__c <= :Date.Today()
+                    AND Contract_Decide_End_Date__c >= :Date.Today()
+                    AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add 1
+                    AND Agent_Ref__c = :accountid
+                    AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
+            ];
+            if (contract.size() <= 0) {
+                // coc.Order_effective_contact__c.addError('涓嶅瓨鍦ㄧ殑鍚堝悓锛岃閲嶆柊纭銆�');
+                results.result = 'Fail';
+                results.errorMsg = '涓嶅瓨鍦ㄧ殑鍚堝悓锛岃閲嶆柊纭銆�';
+                return results;
+            } else {
+                if (String.isEmpty(contract[0].Contract_Quote_Decide_Flag__c)) {
+                    // coc.Order_effective_contact__c.addError('鍚堝悓鏃犳晥锛岃閲嶆柊纭銆�');
+                    results.result = 'Fail';
+                    results.errorMsg = '鍚堝悓鏃犳晥锛岃閲嶆柊纭銆�';
+                    return results;
+                }
+            }
+            Integer FLG = 0;
+            Integer Count = 0;
+            //add by rentx 2020-11-25
+            List<String> tpids = new List<String>();
+            //add by rentx 2020-11-25
+            for (ConsumableorderdetailsInfo CheckCount : consumableorderdetailsRecordsview) {
+                FLG = FLG + 1;
+                if (CheckCount.check == false) {
+                    Count = Count + 1;
+                }
+                if (CheckCount.check == true) {
+                    //add by rentx 2020-11-25
+                    tpids.add(CheckCount.Prod.Id);
+                    //add by rentx 2020-11-25
+                    if (CheckCount.esd.Consumable_Count__c == null || CheckCount.esd.Consumable_Count__c == 0) {
+                        // CheckCount.esd.Consumable_Count__c.addError('璇疯緭鍏ラ噰璐暟閲�');
+                        results.result = 'Fail';
+                        results.errorMsg = '璇疯緭鍏ラ噰璐暟閲�';
+                        return results;
+                    }
+                    if (
+                        CheckCount.orderGoods_Limit > 0 &&
+                        math.mod(Integer.valueOf(CheckCount.esd.Consumable_Count__c), Integer.valueOf(CheckCount.orderGoods_Limit)) > 0
+                    ) {
+                        // CheckCount.esd.Consumable_Count__c.addError('璇疯緭鍏ヤ績閿�鏁伴噺鐨勫�嶆暟');
+                        results.result = 'Fail';
+                        results.errorMsg = '璇疯緭鍏ヤ績閿�鏁伴噺鐨勫�嶆暟';
+                        return results;
+                    }
+                }
+            }
+            if (Count == FLG) {
+                results.result = 'Fail';
+                results.errorMsg = '璇烽�夋嫨鎵�闇�娑堣�楀搧';
+                return results;
+            }
+            //=======================================鍖婚櫌鐗逛环,鏈夐噾棰濈殑璇濆彇閲戦
+            Map<String, Decimal> dealerHospitalmMap = new Map<String, Decimal>();
+            List<hospitalprice__c> hplist = [
+                SELECT Id, hospital__c, mPrice__c, pPrice__c, product__c, account__c
+                FROM hospitalprice__c
+                WHERE product__c IN :tpids AND mPrice__c != NULL AND account__c = :accountid
+            ];
+            for (hospitalprice__c dealerProduct : hplist) {
+                if (dealerProduct.mPrice__c != null) {
+                    dealerHospitalmMap.put('' + dealerProduct.hospital__c + dealerProduct.product__c, dealerProduct.mPrice__c);
+                }
+            }
+            //淇冮攢璁㈣揣 鏍规嵁缁忛攢鍟嗕骇鍝佷腑鐨勬暟鎹绠楅噾棰�
+            //=======================================浜у搧鐗规畩鎶樻墸
+            Map<String, Decimal> dealerPDiscountMap = new Map<String, Decimal>();
+            Map<String, Decimal> dealerMPDiscountMap = new Map<String, Decimal>();
+            //1.鑾峰彇鏈夊紑濮嬬粨鏉熸棩鐨勪骇鍝�
+            Date dateToday = Date.today();
+            List<Dealer_Product__c> haveDateList = [
+                SELECT
+                    Id,
+                    Name,
+                    Dealer_Product2__c,
+                    Special_Campaign_Price__c,
+                    Campaign_StartDate__c,
+                    Campaign_EndDate__c,
+                    Dealer_Contact__c,
+                    OrderGoods_Limit__c,
+                    Special_Discount__c
+                FROM Dealer_Product__c
+                WHERE
+                    Dealer_Contact__c IN :contactDealer
+                    AND Campaign_StartDate__c <= :dateToday
+                    AND Campaign_EndDate__c >= :dateToday
+                    AND (Special_Discount__c != NULL
+                    OR Special_Campaign_Price__c != NULL)
+            ];
+            //2.鑾峰彇娌℃湁寮�濮嬬粨鏉熸棩鐨勪骇鍝�
+            List<Dealer_Product__c> DealerProductList = [
+                SELECT
+                    Id,
+                    Name,
+                    Dealer_Product2__c,
+                    Special_Campaign_Price__c,
+                    Campaign_StartDate__c,
+                    Campaign_EndDate__c,
+                    Dealer_Contact__c,
+                    Special_Discount__c,
+                    OrderGoods_Limit__c
+                FROM Dealer_Product__c
+                WHERE Dealer_Contact__c IN :contactDealer AND (Special_Discount__c != NULL OR Special_Campaign_Price__c != NULL)
+            ];
+            for (Dealer_Product__c dealerProduct : DealerProductList) {
+                //濡傛灉淇冮攢浠锋牸涓簄ull 鍒欒缃壒娈婃姌鎵�(鐧惧垎姣�)鍒伴泦鍚�
+                if (dealerProduct.Special_Campaign_Price__c == null) {
+                    dealerPDiscountMap.put(
+                        '' + dealerProduct.Dealer_Contact__c + dealerProduct.Dealer_Product2__c,
+                        dealerProduct.Special_Discount__c
+                    );
+                } else {
+                    dealerMPDiscountMap.put(
+                        '' + dealerProduct.Dealer_Contact__c + dealerProduct.Dealer_Product2__c,
+                        dealerProduct.Special_Campaign_Price__c
+                    );
+                }
+            }
+            //杩欐牱鍋氭槸涓轰簡璁$畻淇冮攢浠锋牸鏃� 浼樺厛璁$畻淇冮攢寮�濮嬬粨鏉熸棩涓嶄负绌虹殑浜у搧
+            //濡傛灉璇ラ泦鍚堟湁鍊� 鍒欒鏄庨渶瑕佹牴鎹綋鍓嶇殑閲戦鎴栬�呮姌鎵f潵璁$畻
+            if (haveDateList != null && haveDateList.size() > 0) {
+                for (Dealer_Product__c dealerProduct : haveDateList) {
+                    if (dealerProduct.Special_Campaign_Price__c == null) {
+                        dealerPDiscountMap.put(
+                            '' + dealerProduct.Dealer_Contact__c + dealerProduct.Dealer_Product2__c,
+                            dealerProduct.Special_Discount__c
+                        );
+                        dealerMPDiscountMap.remove('' + dealerProduct.Dealer_Contact__c + dealerProduct.Dealer_Product2__c);
+                    } else {
+                        dealerMPDiscountMap.put(
+                            '' + dealerProduct.Dealer_Contact__c + dealerProduct.Dealer_Product2__c,
+                            dealerProduct.Special_Campaign_Price__c
+                        );
+                        dealerPDiscountMap.remove('' + dealerProduct.Dealer_Contact__c + dealerProduct.Dealer_Product2__c);
+                    }
+                }
+            }
+            //=======================================缁忛攢鍟嗗悎鍚屾姌鎵�
+            List<Account> at = [
+                SELECT id, Name, State_Master__c, State_Master__r.Name, Sales_Section__c, Dealer_discount__c
+                FROM Account
+                WHERE
+                    Name = :contractName
+                    AND Id = :contractId //lt 20230517 瀹夊窘涓ょエ鍒� add
+                    AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add  1
+                    AND Contact_Type__c LIKE :agencyProType
+                    AND Contract_Decide_Start_Date__c <= :Date.Today()
+                    AND Contract_Decide_End_Date__c >= :Date.Today()
+                    AND Contract_Decide_End_Date__c >= :Date.Today()
+                    AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
+            ];
+            if (at.size() > 0 && at[0].Dealer_discount__c != null) {
+                disCount = at[0].Dealer_discount__c;
+            } else {
+                disCount = 100;
+            }
+            Consumable_order__c P = new Consumable_order__c();
+            List<Consumable_Orderdetails__c> Ins = new List<Consumable_Orderdetails__c>();
+            //鏂板缓璁㈠崟鏃�
+            if (String.isBlank(ESetId)) {
+                Integer i = 1;
+                Integer Roll = 0;
+                p.Name = '*';
+                p.Order_status__c = '鑽夋涓�';
+                p.Dealer_Info__c = accountid;
+                p.Order_ProType__c = agencyProType;
+                p.Offers_Price__c = coc.Offers_Price__c;
+                p.Order_date__c = coc.Order_date__c;
+                p.Order_effective_contact__c = contract[0].Id;
+                p.Order_Reason__c = coc.Order_Reason__c;
+                p.RecordTypeid = System.Label.RT_ConOrder_Order;
+                p.Overrule_order__c = coc.Id;
+                if (String.isNotBlank(methodType)) {
+                    p.orderPattern__c = methodType;
+                }
+                insert p;
+                List<Consumable_order__c> Consumable_order = [SELECT Name, orderPattern__c FROM Consumable_order__c WHERE id = :p.id];
+                for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsview) {
+                    Roll = Roll + 1;
+                    if (ass.check == true) {
+                        if (ass.esd.Consumable_Count__c == null || ass.esd.Consumable_Count__c == 0) {
+                            // ass.esd.Consumable_Count__c.addError('璇疯緭鍏ラ噰璐暟閲�');
+                            results.result = 'Fail';
+                            results.errorMsg = '璇疯緭鍏ラ噰璐暟閲�';
+                            return results;
+                        } else {
+                            Consumable_Orderdetails__c InsAfterDel = new Consumable_Orderdetails__c();
+                            String str = string.valueOf(i);
+                            if (str.length() == 1) {
+                                str = '0' + str;
+                            }
+                            InsAfterDel.Name = Consumable_order[0].Name + '-' + str;
+                            InsAfterDel.Consumable_Count__c = ass.esd.Consumable_Count__c;
+                            InsAfterDel.Consumable_order__c = p.id;
+                            InsAfterDel.Consumable_Product__c = ass.Prod.id;
+                            InsAfterDel.Box_Piece__c = '鐩�';
+                            //鍗忚璁㈣揣
+                            if (methodType.equals('agreementorder')) {
+                                Consumable_order[0].orderPattern__c = 'agreementorder';
+
+                                InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c * disCount / 100;
+                                //=====================================================================================update by rentx 2020-11-25
+                            } else if (methodType.equals('promotionorder')) {
+                                Consumable_order[0].orderPattern__c = 'promotionorder';
+                                //淇冮攢璁㈣揣
+                                //濡傛灉淇冮攢浠锋牸涓嶄负null 鍒欑洿鎺ヤ娇鐢ㄤ績閿�浠锋牸鏉ヨ绠楅噾棰�
+                                if (dealerMPDiscountMap.containsKey('' + contract[0].Id + ass.Prod.Id)) {
+                                    InsAfterDel.Intra_Trade_List_RMB__c = dealerMPDiscountMap.get('' + contract[0].Id + ass.Prod.Id);
+                                    system.debug('cai 0' + InsAfterDel.Intra_Trade_List_RMB__c);
+                                } else if (dealerPDiscountMap.containsKey('' + contract[0].Id + ass.Prod.Id)) {
+                                    InsAfterDel.Intra_Trade_List_RMB__c =
+                                        ass.Prod.Intra_Trade_List_RMB__c *
+                                        dealerPDiscountMap.get('' + contract[0].Id + ass.Prod.Id) /
+                                        100;
+                                    system.debug('cai 00' + InsAfterDel.Intra_Trade_List_RMB__c);
+                                }
+                                //=====================================================================================update by rentx 2020-11-25
+                            } else if (methodType.equals('hospitalorder')) {
+                                //鍖婚櫌鐗逛环
+                                Consumable_order[0].Order_ForHospital__c = hospitalId;
+                                Consumable_order[0].orderPattern__c = 'hospitalorder';
+                                if (
+                                    dealerHospitalmMap.containsKey(hospitalId + ass.Prod.Id) &&
+                                    dealerHospitalmMap.get(hospitalId + ass.Prod.Id) != null
+                                ) {
+                                    //鐩存帴鏍规嵁淇冮攢閲戦璁$畻
+                                    InsAfterDel.Intra_Trade_List_RMB__c = dealerHospitalmMap.get('' + hospitalId + ass.Prod.Id);
+                                }
+                            } else if (DealerProductMap.containsKey(ass.Prod.Id)) {
+                                InsAfterDel.Intra_Trade_List_RMB__c = DealerProductMap.get(ass.Prod.Id).Special_Campaign_Price__c;
+                                system.debug('cai 2' + InsAfterDel.Intra_Trade_List_RMB__c);
+                                InsAfterDel.Purchase_Unitprtprice_From__c = '淇冮攢';
+                                InsAfterDel.Special_Campaign_Price__c = DealerProductMap.get(ass.Prod.Id).Special_Campaign_Price__c;
+                            }
+                            InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
+                            i++;
+                            Ins.add(InsAfterDel);
+                        }
+                    }
+                }
+                ESetId = p.id;
+                if (Consumable_order.size() > 0) {
+                    update Consumable_order;
+                }
+            }
+            //淇敼涔嬪悗 淇濆瓨璁㈠崟
+            if (Ins.size() > 0) {
+                insert Ins;
+            } else {
+                //淇敼,鑾峰彇娑堣�楀搧璁㈠崟
+                List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
+                cocinfo = [
+                    SELECT Id, Name, Order_status__c, Dealer_Info__c, Deliver_date__c, Order_Reason__c, Offers_Price__c
+                    FROM Consumable_order__c
+                    WHERE Id = :ESetId
+                ];
+                if (cocinfo.size() > 0) {
+                    p = cocinfo[0];
+                }
+                p.Name = coc.Name;
+                p.Dealer_Info__c = accountid;
+                p.Order_ProType__c = agencyProType;
+                p.Order_date__c = coc.Order_date__c;
+                p.Order_effective_contact__c = contract[0].Id;
+                p.Order_Reason__c = coc.Order_Reason__c;
+                if (bargainPrice != null) {
+                    p.Offers_Price__c = bargainPrice;
+                }
+                update p;
+                List<Consumable_order__c> Consumable_order = [SELECT Name, orderPattern__c FROM Consumable_order__c WHERE id = :p.id];
+                List<Consumable_Orderdetails__c> qs = new List<Consumable_Orderdetails__c>();
+                qs = [
+                    SELECT Id
+                    FROM Consumable_Orderdetails__c
+                    WHERE Consumable_order__c = :ESetId AND Consumable_order__r.Dealer_Info__c = :accountid
+                ];
+                if (qs.size() > 0) {
+                    delete qs;
+                }
+                Integer i = 1;
+                for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsview) {
+                    if (ass.check == true) {
+                        Consumable_Orderdetails__c InsAfterDel = new Consumable_Orderdetails__c();
+                        if (ass.esd.Consumable_Count__c == null || ass.esd.Consumable_Count__c == 0) {
+                            // ass.esd.Consumable_Count__c.addError('璇疯緭鍏ラ噰璐暟閲�');
+                            results.result = 'Fail';
+                            results.errorMsg = '璇疯緭鍏ラ噰璐暟閲�';
+                            return results;
+                        } else {
+                            String str = string.valueOf(i);
+                            if (str.length() == 1) {
+                                str = '0' + str;
+                            }
+                            InsAfterDel.Name = Consumable_order[0].Name + '-' + str;
+                            InsAfterDel.Consumable_Count__c = ass.esd.Consumable_Count__c;
+                            InsAfterDel.Consumable_order__c = ESetId;
+                            InsAfterDel.Consumable_Product__c = ass.Prod.id;
+                            InsAfterDel.Box_Piece__c = '鐩�';
+                            //鍗忚璁㈣揣
+                            if (methodType.equals('agreementorder')) {
+                                Consumable_order[0].orderPattern__c = 'agreementorder';
+                                InsAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c * disCount / 100;
+                            } else if (methodType.equals('promotionorder')) {
+                                Consumable_order[0].orderPattern__c = 'promotionorder';
+                                //淇冮攢璁㈣揣
+                                if (dealerMPDiscountMap.containsKey('' + contract[0].Id + ass.Prod.Id)) {
+                                    InsAfterDel.Intra_Trade_List_RMB__c = dealerMPDiscountMap.get('' + contract[0].Id + ass.Prod.Id);
+                                } else if (dealerPDiscountMap.containsKey('' + contract[0].Id + ass.Prod.Id)) {
+                                    InsAfterDel.Intra_Trade_List_RMB__c =
+                                        ass.Prod.Intra_Trade_List_RMB__c *
+                                        dealerPDiscountMap.get('' + contract[0].Id + ass.Prod.Id) /
+                                        100;
+                                }
+                            } else if (methodType.equals('hospitalorder')) {
+                                Consumable_order[0].orderPattern__c = 'hospitalorder';
+                                //鍖婚櫌鐗逛环
+                                Consumable_order[0].Order_ForHospital__c = hospitalId;
+                                if (
+                                    dealerHospitalmMap.containsKey(hospitalId + ass.Prod.Id) &&
+                                    dealerHospitalmMap.get(hospitalId + ass.Prod.Id) != null
+                                ) {
+                                    //鐩存帴鏍规嵁淇冮攢閲戦璁$畻
+                                    InsAfterDel.Intra_Trade_List_RMB__c = dealerHospitalmMap.get('' + hospitalId + ass.Prod.Id);
+                                }
+                            } else if (DealerProductMap.containsKey(ass.Prod.Id)) {
+                                InsAfterDel.Intra_Trade_List_RMB__c = DealerProductMap.get(ass.Prod.Id).Special_Campaign_Price__c;
+                                InsAfterDel.Purchase_Unitprtprice_From__c = '淇冮攢';
+                                InsAfterDel.Special_Campaign_Price__c = DealerProductMap.get(ass.Prod.Id).Special_Campaign_Price__c;
+                            }
+                            // ==================================================涔嬪墠鐨勪績閿�璁㈣揣鐨勯�昏緫
+                            InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
+                            i++;
+                            Ins.add(InsAfterDel);
+                        }
+                    }
+                }
+                if (Ins.size() > 0) {
+                    insert Ins;
+                }
+            }
+            results.result = 'Success';
+            results.eSetId = ESetId;
+        } catch (Exception e) {
+            Database.rollback(sp);
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    //鍒犻櫎闄勪欢
+    @AuraEnabled
+    public static Results deleteAtt(String contentVersionId, String cocId) {
+        Results results = new Results();
+        try {
+            List<ContentVersion> cvInfo = [SELECT Id FROM ContentVersion WHERE FirstPublishLocationId = :cocId];
+            ContentVersion conVersion = [SELECT ContentDocumentId FROM ContentVersion WHERE Id = :contentVersionId];
+            String contentDocumentId = conVersion.ContentDocumentId;
+            ContentDocument conDocument = [SELECT Id FROM ContentDocument WHERE Id = :contentDocumentId];
+            delete conDocument;
+            if (cvInfo.size() <= 1) {
+                Consumable_order__c c = [SELECT Id FROM Consumable_order__c WHERE Id = :cocId];
+                c.Consumable_pdf_insert_day__c = null;
+                update c;
+            }
+            results.result = 'Success';
+        } catch (Exception e) {
+            results.result = 'Fail';
+            results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        }
+        return results;
+    }
+
+    public static void getConsumableShowTableFieldValue() {
+        for (ConsumableorderdetailsInfo con : consumableorderdetailsRecordsview) {
+            if (con.Prod != null) {
+                con.recordId = con.Prod.Id;
+                if (!con.oldCheck) {
+                    con.prodName = con.Prod.Name__c;
+                    // System.debug('ProdName:'+con.Prod.Id+'---'+con.Prod.Name__c);
+                }
+                con.prodSFDAStatus = con.Prod.SFDA_Status__c;
+                con.prodCategory3 = con.Prod.Category3__c;
+                con.prodCategory4 = con.Prod.Category4__c;
+                con.prodCategory5 = con.Prod.Category5__c;
+                con.prodIntraTradeList = con.Prod.Intra_Trade_List_RMB__c;
+            }
+            if (con.esd != null) {
+                // if(con.oldCheck){
+                // con.prodName = con.esd.Consumable_Product__r.Name__c;
+                // }
+                con.consumableCount = con.esd.Consumable_count__c;
+            }
+        }
+    }
+
+    public class ConsumableorderdetailsInfo implements Comparable {
+        @AuraEnabled
+        public Boolean check { get; set; }
+        @AuraEnabled
+        public Boolean oldCheck { get; set; }
+        @AuraEnabled
+        public Consumable_Orderdetails__c esd { get; set; }
+        @AuraEnabled
+        public Product2__c Prod { get; set; }
+        @AuraEnabled
+        public Integer packing_list { get; set; }
+        @AuraEnabled
+        public Date expiration_Date { get; set; }
+        @AuraEnabled
+        public String approbation_No { get; set; }
+        @AuraEnabled
+        public Decimal allnumber { get; set; }
+        @AuraEnabled
+        public Decimal allnumber_piece { get; set; }
+        @AuraEnabled
+        public Decimal oldConsumableCount { get; set; }
+        @AuraEnabled
+        public Boolean canSelect { get; set; }
+        @AuraEnabled
+        public ContentVersion Concc { get; set; }
+        @AuraEnabled
+        public Boolean sortBy { get; set; }
+        @AuraEnabled
+        public Decimal upperlimit { get; set; }
+        @AuraEnabled
+        public Decimal lowerlimit { get; set; }
+        @AuraEnabled
+        public Decimal SpecialCampaignPrice { get; set; }
+        @AuraEnabled
+        public Decimal orderGoods_Limit { get; set; }
+        @AuraEnabled
+        public Date Campaign_EndDate { get; set; }
+        @AuraEnabled
+        public String recordId { get; set; }
+        @AuraEnabled
+        public String prodName { get; set; }
+        @AuraEnabled
+        public String prodSFDAStatus { get; set; }
+        @AuraEnabled
+        public String prodCategory3 { get; set; }
+        @AuraEnabled
+        public String prodCategory4 { get; set; }
+        @AuraEnabled
+        public String prodCategory5 { get; set; }
+        @AuraEnabled
+        public Decimal prodIntraTradeList { get; set; }
+        @AuraEnabled
+        public Decimal consumableCount { get; set; }
+
+        // 宸插瓨浜у搧鏄庣粏
+        public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) {
+            check = true;
+            oldCheck = true;
+            esd = e;
+            Prod = e.Consumable_Product__r;
+            oldConsumableCount = e.Consumable_Count__c;
+            canSelect = true;
+            allnumber = 0;
+            allnumber_piece = 0;
+        }
+
+        public ConsumableorderdetailsInfo(Product2__c e) {
+            check = false;
+            oldCheck = false;
+            esd = new Consumable_Orderdetails__c();
+            Prod = e;
+            oldConsumableCount = null;
+            canSelect = true;
+            allnumber = 0;
+            allnumber_piece = 0;
         }
         //闄勪欢
-        // attachmentinfo = [SELECT Id, Name, OwnerId, Owner.Name FROM Attachment WHERE parentid = :ESetId];
-        // if (attachmentinfo.size() > 0) {
-        //     for (Integer i = 0; i < attachmentinfo.size(); i++) {
-        //         attachmentRecoeds.add(new ConsumableorderdetailsInfo(attachmentinfo[i]));
-        //     }
-        // }
-        List<ContentDocumentLink> links = [
-          SELECT Id, ContentDocumentId
-          FROM ContentDocumentLink
-          WHERE LinkedEntityId = :ESetId
-        ];
-        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++) {
-              attachmentRecoeds.add(new ConsumableorderdetailsInfo(cvInfo[i]));
-            }
-          }
+        public ConsumableorderdetailsInfo(ContentVersion e) {
+            Concc = e;
         }
-        //
-        consumableorderdetailsRecords.sort();
-        getPageInfo();
-      }
-      //璁$畻搴撳瓨涓娿�佷笅闄�
-      productLimtAndDate();
-      lowerRecord();
-      //鏄庣粏鎺掑簭
-      List<String> upper = new List<String>();
-      if (String.isNotBlank(ESetid)) {
-        for (ConsumableorderdetailsInfo bss : consumableorderdetailsRecords) {
-          if (
-            bss.esd.Consumable_count__c != null &&
-            bss.allnumber != null &&
-            bss.upperlimit != null
-          ) {
-            if (bss.esd.Consumable_count__c + bss.allnumber > bss.upperlimit) {
-              upper.add(bss.esd.Consumable_Product__r.Name__c);
-            }
-          }
-        }
-      }
-      if (upper.size() > 0) {
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺瓒呭嚭搴撳瓨涓婇檺!'));
-        warningMsgList.add('瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺瓒呭嚭搴撳瓨涓婇檺!');
-        for (Integer i = 0; i < upper.size(); i++) {
-          // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, upper[i]));
-          warningMsgList.add(upper[i]);
-        }
-      }
-      if (lower.size() > 0) {
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺浣庝簬搴撳瓨涓嬮檺!'));
-        warningMsgList.add('瀛樺湪浠ヤ笅浜у搧璁㈣揣鏁伴噺浣庝簬搴撳瓨涓嬮檺!');
-        for (Integer i = 0; i < lower.size(); i++) {
-          // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, lower[i]));
-          warningMsgList.add(lower[i]);
-        }
-      }
-      //浠锋牸鏌ョ湅鏉冮檺
-      Schema.DescribeFieldResult dfr = Product2__c.Intra_Trade_List_RMB__c.getDescribe();
-      cansee = dfr.isAccessible();
-      AggregateResult[] categoryList = [
-        SELECT Count(id), Category3_text__c c3c
-        FROM Product2__c
-        WHERE
-          Estimation_Entry_Possibility__c = '鈼�'
-          AND Product_Type__c LIKE :agencyProType
-          AND Category3_text__c != NULL
-        GROUP BY Category3_text__c
-      ];
-      //categoty3
-      // categoryOptionList = new List<SelectOption>();
-      category3Option = new List<CusOption>();
-      // categoryOptionList.add(new SelectOption('', '-鏃�-'));
-      category3Option.add(new CusOption('-鏃�-', ''));
-      for (AggregateResult category3Search : categoryList) {
-        String deliverycnt = String.valueOf(category3Search.get('c3c'));
-        // categoryOptionList.add(new SelectOption(deliverycnt, deliverycnt));
-        category3Option.add(new CusOption(deliverycnt, deliverycnt));
-      }
-      //categoty4
-      // category4OptionList = new List<SelectOption>();
-      category4Option = new List<CusOption>();
-      // category4OptionList.add(new SelectOption('', '-鏃�-'));
-      category4Option.add(new CusOption('-鏃�-', ''));
-      //categoty5
-      // category5OptionList = new List<SelectOption>();
-      category5Option = new List<CusOption>();
-      // category5OptionList.add(new SelectOption('', '-鏃�-'));
-      category5Option.add(new CusOption('-鏃�-', ''));
-      //return msg
-      consumableorderdetailsRecordsview = consumableorderdetailsRecords;
-      getConsumableShowTableFieldValue();
-      results.result = 'Success';
-      results.coc = coc;
-      results.editAble = editAble;
-      results.edoffersPrice = edoffersPrice;
-      results.editDelCommitBtnDisabled = EditDelCommitBtnDisabled;
-      results.category3Option = category3Option;
-      results.category4Option = category4Option;
-      results.category5Option = category5Option;
-      results.hospitalName = hospitalName;
-      results.contractName = contractName;
-      results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
-      results.attachmentRecoeds = attachmentRecoeds;
-      results.cansee = cansee;
-      results.agencyProType = agencyProType;
-      results.agencyProType1 = agencyProType1;
-      results.OSHFLG = OSHFLG;
-      results.userWorkLocation = userWorkLocation;
-      results.accountName = accountName;
-      results.category_Goods = category_Goods;
-      results.specialCampaign = specialCampaign;
-      results.dealerProductId = DealerProductId;
-      results.accountid = accountid;
-      results.hospitalId = hospitalId;
-      results.contractId = contractId;
-      results.contactDealer = contactDealer;
-      results.errorMsgList = errorMsgList;
-      results.warningMsgList = warningMsgList;
-      results.methodType = methodType;
-      results.proLimitAndDate = proLimitAndDate;
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  @AuraEnabled
-  public static Results categoryAllload(
-    String agencyProTypeStr,
-    String category3Str
-  ) {
-    Results results = new Results();
-    agencyProType = agencyProTypeStr;
-    category3 = category3Str;
-    try {
-      AggregateResult[] category4List = [
-        SELECT Count(id), Category4_text__c c4c
-        FROM Product2__c
-        WHERE
-          Estimation_Entry_Possibility__c = '鈼�'
-          AND Product_Type__c LIKE :agencyProType
-          AND Category3_text__c = :category3
-          AND Category4_text__c != NULL
-          AND Category5_text__c != NULL
-        GROUP BY Category4_text__c
-      ];
-      // category4OptionList = new List<SelectOption>();
-      category4Option = new List<CusOption>();
-      // category4OptionList.add(new SelectOption('', '-鏃�-'));
-      category4Option.add(new CusOption('-鏃�-', ''));
-      for (AggregateResult category4Search : category4List) {
-        String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
-        // category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
-        category4Option.add(new CusOption(deliverycnt4, deliverycnt4));
-      }
-      AggregateResult[] category5List = [
-        SELECT Count(id), Category5_text__c c5c
-        FROM Product2__c
-        WHERE
-          Estimation_Entry_Possibility__c = '鈼�'
-          AND Product_Type__c LIKE :agencyProType
-          AND Category3_text__c = :category3
-          AND Category4_text__c != NULL
-          AND Category5_text__c != NULL
-        GROUP BY Category5_text__c
-      ];
-      // category5OptionList = new List<SelectOption>();
-      category5Option = new List<CusOption>();
-      // category5OptionList.add(new SelectOption('', '-鏃�-'));
-      category5Option.add(new CusOption('-鏃�-', ''));
-      for (AggregateResult category5Search : category5List) {
-        String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
-        // category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
-        category5Option.add(new CusOption(deliverycnt5, deliverycnt5));
-      }
-      results.category4Option = category4Option;
-      results.category5Option = category5Option;
-      results.result = 'Success';
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  @AuraEnabled
-  public static Results categoryload(
-    String agencyProTypeStr,
-    String category3Str,
-    String category4Str
-  ) {
-    Results results = new Results();
-    agencyProType = agencyProTypeStr;
-    category3 = category3Str;
-    category4 = category4Str;
-    try {
-      AggregateResult[] category4List = [
-        SELECT Count(id), Category4_text__c c4c
-        FROM Product2__c
-        WHERE
-          Estimation_Entry_Possibility__c = '鈼�'
-          AND Product_Type__c LIKE :agencyProType
-          AND Category3_text__c = :category3
-          AND Category4_text__c != NULL
-          AND Category5_text__c != NULL
-        GROUP BY Category4_text__c
-      ];
-      // category4OptionList = new List<SelectOption>();
-      category4Option = new List<CusOption>();
-      // category4OptionList.add(new SelectOption('', '-鏃�-'));
-      category4Option.add(new CusOption('-鏃�-', ''));
-      for (AggregateResult category4Search : category4List) {
-        String deliverycnt4 = String.valueOf(category4Search.get('c4c'));
-        // category4OptionList.add(new SelectOption(deliverycnt4, deliverycnt4));
-        category4Option.add(new CusOption(deliverycnt4, deliverycnt4));
-      }
-
-      AggregateResult[] category5List = [
-        SELECT Count(id), Category5_text__c c5c
-        FROM Product2__c
-        WHERE
-          Estimation_Entry_Possibility__c = '鈼�'
-          AND Product_Type__c LIKE :agencyProType
-          AND Category3_text__c = :category3
-          AND Category4_text__c = :category4
-          AND Category5_text__c != NULL
-        GROUP BY Category5_text__c
-      ];
-      // category5OptionList = new List<SelectOption>();
-      category5Option = new List<CusOption>();
-      // category5OptionList.add(new SelectOption('', '-鏃�-'));
-      category5Option.add(new CusOption('-鏃�-', ''));
-      for (AggregateResult category5Search : category5List) {
-        String deliverycnt5 = String.valueOf(category5Search.get('c5c'));
-        // category5OptionList.add(new SelectOption(deliverycnt5, deliverycnt5));
-        category5Option.add(new CusOption(deliverycnt5, deliverycnt5));
-      }
-      results.category4Option = category4Option;
-      results.category5Option = category5Option;
-      results.result = 'Success';
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  // 鐢婚潰鍒濆鍖�
-  public static void lowerRecord() {
-    List<ConsumableorderdetailsInfo> lowerRecord = new List<ConsumableorderdetailsInfo>();
-    //搴撳瓨鏄庣粏鍙栧緱
-    Map<String, ConsumableorderdetailsInfo> midMaprecord = new Map<String, ConsumableorderdetailsInfo>();
-    List<Product2__c> product2Selected = [
-      SELECT Id, Name, Name__c, Intra_Trade_List_RMB__c, Asset_Model_No__c
-      FROM Product2__c
-      WHERE
-        Pro2_Dealer_Object__c = TRUE
-        AND Estimation_Entry_Possibility__c = '鈼�'
-    ];
-    for (Integer i = 0; i < product2Selected.size(); i++) {
-      lowerRecord.add(new ConsumableorderdetailsInfo(product2Selected[i]));
-      //鍏堟妸ConsumableorderdetailsRecords 鍋氭垚map
-      midMaprecord.put(
-        product2Selected[i].Id,
-        new ConsumableorderdetailsInfo(product2Selected[i])
-      );
-    }
-    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,
-        Guarantee_period_for_products__c,
-        Isoverdue__c,
-        Box_Piece__c,
-        hospitalSpecialOffer__c,
-        promotionorder__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 Consumable_order_minor__r.Dealer_Info__c = :accountid
-        AND Dealer_Info_text__c = :accountName
-    ];
-    for (Integer i = 0; i < countDel.size(); i++) {
-      //add by rentx 2020-12-09
-      if (String.isNotBlank(methodType) && methodType.equals('hospitalorder')) {
-        if (countDel[i].hospitalSpecialOffer__c == true) {
-          //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
-          if (midMaprecord.containsKey(countDel[i].Consumable_Product__c)) {
-            ConsumableorderdetailsInfo Jstage = midMaprecord.get(
-              countDel[i].Consumable_Product__c
-            );
-            if (countDel[i].Box_Piece__c == '鐩�') {
-              Jstage.allnumber = Jstage.allnumber + 1;
-            } else {
-              Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-            }
-            //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-            midMaprecord.put(countDel[i].Consumable_Product__c, Jstage);
-          }
-        }
-      } else if (
-        String.isBlank(methodType) || methodType.equals('promotionorder')
-      ) {
-        if (countDel[i].promotionorder__c == true) {
-          if (midMaprecord.containsKey(countDel[i].Consumable_Product__c)) {
-            ConsumableorderdetailsInfo Jstage = midMaprecord.get(
-              countDel[i].Consumable_Product__c
-            );
-            if (countDel[i].Box_Piece__c == '鐩�') {
-              Jstage.allnumber = Jstage.allnumber + 1;
-            } else {
-              Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-            }
-            midMaprecord.put(countDel[i].Consumable_Product__c, Jstage);
-          }
-        }
-      } else if (
-        String.isBlank(methodType) ||
-        (!methodType.equals('promotionorder') &&
-        !methodType.equals('hospitalorder'))
-      ) {
-        if (
-          countDel[i].promotionorder__c == false &&
-          countDel[i].hospitalSpecialOffer__c == false
-        ) {
-          if (midMaprecord.containsKey(countDel[i].Consumable_Product__c)) {
-            ConsumableorderdetailsInfo Jstage = midMaprecord.get(
-              countDel[i].Consumable_Product__c
-            );
-            if (countDel[i].Box_Piece__c == '鐩�') {
-              Jstage.allnumber = Jstage.allnumber + 1;
-            } else {
-              Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-            }
-            midMaprecord.put(countDel[i].Consumable_Product__c, Jstage);
-          }
-        }
-      }
-    }
-    lowerRecord = new List<ConsumableorderdetailsInfo>();
-    //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecords
-    for (ConsumableorderdetailsInfo bss : midMaprecord.values()) {
-      lowerRecord.add(bss);
-    }
-    allProductLimt(lowerRecord);
-    for (ConsumableorderdetailsInfo bss : lowerRecord) {
-      if (bss.allnumber < bss.lowerlimit) {
-        lower.add(bss.Prod.Name__c);
-      }
-    }
-  }
-
-  //搴撳瓨涓婁笅闄�
-  public static void productLimtAndDate() {
-    String nowName = null, nowRightAsstModelNo = null;
-    Map<String, String> productLimt = new Map<String, String>();
-    for (Integer i = 0; i < proLimitAndDate.size(); i++) {
-      nowName = proLimitAndDate[i];
-      if (nowName.indexOf('|') >= 0) {
-        nowRightAsstModelNo = nowName.subString(0, nowName.indexOf('|'));
-        nowName = nowName.subString(nowName.indexOf('|') + 1);
-      }
-      productLimt.put(nowRightAsstModelNo, nowName);
-    }
-    for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecords) {
-      if (productLimt.containsKey(ass.Prod.Asset_Model_No__c)) {
-        ass.lowerlimit = decimal.valueOf(
-          productLimt.get(ass.Prod.Asset_Model_No__c)
-            .subString(
-              0,
-              productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|')
-            )
-        );
-        ass.upperlimit = decimal.valueOf(
-          productLimt.get(ass.Prod.Asset_Model_No__c)
-            .subString(
-              productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|') + 1
-            )
-        );
-      }
-    }
-  }
-
-  //鍏ㄩ儴搴撳瓨涓婁笅闄�
-  private static void allProductLimt(
-    List<ConsumableorderdetailsInfo> lowerRecord
-  ) {
-    String nowName = null, nowRightAsstModelNo = null;
-    Map<String, String> productLimt = new Map<String, String>();
-    for (Integer i = 0; i < proLimitAndDate.size(); i++) {
-      nowName = proLimitAndDate[i];
-      if (nowName.indexOf('|') >= 0) {
-        nowRightAsstModelNo = nowName.subString(0, nowName.indexOf('|'));
-        nowName = nowName.subString(nowName.indexOf('|') + 1);
-      }
-      productLimt.put(nowRightAsstModelNo, nowName);
-    }
-    for (ConsumableorderdetailsInfo ass : lowerRecord) {
-      if (productLimt.containsKey(ass.Prod.Asset_Model_No__c)) {
-        ass.lowerlimit = decimal.valueOf(
-          productLimt.get(ass.Prod.Asset_Model_No__c)
-            .subString(
-              0,
-              productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|')
-            )
-        );
-        ass.upperlimit = decimal.valueOf(
-          productLimt.get(ass.Prod.Asset_Model_No__c)
-            .subString(
-              productLimt.get(ass.Prod.Asset_Model_No__c).indexOf('|') + 1
-            )
-        );
-      }
-    }
-  }
-
-  @AuraEnabled
-  public static Results searchConsumableorderdetails(
-    String userWorkLocationStr,
-    String agencyProTypeStr,
-    String accountNameStr,
-    String accountIdStr,
-    String hospitalIdStr,
-    String contractIdStr,
-    String category1Str,
-    String category3Str,
-    String category4Str,
-    String category5Str,
-    String category_GoodStr,
-    Boolean specialCampaignStr,
-    String dealerProductIdStr,
-    String methodTypeStr,
-    String consumableorderdetailsRecordsviewStr,
-    Boolean editAbleStr,
-    List<String> proLimitAndDateList
-  ) {
-    Results results = new Results();
-    errorMsgList = new List<String>();
-    warningMsgList = new List<String>();
-    userWorkLocation = userWorkLocationStr;
-    agencyProType = agencyProTypeStr;
-    accountName = accountNameStr;
-    accountid = accountIdStr;
-    hospitalId = hospitalIdStr;
-    contractId = contractIdStr;
-    category1 = category1Str;
-    category3 = category3Str;
-    category4 = category4Str;
-    category5 = category5Str;
-    category_Goods = category_GoodStr;
-    specialCampaign = specialCampaignStr;
-    methodType = methodTypeStr;
-    editAble = editAbleStr;
-    proLimitAndDate = proLimitAndDateList;
-    dealerProductId = (List<String>) JSON.deserialize(
-      dealerProductIdStr,
-      List<String>.class
-    );
-    consumableorderdetailsRecordsview = (List<ConsumableorderdetailsInfo>) JSON.deserialize(
-      consumableorderdetailsRecordsviewStr,
-      List<ConsumableorderdetailsInfo>.class
-    );
-    size = Integer.valueOf(System.Label.orderdetLimitsize);
-    pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
-    try {
-      searchDone = 'searchDone';
-      sortKey = '1';
-      preSortKey = '1';
-      sortOrderAsc = false;
-      sortOrder = new String[7];
-      sortOrder = new List<String>{ ' ', ' ', ' ', ' ', '鈫�', '', '', '' };
-      Map<String, String> selectedIdMap = new Map<String, String>();
-      List<ConsumableorderdetailsInfo> derdetailsRecords = new List<ConsumableorderdetailsInfo>();
-      Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
-      List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
-      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,
-          //add by rentx 2020-12-09
-          hospitalSpecialOffer__c,
-          promotionorder__c
-        //add by rentx 2020-12-09
-        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 Arrive_Owner_Work_Location__c = :userWorkLocation
-          AND Dealer_Info_text__c = :accountName
-      ];
-      List<Product2__c> product2Selected = new List<Product2__c>();
-      consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
-      soql = makeSoql(
-        category1,
-        category_Goods,
-        category3,
-        category4,
-        category5,
-        specialCampaign,
-        DealerProductId
-      );
-      size = Integer.valueOf(System.Label.orderdetLimitsize);
-      initStandardController();
-      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++) {
-        //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
-        if (
-          String.isNotBlank(methodType) && methodType.equals('hospitalorder')
-        ) {
-          if (countDel[i].hospitalSpecialOffer__c == true) {
-            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-              ConsumableorderdetailsInfo Jstage = MidMap.get(
-                countDel[i].Consumable_Product__c
-              );
-              if (countDel[i].Box_Piece__c == '鐩�') {
-                Jstage.allnumber = Jstage.allnumber + 1;
-              } else {
-                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-              }
-              MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-            }
-          }
-        } else if (
-          String.isBlank(methodType) || methodType.equals('promotionorder')
-        ) {
-          if (countDel[i].promotionorder__c == true) {
-            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-              ConsumableorderdetailsInfo Jstage = MidMap.get(
-                countDel[i].Consumable_Product__c
-              );
-              if (countDel[i].Box_Piece__c == '鐩�') {
-                Jstage.allnumber = Jstage.allnumber + 1;
-              } else {
-                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-              }
-              MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-            }
-          }
-        } else if (
-          String.isBlank(methodType) ||
-          (!methodType.equals('promotionorder') &&
-          !methodType.equals('hospitalorder'))
-        ) {
-          if (
-            countDel[i].promotionorder__c == false &&
-            countDel[i].hospitalSpecialOffer__c == false
-          ) {
-            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-              ConsumableorderdetailsInfo Jstage = MidMap.get(
-                countDel[i].Consumable_Product__c
-              );
-              if (countDel[i].Box_Piece__c == '鐩�') {
-                Jstage.allnumber = Jstage.allnumber + 1;
-              } else {
-                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-              }
-              MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-            }
-          }
-        }
-      }
-      //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecordsa0l0l0000000byXAAQ
-      for (ConsumableorderdetailsInfo bss : MidMap.values()) {
-        if (selectedIdMap.containsKey(bss.Prod.id)) {
-          continue;
-        } else {
-          if (DealerProductMap.containsKey(bss.Prod.Id)) {
-            bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id)
-              .Special_Campaign_Price__c;
-            bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id)
-              .Campaign_EndDate__c;
-            bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id)
-              .OrderGoods_Limit__c;
-          }
-          bss.sortBy = sortOrderAsc;
-          bss.packing_list = Integer.valueOf(
-            bss.Prod.Product2__r.Packing_list_manual__c
-          );
-          bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
-          bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
-          consumableorderdetailsRecords.add(bss);
-        }
-      }
-      consumableorderdetailsRecords.sort();
-      productLimtAndDate();
-      getPageInfo();
-      sortKey = '1';
-      preSortKey = '1';
-      sortOrderAsc = false;
-      sortOrder = new String[7];
-      sortOrder = new List<String>{ '  ', '  ', '銆�', '', '', '', '', '' };
-      cate1ForSort = category1;
-      // 鏄剧ず鏁版嵁鏉℃暟淇℃伅
-      // makeMessage();
-      results.errorMsgList = errorMsgList;
-      results.warningMsgList = warningMsgList;
-      if (consumableorderdetailsRecords.size() > 0) {
-        getConsumableShowTableFieldValue();
-        results.result = 'Success';
-        results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
-        results.errorMsg =
-          '鎼滅储鍒�' +
-          consumableorderdetailsRecords.size() +
-          '浠朵骇鍝�';
-      } else {
-        getConsumableShowTableFieldValue();
-        results.result = 'Fail';
-        results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
-        results.errorMsg = '娌℃湁鎼滅储鍒扮浉鍏虫暟鎹�';
-      }
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  //鍖婚櫌--妫�绱�
-  @AuraEnabled
-  public static Results searchorderdetails(
-    String methodTypeStr,
-    String accountIdStr,
-    String hospitalIdStr,
-    String contractIdStr,
-    String userWorkLocationStr,
-    String accountNameStr,
-    List<String> proLimitAndDateList,
-    Boolean editAbleStr
-  ) {
-    Results results = new Results();
-    methodType = methodTypeStr;
-    accountId = accountIdStr;
-    hospitalId = hospitalIdStr;
-    contractId = contractIdStr;
-    userWorkLocation = userWorkLocationStr;
-    accountName = accountNameStr;
-    proLimitAndDate = proLimitAndDateList;
-    editAble = editAbleStr;
-    size = Integer.valueOf(System.Label.orderdetLimitsize);
-    pageLimit = Integer.valueOf(System.Label.orderdetPageLimitsize);
-    try {
-      soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c,Category3__c,Category4__c,Category5__c FROM Product2__c WHERE Estimation_Entry_Possibility__c = \'鈼媆' ';
-      if (methodType.equals('hospitalorder')) {
-        //鍖婚櫌id 鏈夊��
-        List<hospitalprice__c> hplist = [
-          SELECT id, product__c
-          FROM hospitalprice__c
-          WHERE account__c = :accountid AND hospital__c = :hospitalId
-        ];
-        if (hplist != null && hplist.size() > 0) {
-          List<String> hpids = new List<String>();
-          for (hospitalprice__c hc : hplist) {
-            hpids.add(hc.product__c);
-          }
-
-          if (hpids != null && hpids.size() > 0) {
-            soql += ' AND Id in : hpids ';
-          }
-        } else {
-          //璇ュ尰闄笅娌℃湁绗﹀悎鍖婚櫌鐗逛环鐨勪骇鍝�
-          soql += ' AND Id = null ';
-        }
-      } else if (methodType.equals('promotionorder')) {
-        List<Dealer_Product__c> dpclist = [
-          SELECT Id, Dealer_Product2__c
-          FROM Dealer_Product__c
-          WHERE
-            Dealer_Contact__c = :contractId
-            AND (Special_Discount__c != NULL
-            OR Special_Campaign_Price__c != NULL)
-        ];
-        if (dpclist != null && dpclist.size() > 0) {
-          String ids = '(';
-          for (Dealer_Product__c hc : dpclist) {
-            hpids.add(hc.Dealer_Product2__c);
-            ids += '\'' + hc.Dealer_Product2__c + '\',';
-          }
-          ids = ids.substring(0, ids.length() - 1) + ')';
-          if (hpids != null && hpids.size() > 0) {
-            // soql += ' AND Id in : hpids ';
-            soql += ' AND Id in ' + ids;
-          }
-        } else {
-          //璇ョ粡閿�鍟嗕笅娌℃湁淇冮攢浠锋牸鐨勪骇鍝�
-          soql += ' AND Id = null ';
-        }
-      }
-      size = Integer.valueOf(System.Label.orderdetLimitsize);
-      initStandardController();
-      List<Product2__c> product2Selected = new List<Product2__c>();
-      Map<String, ConsumableorderdetailsInfo> MidMap = new Map<String, ConsumableorderdetailsInfo>();
-      Map<String, String> selectedIdMap = new Map<String, String>();
-      consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
-      product2Selected = Database.query(soql);
-      for (Integer i = 0; i < product2Selected.size(); i++) {
-        MidMap.put(
-          product2Selected[i].Id,
-          new ConsumableorderdetailsInfo(product2Selected[i])
-        );
-      }
-      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,
-          hospitalSpecialOffer__c,
-          promotionorder__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 Arrive_Owner_Work_Location__c = :userWorkLocation
-          //AND Consumable_order_minor__r.Dealer_Info__c = :accountid
-          AND Dealer_Info_text__c = :accountName
-      ];
-      for (Integer i = 0; i < countDel.size(); i++) {
-        if (methodType.equals('hospitalorder')) {
-          if (countDel[i].hospitalSpecialOffer__c == true) {
-            //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
-            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-              ConsumableorderdetailsInfo Jstage = MidMap.get(
-                countDel[i].Consumable_Product__c
-              );
-              if (countDel[i].Box_Piece__c == '鐩�') {
-                Jstage.allnumber = Jstage.allnumber + 1;
-              } else {
-                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-              }
-              //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-              MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-            }
-          }
-        } else if (methodType.equals('promotionorder')) {
-          if (countDel[i].promotionorder__c == true) {
-            //鐒跺悗寰幆CountDel鍘讳慨鏀筸ap閲岀殑allnumber
-            if (MidMap.containsKey(countDel[i].Consumable_Product__c)) {
-              ConsumableorderdetailsInfo Jstage = MidMap.get(
-                countDel[i].Consumable_Product__c
-              );
-              if (countDel[i].Box_Piece__c == '鐩�') {
-                Jstage.allnumber = Jstage.allnumber + 1;
-              } else {
-                Jstage.allnumber_piece = Jstage.allnumber_piece + 1;
-              }
-              //Jstage.BoxPiece = CountDel[i].Box_Piece__c;
-              MidMap.put(countDel[i].Consumable_Product__c, Jstage);
-            }
-          }
-        }
-      }
-      //鍐嶆妸map閲岀殑鍊间粠鏂拌祴缁機onsumableorderdetailsRecordsa0l0l0000000byXAAQ
-      for (ConsumableorderdetailsInfo bss : MidMap.values()) {
-        if (selectedIdMap.containsKey(bss.Prod.id)) {
-          continue;
-        } else {
-          if (DealerProductMap.containsKey(bss.Prod.Id)) {
-            bss.SpecialCampaignPrice = DealerProductMap.get(bss.Prod.Id)
-              .Special_Campaign_Price__c;
-            bss.Campaign_EndDate = DealerProductMap.get(bss.Prod.Id)
-              .Campaign_EndDate__c;
-            bss.orderGoods_Limit = DealerProductMap.get(bss.Prod.Id)
-              .OrderGoods_Limit__c;
-          }
-          bss.sortBy = sortOrderAsc;
-          bss.packing_list = Integer.valueOf(
-            bss.Prod.Product2__r.Packing_list_manual__c
-          );
-          bss.approbation_No = bss.Prod.Product2__r.SFDA_Approbation_No__c;
-          bss.expiration_Date = bss.Prod.Product2__r.SFDA_Expiration_Date__c;
-          consumableorderdetailsRecords.add(bss);
-        }
-      }
-      consumableorderdetailsRecords.sort();
-      productLimtAndDate();
-      getPageInfoForHos();
-      sortKey = '1';
-      preSortKey = '1';
-      sortOrderAsc = false;
-      sortOrder = new String[7];
-      sortOrder = new List<String>{ '  ', '  ', '銆�', '', '', '', '', '' };
-      cate1ForSort = category1;
-      // 鏄剧ず鏁版嵁鏉℃暟淇℃伅
-      noOfRecords = consumableorderdetailsRecords.size();
-      getConsumableShowTableFieldValue();
-      results.consumableorderdetailsRecordsview = consumableorderdetailsRecordsview;
-      if (consumableorderdetailsRecordsview.size() > 0) {
-        results.result = 'Success';
-        results.errorMsg =
-          '鍏辨悳绱㈠埌' +
-          consumableorderdetailsRecordsview.size() +
-          '鏉℃暟鎹�';
-      } else {
-        results.result = 'Fail';
-        results.errorMsg = '娌℃湁鎼滅储鍒扮浉鍏虫暟鎹�';
-      }
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  //鐢ㄦ埛鍒囨崲鍖婚櫌鏃跺彇娑堥�変腑鐨勪骇鍝�
-  private static List<ConsumableorderdetailsInfo> getPageInfoForHos() {
-    List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
-    Map<String, String> selectedIdMap = new Map<String, String>();
-    consumableorderdetailsRecordsview = new List<ConsumableorderdetailsInfo>();
-    if (editAble) {
-      consumableorderdetailsRecordsview = reSet;
-    }
-    Integer pagestartNo = (con.getPageNumber() * size) - size;
-    Integer pageendNo = (con.getPageNumber() * size) > noOfRecords
-      ? noOfRecords
-      : (con.getPageNumber() * size - 1);
-    Integer addNo = 0;
-    for (
-      Integer i = pagestartNo; i < consumableorderdetailsRecords.size(); i++
-    ) {
-      Consumable_Orderdetails__c orderdetails1 = new Consumable_Orderdetails__c();
-      if (selectedIdMap.containsKey(consumableorderdetailsRecords[i].Prod.Id)) {
-        addNo++;
-        //continue;
-      }
-      // else if (consumableorderdetailsRecordsview.size() >= pageLimit + size) {
-      //     break;
-      // }
-      else {
-        if (consumableorderdetailsRecords[i].check == false) {
-          consumableorderdetailsRecords[i].esd = orderdetails1;
-        }
-        consumableorderdetailsRecordsview.add(consumableorderdetailsRecords[i]);
-        addNo++;
-      }
-      // if (addNo >= size){
-      //     break;
-      // }
-    }
-    return consumableorderdetailsRecordsview;
-  }
-  //add by rentx 2020-12-03 end =====================================================================================================================
-  //鐗逛环
-  public static void OffersPrice() {
-    edoffersPrice = true;
-  }
-
-  //寰楀埌淇冮攢浜у搧Id
-  private static List<String> getDealerProductId() {
-    List<String> ProductId = new List<String>();
-    Map<String, String> DealerProductIdMap = new Map<String, String>();
-    Date dateToday = Date.today();
-    List<Dealer_Product__c> DealerProductList = [
-      SELECT
-        Id,
-        Name,
-        Dealer_Product2__c,
-        Special_Campaign_Price__c,
-        Campaign_StartDate__c,
-        Campaign_EndDate__c,
-        Dealer_Contact__c,
-        OrderGoods_Limit__c
-      FROM Dealer_Product__c
-      WHERE
-        Dealer_Contact__c IN :contactDealer
-        AND Campaign_StartDate__c <= :dateToday
-        AND Campaign_EndDate__c >= :dateToday
-        AND Special_Campaign_Price__c != NULL
-    ];
-    for (Dealer_Product__c dealerProduct : DealerProductList) {
-      if (DealerProductIdMap.containsKey(dealerProduct.Dealer_Product2__c)) {
-        continue;
-      } else {
-        ProductId.add(dealerProduct.Dealer_Product2__c);
-        DealerProductIdMap.put(
-          dealerProduct.Dealer_Product2__c,
-          dealerProduct.Dealer_Product2__c
-        );
-      }
-    }
-    return ProductId;
-  }
-
-  private static String makeSoql(
-    String CateName,
-    String CateCode,
-    String Category3,
-    String Category4,
-    String Category5,
-    Boolean specialCampaign,
-    List<String> DealerProductId
-  ) {
-    String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c,Category3__c,Category4__c,Category5__c FROM Product2__c WHERE Estimation_Entry_Possibility__c = \'鈼媆' ';
-    // add begin ================================================================================================
-    if (methodType != null && methodType.equals('hospitalorder')) {
-      //濡傛灉鏄尰闄㈢壒浠�
-      //1.鍒ゆ柇 鍖婚櫌id鏄惁鏈夊�� 濡傛灉鏈夊�� 鍒欐牴鎹尰闄d鍘� 鍖婚櫌鐗逛环琛ㄤ腑鑾峰彇浜у搧id
-      //鍖婚櫌id 鏈夊��
-      if (hospitalId == null || hospitalId == '') {
-        soql += ' and id = null ';
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '璇烽�夋嫨鍖婚櫌'));
-        warningMsgList.add('璇烽�夋嫨鍖婚櫌');
-      } else {
-        List<hospitalprice__c> hplist = [
-          SELECT id, product__c
-          FROM hospitalprice__c
-          WHERE account__c = :accountid AND hospital__c = :hospitalId
-        ];
-        if (hplist != null && hplist.size() > 0) {
-          hpids = new List<String>();
-          for (hospitalprice__c hc : hplist) {
-            hpids.add(hc.product__c);
-          }
-          if (hpids != null && hpids.size() > 0) {
-            soql += ' AND Id in : hpids ';
-          }
-        } else {
-          //璇ュ尰闄笅娌℃湁绗﹀悎鍖婚櫌鐗逛环鐨勪骇鍝�
-          soql += ' AND Id = null ';
-          return soql;
-        }
-      }
-    }
-    //淇冮攢璁㈣揣
-    if (methodType != null && methodType.equals('promotionorder')) {
-      if (contractId == null || contractId == '') {
-        soql += ' and id = null ';
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '璇烽�夋嫨鍚堝悓'));
-        warningMsgList.add('璇烽�夋嫨鍚堝悓');
-      } else {
-        //1.鏌ヨ鎵�鏈夌粡閿�鍟嗕骇鍝�
-        List<Dealer_Product__c> dpclist = [
-          SELECT Id, Dealer_Product2__c
-          FROM Dealer_Product__c
-          WHERE
-            Dealer_Contact__c = :contractId
-            AND (Special_Discount__c != NULL
-            OR Special_Campaign_Price__c != NULL)
-        ];
-
-        if (dpclist != null && dpclist.size() > 0) {
-          hpids = new List<String>();
-          for (Dealer_Product__c hc : dpclist) {
-            hpids.add(hc.Dealer_Product2__c);
-          }
-          if (hpids != null && hpids.size() > 0) {
-            soql += ' AND Id in : hpids ';
-          }
-        } else {
-          //璇ョ粡閿�鍟嗕笅娌℃湁淇冮攢浠锋牸鐨勪骇鍝�
-          soql += ' AND Id = null ';
-          return soql;
-        }
-      }
-    }
-    //add end ===================================================================================================
-    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 + '\'';
-    }
-    if (agencyProType == 'ET') {
-      soql += ' AND Pro2_Dealer_Object__c = true';
-    }
-    if (agencyProType == 'ENG') {
-      soql += ' AND Pro2_Dealer_ENG__c = true';
-    }
-    soql += ' AND Intra_Trade_List_RMB__c > 0 ';
-    System.debug('soql +++++++++++  ' + soql);
-    return soql;
-  }
-
-  private 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] + '\')';
-      }
-    }
-    String soql = 'SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,SFDA_Status__c,Product2__r.SFDA_Approbation_No__c,Product2__r.SFDA_Expiration_Date__c,Product2__r.Packing_list_manual__c,Category3__c,Category4__c,Category5__c FROM Product2__c WHERE Estimation_Entry_Possibility__c = \'鈼媆' ';
-    System.debug('sqlTail:' + sqlTail);
-    System.debug('orderzaikuId:' + orderzaikuId);
-    if (orderzaikuId.size() > 0) {
-      soql += ' AND Id in' + sqlTail;
-    }
-    return soql;
-  }
-
-  // 缂栬緫鎸夐挳
-  @AuraEnabled
-  public static Results setEditAble(String eSetidStr) {
-    Results results = new Results();
-    ESetId = eSetidStr;
-    try {
-      statusEdit = 'Redirect';
-      List<Consumable_order__c> oclist = [
-        SELECT orderPattern__c
-        FROM Consumable_order__c
-        WHERE id = :ESetid
-      ];
-      String url =
-        '/lexconsumable?ESetid=' +
-        ESetid +
-        '&KeyWords=' +
-        statusEdit +
-        '&type=' +
-        oclist.get(0).orderPattern__c;
-      results.result = 'Success';
-      results.url = url;
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  // 鍐嶇敵璇�
-  @AuraEnabled
-  public static Results backOrder(String eSetidStr) {
-    Results results = new Results();
-    ESetId = eSetidStr;
-    statusEdit = 'Redirect';
-    returnOrder = true;
-    try {
-      statusEdit = 'Redirect';
-      List<Consumable_order__c> oclist = [
-        SELECT orderPattern__c
-        FROM Consumable_order__c
-        WHERE id = :ESetid
-      ];
-      String url =
-        '/lexconsumable?ESetid=' +
-        ESetid +
-        '&KeyWords=' +
-        statusEdit +
-        '&type=' +
-        oclist.get(0).orderPattern__c;
-      results.result = 'Success';
-      results.url = url;
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  //涓婁紶闄勪欢
-  @AuraEnabled
-  public static Results filesUpload(
-    String pId,
-    String fileName,
-    String base64Data
-  ) {
-    Results results = new Results();
-    try {
-      base64Data = EncodingUtil.urlDecode(base64Data, 'UTF-8');
-      ContentVersion cv = new ContentVersion();
-      cv.Title = fileName;
-      cv.PathOnClient = '/' + fileName;
-      cv.FirstPublishLocationId = pId;
-      cv.VersionData = EncodingUtil.base64Decode(base64Data);
-      cv.IsMajorVersion = true;
-      insert cv;
-      Consumable_order__c c = [
-        SELECT Id
-        FROM Consumable_order__c
-        WHERE Id = :pId
-      ];
-      c.Consumable_pdf_insert_day__c = Date.today();
-      update c;
-      results.result = 'Success';
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  //鍒犻櫎鎸夐挳
-  @AuraEnabled
-  public static Results delConsumable(String eSetidStr) {
-    Results results = new Results();
-    ESetId = eSetidStr;
-    try {
-      Consumable_order__c cord = new Consumable_order__c(Id = ESetId);
-      List<Consumable_Orderdetails__c> orderdetails1 = [
-        SELECT Id
-        FROM Consumable_Orderdetails__c
-        WHERE Consumable_order__c = :EsetId
-      ];
-      delete orderdetails1;
-      delete cord;
-      results.result = 'Success';
-      results.url = '/lexconsumableordermanage';
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  // 鎻愪氦鎸夐挳
-  @AuraEnabled
-  public static Results sorder(String eSetidStr, String accountidStr) {
-    Results results = new Results();
-    errorMsgList = new List<String>();
-    warningMsgList = new List<String>();
-    ESetId = eSetidStr;
-    accountid = accountidStr;
-    Savepoint sp = Database.setSavepoint();
-    try {
-      Map<Id, String> prodMap = new Map<Id, String>();
-      Consumable_order__c P = new Consumable_order__c();
-      P = new Consumable_order__c();
-      p.Id = ESetId;
-      p.Order_date__c = Date.today();
-      p.Order_status__c = '闄勪欢涓婁紶瀹屾垚';
-      for (Consumable_Orderdetails__c cod1 : [
-        SELECT Consumable_product__r.Product2__c, Consumable_product__r.Name__c
-        FROM Consumable_Orderdetails__c
-        WHERE Consumable_order__c = :ESetId
-      ]) {
-        prodMap.put(
-          cod1.Consumable_product__r.Product2__c,
-          cod1.Consumable_product__r.Name__c
-        );
-      }
-      // GZW 鎻愪氦浜у搧鏃犳晥 鍑洪敊璇秷鎭�
-      System.debug(prodMap);
-      Map<String, String> chkMap = OpportunityWebService.MapCheckProRegisterDecide(
-        prodMap,
-        accountid,
-        ''
-      );
-      System.debug(chkMap);
-      if (chkMap.size() > 0) {
-        if (chkMap.containsKey('agency')) {
-          // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.Error, '绗竴缁忛攢鍟嗘病鏈夋湁鏁堢殑鍖荤枟鍣ㄦ缁忚惀璁稿彲璇併��'));
-          errorMsgList.add('绗竴缁忛攢鍟嗘病鏈夋湁鏁堢殑鍖荤枟鍣ㄦ缁忚惀璁稿彲璇併��');
-        }
-        for (String proId : prodMap.keySet()) {
-          if (chkMap.containsKey(proId)) {
-            if (chkMap.get(proId) == '1') {
-              // ApexPages.addmessage(
-              //     new ApexPages.message(ApexPages.severity.Error, '浜у搧 ' + prodMap.get(proId) + ' 娌℃湁鏈夋晥鐨勬敞鍐岃瘉銆�')
-              // );
-              errorMsgList.add(
-                '浜у搧 ' + prodMap.get(proId) + ' 娌℃湁鏈夋晥鐨勬敞鍐岃瘉銆�'
-              );
-            } else if (chkMap.get(proId) == '2') {
-              // ApexPages.addmessage(
-              //     new ApexPages.message(ApexPages.severity.Error, '浜у搧 ' + prodMap.get(proId) + ' 瓒呰繃缁忛攢鍟嗙粡钀ヨ寖鍥淬��')
-              // );
-              errorMsgList.add(
-                '浜у搧 ' + prodMap.get(proId) + ' 瓒呰繃缁忛攢鍟嗙粡钀ヨ寖鍥淬��'
-              );
-            }
-          }
-        }
-        results.result = 'Fail';
-        results.errorMsg = '';
-        results.errorMsgList = errorMsgList;
-        results.warningMsgList = warningMsgList;
-        return results;
-      }
-      update p;
-      Approval.ProcessSubmitRequest psr = new Approval.ProcessSubmitRequest();
-      psr.setObjectId(ESetId);
-      Approval.ProcessResult submitResult = Approval.process(psr);
-      results.result = 'Success';
-      results.url = '/lexconsumableordermanage';
-    } catch (Exception e) {
-      Database.rollback(sp);
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
-
-  // 椹冲洖璁㈠崟copy
-  @AuraEnabled
-  public static Results ordrCopy(
-    String contractNameStr,
-    String cocStr,
-    String agencyProTypeStr,
-    String accountidStr,
-    String consumableorderdetailsRecordsviewStr,
-    String contactDealerStr,
-    String methodTypeStr,
-    String hospitalIdStr,
-    String contractIdStr,
-    String agencyProType1Str,
-    Boolean OSHFLGStr
-  ) {
-    ESetId = '';
-    return save(
-      contractNameStr,
-      cocStr,
-      agencyProTypeStr,
-      accountidStr,
-      consumableorderdetailsRecordsviewStr,
-      contactDealerStr,
-      methodTypeStr,
-      ESetId,
-      hospitalIdStr,
-      contractIdStr,
-      agencyProType1Str,
-      OSHFLGStr
-    );
-  }
-
-  //淇濆瓨鎸夐挳
-  @AuraEnabled
-  public static Results save(
-    String contractNameStr,
-    String cocStr,
-    String agencyProTypeStr,
-    String accountidStr,
-    String consumableorderdetailsRecordsviewStr,
-    String contactDealerStr,
-    String methodTypeStr,
-    String eSetIdStr,
-    String hospitalIdStr,
-    String contractIdStr,
-    String agencyProType1Str,
-    Boolean OSHFLGStr
-  ) {
-    Results results = new Results();
-    errorMsgList = new List<String>();
-    warningMsgList = new List<String>();
-    contractName = contractNameStr;
-    agencyProType = agencyProTypeStr;
-    accountid = accountidStr;
-    methodType = methodTypeStr;
-    ESetId = eSetIdStr;
-    hospitalId = hospitalIdStr;
-    contractId = contractIdStr;
-    agencyProType1 = agencyProType1Str;
-    OSHFLG = OSHFLGStr;
-    coc = (Consumable_order__c) JSON.deserialize(
-      cocStr,
-      Consumable_order__c.class
-    );
-    contactDealer = (List<String>) JSON.deserialize(
-      contactDealerStr,
-      List<String>.class
-    );
-    System.debug(
-      'consumableorderdetailsRecordsviewStr:' +
-      consumableorderdetailsRecordsviewStr
-    );
-    consumableorderdetailsRecordsview = (List<ConsumableorderdetailsInfo>) JSON.deserialize(
-      consumableorderdetailsRecordsviewStr,
-      List<ConsumableorderdetailsInfo>.class
-    );
-    if (coc.Offers_Price__c != null) {
-      String offerStr = String.valueOf(coc.Offers_Price__c);
-      bargainPrice = Decimal.valueOf(offerStr.replace(',', ''));
-    }
-    Savepoint sp = Database.setSavepoint();
-    try {
-      if (String.isEmpty(contractName)) {
-        // coc.Order_effective_contact__c.addError('璇烽�夋嫨鍚堝悓');
-        results.result = 'Fail';
-        results.errorMsg = '璇烽�夋嫨鍚堝悓';
-        return results;
-      }
-      List<Account> contract = [
-        SELECT
-          Id,
-          Name,
-          Contract_Department_Class__c,
-          Contract_Quote_Decide_Flag__c
-        FROM account
-        WHERE
-          Name = :contractName
-          AND Id = :contractId //lt 20230517 瀹夊窘涓ょエ鍒� add
-          AND Contract_Decide_Start_Date__c <= :Date.Today()
-          AND Contract_Decide_End_Date__c >= :Date.Today()
-          AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add 1
-          AND Agent_Ref__c = :accountid
-          AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
-      ];
-      if (contract.size() <= 0) {
-        // coc.Order_effective_contact__c.addError('涓嶅瓨鍦ㄧ殑鍚堝悓锛岃閲嶆柊纭銆�');
-        results.result = 'Fail';
-        results.errorMsg = '涓嶅瓨鍦ㄧ殑鍚堝悓锛岃閲嶆柊纭銆�';
-        return results;
-      } else {
-        if (String.isEmpty(contract[0].Contract_Quote_Decide_Flag__c)) {
-          // coc.Order_effective_contact__c.addError('鍚堝悓鏃犳晥锛岃閲嶆柊纭銆�');
-          results.result = 'Fail';
-          results.errorMsg = '鍚堝悓鏃犳晥锛岃閲嶆柊纭銆�';
-          return results;
-        }
-      }
-      Integer FLG = 0;
-      Integer Count = 0;
-      //add by rentx 2020-11-25
-      List<String> tpids = new List<String>();
-      //add by rentx 2020-11-25
-      for (
-        ConsumableorderdetailsInfo CheckCount : consumableorderdetailsRecordsview
-      ) {
-        FLG = FLG + 1;
-        if (CheckCount.check == false) {
-          Count = Count + 1;
-        }
-        if (CheckCount.check == true) {
-          //add by rentx 2020-11-25
-          tpids.add(CheckCount.Prod.Id);
-          //add by rentx 2020-11-25
-          if (
-            CheckCount.esd.Consumable_Count__c == null ||
-            CheckCount.esd.Consumable_Count__c == 0
-          ) {
-            // CheckCount.esd.Consumable_Count__c.addError('璇疯緭鍏ラ噰璐暟閲�');
-            results.result = 'Fail';
-            results.errorMsg = '璇疯緭鍏ラ噰璐暟閲�';
-            return results;
-          }
-          if (
-            CheckCount.orderGoods_Limit > 0 &&
-            math.mod(
-              Integer.valueOf(CheckCount.esd.Consumable_Count__c),
-              Integer.valueOf(CheckCount.orderGoods_Limit)
-            ) > 0
-          ) {
-            // CheckCount.esd.Consumable_Count__c.addError('璇疯緭鍏ヤ績閿�鏁伴噺鐨勫�嶆暟');
-            results.result = 'Fail';
-            results.errorMsg = '璇疯緭鍏ヤ績閿�鏁伴噺鐨勫�嶆暟';
-            return results;
-          }
-        }
-      }
-      if (Count == FLG) {
-        results.result = 'Fail';
-        results.errorMsg = '璇烽�夋嫨鎵�闇�娑堣�楀搧';
-        return results;
-      }
-      //=======================================鍖婚櫌鐗逛环,鏈夐噾棰濈殑璇濆彇閲戦
-      Map<String, Decimal> dealerHospitalmMap = new Map<String, Decimal>();
-      List<hospitalprice__c> hplist = [
-        SELECT Id, hospital__c, mPrice__c, pPrice__c, product__c, account__c
-        FROM hospitalprice__c
-        WHERE
-          product__c IN :tpids
-          AND mPrice__c != NULL
-          AND account__c = :accountid
-      ];
-      for (hospitalprice__c dealerProduct : hplist) {
-        if (dealerProduct.mPrice__c != null) {
-          dealerHospitalmMap.put(
-            '' + dealerProduct.hospital__c + dealerProduct.product__c,
-            dealerProduct.mPrice__c
-          );
-        }
-      }
-      //淇冮攢璁㈣揣 鏍规嵁缁忛攢鍟嗕骇鍝佷腑鐨勬暟鎹绠楅噾棰�
-      //=======================================浜у搧鐗规畩鎶樻墸
-      Map<String, Decimal> dealerPDiscountMap = new Map<String, Decimal>();
-      Map<String, Decimal> dealerMPDiscountMap = new Map<String, Decimal>();
-      //1.鑾峰彇鏈夊紑濮嬬粨鏉熸棩鐨勪骇鍝�
-      Date dateToday = Date.today();
-      List<Dealer_Product__c> haveDateList = [
-        SELECT
-          Id,
-          Name,
-          Dealer_Product2__c,
-          Special_Campaign_Price__c,
-          Campaign_StartDate__c,
-          Campaign_EndDate__c,
-          Dealer_Contact__c,
-          OrderGoods_Limit__c,
-          Special_Discount__c
-        FROM Dealer_Product__c
-        WHERE
-          Dealer_Contact__c IN :contactDealer
-          AND Campaign_StartDate__c <= :dateToday
-          AND Campaign_EndDate__c >= :dateToday
-          AND (Special_Discount__c != NULL
-          OR Special_Campaign_Price__c != NULL)
-      ];
-      //2.鑾峰彇娌℃湁寮�濮嬬粨鏉熸棩鐨勪骇鍝�
-      List<Dealer_Product__c> DealerProductList = [
-        SELECT
-          Id,
-          Name,
-          Dealer_Product2__c,
-          Special_Campaign_Price__c,
-          Campaign_StartDate__c,
-          Campaign_EndDate__c,
-          Dealer_Contact__c,
-          Special_Discount__c,
-          OrderGoods_Limit__c
-        FROM Dealer_Product__c
-        WHERE
-          Dealer_Contact__c IN :contactDealer
-          AND (Special_Discount__c != NULL
-          OR Special_Campaign_Price__c != NULL)
-      ];
-      for (Dealer_Product__c dealerProduct : DealerProductList) {
-        //濡傛灉淇冮攢浠锋牸涓簄ull 鍒欒缃壒娈婃姌鎵�(鐧惧垎姣�)鍒伴泦鍚�
-        if (dealerProduct.Special_Campaign_Price__c == null) {
-          dealerPDiscountMap.put(
-            '' +
-              dealerProduct.Dealer_Contact__c +
-              dealerProduct.Dealer_Product2__c,
-            dealerProduct.Special_Discount__c
-          );
-        } else {
-          dealerMPDiscountMap.put(
-            '' +
-              dealerProduct.Dealer_Contact__c +
-              dealerProduct.Dealer_Product2__c,
-            dealerProduct.Special_Campaign_Price__c
-          );
-        }
-      }
-      //杩欐牱鍋氭槸涓轰簡璁$畻淇冮攢浠锋牸鏃� 浼樺厛璁$畻淇冮攢寮�濮嬬粨鏉熸棩涓嶄负绌虹殑浜у搧
-      //濡傛灉璇ラ泦鍚堟湁鍊� 鍒欒鏄庨渶瑕佹牴鎹綋鍓嶇殑閲戦鎴栬�呮姌鎵f潵璁$畻
-      if (haveDateList != null && haveDateList.size() > 0) {
-        for (Dealer_Product__c dealerProduct : haveDateList) {
-          if (dealerProduct.Special_Campaign_Price__c == null) {
-            dealerPDiscountMap.put(
-              '' +
-                dealerProduct.Dealer_Contact__c +
-                dealerProduct.Dealer_Product2__c,
-              dealerProduct.Special_Discount__c
-            );
-            dealerMPDiscountMap.remove(
-              '' +
-                dealerProduct.Dealer_Contact__c +
-                dealerProduct.Dealer_Product2__c
-            );
-          } else {
-            dealerMPDiscountMap.put(
-              '' +
-                dealerProduct.Dealer_Contact__c +
-                dealerProduct.Dealer_Product2__c,
-              dealerProduct.Special_Campaign_Price__c
-            );
-            dealerPDiscountMap.remove(
-              '' +
-                dealerProduct.Dealer_Contact__c +
-                dealerProduct.Dealer_Product2__c
-            );
-          }
-        }
-      }
-      //=======================================缁忛攢鍟嗗悎鍚屾姌鎵�
-      List<Account> at = [
-        SELECT
-          id,
-          Name,
-          State_Master__c,
-          State_Master__r.Name,
-          Sales_Section__c,
-          Dealer_discount__c
-        FROM Account
-        WHERE
-          Name = :contractName
-          AND Id = :contractId //lt 20230517 瀹夊窘涓ょエ鍒� add
-          AND Contact_Type__c LIKE :agencyProType1 //lt 20230517 瀹夊窘涓ょエ鍒� add  1
-          AND Contact_Type__c LIKE :agencyProType
-          AND Contract_Decide_Start_Date__c <= :Date.Today()
-          AND Contract_Decide_End_Date__c >= :Date.Today()
-          AND Contract_Decide_End_Date__c >= :Date.Today()
-          AND OSH_Dealer__c = :OSHFLG //lt 20230517 瀹夊窘涓ょエ鍒� add
-      ];
-      if (at.size() > 0 && at[0].Dealer_discount__c != null) {
-        disCount = at[0].Dealer_discount__c;
-      } else {
-        disCount = 100;
-      }
-      Consumable_order__c P = new Consumable_order__c();
-      List<Consumable_Orderdetails__c> Ins = new List<Consumable_Orderdetails__c>();
-      //鏂板缓璁㈠崟鏃�
-      if (String.isBlank(ESetId)) {
-        Integer i = 1;
-        Integer Roll = 0;
-        p.Name = '*';
-        p.Order_status__c = '鑽夋涓�';
-        p.Dealer_Info__c = accountid;
-        p.Order_ProType__c = agencyProType;
-        p.Offers_Price__c = coc.Offers_Price__c;
-        p.Order_date__c = coc.Order_date__c;
-        p.Order_effective_contact__c = contract[0].Id;
-        p.Order_Reason__c = coc.Order_Reason__c;
-        p.RecordTypeid = System.Label.RT_ConOrder_Order;
-        p.Overrule_order__c = coc.Id;
-        if (String.isNotBlank(methodType)) {
-          p.orderPattern__c = methodType;
-        }
-        insert p;
-        List<Consumable_order__c> Consumable_order = [
-          SELECT Name, orderPattern__c
-          FROM Consumable_order__c
-          WHERE id = :p.id
-        ];
-        for (
-          ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsview
-        ) {
-          Roll = Roll + 1;
-          if (ass.check == true) {
-            if (
-              ass.esd.Consumable_Count__c == null ||
-              ass.esd.Consumable_Count__c == 0
-            ) {
-              // ass.esd.Consumable_Count__c.addError('璇疯緭鍏ラ噰璐暟閲�');
-              results.result = 'Fail';
-              results.errorMsg = '璇疯緭鍏ラ噰璐暟閲�';
-              return results;
-            } else {
-              Consumable_Orderdetails__c InsAfterDel = new Consumable_Orderdetails__c();
-              String str = string.valueOf(i);
-              if (str.length() == 1) {
-                str = '0' + str;
-              }
-              InsAfterDel.Name = Consumable_order[0].Name + '-' + str;
-              InsAfterDel.Consumable_Count__c = ass.esd.Consumable_Count__c;
-              InsAfterDel.Consumable_order__c = p.id;
-              InsAfterDel.Consumable_Product__c = ass.Prod.id;
-              InsAfterDel.Box_Piece__c = '鐩�';
-              //鍗忚璁㈣揣
-              if (methodType.equals('agreementorder')) {
-                Consumable_order[0].orderPattern__c = 'agreementorder';
-
-                InsAfterDel.Intra_Trade_List_RMB__c =
-                  ass.Prod.Intra_Trade_List_RMB__c *
-                  disCount /
-                  100;
-                //=====================================================================================update by rentx 2020-11-25
-              } else if (methodType.equals('promotionorder')) {
-                Consumable_order[0].orderPattern__c = 'promotionorder';
-                //淇冮攢璁㈣揣
-                //濡傛灉淇冮攢浠锋牸涓嶄负null 鍒欑洿鎺ヤ娇鐢ㄤ績閿�浠锋牸鏉ヨ绠楅噾棰�
-                if (
-                  dealerMPDiscountMap.containsKey(
-                    '' + contract[0].Id + ass.Prod.Id
-                  )
-                ) {
-                  InsAfterDel.Intra_Trade_List_RMB__c = dealerMPDiscountMap.get(
-                    '' + contract[0].Id + ass.Prod.Id
-                  );
-                  system.debug('cai 0' + InsAfterDel.Intra_Trade_List_RMB__c);
-                } else if (
-                  dealerPDiscountMap.containsKey(
-                    '' + contract[0].Id + ass.Prod.Id
-                  )
-                ) {
-                  InsAfterDel.Intra_Trade_List_RMB__c =
-                    ass.Prod.Intra_Trade_List_RMB__c *
-                    dealerPDiscountMap.get('' + contract[0].Id + ass.Prod.Id) /
-                    100;
-                  system.debug('cai 00' + InsAfterDel.Intra_Trade_List_RMB__c);
+        // 鎺掑簭Consumable_order__c
+        public Integer compareTo(Object compareTo) {
+            ConsumableorderdetailsInfo compareToesd = (ConsumableorderdetailsInfo) compareTo;
+            Integer returnValue = 0;
+            if (check == true) {
+                if (sortBy == false) {
+                    if (allnumber > compareToesd.allnumber) {
+                        returnValue = -1;
+                    } else if (allnumber < compareToesd.allnumber) {
+                        returnValue = 1;
+                    }
+                    return returnValue;
+                } else {
+                    if (allnumber > compareToesd.allnumber) {
+                        returnValue = 1;
+                    } else if (allnumber < compareToesd.allnumber) {
+                        returnValue = -1;
+                    }
+                    return returnValue;
                 }
-                //=====================================================================================update by rentx 2020-11-25
-              } else if (methodType.equals('hospitalorder')) {
-                //鍖婚櫌鐗逛环
-                Consumable_order[0].Order_ForHospital__c = hospitalId;
-                Consumable_order[0].orderPattern__c = 'hospitalorder';
-                if (
-                  dealerHospitalmMap.containsKey(hospitalId + ass.Prod.Id) &&
-                  dealerHospitalmMap.get(hospitalId + ass.Prod.Id) != null
-                ) {
-                  //鐩存帴鏍规嵁淇冮攢閲戦璁$畻
-                  InsAfterDel.Intra_Trade_List_RMB__c = dealerHospitalmMap.get(
-                    '' + hospitalId + ass.Prod.Id
-                  );
-                }
-              } else if (DealerProductMap.containsKey(ass.Prod.Id)) {
-                InsAfterDel.Intra_Trade_List_RMB__c = DealerProductMap.get(
-                    ass.Prod.Id
-                  )
-                  .Special_Campaign_Price__c;
-                system.debug('cai 2' + InsAfterDel.Intra_Trade_List_RMB__c);
-                InsAfterDel.Purchase_Unitprtprice_From__c = '淇冮攢';
-                InsAfterDel.Special_Campaign_Price__c = DealerProductMap.get(
-                    ass.Prod.Id
-                  )
-                  .Special_Campaign_Price__c;
-              }
-              InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
-              i++;
-              Ins.add(InsAfterDel);
-            }
-          }
-        }
-        ESetId = p.id;
-        if (Consumable_order.size() > 0) {
-          update Consumable_order;
-        }
-      }
-      //淇敼涔嬪悗 淇濆瓨璁㈠崟
-      if (Ins.size() > 0) {
-        insert Ins;
-      } else {
-        //淇敼,鑾峰彇娑堣�楀搧璁㈠崟
-        List<Consumable_order__c> cocinfo = new List<Consumable_order__c>();
-        cocinfo = [
-          SELECT
-            Id,
-            Name,
-            Order_status__c,
-            Dealer_Info__c,
-            Deliver_date__c,
-            Order_Reason__c,
-            Offers_Price__c
-          FROM Consumable_order__c
-          WHERE Id = :ESetId
-        ];
-        if (cocinfo.size() > 0) {
-          p = cocinfo[0];
-        }
-        p.Name = coc.Name;
-        p.Dealer_Info__c = accountid;
-        p.Order_ProType__c = agencyProType;
-        p.Order_date__c = coc.Order_date__c;
-        p.Order_effective_contact__c = contract[0].Id;
-        p.Order_Reason__c = coc.Order_Reason__c;
-        if (bargainPrice != null) {
-          p.Offers_Price__c = bargainPrice;
-        }
-        update p;
-        List<Consumable_order__c> Consumable_order = [
-          SELECT Name, orderPattern__c
-          FROM Consumable_order__c
-          WHERE id = :p.id
-        ];
-        List<Consumable_Orderdetails__c> qs = new List<Consumable_Orderdetails__c>();
-        qs = [
-          SELECT Id
-          FROM Consumable_Orderdetails__c
-          WHERE
-            Consumable_order__c = :ESetId
-            AND Consumable_order__r.Dealer_Info__c = :accountid
-        ];
-        if (qs.size() > 0) {
-          delete qs;
-        }
-        Integer i = 1;
-        for (
-          ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsview
-        ) {
-          if (ass.check == true) {
-            Consumable_Orderdetails__c InsAfterDel = new Consumable_Orderdetails__c();
-            if (
-              ass.esd.Consumable_Count__c == null ||
-              ass.esd.Consumable_Count__c == 0
-            ) {
-              // ass.esd.Consumable_Count__c.addError('璇疯緭鍏ラ噰璐暟閲�');
-              results.result = 'Fail';
-              results.errorMsg = '璇疯緭鍏ラ噰璐暟閲�';
-              return results;
             } else {
-              String str = string.valueOf(i);
-              if (str.length() == 1) {
-                str = '0' + str;
-              }
-              InsAfterDel.Name = Consumable_order[0].Name + '-' + str;
-              InsAfterDel.Consumable_Count__c = ass.esd.Consumable_Count__c;
-              InsAfterDel.Consumable_order__c = ESetId;
-              InsAfterDel.Consumable_Product__c = ass.Prod.id;
-              InsAfterDel.Box_Piece__c = '鐩�';
-              //鍗忚璁㈣揣
-              if (methodType.equals('agreementorder')) {
-                Consumable_order[0].orderPattern__c = 'agreementorder';
-                InsAfterDel.Intra_Trade_List_RMB__c =
-                  ass.Prod.Intra_Trade_List_RMB__c *
-                  disCount /
-                  100;
-              } else if (methodType.equals('promotionorder')) {
-                Consumable_order[0].orderPattern__c = 'promotionorder';
-                //淇冮攢璁㈣揣
-                if (
-                  dealerMPDiscountMap.containsKey(
-                    '' + contract[0].Id + ass.Prod.Id
-                  )
-                ) {
-                  InsAfterDel.Intra_Trade_List_RMB__c = dealerMPDiscountMap.get(
-                    '' + contract[0].Id + ass.Prod.Id
-                  );
-                } else if (
-                  dealerPDiscountMap.containsKey(
-                    '' + contract[0].Id + ass.Prod.Id
-                  )
-                ) {
-                  InsAfterDel.Intra_Trade_List_RMB__c =
-                    ass.Prod.Intra_Trade_List_RMB__c *
-                    dealerPDiscountMap.get('' + contract[0].Id + ass.Prod.Id) /
-                    100;
+                if (sortBy == false) {
+                    if (allnumber > compareToesd.allnumber) {
+                        returnValue = -1;
+                    } else if (allnumber < compareToesd.allnumber) {
+                        returnValue = 1;
+                    }
+                    return returnValue;
+                } else {
+                    if (allnumber > compareToesd.allnumber) {
+                        returnValue = 1;
+                    } else if (allnumber < compareToesd.allnumber) {
+                        returnValue = -1;
+                    }
+                    return returnValue;
                 }
-              } else if (methodType.equals('hospitalorder')) {
-                Consumable_order[0].orderPattern__c = 'hospitalorder';
-                //鍖婚櫌鐗逛环
-                Consumable_order[0].Order_ForHospital__c = hospitalId;
-                if (
-                  dealerHospitalmMap.containsKey(hospitalId + ass.Prod.Id) &&
-                  dealerHospitalmMap.get(hospitalId + ass.Prod.Id) != null
-                ) {
-                  //鐩存帴鏍规嵁淇冮攢閲戦璁$畻
-                  InsAfterDel.Intra_Trade_List_RMB__c = dealerHospitalmMap.get(
-                    '' + hospitalId + ass.Prod.Id
-                  );
-                }
-              } else if (DealerProductMap.containsKey(ass.Prod.Id)) {
-                InsAfterDel.Intra_Trade_List_RMB__c = DealerProductMap.get(
-                    ass.Prod.Id
-                  )
-                  .Special_Campaign_Price__c;
-                InsAfterDel.Purchase_Unitprtprice_From__c = '淇冮攢';
-                InsAfterDel.Special_Campaign_Price__c = DealerProductMap.get(
-                    ass.Prod.Id
-                  )
-                  .Special_Campaign_Price__c;
-              }
-              // ==================================================涔嬪墠鐨勪績閿�璁㈣揣鐨勯�昏緫
-              InsAfterDel.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
-              i++;
-              Ins.add(InsAfterDel);
             }
-          }
         }
-        if (Ins.size() > 0) {
-          insert Ins;
+    }
+
+    public class Results {
+        @AuraEnabled
+        public String result;
+        @AuraEnabled
+        public String errorMsg;
+        @AuraEnabled
+        public String eSetId;
+        @AuraEnabled
+        public String agencyProType;
+        @AuraEnabled
+        public String userWorkLocation;
+        @AuraEnabled
+        public String accountName;
+        @AuraEnabled
+        public String accountid;
+        @AuraEnabled
+        public String hospitalId;
+        @AuraEnabled
+        public String contractId;
+        @AuraEnabled
+        public String category_Goods;
+        @AuraEnabled
+        public Consumable_order__c coc;
+        @AuraEnabled
+        public Boolean edoffersPrice;
+        @AuraEnabled
+        public Boolean editDelCommitBtnDisabled;
+        @AuraEnabled
+        public Boolean editAble;
+        @AuraEnabled
+        public String hospitalName;
+        @AuraEnabled
+        public String contractName;
+        @AuraEnabled
+        public List<CusOption> category3Option;
+        @AuraEnabled
+        public List<CusOption> category4Option;
+        @AuraEnabled
+        public List<CusOption> category5Option;
+        @AuraEnabled
+        public List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsview;
+        @AuraEnabled
+        public List<ConsumableorderdetailsInfo> attachmentRecoeds;
+        @AuraEnabled
+        public Boolean cansee;
+        @AuraEnabled
+        public List<String> errorMsgList;
+        @AuraEnabled
+        public List<String> warningMsgList;
+        @AuraEnabled
+        public Boolean hasWarning;
+        @AuraEnabled
+        public Boolean hasError;
+        @AuraEnabled
+        public Boolean specialCampaign;
+        @AuraEnabled
+        public List<String> dealerProductId;
+        @AuraEnabled
+        public List<String> contactDealer;
+        @AuraEnabled
+        public String url;
+        @AuraEnabled
+        public String methodType;
+        @AuraEnabled
+        public List<String> proLimitAndDate;
+        @AuraEnabled
+        public Boolean isNoteStay;
+        @AuraEnabled
+        public Boolean OSHFLG;
+        @AuraEnabled
+        public String agencyProType1;
+    }
+
+    public class CusOption {
+        CusOption(String label, String value) {
+            this.label = label;
+            this.value = value;
         }
-      }
-      results.result = 'Success';
-      results.eSetId = ESetId;
-    } catch (Exception e) {
-      Database.rollback(sp);
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
-    }
-    return results;
-  }
 
-  //鍒犻櫎闄勪欢
-  @AuraEnabled
-  public static Results deleteAtt(String contentVersionId, String cocId) {
-    Results results = new Results();
-    try {
-      List<ContentVersion> cvInfo = [
-        SELECT Id
-        FROM ContentVersion
-        WHERE FirstPublishLocationId = :cocId
-      ];
-      ContentVersion conVersion = [
-        SELECT ContentDocumentId
-        FROM ContentVersion
-        WHERE Id = :contentVersionId
-      ];
-      String contentDocumentId = conVersion.ContentDocumentId;
-      ContentDocument conDocument = [
-        SELECT Id
-        FROM ContentDocument
-        WHERE Id = :contentDocumentId
-      ];
-      delete conDocument;
-      if (cvInfo.size() <= 1) {
-        Consumable_order__c c = [
-          SELECT Id
-          FROM Consumable_order__c
-          WHERE Id = :cocId
-        ];
-        c.Consumable_pdf_insert_day__c = null;
-        update c;
-      }
-      results.result = 'Success';
-    } catch (Exception e) {
-      results.result = 'Fail';
-      results.errorMsg = e.getLineNumber() + '---' + e.getMessage();
+        @AuraEnabled
+        public String label;
+        @AuraEnabled
+        public String value;
     }
-    return results;
-  }
-
-  public static void getConsumableShowTableFieldValue() {
-    for (ConsumableorderdetailsInfo con : consumableorderdetailsRecordsview) {
-      if (con.Prod != null) {
-        con.recordId = con.Prod.Id;
-        if (!con.oldCheck) {
-          con.prodName = con.Prod.Name__c;
-          // System.debug('ProdName:'+con.Prod.Id+'---'+con.Prod.Name__c);
-        }
-        con.prodSFDAStatus = con.Prod.SFDA_Status__c;
-        con.prodCategory3 = con.Prod.Category3__c;
-        con.prodCategory4 = con.Prod.Category4__c;
-        con.prodCategory5 = con.Prod.Category5__c;
-        con.prodIntraTradeList = con.Prod.Intra_Trade_List_RMB__c;
-      }
-      if (con.esd != null) {
-        // if(con.oldCheck){
-        // con.prodName = con.esd.Consumable_Product__r.Name__c;
-        // }
-        con.consumableCount = con.esd.Consumable_count__c;
-      }
-    }
-  }
-
-  public class ConsumableorderdetailsInfo implements Comparable {
-    @AuraEnabled
-    public Boolean check { get; set; }
-    @AuraEnabled
-    public Boolean oldCheck { get; set; }
-    @AuraEnabled
-    public Consumable_Orderdetails__c esd { get; set; }
-    @AuraEnabled
-    public Product2__c Prod { get; set; }
-    @AuraEnabled
-    public Integer packing_list { get; set; }
-    @AuraEnabled
-    public Date expiration_Date { get; set; }
-    @AuraEnabled
-    public String approbation_No { get; set; }
-    @AuraEnabled
-    public Decimal allnumber { get; set; }
-    @AuraEnabled
-    public Decimal allnumber_piece { get; set; }
-    @AuraEnabled
-    public Decimal oldConsumableCount { get; set; }
-    @AuraEnabled
-    public Boolean canSelect { get; set; }
-    @AuraEnabled
-    public ContentVersion Concc { get; set; }
-    @AuraEnabled
-    public Boolean sortBy { get; set; }
-    @AuraEnabled
-    public Decimal upperlimit { get; set; }
-    @AuraEnabled
-    public Decimal lowerlimit { get; set; }
-    @AuraEnabled
-    public Decimal SpecialCampaignPrice { get; set; }
-    @AuraEnabled
-    public Decimal orderGoods_Limit { get; set; }
-    @AuraEnabled
-    public Date Campaign_EndDate { get; set; }
-    @AuraEnabled
-    public String recordId { get; set; }
-    @AuraEnabled
-    public String prodName { get; set; }
-    @AuraEnabled
-    public String prodSFDAStatus { get; set; }
-    @AuraEnabled
-    public String prodCategory3 { get; set; }
-    @AuraEnabled
-    public String prodCategory4 { get; set; }
-    @AuraEnabled
-    public String prodCategory5 { get; set; }
-    @AuraEnabled
-    public Decimal prodIntraTradeList { get; set; }
-    @AuraEnabled
-    public Decimal consumableCount { get; set; }
-
-    // 宸插瓨浜у搧鏄庣粏
-    public ConsumableorderdetailsInfo(Consumable_Orderdetails__c e) {
-      check = true;
-      oldCheck = true;
-      esd = e;
-      Prod = e.Consumable_Product__r;
-      oldConsumableCount = e.Consumable_Count__c;
-      canSelect = true;
-      allnumber = 0;
-      allnumber_piece = 0;
-    }
-
-    public ConsumableorderdetailsInfo(Product2__c e) {
-      check = false;
-      oldCheck = false;
-      esd = new Consumable_Orderdetails__c();
-      Prod = e;
-      oldConsumableCount = null;
-      canSelect = true;
-      allnumber = 0;
-      allnumber_piece = 0;
-    }
-    //闄勪欢
-    public ConsumableorderdetailsInfo(ContentVersion e) {
-      Concc = e;
-    }
-    // 鎺掑簭Consumable_order__c
-    public Integer compareTo(Object compareTo) {
-      ConsumableorderdetailsInfo compareToesd = (ConsumableorderdetailsInfo) compareTo;
-      Integer returnValue = 0;
-      if (check == true) {
-        if (sortBy == false) {
-          if (allnumber > compareToesd.allnumber) {
-            returnValue = -1;
-          } else if (allnumber < compareToesd.allnumber) {
-            returnValue = 1;
-          }
-          return returnValue;
-        } else {
-          if (allnumber > compareToesd.allnumber) {
-            returnValue = 1;
-          } else if (allnumber < compareToesd.allnumber) {
-            returnValue = -1;
-          }
-          return returnValue;
-        }
-      } else {
-        if (sortBy == false) {
-          if (allnumber > compareToesd.allnumber) {
-            returnValue = -1;
-          } else if (allnumber < compareToesd.allnumber) {
-            returnValue = 1;
-          }
-          return returnValue;
-        } else {
-          if (allnumber > compareToesd.allnumber) {
-            returnValue = 1;
-          } else if (allnumber < compareToesd.allnumber) {
-            returnValue = -1;
-          }
-          return returnValue;
-        }
-      }
-    }
-  }
-
-  public class Results {
-    @AuraEnabled
-    public String result;
-    @AuraEnabled
-    public String errorMsg;
-    @AuraEnabled
-    public String eSetId;
-    @AuraEnabled
-    public String agencyProType;
-    @AuraEnabled
-    public String userWorkLocation;
-    @AuraEnabled
-    public String accountName;
-    @AuraEnabled
-    public String accountid;
-    @AuraEnabled
-    public String hospitalId;
-    @AuraEnabled
-    public String contractId;
-    @AuraEnabled
-    public String category_Goods;
-    @AuraEnabled
-    public Consumable_order__c coc;
-    @AuraEnabled
-    public Boolean edoffersPrice;
-    @AuraEnabled
-    public Boolean editDelCommitBtnDisabled;
-    @AuraEnabled
-    public Boolean editAble;
-    @AuraEnabled
-    public String hospitalName;
-    @AuraEnabled
-    public String contractName;
-    @AuraEnabled
-    public List<CusOption> category3Option;
-    @AuraEnabled
-    public List<CusOption> category4Option;
-    @AuraEnabled
-    public List<CusOption> category5Option;
-    @AuraEnabled
-    public List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsview;
-    @AuraEnabled
-    public List<ConsumableorderdetailsInfo> attachmentRecoeds;
-    @AuraEnabled
-    public Boolean cansee;
-    @AuraEnabled
-    public List<String> errorMsgList;
-    @AuraEnabled
-    public List<String> warningMsgList;
-    @AuraEnabled
-    public Boolean hasWarning;
-    @AuraEnabled
-    public Boolean hasError;
-    @AuraEnabled
-    public Boolean specialCampaign;
-    @AuraEnabled
-    public List<String> dealerProductId;
-    @AuraEnabled
-    public List<String> contactDealer;
-    @AuraEnabled
-    public String url;
-    @AuraEnabled
-    public String methodType;
-    @AuraEnabled
-    public List<String> proLimitAndDate;
-    @AuraEnabled
-    public Boolean isNoteStay;
-    @AuraEnabled
-    public Boolean OSHFLG;
-    @AuraEnabled
-    public String agencyProType1;
-  }
-
-  public class CusOption {
-    CusOption(String label, String value) {
-      this.label = label;
-      this.value = value;
-    }
-
-    @AuraEnabled
-    public String label;
-    @AuraEnabled
-    public String value;
-  }
-}
+}
\ No newline at end of file

--
Gitblit v1.9.1