From 3962c2bb0435484b60a3e408e4738d792e249a53 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期一, 05 六月 2023 11:09:55 +0800
Subject: [PATCH] LEX CommunityNewCmp

---
 force-app/main/default/classes/LexSummonsCreatController.cls | 2990 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 2,990 insertions(+), 0 deletions(-)

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

--
Gitblit v1.9.1