From e3984fbbf370bf5925250a75bfb6154b4a16685c Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期二, 11 四月 2023 14:04:00 +0800
Subject: [PATCH] bakcup

---
 force-app/main/default/classes/LexSummonsCreatController.cls                                   | 2400 ++++++++++++++
 force-app/main/default/lwc/lexCustomLightningDatatable/customUnit.html                         |   11 
 force-app/main/default/lwc/customUnitComp/customUnitComp.js-meta.xml                           |    5 
 force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.html        |    3 
 force-app/main/default/lwc/testPaginated/testPaginated.js-meta.xml                             |    8 
 force-app/main/default/lwc/customUnitComp/customUnitComp.html                                  |   13 
 force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.html        |   12 
 force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js                                  | 1109 ++++++
 force-app/main/default/lwc/lookup/lookup.html                                                  |  139 
 manifest/packageForPIPL.xml                                                                    |  251 -
 force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js          |   33 
 force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js-meta.xml                 |    8 
 force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.css                         |   25 
 force-app/main/default/lwc/lookup/lookup.css                                                   |   30 
 force-app/main/default/staticresources/LexCustomDataTable.resource-meta.xml                    |    6 
 force-app/main/default/lwc/lwcDatatableUtility/templates/customShipmentNumber.html             |   11 
 force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.html                        |  176 +
 force-app/main/default/lwc/lexCustomLightningDatatable/customShippingUnitPrice.html            |    6 
 force-app/main/default/lwc/pocLightningDatatable/pocFileUpload.html                            |    5 
 force-app/main/default/classes/TestClassByLiJun.cls                                            |    5 
 force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.html                            |  196 +
 force-app/main/default/lwc/testPaginated/__tests__/testPaginated.test.js                       |   25 
 force-app/main/default/classes/PaginatedListControllerLwc.cls                                  |   42 
 force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js-meta.xml |    5 
 force-app/main/default/lwc/paginatedList/paginatedList.js-meta.xml                             |    5 
 force-app/main/default/lwc/lookup/lookup.js-meta.xml                                           |    5 
 force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.html                        |   80 
 force-app/main/default/lwc/lwcDatatableUtility/templates/customUnit.html                       |    8 
 force-app/main/default/lwc/customUnitComp/customUnitComp.js                                    |   26 
 force-app/main/default/lwc/pocLightningDatatable/customShippingUnitPrice.html                  |    6 
 force-app/main/default/classes/LexInventoryController.cls                                      | 1159 +++++++
 force-app/main/default/lwc/paginator/paginator.html                                            |   42 
 force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.html                    |    3 
 .sf/config.json                                                                                |    4 
 force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js                                 |  103 
 force-app/main/default/classes/InventoryController.cls                                         |   51 
 manifest/package.xml                                                                           |  479 ++
 force-app/main/default/lwc/myCustomTypeDatatable/customName.html                               |    6 
 force-app/main/default/classes/SampleLookupController.cls-meta.xml                             |    5 
 force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js                          |  273 +
 force-app/main/default/lwc/myCustomTypeDatatable/customShippingUnitPrice.html                  |   11 
 force-app/main/default/lwc/lwcDatatableUtility/templates/customShippingUnitPrice.html          |   11 
 force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp                                      |    2 
 force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js                              |  502 +++
 force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js-meta.xml             |    5 
 force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js-meta.xml |    5 
 force-app/main/default/lwc/pocLightningDatatable/customUnit.html                               |   12 
 force-app/main/default/classes/TestClassByLiJun.cls-meta.xml                                   |    5 
 force-app/main/default/lwc/lookup/lookup.js                                                    |  468 ++
 force-app/main/default/lwc/myCustomTypeDatatable/customNumber.html                             |    6 
 force-app/main/default/lwc/myCustomTypeDatatable/customUnit.html                               |    8 
 force-app/main/default/lwc/paginator/paginator.css                                             |   13 
 force-app/main/default/classes/LexInventoryController.cls-meta.xml                             |    5 
 force-app/main/default/classes/NFMUtil.cls                                                     |   72 
 force-app/main/default/classes/PaginatedListControllerLwc.cls-meta.xml                         |    5 
 force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js-meta.xml                         |    9 
 force-app/main/default/classes/ConsumableController.cls                                        |    2 
 force-app/main/default/lwc/paginator/paginator.js                                              |   32 
 force-app/main/default/classes/LexSummonsCreatController.cls-meta.xml                          |    5 
 force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js          |   24 
 force-app/main/default/staticresources/LexCustomDataTable.css                                  |   12 
 force-app/main/default/lwc/pocLightningDatatable/customShipmentAmount.html                     |    7 
 force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.css                                 |   29 
 force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentNumber.html               |    6 
 force-app/main/default/classes/SaleOrderController.cls                                         |   10 
 force-app/main/default/classes/SampleLookupController.cls                                      |   89 
 force-app/main/default/aura/WeeklyReport/WeeklyReportController.js                             |   63 
 force-app/main/default/lwc/myCustomTypeDatatable/customShipmentNumber.html                     |   11 
 force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js                      |   41 
 force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js                      |   28 
 force-app/main/default/lwc/paginatedList/paginatedList.html                                    |   35 
 force-app/main/default/lwc/paginator/paginator.js-meta.xml                                     |    5 
 force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js                          |  323 +
 force-app/main/default/lwc/testPaginated/testPaginated.js                                      |    3 
 /dev/null                                                                                      |  478 --
 force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.html                                |  564 +++
 .prettierrc                                                                                    |   49 
 force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js-meta.xml                     |    9 
 force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js-meta.xml                 |    9 
 force-app/main/default/lwc/pocLightningDatatable/customShipmentNumber.html                     |    6 
 force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.html                    |    2 
 force-app/main/default/lwc/paginatedList/paginatedList.js                                      |  120 
 force-app/main/default/pages/Inventory.page                                                    |    1 
 force-app/main/default/pages/InventoryView.page                                                |    1 
 force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentAmount.html               |    7 
 force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js-meta.xml             |    5 
 force-app/main/default/lwc/testPaginated/testPaginated.html                                    |    3 
 87 files changed, 8,982 insertions(+), 915 deletions(-)

diff --git a/.prettierrc b/.prettierrc
index bae5168..449f1b9 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,27 +1,26 @@
 {
-  "trailingComma": "none",
-  "overrides": [
-    {
-      "files": "**/lwc/**/*.html",
-      "options": {
-        "tabWidth": 4,
-        "parser": "lwc"
-      }
-    },
-    {
-      "files": "**/*.{cls,trigger,apex}",
-      "options": {
-        "apexInsertFinalNewline": true,
-        "printWidth": 140,
-        "tabWidth": 4
-      }
-    },
-    {
-      "files": "*.{cmp,page,component}",
-      "options": {
-        "parser": "html",
-        "tabWidth": 4
-      }
-    }
-  ]
+    "trailingComma": "none",
+    "singleQuote": true,
+    "tabWidth": 4,
+    "overrides": [
+        {
+            "files": "**/lwc/**/*.html",
+            "options": {
+                "parser": "lwc"
+            }
+        },
+        {
+            "files": "**/*.{cls,trigger,apex}",
+            "options": {
+                "apexInsertFinalNewline": true,
+                "printWidth": 140
+            }
+        },
+        {
+            "files": "*.{cmp,page,component}",
+            "options": {
+                "parser": "html"
+            }
+        }
+    ]
 }
\ No newline at end of file
diff --git a/.sf/config.json b/.sf/config.json
index cdc53e5..baca826 100644
--- a/.sf/config.json
+++ b/.sf/config.json
@@ -1,3 +1,3 @@
 {
-  "target-org": "OlympusPIPLDev"
-}
+  "target-org": "LEXOlympusDev"
+}
\ No newline at end of file
diff --git a/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp b/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp
index 2685ae9..7700999 100644
--- a/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp
+++ b/force-app/main/default/aura/WeeklyReport/WeeklyReport.cmp
@@ -567,7 +567,7 @@
                     <br/>
                     <div class="save_button_area">
                         <lightning:button class="slds-m-top_small" type="button" label="鍙栨秷" onclick="{!c.createCancel}"/>
-                        <lightning:button class="slds-m-top_small" type="submit" label="鏂板缓" />
+                        <lightning:button class="slds-m-top_small" type="submit" label="淇濆瓨" />
                     </div>
     			</lightning:recordEditForm>
             </div>
diff --git a/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js b/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js
index b4f4562..1b97f08 100644
--- a/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js
+++ b/force-app/main/default/aura/WeeklyReport/WeeklyReportController.js
@@ -1,5 +1,6 @@
 ({
     doInit : function(component, event, helper) {
+        console.log('zhj 鏂版柟妗�');
         if (window.location.href.endsWith("weekly-report")) {
             helper.doinit(component, event, helper);
         } else {
@@ -101,16 +102,62 @@
             */
 
             var agencyHospitalid = component.get('v.hospitalLinkId');
-            var arr = new Array();
-            arr.push(agencyReport);
-            var data = JSON.stringify(arr);
-            // helper.set_aws_url(component,data,agencyHospitalid);
+            //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 start
+            debugger
+            let hospitalName = '';
+            //璋冪敤鍚庣searchAgencyDataId鏂规硶鏌ヨ鍑哄尰闄笅闈㈡墍鏈夊鎴蜂汉鍛榙ataid
+            helper.CallBackAction(component,'searchAgencyDataId',{
+                hospitalId : agencyHospitalid
+            },function(data){
+                if(data.getState() == "SUCCESS"){
+                    var data = data.getReturnValue();
+                    if(data.IsSuccess == true){
+                        let agencyContactIds = ''
+                        if(data.Message == '' && data.Data && data.Data.length > 0){
+                            hospitalName = data.Data[0].Agency_Hospital__r.Name;
+                            for(var i=0;i<data.Data.length;i++){
+                                if(data.Data[i].AWS_Data_Id__c)
+                                    agencyContactIds += ','+data.Data[i].AWS_Data_Id__c;
+                            }
+                            agencyContactIds = agencyContactIds.substring(1);
+                            agencyReport['agencyContactIds'] = agencyContactIds;
+                        }else{
+                            agencyReport['agencyContactIds'] = agencyContactIds;
+                        }
+                        var arr = new Array();
+                        arr.push(agencyReport);
+                        var requestData = JSON.stringify(arr);
+                        // helper.set_aws_url(component,data,agencyHospitalid);
 
-            var token = component.get('v.AWStoken');
-            var newUrl = component.get('v.AWSinsert');
+                        var token = component.get('v.AWStoken');
+                        var newUrl = component.get('v.AWSinsert') + 'V2';
+                        
+                        component.set('v.login',true);
+                        helper.insert_agencycontact(component,token,newUrl,requestData,agencyHospitalid,helper,hospitalName);
+                    }else{
+                        helper.ShowToast({
+                            "message" : data.message,
+                            "type" : "error"
+                        });
+                    }
+                }else{
+                    helper.ShowToast({
+                        "message" : 'searchAgency澶辫触',
+                        "type" : "error"
+                    });
+                }
+            })
+            //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 end
+            // var arr = new Array();
+            // arr.push(agencyReport);
+            // var data = JSON.stringify(arr);
+            // // helper.set_aws_url(component,data,agencyHospitalid);
+
+            // var token = component.get('v.AWStoken');
+            // var newUrl = component.get('v.AWSinsert');
             
-            component.set('v.login',true);
-            helper.insert_agencycontact(component,token,newUrl,data,agencyHospitalid,helper);
+            // component.set('v.login',true);
+            // helper.insert_agencycontact(component,token,newUrl,data,agencyHospitalid,helper);
 
             // PIPL update Yin Mingjie 21/02/2022 end
         }else{
diff --git a/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js b/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
index eed53ef..4222c03 100644
--- a/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
+++ b/force-app/main/default/aura/WeeklyReport/WeeklyReportHelper.js
@@ -63,7 +63,7 @@
                         component.set('v.login',false);
                     }
                 }else{
-                    this.error('AWS search status : ' + result.status);
+                    this.error('AWS search status1 : ' + result.status);
                     component.set('v.login',false);
                 }
             },component);
@@ -221,7 +221,7 @@
                             b = true;
                             Foo();
                         }else{
-                            this.error('AWS search status : ' + result.status);
+                            this.error('璇烽噸鏂板埛鏂颁竴涓嬮〉闈€��');
                         }
                     },component);
                 }else{
@@ -243,7 +243,7 @@
                             b1 = true;
                             Foo();
                         }else{
-                            this.error('AWS search status : ' + result.status);
+                            this.error('AWS search status3 : ' + result.status);
                         }
                     },component);
                 }else{
@@ -345,7 +345,7 @@
                 var reports = component.get('v.reports');
                 var Agency_Hospital_text = '';
                 var Agency_Hospital_parent_id = '';
-
+                debugger
 				// 鍖婚櫌鍚�
                 if (select_data['Agency_Hospital__c'] != '') {
                     for (var i = 0; i < reports.length; i++) {
@@ -1171,7 +1171,6 @@
                 component.set('v.hospitalLinkId', hospital_data[i].Id);
                 component.set('v.data.Agency_Hospital__c', hospital_data[i].Id);
                 component.find('new_con').set('v.disabled', false);
-                //break;
             }
         }
         component.set("v.hospital", accname);
@@ -1231,7 +1230,7 @@
         $A.enqueueAction(action);
     },
 
-    insert_agencycontact : function(component,token,newUrl,payload,agencyHospitalid,helper) {
+    insert_agencycontact : function(component,token,newUrl,payload,agencyHospitalid,helper,hospitalName) {
 
         // AWSService.insert(newUrl,payload,function(result){
         //     if(result.status == '0'){
@@ -1263,7 +1262,11 @@
             }else{
                 console.log('AWS status error:' + result)
                 component.set('v.login',false);
-                component.find('OppMessage').setError('AWS insert error.');
+                if(result.status == '129'){
+                    component.find('OppMessage').setError('璇ュ鎴蜂汉鍛樺悕瀛楀凡瀛樺湪锛屽湪'+hospitalName+'鍖婚櫌锛岃淇敼');
+                }else{
+                    component.find('OppMessage').setError('AWS insert error.');
+                }
             }
         }).catch(error => {
             console.log('AWS insert error:' + error)
@@ -1277,11 +1280,11 @@
         var action = component.get('c.saveAgencyContact');
         action.setParams({
             "name" : result.object[0].name,
-            "nameEncrypt" : result.object[0].nameEncrypt,
+            //"nameEncrypt" : result.object[0].nameEncrypt,
             "type" : result.object[0].type,
-            "typeEncrypt" : result.object[0].typeEncrypt,
+            //"typeEncrypt" : result.object[0].typeEncrypt,
             "doctorDivision1" : result.object[0].doctorDivision1,
-            "doctorDivision1Encrypt" : result.object[0].doctorDivision1Encrypt,
+            //"doctorDivision1Encrypt" : result.object[0].doctorDivision1Encrypt,
             "agencyHospitalid" : agencyHospitalid,
             "awsid" : result.object[0].dataId,
         });
@@ -1422,7 +1425,7 @@
             if(result.status == '0'){
                 this.to_doctor_list(result,retMap,component);
             }else{
-                this.error('AWS search status : ' + result.status);
+                this.error('AWS search status4 : ' + result.status);
                 component.set('v.login',false);
             }
         },component);
@@ -1443,6 +1446,9 @@
         // });
     },
     search_core : function(token,searchUrl,payload,callback,component) {
+        console.log('token = ' + token);
+        console.log('searchUrl = ' + searchUrl);
+        console.log('payload = ' + payload);
         fetch(searchUrl, {
             method: 'POST',
             body: payload,
@@ -1456,6 +1462,7 @@
             component.set('v.login',false);
             if(callback)callback(result);
         }).catch(error => {
+            console.log('error = ' + JSON.stringify(error));
             this.error('AWS search error.');
             component.set('v.login',false);
         });
@@ -1519,6 +1526,7 @@
     // },
     
     opportunityChange : function(component, event, helper) {
+        debugger
         var opp_id = component.get('v.data.Opportunity__c');
         if (opp_id == '') {
             $A.util.addClass(component.find('input-opportunity-stage'), 'disp_none');
@@ -1582,24 +1590,28 @@
                         // }
                         component.set('v.login',false);
                         return false;
-                    } else if (res[0]['StageName2__c'] != '3.璇环' && !component.get('v.loadOpp')){
-                        this.warning('璇烽�夋嫨璇环涓殑椤圭洰');
-                        // ToDo闇�瑕佹祴璇曟墜鏈轰笂鑳借繍琛屼笉
-                        component.set('v.data.Opportunity__c', '');
-                        $A.util.addClass(component.find('input-opportunity-stage'), 'disp_none');
-                        $A.util.addClass(component.find('input-opportunity-amount1'), 'disp_none');
-                        $A.util.addClass(component.find('input-opportunity-amount2'), 'disp_none');
-                        $A.util.addClass(component.find('input-opportunity-date'), 'disp_none');
-                        $A.util.removeClass(component.find('input-opportunity-blank'), 'disp_none');
-                        // if ($A.get("$Browser.formFactor") == 'DESKTOP') {
-                        //     var values = [];
-                        //     component.find('input-opportunity').get("v.body")[0].set('v.values', values);
-                        // } else {
-                        //     component.find('input-opportunity').get("v.body")[0].set('v.selectedLabel', '');            
-                        // }
-                        component.set('v.login',false);
-                        return false;
-                    } else {
+                    }
+                    //SWAG-CKH5M8  銆愬鎵樸�戝懆鎶ュ叧鑱旇浠凤紝鍙�夋嫨璇环鑼冨洿璋冩暣 fy start
+                    //  else if (res[0]['StageName2__c'] != '3.璇环' && !component.get('v.loadOpp')){
+                    //     this.warning('璇烽�夋嫨璇环涓殑椤圭洰');
+                    //     // ToDo闇�瑕佹祴璇曟墜鏈轰笂鑳借繍琛屼笉
+                    //     component.set('v.data.Opportunity__c', '');
+                    //     $A.util.addClass(component.find('input-opportunity-stage'), 'disp_none');
+                    //     $A.util.addClass(component.find('input-opportunity-amount1'), 'disp_none');
+                    //     $A.util.addClass(component.find('input-opportunity-amount2'), 'disp_none');
+                    //     $A.util.addClass(component.find('input-opportunity-date'), 'disp_none');
+                    //     $A.util.removeClass(component.find('input-opportunity-blank'), 'disp_none');
+                    //     // if ($A.get("$Browser.formFactor") == 'DESKTOP') {
+                    //     //     var values = [];
+                    //     //     component.find('input-opportunity').get("v.body")[0].set('v.values', values);
+                    //     // } else {
+                    //     //     component.find('input-opportunity').get("v.body")[0].set('v.selectedLabel', '');            
+                    //     // }
+                    //     component.set('v.login',false);
+                    //     return false;
+                    // }
+                    //SWAG-CKH5M8  銆愬鎵樸�戝懆鎶ュ叧鑱旇浠凤紝鍙�夋嫨璇环鑼冨洿璋冩暣 fy end
+                     else {
                         component.set('v.loadOpp', false);
                         component.set('v.oppdata',res[0]);
                         this.set_selected(component, 'select_stageName', res[0].StageName__c);
@@ -1784,6 +1796,7 @@
         $A.util.addClass(modal_newAC, 'disp_none');
     },
     setOpportunity_cfilter : function(component) {
+        debugger
         var hosId = component.get('v.hospitalId');
         var Department_Cateogy__c = component.find('select_department').get('v.value');
         var opportunity_cfilter = '';
@@ -1896,19 +1909,23 @@
             fileData : component.get("v.fileContentData"),
         }); 
         action1.setCallback(this, function(response) {
+            console.log('response = '  + JSON.stringify(response));
             var state = response.getState();
             if (state === "SUCCESS") {
                 var ress = response.getReturnValue();
+                console.log('ress = '  + JSON.stringify(ress));
                 if(ress){
                     var valur =ress.split('error1');
                     if(valur.length<=1){
                         var res = JSON.parse(response.getReturnValue());
+                        console.log('res = '  + JSON.stringify(res));
                         var dataArr = new Array();
                         var dataMap = new Map();
                         res.forEach(item => {
                             if(item.AWS_Data_Id__c){
                                 dataArr.push(item.AWS_Data_Id__c);
-                                dataMap.set(item.AWS_Data_Id__c,item.Name_Encrypted__c);
+                                //dataMap.set(item.AWS_Data_Id__c,item.Name_Encrypted__c);
+                                dataMap.set(item.AWS_Data_Id__c,item.AWS_Data_Id__c);       //zhj 鏂版柟妗堟敼閫� 2022-12-21
                             }
                         });
                         debugger
@@ -1931,11 +1948,11 @@
                                         component.set('v.login',true);
                                         this.saveRecordsEditFile(component,dataMap,result.object,helper);
                                     }else{
-                                        this.error('AWS search status ' );
+                                        this.error('AWS search status5 ' );
                                         component.set('v.login',false);
                                     }
                                 }else{
-                                    this.error('AWS search status : ' + result.status);
+                                    this.error('AWS search status6 : ' + result.status);
                                     component.set('v.login',false);
                                 }
                             },component);
@@ -2087,7 +2104,7 @@
          if (searchDataMap.get(fileName.replace(' ',''))) {
                  var nameDataId = searchDataMap.get(fileName.replace(' ',''));
                 if (dataMap.get(nameDataId)) {
-                     filelist[4] = dataMap.get(nameDataId);
+                     filelist[4] = dataMap.get(nameDataId);     //zhj 鏂版柟妗堟敼閫� filelist[4]涓嶅啀瀛樼殑nameEncrpt 2022-12-21
                 }else {
                      error += 'error1 绗�'+i+'琛屾暟鎹嫓璁夸汉SF涓嶅瓨鍦�';
                      error += '=';
@@ -2317,8 +2334,24 @@
         var modalimportbg = component.find('modal_exportbg');
         $A.util.addClass(modalimport, 'disp_none');
         $A.util.addClass(modalimportbg,'disp_none');
-    }
-    
+    },
+
+    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 start
+    CallBackAction  : function(component,action_name,para,callback) {
+		var action = component.get("c." + action_name.trimStart().replace("c.",""));
+        if(para){
+            action.setParams(para);
+        }
+        if(callback){
+            action.setCallback(this,function(data){
+                callback(data);
+            });
+        }
+        
+        $A.enqueueAction(action);
+	},
+    //zhj MEBG鏂版柟妗堟敼閫� 2022-11-29 end
+
     // searchAgencyContact : function(res) {
     //     var agencyContacts = [];
     //     for (let idx = 0; idx < res.length; idx++) {
diff --git a/force-app/main/default/classes/ConsumableController.cls b/force-app/main/default/classes/ConsumableController.cls
index b694207..262180e 100644
--- a/force-app/main/default/classes/ConsumableController.cls
+++ b/force-app/main/default/classes/ConsumableController.cls
@@ -1,4 +1,4 @@
-public without sharing class ConsumableController {
+public without sharing class  {
 
     /*****************妞滅储鐢�******************/
     public Consumable_order__c coc { get; set; }            // FIMXE Consumable_order__c 銇偆銉炽偣銈裤兂銈广�乻ql澶氥仚銇�
diff --git a/force-app/main/default/classes/InventoryController.cls b/force-app/main/default/classes/InventoryController.cls
index bab5998..d5d7694 100644
--- a/force-app/main/default/classes/InventoryController.cls
+++ b/force-app/main/default/classes/InventoryController.cls
@@ -114,10 +114,10 @@
         this.sortOrder = new String[]{' ',' ','鈫�'};
 
         String userId = UserInfo.getUserId();
-        // String userId = '00510000006xHnrAAE';
+        //String userId = '00510000006k82X';
         //String userId = '00510000005QO75';
         user Useracc = [select Accountid, Work_Location__c,UserPro_Type__c from user where id =:userId];
-        accountid = Useracc.Accountid;
+        accountid = Useracc.accountid;
         userWorkLocation = Useracc.Work_Location__c;
         agencyProType = Useracc.UserPro_Type__c;
         if(String.isBlank(Useracc.UserPro_Type__c)){
@@ -131,19 +131,17 @@
         List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>();
         Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>();
         Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>();
-        //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy start
         //寮�濮嬪埗浣滆〃澶存暟鎹�
-        // List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c,
-        //                                                     SFDA_Status__c,Packing_list_manual__c,
-        //                                                     Asset_Model_No__c
-        //                                                 from Product2__c
-        //                                                 //where Estimation_Entry_Possibility__c = '鈼�'
-        //                                                  where Product_Type__c like : sqlagencyProType
-        //                                                 ];
-        // for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){
-        //     midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]);
-        // }
-        //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy end
+        List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c,
+                                                            SFDA_Status__c,Packing_list_manual__c,
+                                                            Asset_Model_No__c
+                                                        from Product2__c
+                                                        //where Estimation_Entry_Possibility__c = '鈼�'
+                                                         where Product_Type__c like : sqlagencyProType
+                                                        ];
+        for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){
+            midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]);
+        }
         //鏌ヨ搴撳瓨 杩藉姞杩斿搧搴撳瓨
         List<Consumable_order_details2__c> ProductCount_Res = [select Id,  Name,Consumable_Product__c,
                                 Bar_Code__c,Consumable_Product__r.Name__c,
@@ -159,28 +157,7 @@
                             AND Product_Type__c like : sqlagencyProType
                             AND Arrive_Owner_Work_Location__c =: userWorkLocation
                             AND  Dealer_Info_text__c = :accountName];
-        //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy start
-        //寮�濮嬪埗浣滆〃澶存暟鎹�
-        Set<Id> Product2cIdSet = new Set<Id>();
-        for(Consumable_order_details2__c con_or_d2item: ProductCount_Res){
-            Product2cIdSet.add(con_or_d2item.Consumable_Product__c);
-        }
-        List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c,
-                                                            SFDA_Status__c,Packing_list_manual__c,
-                                                            Asset_Model_No__c
-                                                        from Product2__c
-                                                        //where Estimation_Entry_Possibility__c = '鈼�'
-                                                         where Id in:Product2cIdSet
-                                                         and Product_Type__c like : sqlagencyProType
-                                                        ];
-        for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){
-            midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]);
-        }  
-        system.debug('productCount_Unfull_bak'+productCount_Unfull_bak.size());  
-        // String erro='productCount_Unfull_bak:'+productCount_Unfull_bak.size();
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, erro));
-        //DB202302357027 娑堣�楀搧杩芥函绯荤粺鏃犳硶姝e父浣跨敤鈥斺�旂洏鐐归〉闈㈡搷浣滃嵆鎶ラ敊 fy end
-        // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'ProductCount_Res  ' + ProductCount_Res.size()));
+        //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'ProductCount_Res  ' + ProductCount_Res.size()));
         for(Integer i = 0 ; i< ProductCount_Res.size();i++){
             //鐒跺悗寰幆CountDel鍋欱ox鍜宲iece2涓猰ap
             if(MidMap.containsKey(ProductCount_Res[i].Consumable_Product__c) && ProductCount_Res[i].Box_Piece__c == '鐩�'){
@@ -1028,7 +1005,9 @@
     }
     //CSV鍑哄姏
     public PageReference doClick() {
+        system.debug('Click');
         Pagereference pr = page.InventoryCSV;
+        system.debug('data:'+JSON.serialize(consumableorderdetailsRecordserrordummy));
         return pr;
     }
 
diff --git a/force-app/main/default/classes/LexInventoryController.cls b/force-app/main/default/classes/LexInventoryController.cls
new file mode 100644
index 0000000..2399a9b
--- /dev/null
+++ b/force-app/main/default/classes/LexInventoryController.cls
@@ -0,0 +1,1159 @@
+public without sharing class LexInventoryController {
+    //鍒嗛〉浣跨敤鏁版嵁
+    public static String fileName { get; set; }
+    public static  Integer size{get;set;}
+    public static  Integer noOfRecords{get; set;}
+    public static  List<ConsumableorderdetailsInfo> codPageRecords { get; set; } // 涓㈠け鍜屽贰鍥炵殑,鐢婚潰鏄剧ず鐢�
+    public static  ApexPages.StandardSetController setCon { get; set; }
+    @AuraEnabled
+    public static  List<Consumable_order_details2__c> setConDetails2 { get; set; }
+    public static  Map<Id,String> pandiandetailsMap = new Map<Id,String>();
+    /*****************妞滅储鐢�******************/
+    public static  String barcode { get; set; }
+    public static  Boolean done { get; set; }
+    /*****************鐢婚潰琛ㄧずBean******************/
+    //椤甸潰涓绘暟鎹樉绀虹敤
+    private static List<ConsumableorderdetailsInfo> consumableorderdetailsRecords;
+    //鐩樼偣鍒扮殑浜у搧
+    public static  List<Consumable_order_details2__c> reSet = new List<Consumable_order_details2__c>();
+    public static  List<Consumable_order_details2__c> showcod2nid = new List<Consumable_order_details2__c>();
+
+    //public List<Consumable_order_details2__c> pandiandetailsList { get; set; }
+    public static  List<List<Consumable_order_details2__c>> pandiandetailsListShow { get; set; }
+    //瀵诲洖鏄庣粏
+    public static  List<ConsumableorderdetailsInfo> consumableorderdetailsRecordserrordummy;  // 涓㈠け鍜屽贰鍥炵殑,瀹為檯鐐掍綔鐢�
+    @AuraEnabled
+    public static  List<List<ConsumableorderdetailsInfo>> consumableorderdetailsRecordsview { get; set; }       // 浜у搧鍗曚綅鐨凩ist
+
+    public static List<ConsumableorderdetailsInfo> consumableorderdetailsviewRecords;
+   
+    public static  Integer consumableorderdetailsCount  {
+        get {
+            return consumableorderdetailsRecords == null ? 0 : consumableorderdetailsRecords.size();
+        }
+    }
+    //list<String> notexitlist = new list<String>();
+    public static  Map<String,String> reFindProduct = new Map<String,String>();
+    //鎺掑簭鐢�
+    public static  String sortKey;
+    public static  String preSortKey;
+    public static  Boolean sortOrderAsc;
+    public static  String[] sortOrder;
+    //private Set<String> carCodeListLose = new Set<String>();              //ProductCount_Res 鏈夛紝BarCodeListP 娌℃湁
+    /*****************缁忛攢鍟咺D******************/
+    private static String accountid = null;
+    private static String accountName = null;
+    // 鐩樼偣 ID
+    private static String eSetId = '';
+    // 鐧诲綍鑰呭伐浣滃湴
+    private static String userWorkLocation;
+    //缁忛攢鍟嗙敤鎴蜂骇鍝佸垎绫伙紙ET銆丒NG锛�
+    public static String agencyProType {get;set;}
+    public static String sqlagencyProType;
+    //鍒ゆ柇鎿嶄綔浜哄憳鏄惁鐩樼偣
+    public static Boolean iSinventory = false;
+
+    public LexInventoryController(){
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+        done = false;
+
+        consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
+        consumableorderdetailsRecordserrordummy = new List<ConsumableorderdetailsInfo>();
+        codPageRecords = new List<ConsumableorderdetailsInfo>();
+        //codPageRecordsShow = new List<ConsumableorderdetailsInfo>();
+    }
+
+    private static void initStandardController(){
+        // init standard controller
+        List<Consumable_order_details2__c> showcod2 = [select Id,  Name,Consumable_Product__c,
+                            Bar_Code__c,Consumable_Product__r.Name__c,
+                            Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                            Bar_Code_search__c
+                        FROM Consumable_order_details2__c
+                        WHERE Id in :pandiandetailsMap.keySet()
+                        order by Name desc];
+        setConDetails2 = showcod2;
+        System.debug('setConDetails2===>'+setConDetails2);
+        // setCon = new ApexPages.StandardSetController(showcod2);
+        // // sets the number of records in each page set
+        // setCon.setPageSize(size);
+        // noOfRecords = setCon.getResultSize();
+    }
+
+    public static  List<Consumable_order_details2__c> cod2s() {
+         return setConDetails2;
+    }
+    //Changes the size of pagination
+    public static  PageReference refreshPageSize() {
+        setCon.setPageSize(size);
+        //showcod2nid = cod2s();
+        makepagerecords();
+        return null;
+    }
+
+    public static  List<ConsumableorderdetailsInfo> makepagerecords() {
+        showcod2nid = cod2s();
+        codPageRecords = new List<ConsumableorderdetailsInfo>();
+        for (Consumable_order_details2__c cod2 : showcod2nid) {
+            codPageRecords.add(new ConsumableorderdetailsInfo(cod2,pandiandetailsMap.get(cod2.Id)));
+        }
+        System.debug('===>codPageRecords1'+codPageRecords);
+         return codPageRecords;
+    }
+
+    // 鐢婚潰鍒濆鍖�
+    @AuraEnabled
+    public static ResponseBodyLWC init() {
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String,object> data = new Map<String,object>();
+        res.entity = data;
+
+        consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
+        setConDetails2 = new List<Consumable_order_details2__c>();
+        String url = '鍦ㄥ簱璋冩暣涓�瑙�';
+        fileName = EncodingUtil.urlEncode(url, 'UTF-8');
+        List<Consumable_order_details2__c> showcod2 = [select Id,  Name,Consumable_Product__c,
+                            Bar_Code__c,Consumable_Product__r.Name__c,
+                            Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                            Bar_Code_search__c
+                        FROM Consumable_order_details2__c
+                        WHERE Id in :pandiandetailsMap.keySet()
+                        order by Name];
+                        System.debug('pandiandetailsMap====>'+pandiandetailsMap);
+        initStandardController();
+        makepagerecords();
+        sortKey = '1';
+        preSortKey = '1';
+        sortOrderAsc = false;
+        sortOrder = new String[1];
+        sortOrder = new String[]{' ',' ','鈫�'};
+
+        String userId = UserInfo.getUserId();
+        //String userId = '00510000006k82X';
+        //String 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';
+        }
+        sqlagencyProType = '%' + agencyProType + '%';
+        Account accountInfo = [SELECT Name,Dealer_discount__c FROM account WHERE id =:accountid];
+        accountName = accountInfo.Name;
+        consumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
+        Map<String,Product2__c> midMap = new Map<String,Product2__c>();
+        List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>();
+        Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>();
+        Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>();
+        //寮�濮嬪埗浣滆〃澶存暟鎹�
+        List<Product2__c> productCount_Unfull_bak = [select Id, Name,Name__c,
+                                                            SFDA_Status__c,Packing_list_manual__c,
+                                                            Asset_Model_No__c
+                                                        from Product2__c
+                                                        //where Estimation_Entry_Possibility__c = '鈼�'
+                                                         where Product_Type__c like : sqlagencyProType
+                                                        ];
+        for(integer i = 0;i < productCount_Unfull_bak.size() ; i++){
+            midMap.put(productCount_Unfull_bak[i].Id, productCount_Unfull_bak[i]);
+        }
+        //鏌ヨ搴撳瓨 杩藉姞杩斿搧搴撳瓨
+        List<Consumable_order_details2__c> ProductCount_Res = [select Id,  Name,Consumable_Product__c,
+                                Bar_Code__c,Consumable_Product__r.Name__c,
+                                Asset_Model_No__c,Isoverdue__c,Box_Piece__c
+                            FROM Consumable_order_details2__c
+                            WHERE Dealer_Arrive__c = true
+                            AND Dealer_Shipment__c = false
+                            AND Dealer_Saled__c = false
+                            AND Dealer_Returned__c = false
+                            AND Lose_Flag__c = false
+                            AND Cancellation_Flag__c = false
+                            AND Bar_Code__c !=null
+                            AND Product_Type__c like : sqlagencyProType
+                            AND Arrive_Owner_Work_Location__c =: userWorkLocation
+                            AND  Dealer_Info_text__c = :accountName];
+        //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'ProductCount_Res  ' + ProductCount_Res.size()));
+        for(Integer i = 0 ; i< ProductCount_Res.size();i++){
+            //鐒跺悗寰幆CountDel鍋欱ox鍜宲iece2涓猰ap
+            if(MidMap.containsKey(ProductCount_Res[i].Consumable_Product__c) && ProductCount_Res[i].Box_Piece__c == '鐩�'){
+
+                if(newMidBoxMap.containsKey(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c)){
+                    ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c).clone();
+                    Jstage.countid = Jstage.countid+1 ;
+                    if(ProductCount_Res[i].Isoverdue__c == 1){
+                        Jstage.limitCount = Jstage.limitCount + 1;
+                    }
+                    Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c;
+                    newMidBoxMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage);
+                }else{
+                    ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(ProductCount_Res[i].Consumable_Product__c));
+                    Jstage.countid = Jstage.countid+1 ;
+                    if(ProductCount_Res[i].Isoverdue__c == 1){
+                        Jstage.limitCount = Jstage.limitCount + 1;
+                    }
+                    Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c;
+                    newMidBoxMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage);
+                }
+            }else if(MidMap.containsKey(ProductCount_Res[i].Consumable_Product__c) && ProductCount_Res[i].Box_Piece__c == '涓�'){
+                if(newMidPieceMap.containsKey(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c)){
+                    ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c).clone();
+                    Jstage.countid = Jstage.countid+1 ;
+                    if(ProductCount_Res[i].Isoverdue__c == 1){
+                        Jstage.limitCount = Jstage.limitCount + 1;
+                    }
+                    Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c;
+                    newMidPieceMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage);
+                }else{
+                    ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(ProductCount_Res[i].Consumable_Product__c));
+                    Jstage.countid = Jstage.countid+1 ;
+                    if(ProductCount_Res[i].Isoverdue__c == 1){
+                        Jstage.limitCount = Jstage.limitCount + 1;
+                    }
+                    Jstage.boxPiece = ProductCount_Res[i].Box_Piece__c;
+                    newMidPieceMap.put(ProductCount_Res[i].Consumable_Product__c+ProductCount_Res[i].Box_Piece__c, Jstage);
+                }
+            }
+        }
+        for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){
+            bss.overlimitCount = bss.countid - bss.limitCount;
+            boxRecords.add(bss);
+        }
+        boxRecords.sort();
+        for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){
+            bss.overlimitCount = bss.countid - bss.limitCount;
+        }
+        for(ConsumableorderdetailsInfo bss : boxRecords){
+            consumableorderdetailsRecords.add(bss);
+            if(newMidPieceMap.containsKey(bss.Prod.Id + '涓�')){
+                consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�'));
+                //newMidPieceMap绉婚櫎宸茬粡娣诲姞鐨凱iece
+                newMidPieceMap.remove(bss.Prod.Id + '涓�');
+            }
+        }
+        for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){
+            consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�'));
+        }
+        //consumableorderdetailsCount = consumableorderdetailsRecords.size();
+        listCut();
+    
+
+        system.debug('ConsumableorderdetailsRecordsview'+ConsumableorderdetailsRecordsview);
+        System.debug('ConsumableorderdetailsRecordsview==>'+ConsumableorderdetailsRecordsview);
+        // data.put('ConsumableorderdetailsRecordsview',ConsumableorderdetailsRecordsview);
+
+        // for(ConsumableorderdetailsInfo con: ConsumableorderdetailsRecordsview){
+        //     consumableorderdetailsviewRecords.add(con);
+        // }
+        System.debug('consumableorderdetailsviewRecords===>'+consumableorderdetailsviewRecords);
+        System.debug('consumableorderdetailsRecords===>'+consumableorderdetailsRecords);
+
+
+        data.put('ConsumableorderdetailsRecordsview',JSON.serialize(ConsumableorderdetailsRecordsview));
+        data.put('userWorkLocation',userWorkLocation);
+        data.put('agencyProType',agencyProType);
+        data.put('accountName',accountName);
+        data.put('consumableorderdetailsRecords',JSON.serialize(consumableorderdetailsRecords));
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    private static void listCut(){
+        //鎷嗗垎鏆傜敤list
+        List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsbreak = new List<ConsumableorderdetailsInfo>();
+        List<ConsumableorderdetailsInfo> ConsumableorderdetailsRecordsbreakover = new List<ConsumableorderdetailsInfo>();
+        ConsumableorderdetailsInfo c = null;
+        ConsumableorderdetailsRecordsbreak.clear();
+        ConsumableorderdetailsRecordsbreakover.clear();
+        consumableorderdetailsRecordsview.clear();
+        //閫夋嫨浜у搧view
+        ConsumableorderdetailsRecordsbreak = new List<ConsumableorderdetailsInfo>();
+        ConsumableorderdetailsRecordsbreakover = new List<ConsumableorderdetailsInfo>();
+        if(consumableorderdetailsRecords.size() > 1000){
+            for(Integer i = 0; i < consumableorderdetailsRecords.size(); i++){
+                if(i < 1000){
+                    c = consumableorderdetailsRecords.get(i);
+                    ConsumableorderdetailsRecordsbreak.add(c);
+                }else{
+                    c = consumableorderdetailsRecords.get(i);
+                    ConsumableorderdetailsRecordsbreakover.add(c);
+                }
+            }
+            consumableorderdetailsRecordsview.add(ConsumableorderdetailsRecordsbreak);
+            consumableorderdetailsRecordsview.add(ConsumableorderdetailsRecordsbreakover);
+        }else{
+            consumableorderdetailsRecordsview.add(consumableorderdetailsRecords);
+        }
+    }
+    //========20160311======ADD_Start================================
+    // 灏嗛〉闈㈡垨鍙栧緱BarCode鍘绘帀閲嶅鐨勶紝杞崲鎴怢ist
+    //========20160311======ADD_Start================================
+    public static  List<String> ParseBarCode(String Code){
+        Map<String,Integer> barcodeCountMap = new Map<String,Integer>();
+        String[] Cache = new String[]{};
+        Cache = Code.split('\n');
+        List <String> Buff = new List<String>();
+        for(String A : Cache){
+            A = A.trim().toUpperCase();
+            if(barcodeCountMap.containsKey(A)){
+                barcodeCountMap.put(A,barcodeCountMap.get(A) + 1);
+            }else{
+                barcodeCountMap.put(A,1);
+            }
+            Buff.add(A + barcodeCountMap.get(A));
+        }
+        return Buff;
+
+    }
+
+
+
+    //test
+
+    // @AuraEnabled
+    // public static ResponseBodyLWC searchConsumableorderdetails(String sqlagencyProType,String userWorkLocation,String accountName,String barcode,List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsLWC){
+    //     return new ResponseBodyLWC('Error',500, 'test', '');
+    // }
+    //========20160311======ADD_End==================================
+    // BarCode褰曞叆
+    @AuraEnabled
+    public static ResponseBodyLWC searchConsumableorderdetails(String agencyProType,String userWorkLocation,String accountName,String barcode,String consumableorderdetailsRecordsLWC){
+        System.debug('===>consumableorderdetailsRecordsLWC'+consumableorderdetailsRecordsLWC);
+        List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = (List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetailsRecordsLWC,List<ConsumableorderdetailsInfo>.class);
+        // ConsumableorderdetailsInfo[] consumableorderdetailsRecords=(List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetailsRecordsLWC,List<ConsumableorderdetailsInfo>.class);
+       system.debug('=====>consumableorderdetailsRecordsLWC'+consumableorderdetailsRecordsLWC);
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String,object> data = new Map<String,object>();
+        res.entity = data;
+
+        sqlagencyProType = '%' + agencyProType + '%';
+
+        // consumableorderdetailsRecords = consumableorderdetailsRecordsLWC;
+         System.debug('consumableorderdetailsRecords===>'+consumableorderdetailsRecords);
+        System.debug('agencyProType===>'+sqlagencyProType);
+        System.debug('accountName===>'+accountName);
+
+
+        /* BarCodelist鍋氭垚 */
+        //FIXME barcodeSet 鍋氭垚锛孭roductCount_ResSet 鍋氭垚
+        List<Consumable_order_details2__c> pandiandetailsList = new List<Consumable_order_details2__c>();
+        pandiandetailsListShow = new List<List<Consumable_order_details2__c>>();
+        done = false;
+        List<String> BarCodeListP = ParseBarCode( barcode );
+        //鏌ヨ搴撳瓨 杩藉姞杩斿搧搴撳瓨
+        List<Consumable_order_details2__c> ProductCount_Res = [select Id,  Name,Consumable_Product__c,
+                                Bar_Code__c,Consumable_Product__r.Name__c,Dealer_Info_text__c,
+                                Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                                Bar_Code_search__c
+                            FROM Consumable_order_details2__c
+                            WHERE Dealer_Arrive__c = true
+                            AND Dealer_Shipment__c = false
+                            AND Dealer_Saled__c = false
+                            AND Dealer_Returned__c = false
+                            AND Lose_Flag__c = false
+                            AND Cancellation_Flag__c = false
+                            AND Bar_Code__c !=null
+                            AND Product_Type__c like : sqlagencyProType
+                            AND Arrive_Owner_Work_Location__c =: userWorkLocation
+                            AND  Dealer_Info_text__c = :accountName ];
+        reFindProduct.clear();
+        Map<String,ConsumableorderdetailsInfo> barCodeListAdjustMap = new  Map<String,ConsumableorderdetailsInfo>();
+        //barCodeListLoseMap.clear();
+        Set<String> carCodeListLose = new Set<String>();
+        List<ConsumableorderdetailsInfo> consumableorderdetailsRecordsAdjust = new List<ConsumableorderdetailsInfo>();
+        Map<String,String> proIdNotinpage = new Map<String,String>();
+        List<Consumable_order_details2__c> reFindProductList = new List<Consumable_order_details2__c>();
+        codPageRecords = new List<ConsumableorderdetailsInfo>();
+        consumableorderdetailsRecordserrordummy = new List<ConsumableorderdetailsInfo>();
+        List<ConsumableorderdetailsInfo> reFindProductaddtopage = new List<ConsumableorderdetailsInfo>();
+        pandiandetailsMap.clear();
+        reSet = new List<Consumable_order_details2__c>();
+        /* 鍒ゆ柇BarCode鏄惁涓虹┖ */
+        if (barcode == null || barcode == ''){
+            //鍏堝彇鍑烘墍鏈変涪澶变骇鍝�
+            for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+                // 20200509 gzw add 鐩樼偣鏁伴噺鍒濆鍖�
+                ass.Pandian = 0;
+                // 20200509 gzw add 鐩樼偣鏁伴噺鍒濆鍖�
+                if(ass.check==true){
+                    //ass.Diff = ass.countid - ass.Pandian;
+                    for(integer i = 0 ; i < ProductCount_Res.size();i++){
+                        if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){
+                            if(carCodeListLose.contains(ProductCount_Res[i].Bar_Code__c)){
+                                continue;
+                            }else{
+
+                                //consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け'));
+                                //pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け');
+                                ////barCodeListLoseMap.put(ProductCount_Res[i].Id, new ConsumableorderdetailsInfo(ProductCount_Res[i]));
+                                carCodeListLose.add(ProductCount_Res[i].Bar_Code__c);
+                            }
+                        }
+                    }
+                }
+            }
+
+            //宸茬粡鍑哄簱鐨勪骇鍝�
+            List<Consumable_order_details2__c>  reSet1 = [SELECT Id,  Name,Consumable_Product__c,
+                            Bar_Code__c,Consumable_Product__r.Name__c,
+                            Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                            Bar_Code_search__c,Dealer_Info_text__c
+                        FROM Consumable_order_details2__c
+                        WHERE Dealer_Arrive__c = TRUE
+                        AND  (Dealer_Shipment__c= TRUE
+                        or  Dealer_Saled__c = TRUE)
+                        AND  Dealer_Returned__c = FALSE
+                        AND  Cancellation_Flag__c = FALSE
+                        AND  Bar_Code__c in :carCodeListLose
+                        AND Dealer_Info_text__c = :accountName
+                        ORDER BY Name ];
+            Map<String,Consumable_order_details2__c> needreturnMap = new Map<String,Consumable_order_details2__c>();
+            for(Consumable_order_details2__c cod2 :reSet1){
+                needreturnMap.put(cod2.Bar_Code__c,cod2);
+            }
+
+            // 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣
+            reSet1 = [SELECT Id,  Name,Consumable_Product__c,
+                            Bar_Code__c,Consumable_Product__r.Name__c,
+                            Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                            Bar_Code_search__c,Dealer_Info_text__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  Cancellation_Flag__c = FALSE
+                        AND  Bar_Code__c in :carCodeListLose
+                        AND (Dealer_Info_text__c != :accountName
+                            OR (Dealer_Info_text__c = :accountName
+                                AND Arrive_Owner_Work_Location__c != :userWorkLocation)
+                        )
+                        ORDER BY Name ];
+            Map<String,Consumable_order_details2__c> otherAgProMap = new Map<String,Consumable_order_details2__c>();
+            for(Consumable_order_details2__c cod2 :reSet1){
+                otherAgProMap.put(cod2.Bar_Code__c,cod2);
+            }
+            carCodeListLose.clear();
+
+
+            for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+                if(ass.check==true){
+                    ass.Diff = ass.countid - ass.Pandian;
+                    for(integer i = 0 ; i < ProductCount_Res.size();i++){
+                        if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){
+                            if(carCodeListLose.contains(ProductCount_Res[i].Bar_Code_search__c)){
+                                continue;
+                            }else{
+                                if(needreturnMap.containsKey(ProductCount_Res[i].Bar_Code__c)){
+                                    consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佹湭杩斿搧'));
+                                    pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佹湭杩斿搧');
+                                    carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c);
+                                    continue;
+
+                                }
+                                if(otherAgProMap.containsKey(ProductCount_Res[i].Bar_Code__c)){
+                                    consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(ProductCount_Res[i].Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��'));
+                                    pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(ProductCount_Res[i].Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��');
+                                    carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c);
+                                    continue;
+
+                                }
+                                if (ProductCount_Res[i].Isoverdue__c == 0) {
+                                    consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��'));
+                                    pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��');
+                                    carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c);
+                                    ass.Diff--;
+                                    continue;
+                                }
+                                consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け'));
+                                pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け');
+                                carCodeListLose.add(ProductCount_Res[i].Bar_Code_search__c);
+                            }
+                        }
+                    }
+                }else{
+                    ass.Pandian = 0;
+                    ass.Diff = 0;
+                }
+            }
+            List<Consumable_order_details2__c> showcod2 = new List<Consumable_order_details2__c>();
+            if (pandiandetailsMap.keySet().size() > 0) {
+                showcod2 = [select Id,  Name,Consumable_Product__c,
+                                Bar_Code__c,Consumable_Product__r.Name__c,
+                                Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                                Bar_Code_search__c
+                            FROM Consumable_order_details2__c
+                            WHERE Id in :pandiandetailsMap.keySet()
+                            order by Name];
+            }
+            initStandardController();
+            showcod2nid = cod2s();
+            for (Consumable_order_details2__c cod2 : showcod2nid) {
+                codPageRecords.add(new ConsumableorderdetailsInfo(cod2,pandiandetailsMap.get(cod2.Id)));
+            }
+
+            iSinventory = true;
+            if(codPageRecords.size() > 0) done = true;
+            consumableorderdetailsRecordserrordummy.clear();
+
+            //pandiandetailsList = new list<Consumable_order_details2__c>();
+            pandiandetailsList = [select Id, Bar_Code__c,Consumable_Product__r.Name__c,
+                                    Box_Piece__c,Lose_reason__c
+                                FROM Consumable_order_details2__c
+                                WHERE Id in :pandiandetailsMap.keySet()
+                                order by Name];
+            for(Consumable_order_details2__c codDet : pandiandetailsList){
+                codDet.Lose_reason__c = pandiandetailsMap.get(codDet.Id);
+            }
+            List<Consumable_order_details2__c> pandiandetailsListMid = new List<Consumable_order_details2__c>();
+            for(Consumable_order_details2__c cod2 : pandiandetailsList){
+                pandiandetailsListMid.add(cod2);
+                if(pandiandetailsListMid.size() == 1000){
+                    pandiandetailsListShow.add(pandiandetailsListMid);
+                    pandiandetailsListMid = new List<Consumable_order_details2__c>();
+                }
+            }
+                if(pandiandetailsListMid.size() > 0){
+                    pandiandetailsListShow.add(pandiandetailsListMid);
+                }
+                res.code = 400;
+                res.status = 'fail';
+                res.msg = 'barcode涓虹┖';
+                return res;
+                // return;
+        }
+
+
+
+        //CHAN-B7J4NB 鍙湁涓�涓椂锛岀洏鐐逛笉鍒�
+        //init();
+        //CHAN-B7J4NB
+        Map<String,String> showproductIdMap = new Map<String,String>();
+        for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+            showproductIdMap.put(ass.prod.Id + ass.boxPiece, ass.prod.Id + ass.boxPiece);
+        }
+// ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCodeListP' + BarCodeListP));
+        /***************************************************************************/
+        // BarCode鐨勬绱�  鎵�鏈夊湪搴�
+        reSet = [select Id,Consumable_Product__c,Consumable_Product__r.Name__c,
+                        Box_Piece__c,Bar_Code_search__c,Isoverdue__c
+                    from Consumable_order_details2__c
+                    where Bar_Code_search__c in :BarCodeListP
+                    AND Dealer_Arrive__c = true
+                    AND Dealer_Shipment__c = false
+                    AND Dealer_Saled__c = false
+                    AND Dealer_Returned__c = false
+                    AND Lose_Flag__c = false
+                    AND Cancellation_Date__c = null
+                    and Bar_Code__c !=null
+                    AND Product_Type__c like : sqlagencyProType
+                    AND Arrive_Owner_Work_Location__c =: userWorkLocation
+                    AND  Dealer_Info_text__c = :accountName
+                    order by Name];
+        Map<String, Integer> pandianProdIdCountMap = new Map<String, Integer>();        // ProdId 鍗樹綅
+        // 20200509 add gzw 璁板綍闇�瑕侀攢瀛樻暟閲�
+        Map<String, Integer> pandianoverdueCountMap = new Map<String, Integer>();        // ProdId 鍗樹綅 
+        // 20200509 add gzw 璁板綍闇�瑕侀攢瀛樻暟閲�
+        Map<String,ConsumableorderdetailsInfo> barCodeListPandianMap = new Map<String,ConsumableorderdetailsInfo>();   // 鏄庣窗銉愩兗銈炽兗銉� 鍗樹綅
+        //鐩樼偣鍒扮殑鏄庣粏
+        for(Consumable_order_details2__c rs : reSet){
+            //BarCodeListPandian.add(rs.Bar_Code_search__c);
+            for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+                if(rs.Consumable_Product__c == ass.Prod.Id && rs.Box_Piece__c == ass.boxPiece){
+                    ass.check = true;
+                }
+            }
+
+            barCodeListPandianMap.put(rs.Bar_Code_search__c, new ConsumableorderdetailsInfo(rs));
+            if (rs.Isoverdue__c == 0) {
+                consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(rs,'璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��'));
+                pandiandetailsMap.put(rs.Id, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��');
+                if (pandianoverdueCountMap.containsKey(rs.Consumable_product__c + rs.Box_Piece__c) == false) {
+                    pandianoverdueCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, 1);
+                } else {
+                    pandianoverdueCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, pandianoverdueCountMap.get(rs.Consumable_Product__c + rs.Box_Piece__c) + 1);
+                }
+                continue;
+            }
+            if (pandianProdIdCountMap.containsKey(rs.Consumable_product__c + rs.Box_Piece__c) == false) {
+                pandianProdIdCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, 1);
+            } else {
+                pandianProdIdCountMap.put(rs.Consumable_Product__c + rs.Box_Piece__c, pandianProdIdCountMap.get(rs.Consumable_Product__c + rs.Box_Piece__c) + 1);
+            }
+        }
+
+        // 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣
+        List<Consumable_order_details2__c> reSet1 = [SELECT Id,  Name,Consumable_Product__c,
+                        Bar_Code__c,Consumable_Product__r.Name__c,Dealer_Shipment__c,Dealer_Saled__c,
+                        Asset_Model_No__c,Isoverdue__c,Box_Piece__c,Dealer_Arrive__c,
+                        Bar_Code_search__c,Dealer_Info_text__c
+                    FROM Consumable_order_details2__c
+                    WHERE (Dealer_Arrive__c = TRUE
+                    or  Dealer_Shipment__c= TRUE
+                    or  Dealer_Saled__c = TRUE)
+                    AND  Dealer_Returned__c = FALSE
+                    AND  Cancellation_Flag__c = FALSE
+                    AND  Bar_Code_search__c in :BarCodeListP
+                    AND (Dealer_Info_text__c != :accountName
+                        OR (Dealer_Info_text__c = :accountName
+                            AND Arrive_Owner_Work_Location__c != :userWorkLocation)
+                    )
+                    ORDER BY Name ];
+        Map<String,Consumable_order_details2__c> otherAgProMap = new Map<String,Consumable_order_details2__c>();
+        for(Consumable_order_details2__c cod2 :reSet1){
+            otherAgProMap.put(cod2.Bar_Code__c,cod2);
+        }
+        // 闇�瑕佸叆搴撶殑浜у搧
+        for(Consumable_order_details2__c cod2 : reSet1){
+            for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+                if(cod2.Consumable_Product__c == ass.Prod.Id && cod2.Box_Piece__c == ass.boxPiece){
+                    ass.check = true;
+                }
+            }
+            if(!showproductIdMap.containsKey(cod2.Consumable_product__c + cod2.Box_Piece__c)){
+                reFindProductList.add(cod2);
+                proIdNotinpage.put(cod2.Consumable_Product__c, cod2.Box_Piece__c);
+            }
+            if(!barCodeListPandianMap.containsKey(cod2.Bar_Code_search__c)
+                && otherAgProMap.containsKey(cod2.Bar_Code__c)
+                && (otherAgProMap.get(cod2.Bar_Code__c).Dealer_Saled__c == true
+                || otherAgProMap.get(cod2.Bar_Code__c).Dealer_Shipment__c == true) ){
+                consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(cod2,'鏃犳浜у搧鐨勫簱瀛橈紝璇峰叆搴撱��'));
+                pandiandetailsMap.put(cod2.Id, '鏃犳浜у搧鐨勫簱瀛橈紝璇峰叆搴撱��');
+            }
+        }
+        //瀵诲洖鏄庣粏
+        List<Consumable_order_details2__c> productAdjust = new List<Consumable_order_details2__c>();
+        productAdjust = [select Id,  Name,Consumable_Product__c,
+                            Bar_Code__c,Consumable_Product__r.Name__c,Lose_reason__c,
+                            Asset_Model_No__c,Box_Piece__c,Bar_Code_search__c,Isoverdue__c
+                        from Consumable_order_details2__c
+                        where Bar_Code_search__c in :BarCodeListP
+                          and Bar_Code__c !=null
+                          and Lose_Flag__c = true
+                          AND Product_Type__c like : sqlagencyProType
+                          AND  Dealer_Info_text__c = :accountName
+                          AND Arrive_Owner_Work_Location__c =: userWorkLocation
+                        order by Name];
+        
+
+        for (Consumable_order_details2__c rs : productAdjust){
+            // 杩囨湡搴撳瓨閿�瀛� 20200427 gzw add srart
+            if (rs.Isoverdue__c == 0 || rs.Lose_reason__c == '杩囨湡搴撳瓨閿�瀛�' ) {
+                consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(rs,'杩囨湡鎴栬�呴攢瀛樹骇鍝侊紝鏃犳硶瀵诲洖鍏ュ簱'));
+                pandiandetailsMap.put(rs.Id, '杩囨湡鎴栬�呴攢瀛樹骇鍝侊紝鏃犳硶瀵诲洖鍏ュ簱');
+                carCodeListLose.add(rs.Bar_Code_search__c);
+                continue;
+            }
+            // 杩囨湡搴撳瓨閿�瀛� 20200427 gzw add end
+            for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+                if(rs.Consumable_Product__c == ass.Prod.Id && rs.Box_Piece__c == ass.boxPiece){
+                    ass.check = true;
+                }
+            }
+            if(!showproductIdMap.containsKey(rs.Consumable_product__c + rs.Box_Piece__c)){
+                reFindProductList.add(rs);
+                proIdNotinpage.put(rs.Consumable_Product__c, rs.Box_Piece__c);
+            }
+            if(barCodeListAdjustMap.containsKey(rs.Bar_Code_search__c)){
+                continue;
+            }else{
+                barCodeListAdjustMap.put(rs.Bar_Code_search__c, new ConsumableorderdetailsInfo(rs));
+                consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(rs,'瀵诲洖'));
+                pandiandetailsMap.put(rs.Id, '瀵诲洖');
+                consumableorderdetailsRecordsAdjust.add(new ConsumableorderdetailsInfo(rs));
+            }
+        }
+        if(reFindProductList.size() > 0){
+            Map<String,Product2__c> midMap = new Map<String,Product2__c>();
+            List<ConsumableorderdetailsInfo> boxRecords = new List<ConsumableorderdetailsInfo>();
+            Map<String,ConsumableorderdetailsInfo> newMidBoxMap = new Map<String,ConsumableorderdetailsInfo>();
+            Map<String,ConsumableorderdetailsInfo> newMidPieceMap = new Map<String,ConsumableorderdetailsInfo>();
+            List<Product2__c> product_Refind = [select Id, Name,Name__c,SFDA_Status__c,Packing_list_manual__c,Asset_Model_No__c
+                                    from Product2__c
+                                    WHERE Id in :proIdNotinpage.keySet()];
+            for(Product2__c pro : product_Refind){
+                midMap.put(pro.Id, pro);
+            }
+            for(Integer i = 0 ; i< reFindProductList.size();i++){
+                //鐒跺悗寰幆CountDel鍋欱ox鍜宲iece2涓猰ap
+                if(MidMap.containsKey(reFindProductList[i].Consumable_Product__c) && reFindProductList[i].Box_Piece__c == '鐩�'){
+
+                    if(newMidBoxMap.containsKey(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c)){
+                        ConsumableorderdetailsInfo Jstage = newMidBoxMap.get(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c).clone();
+                        Jstage.countid = 0 ;
+                        if(reFindProductList[i].Isoverdue__c == 1){
+                            Jstage.limitCount = 0;
+                        }
+                        Jstage.boxPiece = reFindProductList[i].Box_Piece__c;
+                        newMidBoxMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage);
+}else{
+                                            ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(reFindProductList[i].Consumable_Product__c));
+                        Jstage.countid = 0 ;
+                        if(reFindProductList[i].Isoverdue__c == 1){
+                            Jstage.limitCount = 0;
+                        }
+                        Jstage.boxPiece = reFindProductList[i].Box_Piece__c;
+                        newMidBoxMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage);
+                    }
+                }else if(MidMap.containsKey(reFindProductList[i].Consumable_Product__c) && reFindProductList[i].Box_Piece__c == '涓�'){
+                    if(newMidPieceMap.containsKey(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c)){
+                        ConsumableorderdetailsInfo Jstage = newMidPieceMap.get(reFindProductList[i].Consumable_product__c+reFindProductList[i].Box_Piece__c).clone();
+                        Jstage.countid = 0 ;
+                        if(reFindProductList[i].Isoverdue__c == 1){
+                            Jstage.limitCount = 0;
+                        }
+                        Jstage.boxPiece = reFindProductList[i].Box_Piece__c;
+                        newMidPieceMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage);
+                    }else{
+                        ConsumableorderdetailsInfo Jstage = new ConsumableorderdetailsInfo(MidMap.get(reFindProductList[i].Consumable_Product__c));
+                        Jstage.countid = 0 ;
+                        if(reFindProductList[i].Isoverdue__c == 1){
+                            Jstage.limitCount = 0;
+                        }
+                        Jstage.boxPiece = reFindProductList[i].Box_Piece__c;
+                        newMidPieceMap.put(reFindProductList[i].Consumable_Product__c+reFindProductList[i].Box_Piece__c, Jstage);
+                    }
+                }
+            }
+            for(ConsumableorderdetailsInfo bss : newMidBoxMap.values()){
+                bss.check = true;
+                bss.overlimitCount = bss.countid - bss.limitCount;
+                boxRecords.add(bss);
+            }
+            boxRecords.sort();
+            for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){
+                bss.check = true;
+                bss.overlimitCount = bss.countid - bss.limitCount;
+            }
+            for(ConsumableorderdetailsInfo bss : boxRecords){
+                consumableorderdetailsRecords.add(bss);
+                if(newMidPieceMap.containsKey(bss.Prod.Id + '涓�')){
+                    consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�'));
+                    //newMidPieceMap绉婚櫎宸茬粡娣诲姞鐨凱iece
+                    newMidPieceMap.remove(bss.Prod.Id + '涓�');
+                }
+            }
+            for(ConsumableorderdetailsInfo bss : newMidPieceMap.values()){
+                consumableorderdetailsRecords.add(newMidPieceMap.get(bss.Prod.Id + '涓�'));
+            }
+        }
+
+        //鍏堝彇鍑烘湭鐩樼偣鍒扮殑浜у搧
+        for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+            if(ass.check == true){
+                for(integer i = 0 ; i<ProductCount_Res.size();i++){
+                    if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){
+                        if(barCodeListPandianMap.get(ProductCount_Res[i].Bar_Code_search__c) != null){
+                            continue;
+                        }else{
+                            carCodeListLose.add(ProductCount_Res[i].Bar_Code__c);
+                            ////barCodeListLoseMap.put(ProductCount_Res[i].Id, new ConsumableorderdetailsInfo(ProductCount_Res[i]));
+                            //consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け'));
+                            //pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け');
+                        }
+                    }
+                }
+            }
+        }
+        //宸茬粡鍑哄簱鐨勪骇鍝�
+        List<Consumable_order_details2__c>  reSet2 = [SELECT Id,  Name,Consumable_Product__c,
+                        Bar_Code__c,Consumable_Product__r.Name__c,
+                        Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                        Bar_Code_search__c,Dealer_Info_text__c
+                    FROM Consumable_order_details2__c
+                    WHERE Dealer_Arrive__c = TRUE
+                    AND  (Dealer_Shipment__c= TRUE
+                    or  Dealer_Saled__c = TRUE)
+                    AND  Dealer_Returned__c = FALSE
+                    AND  Cancellation_Flag__c = FALSE
+                    AND  Bar_Code_search__c in :BarCodeListP
+                    AND Dealer_Info_text__c = :accountName
+                    ORDER BY Name ];
+        Map<String,Consumable_order_details2__c> needreturnMap = new Map<String,Consumable_order_details2__c>();
+        for(Consumable_order_details2__c cod2 :reSet2){
+            needreturnMap.put(cod2.Bar_Code__c,cod2);
+        }
+        //// 缁忛攢鍟嗕箣闂存垨鑰呭悓涓�缁忛攢鍟嗕笉鍚屽伐浣滃湴璋冭揣
+        //List<Consumable_order_details2__c> reSet1 = [SELECT Id,  Name,Consumable_Product__c,
+        //                Bar_Code__c,Consumable_Product__r.Name__c,Dealer_Shipment__c,Dealer_Saled__c,
+        //                Asset_Model_No__c,Isoverdue__c,Box_Piece__c,Dealer_Arrive__c,
+        //                Bar_Code_search__c,Dealer_Info_text__c
+        //            FROM Consumable_order_details2__c
+        //            WHERE (Dealer_Arrive__c = TRUE
+        //            or  Dealer_Shipment__c= TRUE
+        //            or  Dealer_Saled__c = TRUE)
+        //            AND  Dealer_Returned__c = FALSE
+        //            AND  Cancellation_Flag__c = FALSE
+        //            AND  Bar_Code_search__c in :BarCodeListP
+        //            AND (Dealer_Info_text__c != :accountName
+        //                OR (Dealer_Info_text__c = :accountName
+        //                    AND Arrive_Owner_Work_Location__c != :userWorkLocation)
+        //            )
+        //            ORDER BY Name ];
+        //Map<String,Consumable_order_details2__c> otherAgProMap = new Map<String,Consumable_order_details2__c>();
+        //for(Consumable_order_details2__c cod2 :reSet1){
+        //    otherAgProMap.put(cod2.Bar_Code__c,cod2);
+        //}
+        carCodeListLose.clear();
+        //鏈洏鐐瑰埌鐨勪骇鍝�
+        for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+            if(ass.check == true){
+                for(integer i = 0 ; i<ProductCount_Res.size();i++){
+                    if(ProductCount_Res[i].Consumable_Product__c == ass.Prod.Id && ass.boxPiece == ProductCount_Res[i].Box_Piece__c){
+                        if(barCodeListPandianMap.containsKey(ProductCount_Res[i].Bar_Code_search__c)){
+                            continue;
+                        }
+                        if (ProductCount_Res[i].Isoverdue__c == 0) {
+                            consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��'));
+                            pandiandetailsMap.put(ProductCount_Res[i].Id, '璇ヤ骇鍝佸凡缁忚繃鏈夋晥鏈燂紝璇烽攢瀛樸��');
+                            if (pandianoverdueCountMap.containsKey(ProductCount_Res[i].Consumable_product__c + ProductCount_Res[i].Box_Piece__c) == false) {
+                                pandianoverdueCountMap.put(ProductCount_Res[i].Consumable_Product__c + ProductCount_Res[i].Box_Piece__c, 1);
+                            } else {
+                                pandianoverdueCountMap.put(ProductCount_Res[i].Consumable_Product__c + ProductCount_Res[i].Box_Piece__c, pandianoverdueCountMap.get(ProductCount_Res[i].Consumable_Product__c + ProductCount_Res[i].Box_Piece__c) + 1);
+                            }
+                            continue;
+                        }
+
+                        consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(ProductCount_Res[i],'涓㈠け'));
+                        pandiandetailsMap.put(ProductCount_Res[i].Id, '涓㈠け');
+                    }
+                }
+                // 鍚屾椂瀛樺湪鍏朵粬缁忛攢鍟嗗簱瀛樹骇鍝�
+                for(Consumable_order_details2__c cod2 : reSet1){
+                    if(cod2.Consumable_Product__c == ass.Prod.Id && ass.boxPiece == cod2.Box_Piece__c){
+                        if(barCodeListPandianMap.containsKey(cod2.Bar_Code_search__c)
+                            && otherAgProMap.containsKey(cod2.Bar_Code__c)
+                            && otherAgProMap.get(cod2.Bar_Code__c).Dealer_Saled__c == false
+                            && otherAgProMap.get(cod2.Bar_Code__c).Dealer_Shipment__c == false ){
+                            consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(cod2,'璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��'));
+                            pandiandetailsMap.put(cod2.Id, '璇ヤ骇鍝佸綊灞炰簬' + otherAgProMap.get(cod2.Bar_Code__c).Dealer_Info_text__c + '鐨勫簱瀛樸��');
+                            continue;
+                        }
+                    }
+                }
+                // 闇�瑕佽繑鍝佺殑浜у搧
+                for(Consumable_order_details2__c cod2 : reSet2){
+                    if(cod2.Consumable_Product__c == ass.Prod.Id && ass.boxPiece == cod2.Box_Piece__c){
+                        if(needreturnMap.containsKey(cod2.Bar_Code__c)){
+                            consumableorderdetailsRecordserrordummy.add(new ConsumableorderdetailsInfo(cod2,'璇ヤ骇鍝佺洰鍓嶅嚭搴撶姸鎬侊紝璇疯繑鍝併��'));
+                            pandiandetailsMap.put(cod2.Id, '璇ヤ骇鍝佺洰鍓嶅嚭搴撶姸鎬侊紝璇疯繑鍝併��');
+                            continue;
+                        }
+                    }
+                }
+            }
+        }
+
+        //鏇存柊涓绘槑缁嗗崟
+        if(barCodeListPandianMap.size() > 0){
+            for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+                if(ass.check == true){
+                    integer countSum = 0;
+                    if (pandianProdIdCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) {
+                        countSum = pandianProdIdCountMap.get(ass.Prod.Id + ass.boxPiece);
+                    }
+                    integer overdueSum = 0;
+                    if (pandianoverdueCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) {
+                        overdueSum = pandianoverdueCountMap.get(ass.Prod.Id + ass.boxPiece);
+                    }
+                    ass.Pandian = countSum;
+                    ass.Diff = ass.countid - countSum - overdueSum;
+                    ass.refind = 0;
+                }
+            }
+        }else{
+            for(ConsumableorderdetailsInfo ass : consumableorderdetailsRecords){
+                if(ass.check == true){
+                    integer overdueSum = 0;
+                    if (pandianoverdueCountMap.containsKey(ass.Prod.Id + ass.boxPiece)) {
+                        overdueSum = pandianoverdueCountMap.get(ass.Prod.Id + ass.boxPiece);
+                    }
+                    ass.Diff = ass.countid - ass.Pandian - overdueSum;
+                }
+            }
+        }
+
+
+        //瀵诲洖鍋氭垚
+        for(ConsumableorderdetailsInfo ass :consumableorderdetailsRecords){
+            for(ConsumableorderdetailsInfo adjust :consumableorderdetailsRecordsAdjust){
+                if(ass.Prod.Name__c == adjust.Prod.Name__c && ass.boxPiece == adjust.orderdetails2.Box_Piece__c){
+                    if(reFindProduct.containsKey(adjust.orderdetails2.Bar_Code_search__c)){
+                        continue;
+                    }else {
+                        ass.Pandian ++;
+                        ass.refind ++;
+                        reFindProduct.put(adjust.orderdetails2.Bar_Code_search__c,adjust.orderdetails2.Bar_Code_search__c);
+                    }
+                }
+            }
+        }
+        if (pandiandetailsMap.keySet().size() > 0) {
+            List<Consumable_order_details2__c> showcod2 = [select Id,  Name,Consumable_Product__c,
+                                Bar_Code__c,Consumable_Product__r.Name__c,
+                                Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                                Bar_Code_search__c
+                            FROM Consumable_order_details2__c
+                            WHERE Id in :pandiandetailsMap.keySet()
+                            order by Name];
+            initStandardController();
+            showcod2nid = cod2s();
+
+        }
+        for (Consumable_order_details2__c cod2 : showcod2nid) {
+            codPageRecords.add(new ConsumableorderdetailsInfo(cod2,pandiandetailsMap.get(cod2.Id)));
+        }
+        if(codPageRecords.size() > 0) done = true;
+        iSinventory = true;
+        consumableorderdetailsRecordserrordummy.clear();
+        pandiandetailsList = [select Id, Bar_Code__c,Consumable_Product__r.Name__c,
+                                Box_Piece__c,Lose_reason__c
+                            FROM Consumable_order_details2__c
+                            WHERE Id in :pandiandetailsMap.keySet()
+                            order by Name];
+        for(Consumable_order_details2__c codDet : pandiandetailsList){
+            codDet.Lose_reason__c = pandiandetailsMap.get(codDet.Id);
+        }
+        List<Consumable_order_details2__c> pandiandetailsListMid = new List<Consumable_order_details2__c>();
+        for(Consumable_order_details2__c cod2 : pandiandetailsList){
+            pandiandetailsListMid.add(cod2);
+            if(pandiandetailsListMid.size() == 1000){
+                pandiandetailsListShow.add(pandiandetailsListMid);
+                pandiandetailsListMid = new List<Consumable_order_details2__c>();
+            }
+        }
+            if(pandiandetailsListMid.size() > 0){
+                pandiandetailsListShow.add(pandiandetailsListMid);
+            }
+            System.debug('=====>codPageRecords2'+codPageRecords);
+            System.debug('=====>consumableorderdetailsRecords'+consumableorderdetailsRecords);
+            data.put('codPageRecords',JSON.serialize(codPageRecords));
+            data.put('consumableorderdetailsRecords',JSON.serialize(consumableorderdetailsRecords));
+            System.debug('iSinventory===>'+iSinventory);
+            data.put('iSinventory',JSON.serialize(iSinventory));
+            System.debug('pandiandetailsMap===>'+pandiandetailsMap);
+            data.put('pandiandetailsMap',JSON.serialize(pandiandetailsMap));
+
+
+            res.code = 200;
+            res.status = 'Sucess';
+            return res;
+    }
+
+    public static ResponseBodyLWC saveConfirm(Boolean iSinventory,String consumableorderdetailsRecordsLWC) {
+        save(iSinventory,consumableorderdetailsRecordsLWC);
+        // LexInventoryController.oinoi
+        return null;
+    }
+    // 淇濆瓨鎸夐挳
+    @AuraEnabled
+    public static ResponseBodyLWC save(Boolean iSinventory,String consumableorderdetailsRecordsLWC) {
+        List<ConsumableorderdetailsInfo> consumableorderdetailsRecords = (List<ConsumableorderdetailsInfo>)JSON.deserialize(consumableorderdetailsRecordsLWC,List<ConsumableorderdetailsInfo>.class);
+
+        ResponseBodyLWC res = new ResponseBodyLWC();
+        Map<String, object> data = new Map<String, object>();
+        res.entity = data;
+        // 璺宠繃鏄庣粏2涓嶅繀瑕佹洿鏂�
+        StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
+        if(!iSinventory){
+            return new ResponseBodyLWC('Error',500, '璇峰厛鐐广�怋arCode褰曞叆銆�', '');
+            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇峰厛鐐广�怋arCode褰曞叆銆�'));
+            // return null;
+        }
+        integer Lo = 0;
+        for(ConsumableorderdetailsInfo header : consumableorderdetailsRecords){
+            if(header.check==true){
+                Lo++;
+            }
+        }
+        if(Lo == 0){
+            iSinventory = false;
+            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'璇烽�夋嫨瑕佺洏鐐圭殑鏄庣粏'));
+            // return null;
+            return new ResponseBodyLWC('Error',500, '璇烽�夋嫨瑕佺洏鐐圭殑鏄庣粏', '');
+        }
+        for(ConsumableorderdetailsInfo header : consumableorderdetailsRecords){
+            if(header.check==true){
+                //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, header.prod.Name__c + '  '+header.prod.Name__c));
+                //return null;
+                if((header.DiffReason == ''||header.DiffReason ==null)&&header.Diff>0){
+                    return new ResponseBodyLWC('Error',500, header.prod.Name__c + '璇疯緭鍏ュ樊寮傚師鍥�', '');
+                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, header.prod.Name__c + '璇疯緭鍏ュ樊寮傚師鍥�'));
+                    // return null;
+                }else if ((header.DiffReason != ''&&header.DiffReason !=null)&&header.Diff==0){
+                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, '鏃犱涪澶变骇鍝侊紝涓嶉渶瑕佸~鍐欏樊寮傚師鍥�'));
+                    // return null;
+                    return new ResponseBodyLWC('Error',500, header.prod.Name__c + '鏃犱涪澶变骇鍝侊紝涓嶉渶瑕佸~鍐欏樊寮傚師鍥�', '');
+                }
+            }
+        }
+        Integer orderDetNo = 1;
+        Savepoint sp = Database.setSavepoint();
+        Consumable_order__c Po = new Consumable_order__c();
+        Po.Name ='*';
+        Po.Order_status__c = '鎵瑰噯';
+        Po.Inventory_date__c = Date.today();
+        Po.Order_type__c = '鐩樼偣';
+        Po.Dealer_Info__c = accountid;
+        Po.Order_ProType__c = agencyProType;
+        Po.RecordTypeid = System.Label.RT_ConOrder_Inventory;
+        try{
+            insert  Po;
+            eSetId = Po.id;
+            List<Consumable_order__c> Consumable_order = [SELECT Name FROM Consumable_order__c WHERE id =:Po.id];
+            List<Consumable_orderdetails__c> InsList = New List<Consumable_orderdetails__c>();
+            List<Consumable_order_details2__c> InsListUp = New List<Consumable_order_details2__c>();
+            List<Consumable_order_details2__c> updListAdjust = New List<Consumable_order_details2__c>();
+            Map<String,String> ErrorName = new Map<String,String>();
+            Map<String,Boolean> CheckTF = new Map<String,Boolean>();
+            for(ConsumableorderdetailsInfo header : consumableorderdetailsRecords){
+                if(header.check==true){
+                    Consumable_orderdetails__c insPan = new Consumable_orderdetails__c();
+                    insPan = new Consumable_orderdetails__c();
+                    String str = string.valueOf(orderDetNo);
+                    if(str.length() == 1){
+                    str = '0' + str;
+                    }
+                    insPan.Name = Consumable_order[0].Name + '-'+ str;
+                    insPan.Consumable_Product__c = header.ProdId;
+                    ErrorName.put(insPan.Consumable_Product__c,header.DiffReason);
+                    CheckTF.put(insPan.Consumable_product__c,true);
+                    insPan.Consumable_order__c = Po.Id;
+                    insPan.Lose_reason__c = header.DiffReason;
+                    insPan.Diff__c = header.Diff;
+                    insPan.Product_Refind__c = header.refind;
+                    insPan.inventory_sum__c = header.Pandian;
+                    insPan.Count_Sum__c = header.countid;
+                    insPan.RecordTypeId = System.Label.RT_ConOrderDetail1_Inventory;
+                    orderDetNo ++;
+                    InsList.add(insPan);
+                }
+            }
+            if(InsList.size()>0){
+                insert InsList;
+            }
+            List<Consumable_order_details2__c> showcod2 = [select Id,  Name,Consumable_Product__c,
+                                Bar_Code__c,Consumable_Product__r.Name__c,
+                                Asset_Model_No__c,Isoverdue__c,Box_Piece__c,
+                                Bar_Code_search__c
+                            FROM Consumable_order_details2__c
+                            WHERE Id in :pandiandetailsMap.keySet()
+                            order by Name];
+            for(Consumable_order_details2__c cod : showcod2){
+                Consumable_order_details2__c InsDetail = new Consumable_order_details2__c();
+                InsDetail.Id =cod.Id;
+                InsDetail.Consumable_Inventory_order__c = po.Id;
+                InsDetail.Inventory_date__c = Date.today();
+                // 20210224 gzw CHAN-BXF3PG start
+                // if(pandiandetailsMap.get(cod.Id) == '涓㈠け' ){
+                if(pandiandetailsMap.get(cod.Id) == '涓㈠け' && CheckTF.containsKey(cod.Consumable_product__c)){
+                // 20210224 gzw CHAN-BXF3PG end
+                    InsDetail.Lose_reason__c = ErrorName.get(cod.Consumable_product__c);
+                    InsDetail.Lose_Flag__c = true;
+                }else if(pandiandetailsMap.get(cod.Id) == '瀵诲洖' ){
+                    InsDetail.Lose_reason__c = '';
+                    InsDetail.Lose_Flag__c = false;
+                }else{
+                    continue;
+                }
+                InsListUp.add(InsDetail);
+            }
+            for(Consumable_order_details2__c rs : reSet){
+                rs.Inventory_date__c = Date.today();
+            }
+            if(reSet.size() > 0){
+                update reSet;
+            }
+            if(InsListUp.size()>0){
+                ControllerUtil.updateOrderDetailsSatus(InsListUp);// Commented By DTT - Li Jun for testing 20230407
+            }
+
+        }catch (Exception ex) {
+            Database.rollback(sp);
+            ApexPages.addMessages(ex);
+            return null;
+        }
+        // FIXME impliment BarCodeListAdjust
+        /************************************************************************************************/
+        // return ProS();
+        data.put('eSetId',eSetId);
+        res.status = 'Success';
+        res.code = 200;
+        System.debug('res = ' + res);
+        return res;
+    }
+
+    //鐩樼偣涓�瑙�
+    public PageReference ProS() {
+        // 杩斿洖鐩樼偣涓�瑙�
+        PageReference ref = new Pagereference('/apex/InventoryList?eSetId=' + eSetId);
+        ref.setRedirect(true);
+        return ref; 
+    }
+    //CSV鍑哄姏
+    public PageReference doClick() {
+        Pagereference pr = page.InventoryCSV;
+        return pr;
+    }
+
+    // Data Bean
+    class ConsumableorderdetailsInfo implements Comparable {
+        public Boolean check { get; set; }
+        public Consumable_orderdetails__c orderdetails1 { get; set; }
+        public Consumable_order_details2__c orderdetails2 { get; set; }
+        public Product2__c Prod { get; set; }
+        public Decimal countid { get; set; }
+        public String ProdId{get;set;}
+        public Decimal Pandian { get; set; }
+        public Decimal Diff { get; set; }
+        public Decimal refind { get; set; }
+        public String DiffReason { get; set; }
+        public Boolean canSelect { get; set; }
+        public Boolean sortBy { get; set; }
+        public Decimal limitCount { get; set; }
+        public Decimal overlimitCount { get; set; }
+        public String boxPiece { get; set; }
+        public ConsumableorderdetailsInfo(Consumable_order_details2__c e,string str) {
+
+            orderdetails2 = e;
+            Prod = e.Consumable_Product__r;
+            //e.Lose_reason__c = str;
+            DiffReason = str;
+        }
+        
+        // 宸插瓨鍦ㄦ秷鑰楀搧鏄庣粏鐢�
+        public ConsumableorderdetailsInfo(Consumable_order_details2__c e) {
+            check = false;
+            orderdetails2 = e;
+            Prod = e.Consumable_Product__r;
+            canSelect = true;
+        }
+        public ConsumableorderdetailsInfo(Product2__c e) {
+            check = false;
+            //orderdetails1 = new Consumable_orderdetails__c();
+            Prod = e;
+            canSelect = true; 
+            ProdId = string.valueOf(e.id);
+            countid =0;
+            Pandian = 0;
+            refind = 0;
+            Diff = 0;
+            limitCount = 0;
+            overlimitCount = 0;
+        }
+        // 鎺掑簭
+        public Integer compareTo(Object compareTo) {
+            ConsumableorderdetailsInfo compareToesd =(ConsumableorderdetailsInfo)compareTo;
+            Integer returnValue = 0;
+            if (countid  > compareToesd.countid ) {
+                returnValue = -1;
+            } else if (countid  < compareToesd.countid ) {
+                returnValue = 1;
+            }
+            return returnValue;
+        }
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/LexInventoryController.cls-meta.xml b/force-app/main/default/classes/LexInventoryController.cls-meta.xml
new file mode 100644
index 0000000..fbbad0a
--- /dev/null
+++ b/force-app/main/default/classes/LexInventoryController.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/LexSummonsCreatController.cls b/force-app/main/default/classes/LexSummonsCreatController.cls
new file mode 100644
index 0000000..dd50ba6
--- /dev/null
+++ b/force-app/main/default/classes/LexSummonsCreatController.cls
@@ -0,0 +1,2400 @@
+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>();
+    @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>();
+    //閫夋嫨浜у搧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; }
+    // 淇濆瓨鍚庡姩浣滐細 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) {
+        // try {
+        firstInit(ESetidJs);
+        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;
+
+        sortKey = '1';
+        preSortKey = '1';
+        sortOrderAsc = false;
+        sortOrder = new 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')));
+        }
+        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);
+            product2Selected = Database.query(msoql);
+            //product2Selected = product2s();
+            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);
+                        }
+                    }
+                    /*//鐒跺悗寰幆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 != '鑽夋涓�'
+            ];
+
+            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('', '-鏃�-');
+
+
+        Boolean Existarrive = (coc.Arrive_Order__c != null);
+        String ConsumableOut_report = System.Label.ConsumableOut_report;
+        System.debug('consumableproductdetailsRecords = ' + consumableproductdetailsRecords);
+        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', pageRecords);
+        data.put('arriveorder',arriveorder);
+        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 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) {
+        consumableproductdetailsRecords = consumableproductdetailsRecordsLwc;
+        pageRecordsLwc = pageRecordsLwcLwc;
+        System.debug('pageRecordsLwc = ' + pageRecordsLwc);
+        arriveorder = arriveorderLwc;
+        accountName = accountNameLwc;
+        userWorkLocation = userWorkLocationLwc;
+        agencyProType = agencyProTypeLwc;
+        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);
+        System.debug('soql = ' + soql);
+        size = Integer.valueOf(System.Label.orderdetLimitsize);
+        initStandardController(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();
+        //add by rentx
+        //noOfRecords = consumableorderdetailsSelectRecords.size();
+        //add by rentx
+        //makepagerecords();
+        makepagerecordsLwc();
+        // this.sortKey = '1';
+        // this.preSortKey = '1';
+        // this.sortOrderAsc = false;
+        // this.sortOrder = new String[8];
+        // this.sortOrder = new String[]{' ',' ',' ',' ','鈫�','','',''};
+        data.put('pageRecords', pageRecords);
+        data.put('test','test');
+        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(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 (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>();
+        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 = ' + consumableorderdetailsSelectRecords);
+        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>();
+        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);
+                    } else {
+                        selectedIdMap.put(ass.Prod.Id + 'nothos', ass.Prod.Id);
+                    }
+                    reSetLwc.add(ass);
+                }
+            }
+        }
+        System.debug('reSetLwc = ' + reSetLwc);
+        System.debug('selectedIdMap = ' + selectedIdMap);
+        pageRecords = new List<ConsumableorderdetailsInfo>();
+        if (editAble && String.isBlank(arriveorder)) {
+            List<ConsumableorderdetailsInfo> reSet = new List<ConsumableorderdetailsInfo>();
+            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;
+        }
+        //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 = ' + consumableorderdetailsSelectRecords);
+        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 = ' + pageRecords);
+        return pageRecords;
+    }
+
+
+
+
+
+    // 淇濆瓨鎸夐挳
+    @AuraEnabled
+    public static ResponseBodyLWC save(Consumable_order__c cocLwc,String hospitalInfoLwc,String hospitalNameLwc,String secondaryDistributor,List<ConsumableorderdetailsInfoLwc> pageRecordsLwc,String accountid,String ESetId,List<ConsumableorderdetailsInfo> consumableproductdetailsRecordsLwc) {
+        System.debug('cocLwc = ' + cocLwc);
+        coc = cocLwc;
+        HospitalInfo = hospitalInfoLwc;
+        HospitalName = hospitalNameLwc;
+        SecondDealer = secondaryDistributor;
+        pageRecordsLwc = pageRecordsLwc;
+        consumableproductdetailsRecords = consumableproductdetailsRecordsLwc;
+        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);
+                }
+            }
+            //淇敼涔嬪悗 淇濆瓨璁㈠崟
+            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(SecondDealer == null){
+                    p.Order_ForHospital__c = String.isNotBlank(HospitalInfo) ? HospitalInfo : null;
+                    p.Order_ForCustomerText__c = coc.Order_ForCustomerText__c;
+                    p.Order_ForDealer__c = SecondDealer;
+                }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;
+    }
+
+    // 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; }
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/LexSummonsCreatController.cls-meta.xml b/force-app/main/default/classes/LexSummonsCreatController.cls-meta.xml
new file mode 100644
index 0000000..fbbad0a
--- /dev/null
+++ b/force-app/main/default/classes/LexSummonsCreatController.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/NFMUtil.cls b/force-app/main/default/classes/NFMUtil.cls
index a8be243..d058c29 100644
--- a/force-app/main/default/classes/NFMUtil.cls
+++ b/force-app/main/default/classes/NFMUtil.cls
@@ -1321,9 +1321,7 @@
         request.setEndpoint(hostUrl + '/api/nfm/reCallNFM624Batch?nfm624RequestId=' + GeDataList[0].nfm624RequestId + '&rowDataId=' + rowDataId);
         request.setMethod('GET');
         request.setHeader('pi-token',documentPI.token);
-        request.setTimeout(60000);
         HttpResponse response = http.send(request);
-        System.debug('response = ' + response);
         System.debug('send batchSendToAWS624');
     }
     //zhj batch 璋冪敤624鎺ュ彛鐨勬椂鍊� 闇�瑕佽皟鐢ˋWS 2023-01-08 end
@@ -1344,7 +1342,7 @@
             System.debug('documentPI.token = ' + documentPI.token);
             request.setEndpoint(hostUrl + '/api/nfm/reCallNFM624?reCallNfm624RequestId=' + GeDataList[0].reCallNfm624RequestId + '&rowDataId=' + rowDataId);
             request.setMethod('GET');
-            request.setHeader('pi-token',documentPI.token);          
+            request.setHeader('pi-token',documentPI.token);
             HttpResponse response = http.send(request);
             System.debug('send againSendToAWS624');
         }
@@ -1377,74 +1375,6 @@
 
     public static Integer ControllerUtil() {
         Integer i = 0;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
-        i++;
         i++;
         i++;
         i++;
diff --git a/force-app/main/default/classes/PaginatedListControllerLwc.cls b/force-app/main/default/classes/PaginatedListControllerLwc.cls
new file mode 100644
index 0000000..8aeed94
--- /dev/null
+++ b/force-app/main/default/classes/PaginatedListControllerLwc.cls
@@ -0,0 +1,42 @@
+public with sharing class PaginatedListControllerLwc {
+    @AuraEnabled
+    public static PaginatedAccounts getAccountsPaginated(Integer pageSize, Integer pageToken, String sortField, String sortOrder) {
+        system.debug('init soql'+ String.valueOf(pageSize)  + String.valueof(pageToken));
+        PaginatedAccounts paginatedAccounts = new PaginatedAccounts();
+        String paginatedQuery = 'SELECT Name, Type, Phone, NumberOfEmployees, Owner.Name'
+                 + ' FROM Account'
+                 + ' WITH SECURITY_ENFORCED';
+        system.debug('sort field:'+sortField + '--'+sortOrder);
+        if(sortField != null && sortOrder !=null) {
+            paginatedQuery += ' ORDER BY '+ sortField +' '+ sortOrder;
+        }
+        paginatedQuery += ' LIMIT ' + pageSize;
+        paginatedQuery += ' OFFSET ' + pageToken;
+        system.debug('SOQL:' + paginatedQuery);
+        paginatedAccounts.records = Database.query(paginatedQuery);
+        Integer totalCount = [SELECT COUNT() FROM Account];
+
+        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;
+        return paginatedAccounts;
+    }
+
+    public class PaginatedAccounts {
+        @AuraEnabled
+        public List<Account> records;
+        @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;}        
+    }
+}
diff --git a/force-app/main/default/classes/PaginatedListControllerLwc.cls-meta.xml b/force-app/main/default/classes/PaginatedListControllerLwc.cls-meta.xml
new file mode 100644
index 0000000..40d6793
--- /dev/null
+++ b/force-app/main/default/classes/PaginatedListControllerLwc.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>54.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/SaleOrderController.cls b/force-app/main/default/classes/SaleOrderController.cls
index eb8a1ab..31dba36 100644
--- a/force-app/main/default/classes/SaleOrderController.cls
+++ b/force-app/main/default/classes/SaleOrderController.cls
@@ -222,10 +222,12 @@
         List<hospitalprice__c> hpList = [select id,hospital__c,product__c from hospitalprice__c where account__c = :accountid];
         if (hpList!= null && hpList.size() > 0) {
             for (hospitalprice__c hp : hpList) {
-                proIdMap.put((''+hp.product__c).subString(0,15)+'鏄�', '');
-                if (hp.hospital__c ==coc.Order_ForHospital__c) {
-                    proHosMap.put((''+hp.product__c).subString(0,15)+'鏄�', '');
-                }
+                if(hp.product__c!=null && String.valueof(hp.product__c).length()>=15){//Add by Li Jun for issue fix 20230403 
+                    proIdMap.put((''+hp.product__c).subString(0,15)+'鏄�', '');
+                    if (hp.hospital__c ==coc.Order_ForHospital__c) {
+                        proHosMap.put((''+hp.product__c).subString(0,15)+'鏄�', '');
+                    }
+                }               
             }
         }
 
diff --git a/force-app/main/default/classes/SampleLookupController.cls b/force-app/main/default/classes/SampleLookupController.cls
new file mode 100644
index 0000000..cbc1088
--- /dev/null
+++ b/force-app/main/default/classes/SampleLookupController.cls
@@ -0,0 +1,89 @@
+public with sharing class SampleLookupController {
+    private final static Integer MAX_RESULTS = 5;
+
+    @AuraEnabled(cacheable=true scope='global')
+    public static List<LookupSearchResult> search(String searchTerm, List<String> selectedIds) {
+        // Prepare query parameters
+        searchTerm += '*';
+
+        // Execute search query
+        // List<List<SObject>> searchResults = [
+        //     FIND :searchTerm
+        //     IN ALL FIELDS
+        //     RETURNING
+        //         Account(Id, Name, BillingCity WHERE id NOT IN :selectedIds),
+        //         Opportunity(Id, Name, StageName WHERE id NOT IN :selectedIds)
+        //     LIMIT :MAX_RESULTS
+        // ];
+
+        // Prepare results
+        List<LookupSearchResult> results = new List<LookupSearchResult>();
+
+        // Extract Accounts & convert them into LookupSearchResult
+        String accountIcon = 'standard:account';
+        //Account[] accounts = (List<Account>) searchResults[0];
+        Account[] accounts = [select id,Name,CreatedDate,BillingCity from Account limit 5];
+        for (Account account : accounts) {
+            String subtitle = account.BillingCity == null ? 'Account' : 'Account 鈥� ' + account.BillingCity;
+            results.add(new LookupSearchResult(account.Id, 'Account', accountIcon, account.Name, subtitle));
+        }
+
+        // Extract Opportunities & convert them into LookupSearchResult
+        // String opptyIcon = 'standard:opportunity';
+        // Opportunity[] opptys = (List<Opportunity>) searchResults[1];
+        // for (Opportunity oppty : opptys) {
+        //     results.add(
+        //         new LookupSearchResult(
+        //             oppty.Id,
+        //             'Opportunity',
+        //             opptyIcon,
+        //             oppty.Name,
+        //             'Opportunity 鈥� ' + oppty.StageName
+        //         )
+        //     );
+        // }
+
+        // Optionnaly sort all results on title
+        results.sort();
+        System.debug('results = ' + results);
+        return results;
+    }
+
+    @AuraEnabled(cacheable=true scope='global')
+    public static List<LookupSearchResult> getRecentlyViewed() {
+        List<LookupSearchResult> results = new List<LookupSearchResult>();
+        // Get recently viewed records of type Account or Opportunity
+        List<RecentlyViewed> recentRecords = [
+            SELECT Id, Name, Type
+            FROM RecentlyViewed
+            WHERE Type = 'Account' OR Type = 'Opportunity'
+            ORDER BY LastViewedDate DESC
+            LIMIT 5
+        ];
+        // Convert recent records into LookupSearchResult
+        for (RecentlyViewed recentRecord : recentRecords) {
+            if (recentRecord.Type == 'Account') {
+                results.add(
+                    new LookupSearchResult(
+                        recentRecord.Id,
+                        'Account',
+                        'standard:account',
+                        recentRecord.Name,
+                        'Account 鈥� ' + recentRecord.Name
+                    )
+                );
+            } else {
+                results.add(
+                    new LookupSearchResult(
+                        recentRecord.Id,
+                        'Opportunity',
+                        'standard:opportunity',
+                        recentRecord.Name,
+                        'Opportunity 鈥� ' + recentRecord.Name
+                    )
+                );
+            }
+        }
+        return results;
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/SampleLookupController.cls-meta.xml b/force-app/main/default/classes/SampleLookupController.cls-meta.xml
new file mode 100644
index 0000000..754ecb1
--- /dev/null
+++ b/force-app/main/default/classes/SampleLookupController.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>57.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
diff --git a/force-app/main/default/classes/TestClassByLiJun.cls b/force-app/main/default/classes/TestClassByLiJun.cls
new file mode 100644
index 0000000..6c54522
--- /dev/null
+++ b/force-app/main/default/classes/TestClassByLiJun.cls
@@ -0,0 +1,5 @@
+public without sharing class TestClassByLiJun {
+    public TestClassByLiJun() {
+        system.debug(Test.isRunningTest());
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/classes/TestClassByLiJun.cls-meta.xml b/force-app/main/default/classes/TestClassByLiJun.cls-meta.xml
new file mode 100644
index 0000000..9bbf7b4
--- /dev/null
+++ b/force-app/main/default/classes/TestClassByLiJun.cls-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ApexClass xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <status>Active</status>
+</ApexClass>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.html b/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.html
new file mode 100644
index 0000000..8d1bce1
--- /dev/null
+++ b/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.html
@@ -0,0 +1,12 @@
+<template>
+    <lightning-input
+        step="0.01"
+        type="number"
+        name="shipmentUnitPrice"
+        label="deliveryOrderNo"
+        variant="label-hidden"
+        data-field="shipmentUnitPrice"
+        value={shipmentUnitPrice}
+        onblur={shipmentUnitPriceBlur}
+    ></lightning-input>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js b/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js
new file mode 100644
index 0000000..45bfe3a
--- /dev/null
+++ b/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js
@@ -0,0 +1,24 @@
+import { LightningElement,api,track } from 'lwc';
+
+export default class CustomShippingUnitPriceComp extends LightningElement {
+    @api recordId;
+    @track shipmentUnitPrice = 0.00;
+
+    connectedCallback(){
+        console.log('CustomShippingUnitPriceComp recordId = ' + this.recordId);
+    }
+
+    shipmentUnitPriceBlur(event){
+        console.log('shipmentUnitPriceBlur')
+        this.shipmentUnitPrice = event.target.value;
+
+        this.dispatchEvent(new CustomEvent('shipmentunitprice', {
+            composed: true,
+            bubbles: true,
+            cancelable: true,
+            detail: {
+                data: { shipmentunitprice: this.shipmentUnitPrice, recordId: this.recordId }
+            }
+        }));
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js-meta.xml b/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js-meta.xml
new file mode 100644
index 0000000..f8c5cb4
--- /dev/null
+++ b/force-app/main/default/lwc/customShippingUnitPriceComp/customShippingUnitPriceComp.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/customUnitComp/customUnitComp.html b/force-app/main/default/lwc/customUnitComp/customUnitComp.html
new file mode 100644
index 0000000..f9509e5
--- /dev/null
+++ b/force-app/main/default/lwc/customUnitComp/customUnitComp.html
@@ -0,0 +1,13 @@
+<!-- sldsValidatorIgnore -->
+<!-- sldsValidatorIgnore -->
+<template>
+    <!-- <select id="citySel" class="selectUnit" onchange={handleDataChange} data-field="selectUnit">
+        <template for:each={unitOptions} for:item="uo">
+            <option value={uo.value} key={uo.value}>{uo.label}</option>
+        </template>
+    </select> -->
+    <div class="picklist-container">
+        <lightning-combobox name="selectUnit" label="unit" value={unitValue} variant="label-hidden"
+            onchange={handleDataChange} data-field="selectUnit" options={unitOptions}></lightning-combobox>
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/customUnitComp/customUnitComp.js b/force-app/main/default/lwc/customUnitComp/customUnitComp.js
new file mode 100644
index 0000000..df1600b
--- /dev/null
+++ b/force-app/main/default/lwc/customUnitComp/customUnitComp.js
@@ -0,0 +1,26 @@
+import { LightningElement,api } from 'lwc';
+
+export default class CustomUnitComp extends LightningElement {
+    @api unitValue;
+    @api unitOptions;
+    @api recordId;
+
+    connectedCallback(){
+        console.log('unitValue = ' + this.unitValue);
+        console.log('unitOptions = ' + JSON.stringify(this.unitOptions));
+        console.log('recordId = ' + this.recordId);
+    }
+
+    handleDataChange(event){
+        console.log('dataChange' + event.target.value);
+
+        this.dispatchEvent(new CustomEvent('unitchange', {
+            composed: true,
+            bubbles: true,
+            cancelable: true,
+            detail: {
+                data: { unitValue: this.unitValue, recordId: this.recordId }
+            }
+        }));
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/customUnitComp/customUnitComp.js-meta.xml b/force-app/main/default/lwc/customUnitComp/customUnitComp.js-meta.xml
new file mode 100644
index 0000000..f8c5cb4
--- /dev/null
+++ b/force-app/main/default/lwc/customUnitComp/customUnitComp.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentAmount.html b/force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentAmount.html
new file mode 100644
index 0000000..6b8fb9f
--- /dev/null
+++ b/force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentAmount.html
@@ -0,0 +1,7 @@
+<template>
+    <c-custom-shipment-Amount-comp
+    shipment-amount={typeAttributes.shipmentAmount}
+    record-id={typeAttributes.recordId}>
+
+    </c-custom-shipment-Amount-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentNumber.html b/force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentNumber.html
new file mode 100644
index 0000000..9c16166
--- /dev/null
+++ b/force-app/main/default/lwc/lexCustomLightningDatatable/customShipmentNumber.html
@@ -0,0 +1,6 @@
+<template>
+    <c-custom-shipment-number-comp
+    record-id={typeAttributes.recordId}>
+
+    </c-custom-shipment-number-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCustomLightningDatatable/customShippingUnitPrice.html b/force-app/main/default/lwc/lexCustomLightningDatatable/customShippingUnitPrice.html
new file mode 100644
index 0000000..a4d518a
--- /dev/null
+++ b/force-app/main/default/lwc/lexCustomLightningDatatable/customShippingUnitPrice.html
@@ -0,0 +1,6 @@
+<template>
+    <c-custom-shipping-unit-price-comp
+    record-id={typeAttributes.recordId}>
+
+    </c-custom-shipping-unit-price-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCustomLightningDatatable/customUnit.html b/force-app/main/default/lwc/lexCustomLightningDatatable/customUnit.html
new file mode 100644
index 0000000..b1dddef
--- /dev/null
+++ b/force-app/main/default/lwc/lexCustomLightningDatatable/customUnit.html
@@ -0,0 +1,11 @@
+<!-- sldsValidatorIgnore -->
+<!-- sldsValidatorIgnore -->
+<template>
+    <c-custom-unit-comp
+        unit-value={typeAttributes.unitValue}
+        unit-options={typeAttributes.unitOptions}
+        record-id={typeAttributes.recordId}
+        onunitchange={handleDataChange}
+    >
+    </c-custom-unit-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.html b/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.html
new file mode 100644
index 0000000..27e0f69
--- /dev/null
+++ b/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.html
@@ -0,0 +1,3 @@
+<template>
+    
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js b/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js
new file mode 100644
index 0000000..a7ef433
--- /dev/null
+++ b/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js
@@ -0,0 +1,33 @@
+import LightningDatatable from 'lightning/datatable';
+import customUnitTemplate from './customUnit.html';
+import customShipmentNumberTemplate from './customShipmentNumber.html';
+import customShippingUnitPriceTemplate from './customShippingUnitPrice.html';
+import customShipmentAmountTemplate from './customShipmentAmount.html';
+import { loadStyle } from 'lightning/platformResourceLoader';
+import LexCustomDataTable from '@salesforce/resourceUrl/LexCustomDataTable';
+
+export default class LexCustomLightningDatatable extends LightningDatatable {
+    static customTypes = {
+        customUnit: {
+            template: customUnitTemplate,
+            typeAttributes: ['unitValue', 'unitOptions', 'recordId']
+        },
+        customShipment: {
+            template: customShipmentNumberTemplate,
+            typeAttributes: ['recordId']
+        },
+        customShipmentUnitPrice: {
+            template: customShippingUnitPriceTemplate,
+            typeAttributes: ['recordId']
+        },
+        customShipmentAmount: {
+            template: customShipmentAmountTemplate,
+            typeAttributes: ['shipmentAmount', 'recordId']
+        }
+    };
+    constructor() {
+        super();
+        Promise.all([loadStyle(this, LexCustomDataTable)]).then(() => {});
+    }
+    
+}
diff --git a/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js-meta.xml b/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js-meta.xml
new file mode 100644
index 0000000..f8c5cb4
--- /dev/null
+++ b/force-app/main/default/lwc/lexCustomLightningDatatable/lexCustomLightningDatatable.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.html b/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.html
new file mode 100644
index 0000000..3f9fe41
--- /dev/null
+++ b/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.html
@@ -0,0 +1,196 @@
+<template>
+
+    <template if:true={showcount}>
+        <div style="border: 1px solid #D4D4D4;border-radius:5px;">
+            <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                <div>
+                    <p style="font-size: 19px;float:left"><strong>搴撳瓨鐩樼偣</strong></p>
+                </div>
+                <div style="margin-left:400px;">
+                    <lightning-button label="鐩樼偣纭" title="鐩樼偣纭" onclick={saveConfirm}></lightning-button></td>
+                </div>
+            </div>
+
+            <div style="padding:10px;">
+                <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
+                    <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                        <table>
+                            <colgroup>
+                                <col width="160px" />
+                                <col width="100px" />
+                                <col width="10px" />
+                                <col width="70px" />
+                                <col width="100px" />
+                                <col width="10px" />
+                                <col width="90px" />
+                                <col width="100px" />
+                                <col width="10px" />
+                                <col width="85px" />
+                                <col width="100px" />
+                                <col width="10px" />
+                                <col width="70px" />
+                                <col width="100px" />
+                            </colgroup>
+                            <tbody>
+                                <tr>
+                                    <td></td>
+                                    <td align="right">Barcode</td>
+                                    <td style="width:600px"><lightning-textarea name="Barcode" label=""
+                                            onchange={handleChange}></lightning-textarea></td>
+                                    <td align="right"></td>
+                                    <td></td>
+                                    <td><lightning-button label="Barcode" title="Barcode褰曞叆" onclick={barcodeEntrys}
+                                            style="width: 150px;"></lightning-button>
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+
+                <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
+                    <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                        <p style="font-size: 16px;"><strong>鍦ㄥ簱鍟嗗搧搴撳瓨涓�瑙�</strong></p>
+                    </div>
+                    <div style="padding:10px;">
+
+                        <div style="height: 300px;">
+                            <template if:true={showTable}>
+
+                                <c-lex-custom-lightning-datatable key-field="ProdId" data={data} columns={columns}
+                                    ondiffreasons={diffreasons} onrowselection={getSelectedRows}
+                                    selected-rows={selectedRows}>
+                                </c-lex-custom-lightning-datatable>
+                            </template>
+                            <!-- 鍔犺浇妗� -->
+
+                            <div if:true={casesSpinner} class="slds-spinner_inline spinner-padding"
+                                style="margin-top:10px;">
+                                <lightning-spinner variant="brand" alternative-text="Loading Cases" size="medium">
+                                </lightning-spinner>
+                            </div>
+
+                        </div>
+
+                    </div>
+                </div>
+            </div>
+
+
+            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;margin-top:50px">
+                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                    <table>
+                        <tr>
+                            <td>
+                                <p style="font-size: 16px;"><strong>璋冩暣鏄庣粏</strong></p>
+                            </td>
+                            <template if:true={showbutton}>
+                                <td align="center"> <lightning-button label="涓嬭浇鏈鐩樼偣搴撳瓨鍙樺寲鏄庣粏" title="涓嬭浇鏈鐩樼偣搴撳瓨鍙樺寲鏄庣粏"
+                                        onclick={exportData} style="width: 150px;"></lightning-button></td>
+                            </template>
+                        </tr>
+                    </table>
+                </div>
+
+                <div style="padding:10px;">
+                    <template if:true={showTable}>
+                        <c-lwc-datatable-utility records={codPageRecords} total-records={codPageRecords.length}
+                            columns={column} key-field="Id" show-search-box="true"
+                            max-row-selection={codPageRecords.length} onpaginatorchange={handlePaginatorChange}>
+                        </c-lwc-datatable-utility>
+                    </template>
+
+
+                </div>
+            </div>
+        </div>
+    </template>
+
+
+    <template if:true={EditAble}>
+        <div style="border: 1px solid #D4D4D4;border-radius:5px;">
+            <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                <div style="border: 1px solid #D4D4D4;border-radius:5px;">
+                    <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:6px;">
+                        <p style="font-size: 19px;"><strong>鐩樼偣鎯呭喌涓�瑙�</strong></p>
+
+                    </div>
+                    <div class="acc-container">
+                        <lightning-record-edit-form object-api-name="Consumable_order__c" record-id={conId}>
+                            <lightning-layout multiple-rows="true">
+                                <!-- <template if:true={isSummonsFlag}> -->
+                                <lightning-layout-item class="hehe-layoutItem" size="4">
+                                    <lightning-output-field field-name="Name"></lightning-output-field>
+                                </lightning-layout-item>
+                                <lightning-layout-item class="hehe-layoutItem" size="4">
+                                    <lightning-output-field field-name="Inventory_date__c"></lightning-output-field>
+                                </lightning-layout-item>
+                                <lightning-layout-item class="hehe-layoutItem" size="4">
+                                </lightning-layout-item>
+                                <!-- </template> -->
+                            </lightning-layout>
+                        </lightning-record-edit-form>
+                    </div>
+                </div>
+            </div>
+
+            <lightning-accordion allow-multiple-sections-open class="slds-m-around_medium"
+                active-section-name={activeSections}>
+                <lightning-accordion-section name="dataExpand" label="鐩樼偣鏄庣粏">
+                    <table class="list" border="0" cellpadding="0" cellspacing="0" id="example">
+                        <thead>
+                            <tr class="headerRow">
+                                <th>娑堣�楀搧鍚嶇О</th>
+                                <th>搴撳瓨</th>
+                                <th>鐩樼偣</th>
+                                <th>涓㈠け</th>
+                                <th>瀵诲洖</th>
+                                <th>宸紓鍘熷洜</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            <template for:each={detailData} for:item="m">
+                                <tr key={m.Prod.Name__c}>
+                                    <td>{m.Prod.Name__c}</td>
+                                    <td>{m.orderdetails1.Count_Sum__c}</td>
+                                    <td>{m.orderdetails1.inventory_sum__c}</td>
+                                    <td>{m.orderdetails1.Diff__c}</td>
+                                    <td>{m.orderdetails1.Product_Refind__c}</td>
+                                    <td>{m.orderdetails1.Lose_reason__c}</td>
+                                </tr>
+                            </template>
+                        </tbody>
+                    </table>
+                </lightning-accordion-section>
+            </lightning-accordion>
+            <lightning-accordion allow-multiple-sections-open class="slds-m-around_medium"
+                active-section-name={activeSections}>
+                <lightning-accordion-section name="dataExpand" label="鍦ㄥ簱璋冩暣鏄庣粏">
+                    <table class="list" border="0" cellpadding="0" cellspacing="0" id="examples">
+                        <thead>
+                            <tr class="headerRow">
+                                <th>娑堣�楀搧鍚嶇О</th>
+                                <th>浜у搧鍨嬪彿</th>
+                                <th>宸紓鍘熷洜</th>
+                                <th>鏄惁涓㈠け</th>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            <template for:each={adjustdata} for:item="m">
+                                <tr key={m.Prod.Name__c}>
+                                    <td>{m.Prod.Name__c}</td>
+                                    <td>{m.Prod.Asset_Model_No__c}</td>
+                                    <td>{m.orderdetails2.Lose_reason__c}</td>
+                                    <td>{m.orderdetails1.Diff__c}</td>
+                                    <td>{m.orderdetails1.Product_Refind__c}</td>
+                                    <td>{m.orderdetails2.Lose_Flag__c}</td>
+                                </tr>
+                            </template>
+                        </tbody>
+                    </table>
+
+                </lightning-accordion-section>
+            </lightning-accordion>
+        </div>
+    </template>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js b/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js
new file mode 100644
index 0000000..3f9c9a4
--- /dev/null
+++ b/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js
@@ -0,0 +1,502 @@
+import { LightningElement, wire, api, track } from 'lwc';
+import oninit from '@salesforce/apex/LexInventoryController.init';
+import barcodeEntry from '@salesforce/apex/LexInventoryController.searchConsumableorderdetails';
+import saveConfirm from '@salesforce/apex/LexInventoryController.save';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { NavigationMixin } from 'lightning/navigation';
+
+//搴撳瓨鐩樼偣涓婚〉闈㈡暟鎹�
+const columns = [
+    {
+        label: '鏄惁鐩樼偣',
+        fieldName: 'iscount',
+        type: 'checkbox',
+        cellAttributes: { alignment: 'left' }
+    },
+    {
+        label: '娑堣�楀搧鍚嶇О',
+        fieldName: 'Name__c',
+        type: 'Name',
+        cellAttributes: { alignment: 'left' }
+    },
+    {
+        label: '瑙勬牸',
+        fieldName: 'Packing_list_manual__c',
+        hideDefaultActions: true
+    },
+    {
+        label: '鍗曚綅',
+        fieldName: 'boxPiece',
+        hideDefaultActions: true
+    },
+    {
+        label: '鏈夋晥鏈熷唴搴撳瓨',
+        fieldName: 'limitCount',
+        hideDefaultActions: true
+    },
+
+    {
+        label: '杩囨湡搴撳瓨',
+        fieldName: 'overlimitCount',
+        hideDefaultActions: true,
+        initialWidth: 100
+    },
+    {
+        label: '鐩樼偣',
+        fieldName: 'Pandian',
+        hideDefaultActions: true,
+        initialWidth: 100
+    },
+    {
+        label: '涓㈠け',
+        fieldName: 'Diff',
+        hideDefaultActions: true,
+        initialWidth: 100
+    },
+    {
+        label: '瀵诲洖	',
+        fieldName: 'refind',
+        hideDefaultActions: true,
+        initialWidth: 150
+    },
+    {
+        label: '宸紓鍘熷洜',
+        // fieldName: "DiffReason",
+        hideDefaultActions: true,
+        type: 'customDiffReason',
+        typeAttributes: {
+            DiffReason: { fieldName: 'DiffReason' },
+            ProdId: { fieldName: 'ProdId' }
+        }
+    }
+];
+
+//璋冩暣鏄庣粏
+const column = [
+    {
+        label: '娑堣�楀搧鍚嶇О',
+        fieldName: 'Name__c',
+        type: 'Name',
+        cellAttributes: { alignment: 'left' }
+    },
+    {
+        label: '鍗曚綅',
+        fieldName: 'Box_Piece__c',
+        hideDefaultActions: true
+    },
+    {
+        label: 'barcode',
+        fieldName: 'Bar_Code__c',
+        hideDefaultActions: true,
+        initialWidth: 150
+    },
+    {
+        label: '璋冩暣鍘熷洜',
+        fieldName: 'DiffReason',
+        hideDefaultActions: true
+    }
+];
+//鐩樼偣鏄庣粏
+const dcolumns = [
+    {
+        label: '娑堣�楀搧鍚嶇О',
+        fieldName: 'Name__c',
+        type: 'Name',
+        cellAttributes: { alignment: 'left' }
+    },
+    {
+        label: '搴撳瓨',
+        fieldName: 'Box_Piece__c',
+        hideDefaultActions: true
+    },
+    {
+        label: '鐩樼偣',
+        fieldName: 'Bar_Code__c',
+        hideDefaultActions: true,
+        initialWidth: 150
+    },
+    {
+        label: '涓㈠け',
+        fieldName: 'DiffReason',
+        hideDefaultActions: true
+    },
+    {
+        label: '瀵诲洖',
+        fieldName: 'DiffReason',
+        hideDefaultActions: true
+    },
+    ,
+    {
+        label: '宸紓鍘熷洜',
+        fieldName: 'DiffReason',
+        hideDefaultActions: true
+    }
+];
+
+//鍦ㄥ簱璋冩暣鏄庣粏
+const stockadjustcolumns = [
+    {
+        label: '娑堣�楀搧鍚嶇О',
+        fieldName: 'Name__c',
+        type: 'Name',
+        cellAttributes: { alignment: 'left' }
+    },
+    {
+        label: '浜у搧鍨嬪彿',
+        fieldName: 'Box_Piece__c',
+        hideDefaultActions: true
+    },
+    {
+        label: '宸紓鍘熷洜',
+        fieldName: 'Bar_Code__c',
+        hideDefaultActions: true,
+        initialWidth: 150
+    },
+    {
+        label: '鏄惁涓㈠け',
+        fieldName: 'DiffReason',
+        hideDefaultActions: true
+    }
+];
+
+export default class LexInventoryCount extends NavigationMixin(
+    LightningElement
+) {
+    columns = columns;
+    column = column;
+    stockadjustcolumns = stockadjustcolumns;
+    dcolumns = dcolumns;
+    @track data = [];
+    @track codPageRecords = [];
+    @track accountName;
+    @track agencyProType;
+    @track userWorkLocation;
+    @track showTable = false;
+    @track showbutton = false;
+    @track barCode;
+    @track ConsumableorderdetailsRecordsview = [];
+    @track consumableorderdetailsRecords = [];
+    @track showTable = false;
+    @track barcode;
+    @track showcount = true;
+
+    @track iSinventory;
+    @track numberDetail;
+
+    //鍔犺浇妗�
+    @track casesSpinner = true;
+    //row
+    @track selectedRows = [];
+    //inventoryList
+    @track isSummonsFlag;
+    //灞曞紑鏍�
+    activeSections = ['dataExpand'];
+    columnHeader = ['娑堣�楀搧鍚嶇О', '鍗曚綅', 'barCode', '璋冩暣鍘熷洜'];
+    //纭涓�瑙�
+    @track eSetId = '';
+    @track EditAble = false;
+    @track selectedData;
+    @track conId;
+    @track detailData = [];
+    @track adjustdata = [];
+
+    //鑾峰彇閾炬帴鍙傛暟
+    getQueryString(name) {
+        console.log('getQueryString name ' + name);
+        let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
+        let r = window.location.search.substr(1).match(reg);
+        if (r != null) {
+            return decodeURIComponent(r[2]);
+        }
+        return null;
+    }
+
+    connectedCallback() {
+        console.log('===>鍒濆鍖�');
+        //鑾峰彇ESetid
+        this.eSetId = this.getQueryString('eSetId');
+        this.eSetId = this.eSetId == null ? '' : this.eSetId;
+        console.log(' this.eSetId' + this.eSetId);
+        this.EditAble = false;
+        this.showcount = true;
+        oninit()
+            .then((result) => {
+                console.log('1112' + JSON.stringify(result));
+                result = JSON.parse(JSON.stringify(result));
+                console.log('result.status = ' + result.status);
+                console.log(
+                    ' ConsumableorderdetailsRecordsview= ' +
+                        result.entity.ConsumableorderdetailsRecordsview
+                );
+                this.ConsumableorderdetailsRecordsview = JSON.parse(
+                    result.entity.ConsumableorderdetailsRecordsview
+                );
+                this.consumableorderdetailsRecords =
+                    result.entity.consumableorderdetailsRecords;
+                console.log(
+                    ' consumableorderdetailsRecords= ' +
+                        result.entity.consumableorderdetailsRecords
+                );
+
+                console.log(
+                    '浼犲弬绫诲瀷',
+                    typeof this.consumableorderdetailsRecords
+                );
+                if (result.status == 'Success') {
+                    console.log(
+                        'this.ConsumableorderdetailsRecordsview[0] = ' +
+                            JSON.stringify(
+                                this.ConsumableorderdetailsRecordsview[0]
+                            )
+                    );
+                    console.log(
+                        'this.ConsumableorderdetailsRecordsview[0].length = ' +
+                            this.ConsumableorderdetailsRecordsview[0].length
+                    );
+
+                    // let cloneData = [];
+                    // for (let i in this.ConsumableorderdetailsRecordsview[0]) {
+                    //   cloneData.push(JSON.parse(this.ConsumableorderdetailsRecordsview[0][i]));
+                    // }
+                    // console.log('cloneData = ' + typeof cloneData);
+                    // console.log('cloneData = ' + cloneData);
+                    // this.data = cloneData;
+                    this.data = [];
+                    this.data = this.ConsumableorderdetailsRecordsview[0];
+                    console.log('this.data ==>' + JSON.stringify(this.data));
+                    for (let i in this.data) {
+                        this.data[i]['Name__c'] = this.data[i].Prod.Name__c;
+                        this.data[i]['Packing_list_manual__c'] =
+                            this.data[i].Prod.Packing_list_manual__c;
+                    }
+                    this.accountName = result.entity.accountName;
+                    this.agencyProType = result.entity.agencyProType;
+                    this.userWorkLocation = result.entity.userWorkLocation;
+                    this.casesSpinner = false;
+                    this.showTable = true;
+                } else {
+                    console.log('Error:' + result.errorMsg);
+                    const evt = new ShowToastEvent({
+                        title: '瑙f瀽澶辫触',
+                        message: result.errorMsg,
+                        variant: 'error'
+                    });
+                    this.dispatchEvent(evt);
+                }
+            })
+            .catch((error) => {
+                console.log('error = ' + JSON.stringify(error));
+            });
+        //榛樿灞曞紑鏍�
+        this.activeSections = ['dataExpand'];
+        this.showTable = false;
+        this.showbutton = false;
+        //init
+    }
+    //褰曞叆barcode
+
+    barcodeEntrys() {
+        this.showTable = false;
+        this.showbutton = false;
+        console.log('杩涘叆褰曞叆');
+        console.log(
+            'this.consumableorderdetailsRecords===>' +
+                this.consumableorderdetailsRecords
+        );
+        if (
+            this.barcode == '' ||
+            this.barcode == null ||
+            this.barcode == 'undefined'
+        ) {
+            this.connectedCallback();
+        }
+
+        barcodeEntry({
+            accountName: this.accountName,
+            agencyProType: this.agencyProType,
+            userWorkLocation: this.userWorkLocation,
+            barcode: this.barcode,
+            consumableorderdetailsRecordsLWC: this.consumableorderdetailsRecords
+        })
+            .then((result) => {
+                // result = JSON.parse(JSON.stringify(result));
+                this.codPageRecords = JSON.parse(result.entity.codPageRecords);
+                for (var i in this.codPageRecords) {
+                    this.codPageRecords[i]['Name__c'] =
+                        this.codPageRecords[i].Prod.Name__c;
+                    this.codPageRecords[i]['Box_Piece__c'] =
+                        this.codPageRecords[i].orderdetails2.Box_Piece__c;
+                    this.codPageRecords[i]['Bar_Code__c'] =
+                        this.codPageRecords[i].orderdetails2.Bar_Code__c;
+                }
+                this.data = JSON.parse(
+                    result.entity.consumableorderdetailsRecords
+                );
+                for (var i in this.data) {
+                    this.data[i]['Name__c'] = this.data[i].Prod.Name__c;
+                    this.data[i]['Packing_list_manual__c'] =
+                        this.data[i].Prod.Packing_list_manual__c;
+                }
+                for (var i in this.data) {
+                    if (this.data[i]['check']) {
+                        this.selectedRows.push(this.data[i].ProdId);
+                        console.log('selectedRows:' + this.selectedRows);
+                    }
+                }
+                this.iSinventory = result.entity.iSinventory;
+                console.log('iSinventory:' + this.iSinventory);
+                this.showTable = true;
+                this.showbutton = true;
+
+                console.log(
+                    ' this.codPageRecords=11111 ' + result.entity.codPageRecords
+                );
+                console.log('result褰曞叆= ' + JSON.stringify(result));
+                console.log(
+                    'result涓婚〉鏁版嵁= ' +
+                        result.entity.consumableorderdetailsRecords
+                );
+            })
+            .catch((error) => {
+                console.log('error = ' + JSON.stringify(error));
+            });
+    }
+    //鑾峰彇褰撳墠杈撳叆鍊�
+    handleChange(event) {
+        let value = event.detail.value;
+        console.log('value' + value);
+        this.barcode = value;
+    }
+
+    getSelectedRows(event) {
+        const selectedRows = event.detail.selectedRows;
+        console.log('this.selectedRows = ' + this.selectedRows);
+        for (var i in this.data) {
+            this.data[i]['check'] = false;
+        }
+        for (var i in this.data) {
+            for (var j in selectedRows) {
+                if (this.data[i].Id == selectedRows[j].Id) {
+                    this.data[i]['check'] = true;
+                }
+            }
+        }
+    }
+
+    //瀵煎嚭涓篶sv
+    exportData() {
+        console.log('瀵煎嚭');
+        // Prepare a html table
+        let doc = '<table>';
+        // Add styles for the table
+        doc += '<style>';
+        doc += 'table, th, td {';
+        doc += '    border: 1px solid black;';
+        doc += '    border-collapse: collapse;';
+        doc += '}';
+        doc += '</style>';
+        // Add all the Table Headers
+        doc += '<tr>';
+        this.columnHeader.forEach((element) => {
+            doc += '<th>' + element + '</th>';
+        });
+        doc += '</tr>';
+        // Add the data rows
+        this.codPageRecords.forEach((record) => {
+            doc += '<tr>';
+            doc += '<th>' + record.Name__c + '</th>';
+            doc += '<th>' + record.Box_Piece__c + '</th>';
+            doc += '<th>' + record.Bar_Code__c + '</th>';
+            doc += '<th>' + record.DiffReason + '</th>';
+            doc += '</tr>';
+        });
+        doc += '</table>';
+        var element =
+            'data:application/vnd.ms-excel,' + encodeURIComponent(doc);
+        let downloadElement = document.createElement('a');
+        downloadElement.href = element;
+        downloadElement.target = '_self';
+        // use .csv as extension on below line if you want to export data as csv
+        downloadElement.download = '搴撳瓨鍙樺寲鏄庣粏.xls';
+        document.body.appendChild(downloadElement);
+        downloadElement.click();
+    }
+
+    //鑷畾涔塪ataType
+
+    diffreasons(event) {
+        const numberDetail = event.detail;
+        // this.numberDetail = numberDetail;
+        console.log('numberDetail' + JSON.stringify(numberDetail));
+        for (var i in this.data) {
+            if (this.data[i]['ProId'] == numberDetail.data.ProId) {
+                this.data[i]['DiffReason'] = numberDetail.data.DiffReason;
+            }
+        }
+        console.log(' this.data==>' + JSON.stringify(this.data));
+    }
+
+    saveConfirm() {
+        console.log('杩涘叆鐩樼偣纭');
+        var el = this.template.querySelector(
+            'c-lex-custom-lightning-datatable'
+        );
+        var selected = el.getSelectedRows();
+        this.selectedData = selected;
+        console.log('閫変腑鏁版嵁' + JSON.stringify(this.selectedData));
+        saveConfirm({
+            iSinventory: this.iSinventory,
+            consumableorderdetailsRecordsLWC: JSON.stringify(this.selectedData)
+        })
+            .then((result) => {
+                console.log('result = ' + JSON.stringify(result));
+                this.EditAble = true;
+                this.showcount = false;
+                // result = JSON.parse(JSON.stringify(result));
+                // console.log('result = ' + JSON.stringify(result));
+
+                // if (result.status == 'Success') {
+                //   // let url = '/lexInventoryCount?eSetId=' + result.entity.eSetId;
+                //   // this[NavigationMixin.Navigate]({
+                //   //   type: 'standard__webPage',
+                //   //   attributes: {
+                //   //     url: url
+                //   //   }
+                //   // });
+                //   this.EditAble = true;
+                //   this.showcount = false;
+                // } else {
+                //   console.log('result.msg = ' + result.msg);
+                //   const evt = new ShowToastEvent({
+                //     title: '澶辫触',
+                //     message: result.msg,
+                //     variant: 'error'
+                //   });
+                //   this.dispatchEvent(evt);
+                // }
+            })
+            .catch((error) => {
+                console.log('error = ' + JSON.stringify(error));
+            });
+    }
+
+    // inits(){
+    //   init({
+    //     eSetId:this.eSetId
+    //   }).then((result) => {
+    //     result = JSON.parse(JSON.stringify(result));
+    //     for(var i in result.entity.qs){
+    //       this.conId = result.entity.qs[i].Id;
+    //     }
+    //     console.log('this.conId'+typeof( this.conId));
+    //     this.detailData = JSON.parse(result.entity.consumableorderdetailsRecords);
+
+    //     console.log('result鐩樼偣Id'+JSON.stringify(this.conId));
+
+    //   })
+    //   .catch((error) => {
+    //     console.log("error = " + JSON.stringify(error));
+    //   });
+
+    // }
+}
diff --git a/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js-meta.xml b/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js-meta.xml
new file mode 100644
index 0000000..6cf1ec7
--- /dev/null
+++ b/force-app/main/default/lwc/lexInventoryCount/lexInventoryCount.js-meta.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+        <isExposed>true</isExposed>
+    <targets>
+        <target>lightningCommunity__Page</target>
+        <target>lightningCommunity__Default</target>
+    </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.css b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.css
new file mode 100644
index 0000000..ade7b53
--- /dev/null
+++ b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.css
@@ -0,0 +1,29 @@
+.outerBorderCss{
+    border: 1px solid #D4D4D4;
+    border-radius : 5px;
+    border-top : 3px solid #565959;
+}
+.borderCss{
+    border: 1px solid #D4D4D4;
+    border-radius : 5px;
+    margin-bottom : 7px;
+    border-top : 3px solid #565959;
+}
+.headerDorderCss{
+    border-top: 1px solid #565959;
+    border-bottom: 1px solid #D4D4D4;
+    padding:3px;
+}
+.centerCss{
+    text-align: center;
+}
+.centerCss .left{
+    margin-left: 100px;
+}
+.datatable {
+    max-height: 400px !important;
+}
+.tableColumn {
+    margin-top: 5px !important;
+    overflow-x: auto;
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.html b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.html
new file mode 100644
index 0000000..54406f2
--- /dev/null
+++ b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.html
@@ -0,0 +1,564 @@
+<!-- sldsValidatorIgnore -->
+<!-- sldsValidatorIgnore -->
+<template>
+    <template if:true={isShowSpinner}>
+        <lightning-spinner alternative-text="Loading" size="large"></lightning-spinner>
+    </template>
+    <!-- 鎼滅储瀹㈡埛鍚� -->
+    <template if:true={isModalOpen}>
+        <!-- Modal/Popup Box LWC starts here -->
+        <section role="dialog" tabindex="-1" aria-labelledby="modal-heading-01" aria-modal="true"
+            aria-describedby="modal-content-id-1" class="slds-modal slds-fade-in-open">
+            <div class="slds-modal__container">
+                <!-- Modal/Popup Box LWC header here -->
+                <header class="slds-modal__header">
+                    <button class="slds-button slds-button_icon slds-modal__close slds-button_icon-inverse"
+                        title="Close" onclick={closeModal}>
+                        <lightning-icon icon-name="utility:close" alternative-text="close" variant="inverse"
+                            size="small"></lightning-icon>
+                        <span class="slds-assistive-text">Close</span>
+                    </button>
+                    <h2 id="modal-heading-01" class="slds-text-heading_medium slds-hyphenate">
+                        缁忛攢鍟嗗尰闄㈡绱�
+                    </h2>
+                </header>
+                <!-- Modal/Popup Box LWC body starts here -->
+                <div class="slds-modal__content slds-p-around_medium" id="modal-content-id-1">
+                    <lightning-layout>
+                        <lightning-layout-item flexibility="auto" padding="around-small">
+                            <lightning-input type="text" label="鍖婚櫌鍚嶇О" onchange={dataChange}
+                                data-field="searchHospitalName" value={searchHospitalName}
+                                variant="label-inline"></lightning-input>
+                        </lightning-layout-item>
+                        <lightning-layout-item flexibility="auto" padding="around-small">
+                            <lightning-button label="妫�绱�" onclick={searchHospital}></lightning-button>
+                        </lightning-layout-item>
+                    </lightning-layout>
+
+                    <div class="tableColumn">
+                        <lightning-layout class="datatable">
+                            <lightning-datatable class="datatabel slds-border_top" key-field="id" data={hospitalList}
+                                columns={hospitalColumns} hide-checkbox-column="true"
+                                onrowaction={searchHandleRowAction}>
+                            </lightning-datatable>
+                        </lightning-layout>
+                    </div>
+                </div>
+                <!-- Modal/Popup Box LWC footer starts here -->
+                <footer class="slds-modal__footer">
+                    <button class="slds-button slds-button_neutral" onclick={closeModal} title="Cancel">
+                        鍏抽棴
+                    </button>
+                </footer>
+            </div>
+        </section>
+        <div class="slds-backdrop slds-backdrop_open"></div>
+    </template>
+
+    <div class="outerBorderCss">
+        <div style="padding: 5px">
+            <!-- 鎸夐挳 -->
+            <div class="borderCss">
+                <div style="padding: 10px">
+                    <div lwc:dom="manual" class="resultDiv"></div>
+                    <div draggable="false">
+                        <!-- <lightning-button label="淇濆瓨" onclick={neworderhead}
+                            style="margin-left: 100px;"></lightning-button> -->
+                        <table>
+                            <colgroup>
+                                <col width="150px" />
+                                <col width="200px" />
+                                <col width="200px" />
+                                <col width="200px" />
+                                <col width="200px" />
+                                <col width="200px" />
+                                <col width="90px" />
+                                <col width="100px" />
+                                <col width="10px" />
+                                <col width="85px" />
+                                <col width="100px" />
+                                <col width="10px" />
+                                <col width="70px" />
+                                <col width="100px" />
+                            </colgroup>
+                            <tr>
+                                <td></td>
+                                <!-- <td  colspan="4"><apex:commandButton onclick="saveConfirmJs('{!coc.SummonsStatus_c__c}');" value="淇濆瓨" style="width:150px" rerender="dummy" rendered="{!(EditDelCommitBtnDisabled||EditAble)}"/></td> -->
+                                <td colspan="4">
+                                    <template if:true={isSaveShow}>
+                                        <lightning-button label="淇濆瓨" onclick={saveConfirmJs}
+                                            style="width: 150px"></lightning-button>
+                                    </template>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td></td>
+                                <td>
+                                    <!-- <apex:commandButton onclick="EditConsumable();"   value="缂栬緫鍑哄簱鍗�" style="width:150px" rerender="dummy" rendered="{!!(EditDelCommitBtnDisabled||EditAble)}" disabled="{!IF(coc.SummonsStatus_c__c='宸插畬鎴�',true,false)}"/> -->
+                                    <template if:true={isEditShow}>
+                                        <lightning-button label="缂栬緫鍑哄簱鍗�" onclick={EditConsumable} style="width: 150px"
+                                            disabled={isEditDisabled}></lightning-button>
+                                    </template>
+                                </td>
+                                <!--CHAN-B65CAZ 20181105 UpdateStart-->
+                                <!-- <td ><apex:commandButton onclick="CommitConsumable();" value="鎻愪氦鍑哄簱鍗�" style="width:150px" rerender="dummy" rendered="{!!(EditDelCommitBtnDisabled||EditAble)}" disabled="{!IF(coc.SummonsStatus_c__c='鎵瑰噯'||coc.SummonsStatus_c__c='宸查攢鍞緟涓婁紶绾冲搧涔�'||coc.SummonsStatus_c__c='鍑哄簱鍗曞凡鎵撳嵃'||coc.SummonsStatus_c__c='宸插畬鎴�',true,false)}"/></td> -->
+                                <td>
+                                    <!-- <apex:commandButton onclick="GoodsDeliveryJs();"  value="鍑鸿揣/閿�鍞�"     style="width:150px" rerender="dummy" rendered="{!!(EditDelCommitBtnDisabled||EditAble)}" disabled="{!IF(coc.SummonsStatus_c__c='宸查攢鍞緟涓婁紶绾冲搧涔�'||coc.SummonsStatus_c__c='宸插畬鎴�'||coc.SummonsStatus_c__c='浠锋牸鏈畾',true,false)}"/> -->
+                                    <template if:true={isDeliveryShow}>
+                                        <lightning-button label="鍑鸿揣/閿�鍞�" onclick={GoodsDeliveryJs} style="width: 150px"
+                                            disabled={isDeliveryDisabled}></lightning-button>
+                                    </template>
+                                </td>
+                                <!-- CHAN-B65CAZ 20181105 UpdateEnd-->
+                                <td>
+                                    <!-- <apex:commandButton onclick="openToInvoiceJs();return false;" value="寮�绁�" style="width:150px" rerender="dummy" rendered="{!!(EditDelCommitBtnDisabled||EditAble)}" disabled="{!IF(((coc.Billed_Status__c !='鍏ㄩ儴寮�绁�' &&coc.SummonsStatus_c__c='宸插畬鎴�') || coc.Onchange_order__c = true) && coc.SummonsForDirction__c!='浜掔浉璋冭揣',false,true)}"/> -->
+                                    <template if:true={isOpenToInvoiceShow}>
+                                        <lightning-button label="寮�绁�" onclick={openToInvoiceJs} style="width: 150px"
+                                            disabled={isOpenToInvoiceDisabled}></lightning-button>
+                                    </template>
+                                </td>
+                            </tr>
+                            <tr>
+                                <td></td>
+                                <!--CHAN-B65CAZ 20181105 UpdateStart-->
+                                <td>
+                                    <!-- <apex:commandButton onclick="PraseToPDFJs();" value="鎵撳嵃鎸囩ず鍗�" style="width:150px" rerender="dummy" rendered="{!!(EditDelCommitBtnDisabled||EditAble)}" disabled="{!IF(coc.SummonsStatus_c__c='宸查攢鍞緟涓婁紶绾冲搧涔�'||coc.SummonsStatus_c__c='鎵瑰噯'||coc.SummonsStatus_c__c='鍑哄簱鍗曞凡鎵撳嵃'||coc.SummonsStatus_c__c='鑽夋涓�',false,true)}"/> -->
+                                    <template if:true={isPraseToPDFShow}>
+                                        <lightning-button label="鎵撳嵃鎸囩ず鍗�" onclick={PraseToPDFJs} style="width: 150px"
+                                            disabled={isPraseToPDFDisabled}></lightning-button>
+                                    </template>
+                                </td>
+                                <!-- CHAN-B65CAZ 20181105 UpdateEnd-->
+                                <td>
+                                    <!-- <apex:commandButton onclick="openReportJs(); return false;" value="鏄剧ず鏄庣粏" style="width:150px" rerender="dummy" rendered="{!!(EditDelCommitBtnDisabled||EditAble)}" disabled="{!IF(coc.Billed_Status__c !='杩樻病寮�绁�' || coc.SummonsStatus_c__c='宸插畬鎴�',false,true)}"/> -->
+                                    <template if:true={isOpenReportShow}>
+                                        <lightning-button label="鏄剧ず鏄庣粏" onclick={openReportJs} style="width: 150px"
+                                            disabled={isOpenReportDisabled}></lightning-button>
+                                    </template>
+                                </td>
+                                <td>
+                                    <!-- <apex:commandButton onclick="DeleteConsumable();" value="鍒犻櫎" style="width:150px" rerender="dummy" rendered="{!!(EditDelCommitBtnDisabled||EditAble)}" disabled="{!IF(coc.SummonsStatus_c__c='宸查攢鍞緟涓婁紶绾冲搧涔�'||coc.SummonsStatus_c__c='浠锋牸鏈畾'||coc.SummonsStatus_c__c='鎵瑰噯'||coc.SummonsStatus_c__c='鍑哄簱鍗曞凡鎵撳嵃'||coc.SummonsStatus_c__c='宸插畬鎴�',true,false)}"/> -->
+                                    <template if:true={isDeleteShow}>
+                                        <lightning-button label="鍒犻櫎" onclick={DeleteConsumable} style="width: 150px"
+                                            disabled={isDeleteDisabled}></lightning-button>
+                                    </template>
+                                </td>
+                                <td></td>
+                            </tr>
+                        </table>
+                    </div>
+                </div>
+            </div>
+
+            <!-- 鍑哄簱鍗曚俊鎭� EditAble = true -->
+            <template if:true={EditAble}>
+                <div class="borderCss">
+                    <div class="headerDorderCss">
+                        <p style="font-size: 16px">
+                            <strong>鍑哄簱鍗曚俊鎭�</strong>
+                        </p>
+                    </div>
+                    <div style="padding: 10px">
+                        <div lwc:dom="manual" class="resultDiv"></div>
+                        <div draggable="false">
+                            <!-- SummonsStatus_c__c == '浠锋牸鏈畾' -->
+                            <template if:true={summonsStatusPriceNotDetermined}>
+                                <lightning-record-edit-form object-api-name="Consumable_order__c" record-id={cocId}>
+                                    <!-- 鍑哄簱鍗曞彿 鍑哄簱鍗曠姸鎬� -->
+                                    <lightning-layout multiple-rows="true">
+                                        <template if:true={isSummonsFlag}>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                                <lightning-output-field field-name="Name"></lightning-output-field>
+                                            </lightning-layout-item>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                                <lightning-output-field
+                                                    field-name="SummonsStatus_c__c"></lightning-output-field>
+                                            </lightning-layout-item>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            </lightning-layout-item>
+                                        </template>
+                                    </lightning-layout>
+
+                                    <!-- 鐩殑   寮�绁ㄧ姸鎬� -->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="SummonsForDirction__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="Billed_Status__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+
+                                    <!-- 浜岀骇缁忛攢鍟� -->
+                                    <template if:true={isSummonsForDirctionTwoShow}>
+                                        <lightning-layout multiple-rows="true">
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                                <lightning-output-field
+                                                    field-name="Order_Dealer_Info__c"></lightning-output-field>
+                                            </lightning-layout-item>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            </lightning-layout-item>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            </lightning-layout-item>
+                                        </lightning-layout>
+                                    </template>
+
+                                    <!-- 瀹㈡埛鍚� 鍙戠エ-->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="ShipmentAccount__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            鍙戠エ 杩橀渶杩涜寮�鍙�1
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+
+                                    <!-- 绉戝 鍑哄簱閲戦 -->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="Order_ForCustomerText__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="Shipment_total_amount__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+
+                                    <!-- 娌℃湁纭畾浠锋牸 -->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="NoConfirmedPrice__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+                                </lightning-record-edit-form>
+                            </template>
+
+                            <!-- SummonsStatus_c__c != '浠锋牸鏈畾' -->
+                            <template if:false={summonsStatusPriceNotDetermined}>
+                                <lightning-record-edit-form object-api-name="Consumable_order__c" record-id={cocId}
+                                    onsubmit={handleSubmit}>
+                                    <!-- 鍑哄簱鍗曞彿 鍑哄簱鍗曠姸鎬� -->
+                                    <lightning-layout multiple-rows="true">
+                                        <template if:true={isSummonsFlag}>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                                <lightning-output-field field-name="Name"></lightning-output-field>
+                                            </lightning-layout-item>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                                <lightning-output-field
+                                                    field-name="SummonsStatus_c__c"></lightning-output-field>
+                                            </lightning-layout-item>
+                                            <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            </lightning-layout-item>
+                                        </template>
+                                    </lightning-layout>
+
+                                    <!-- 鐩殑   浜岀骇缁忛攢鍟� -->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-input-field data-field="summonsForDirction"
+                                                value={summonsForDirction} field-name="SummonsForDirction__c"
+                                                required="true" onchange={ChangeDirction}></lightning-input-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-combobox data-field="secondaryDistributor"
+                                                name="secondaryDistributor" label="浜岀骇缁忛攢鍟�" value={secondaryDistributor}
+                                                placeholder="璇烽�夋嫨..." options={secondaryDistributorOptions}
+                                                variant="label-inline" onchange={dataChange}
+                                                disabled={isDisabledSecondaryDistributor}></lightning-combobox>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+
+                                    <!-- 瀹㈡埛鍚�   缁忛攢鍟嗗綍鍏� -->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <div
+                                                class="slds-form-element__control slds-input-has-icon slds-input-has-icon_right">
+                                                <lightning-icon size="x-small"
+                                                    class="iconMargin slds-icon slds-input__icon slds-input__icon_right slds-icon-text-default"
+                                                    icon-name="utility:search"></lightning-icon>
+                                                <lightning-input type="text" name="HospitalName" label="瀹㈡埛鍚�"
+                                                    value={HospitalName} variant="label-inline"
+                                                    onclick={searchHospitalNameModal} data-field="HospitalName"
+                                                    disabled={isDisabledHospitalName}
+                                                    onchange={clearAgencyI}></lightning-input>
+                                            </div>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <!-- <lightning-input-field onfocus={setVisitorPlace} onblur={vpClear2Delay} data-field="ForDealerText"
+                                                value={ForDealerText} field-name="Order_ForDealerText__c"
+                                                disabled={isDisabledForDealerText}></lightning-input-field> -->
+                                            <!-- <lightning-input type="text" 
+                                                    name="Order_ForDealerText__c" 
+                                                    label="缁忛攢鍟�(褰曞叆)"
+                                                    value={ForDealerText}
+                                                    onfocus={setVisitorPlace} 
+                                                    onblur={vpClear2Delay}
+                                                    data-field="Order_ForDealerText__c"
+                                                    disabled={isDisabledForDealerText}
+                                                    variant="label-inline">
+                                                </lightning-input> -->
+                                            <c-lookup onsearch={handleSearch} onselectionchange={handleSelectionChange}
+                                                label="缁忛攢鍟�(褰曞叆)" variant="label-inline" placeholder="鎼滅储缁忛攢鍟�">
+                                            </c-lookup>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+
+                                    <!-- 绉戝   鎬婚噾棰� -->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-input-field onchange={dataChange} data-field="ForCustomerText"
+                                                value={ForCustomerText} field-name="Order_ForCustomerText__c"
+                                                disabled={isDisabledForCustomerText}></lightning-input-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-input type="text" name="sumPrice" label="鎬婚噾棰�" value={sumPrice}
+                                                variant="label-inline" onchange={dataChange} data-field="sumPrice"
+                                                readonly></lightning-input>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+
+                                    <!-- 娌℃湁纭畾浠锋牸 -->
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-input-field value={NoConfirmedPrice}
+                                                field-name="NoConfirmedPrice__c" data-field="NoConfirmedPrice"
+                                                onchange={dataChange}></lightning-input-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+                                </lightning-record-edit-form>
+                            </template>
+                        </div>
+                    </div>
+                </div>
+            </template>
+
+            <!-- 鍑哄簱鍗曚俊鎭� EditAble = false -->
+            <template if:false={EditAble}>
+                <div class="borderCss">
+                    <div class="headerDorderCss">
+                        <p style="font-size: 16px">
+                            <strong>鍑哄簱鍗曚俊鎭�</strong>
+                        </p>
+                    </div>
+                    <div style="padding: 10px">
+                        <div lwc:dom="manual" class="resultDiv"></div>
+                        <div draggable="false">
+                            <lightning-record-edit-form object-api-name="Consumable_order__c" record-id={cocId}>
+                                <!-- 鍑哄簱鍗曞彿 鍑哄簱鍗曠姸鎬� -->
+                                <lightning-layout multiple-rows="true">
+                                    <template if:true={isSummonsFlag}>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field field-name="Name"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="SummonsStatus_c__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </template>
+                                </lightning-layout>
+
+                                <!-- 鐩殑   寮�绁ㄧ姸鎬� -->
+                                <lightning-layout multiple-rows="true">
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        <lightning-output-field
+                                            field-name="SummonsForDirction__c"></lightning-output-field>
+                                    </lightning-layout-item>
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        <lightning-output-field field-name="Billed_Status__c"></lightning-output-field>
+                                    </lightning-layout-item>
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                    </lightning-layout-item>
+                                </lightning-layout>
+
+                                <!-- 浜岀骇缁忛攢鍟� -->
+                                <template if:true={isSummonsForDirctionTwoShow}>
+                                    <lightning-layout multiple-rows="true">
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-output-field
+                                                field-name="Order_Dealer_Info__c"></lightning-output-field>
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        </lightning-layout-item>
+                                    </lightning-layout>
+                                </template>
+
+                                <!-- 瀹㈡埛鍚� 鍙戠エ-->
+                                <lightning-layout multiple-rows="true">
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        <lightning-output-field
+                                            field-name="ShipmentAccount__c"></lightning-output-field>
+                                    </lightning-layout-item>
+                                    <template if:true={isConInvoiceShow}>
+                                        <lightning-layout-item class="hehe-layoutItem" size="4">
+                                            <lightning-input-field
+                                                field-name="ConInvoice_Code__c"></lightning-input-field>
+                                        </lightning-layout-item>
+                                    </template>
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                    </lightning-layout-item>
+                                </lightning-layout>
+
+                                <!-- 绉戝 鍑哄簱閲戦 -->
+                                <lightning-layout multiple-rows="true">
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        <lightning-output-field
+                                            field-name="Order_ForCustomerText__c"></lightning-output-field>
+                                    </lightning-layout-item>
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        <lightning-output-field
+                                            field-name="Shipment_total_amount__c"></lightning-output-field>
+                                    </lightning-layout-item>
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                    </lightning-layout-item>
+                                </lightning-layout>
+
+                                <!-- 娌℃湁纭畾浠锋牸 -->
+                                <lightning-layout multiple-rows="true">
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                        <lightning-output-field
+                                            field-name="NoConfirmedPrice__c"></lightning-output-field>
+                                    </lightning-layout-item>
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                    </lightning-layout-item>
+                                    <lightning-layout-item class="hehe-layoutItem" size="4">
+                                    </lightning-layout-item>
+                                </lightning-layout>
+                            </lightning-record-edit-form>
+                        </div>
+                    </div>
+                </div>
+            </template>
+
+            <!-- 妫�绱� -->
+            <template if:true={isSearchShow}>
+                <div class="borderCss">
+                    <div style="padding: 10px">
+                        <div lwc:dom="manual" class="resultDiv"></div>
+                        <div draggable="false">
+                            <lightning-layout>
+                                <lightning-layout-item flexibility="auto" padding="around-small">
+                                    <lightning-input type="text" name="consumableName" label="娑堣�楀搧鍚嶇О"
+                                        value={consumableName} variant="label-inline" onchange={dataChange}
+                                        data-field="consumableName"></lightning-input>
+                                </lightning-layout-item>
+                                <lightning-layout-item flexibility="auto" padding="around-small">
+                                    <lightning-combobox name="progress" label="绗�3鍒嗙被" value={Category3}
+                                        variant="label-inline" options={category3Options} onchange={dataChange}
+                                        data-field="Category3"></lightning-combobox>
+                                </lightning-layout-item>
+                                <lightning-layout-item flexibility="auto" padding="around-small">
+                                    <lightning-combobox name="progress" label="绗�4鍒嗙被" value={Category4}
+                                        variant="label-inline" options={category4Options} onchange={dataChange}
+                                        data-field="Category4"></lightning-combobox>
+                                </lightning-layout-item>
+                                <lightning-layout-item flexibility="auto" padding="around-small">
+                                    <lightning-combobox name="progress" label="绗�5鍒嗙被" value={Category5}
+                                        variant="label-inline" onchange={dataChange} data-field="Category5"
+                                        options={category5Options}></lightning-combobox>
+                                </lightning-layout-item>
+                                <template if:true={hasHosPro}>
+                                    <lightning-layout-item flexibility="auto" padding="around-small">
+                                        <lightning-combobox name="progress" label="鍖婚櫌鐗逛环" value={outOutPattern}
+                                            variant="label-inline" options={outOutPatternOptionList}
+                                            onchange={handleChange}></lightning-combobox>
+                                    </lightning-layout-item>
+                                </template>
+
+                                <lightning-layout-item flexibility="auto, no-grow" padding="around-small">
+                                    <lightning-button label="妫�绱�" onclick={searchProductJs}></lightning-button>
+                                </lightning-layout-item>
+                                <lightning-layout-item flexibility="auto, no-grow" padding="around-small">
+                                    <lightning-button label="娓呯┖" onclick={neworderhead}></lightning-button>
+                                </lightning-layout-item>
+                            </lightning-layout>
+                        </div>
+                    </div>
+                </div>
+            </template>
+
+            <!-- 鍑哄簱鍗曟槑缁� -->
+            <div class="borderCss">
+                <div class="headerDorderCss">
+                    <p style="font-size: 16px">
+                        <strong>鍑哄簱鍗曟槑缁�</strong>
+                    </p>
+                </div>
+                <div style="padding: 10px">
+                    <template if:true={EditAble}>
+                        <template if:true={showTable}>
+                            <!-- <c-poc-lightning-datatable key-field="Id" data={data} columns={columns}
+                                onunitchange={handleUnitChange} onshipmentnumber={handleShipmentNumber}
+                                onshipmentunitprice={handleShipmentUnitPrice} onrowselection={getSelectedRows}
+                                selected-rows={selectedRows}>
+                            </c-poc-lightning-datatable> -->
+                            <c-lex-custom-lightning-datatable key-field="Id" data={data} columns={columns}
+                                onunitchange={handleUnitChange} onshipmentnumber={handleShipmentNumber}
+                                onshipmentunitprice={handleShipmentUnitPrice} onrowselection={getSelectedRows}
+                                selected-rows={selectedRows}>
+                            </c-lex-custom-lightning-datatable>
+                        </template>
+                    </template>
+
+                    <template if:false={EditAble}>
+                        <template if:true={showTable}>
+                            <!-- <c-poc-lightning-datatable hide-checkbox-column key-field="Id" data={data}
+                                columns={editColumns} onunitchange={handleUnitChange}
+                                onshipmentnumber={handleShipmentNumber} onshipmentunitprice={handleShipmentUnitPrice}
+                                onrowselection={getSelectedRows} selected-rows={selectedRows}>
+                            </c-poc-lightning-datatable> -->
+                            <c-lex-custom-lightning-datatable hide-checkbox-column key-field="Id" data={data}
+                                columns={editColumns} onunitchange={handleUnitChange}
+                                onshipmentnumber={handleShipmentNumber} onshipmentunitprice={handleShipmentUnitPrice}
+                                onrowselection={getSelectedRows} selected-rows={selectedRows}>
+                            </c-lex-custom-lightning-datatable>
+                        </template>
+                    </template>
+                </div>
+            </div>
+
+            <!-- 涓婁紶闄勪欢 -->
+            <template if:true={EditAble}>
+                <div class="borderCss">
+                    <div class="headerDorderCss">
+                        <p style="font-size: 16px">
+                            <strong>鍑哄簱鍗曚俊鎭�</strong>
+                        </p>
+                    </div>
+                    <div style="padding: 10px">
+                        <div lwc:dom="manual" class="resultDiv"></div>
+                        <div draggable="false"></div>
+                    </div>
+                </div>
+            </template>
+        </div>
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js
new file mode 100644
index 0000000..6a4ab2e
--- /dev/null
+++ b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js
@@ -0,0 +1,1109 @@
+import { LightningElement, wire, api, track } from 'lwc';
+import init from '@salesforce/apex/LexSummonsCreatController.init';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import searchConsumableorderdetails from '@salesforce/apex/LexSummonsCreatController.searchConsumableorderdetails';
+import PraseToPDF from '@salesforce/apex/LexSummonsCreatController.PraseToPDF';
+import apexSearch from '@salesforce/apex/SampleLookupController.search';
+import save from '@salesforce/apex/LexSummonsCreatController.save';
+import OPPORTUNITY_OBJECT from '@salesforce/schema/Consumable_Orderdetails__c';
+import { getObjectInfo } from 'lightning/uiObjectInfoApi';
+import hospitalInit from '@salesforce/apex/lexSearchAgencyHospitalController.init';
+import serContact from '@salesforce/apex/lexSearchAgencyHospitalController.serContact';
+import { NavigationMixin } from 'lightning/navigation';
+
+
+
+
+
+export default class LexSummonsCreat extends NavigationMixin(LightningElement) {
+    @track isShowSpinner = true;
+    @track showResults = true;
+    @track results = [
+        {
+            Id:'1',
+            Name : 'z'
+        },
+        {
+            Id:'2',
+            Name : 'h'
+        },
+        {
+            Id:'3',
+            Name : 'j'
+        }
+    ];
+
+    @track COLS = [
+        { 
+            label: 'Account Name', 
+            type: 'customName',
+            typeAttributes: {
+            accountName: { fieldName: 'Name' }
+        }
+    }];
+    @track columns = [
+        { 
+            label: '娑堣�楀搧鍚嶇О', 
+            fieldName: 'Name__c', 
+            hideDefaultActions: true ,
+            wrapText:true,
+            //initialWidth : 100,
+        },
+        { 
+            label: '瑙勬牸', 
+            fieldName: 'packinglist', 
+            //initialWidth : 50,
+            wrapText:true,
+            hideDefaultActions: true
+        },
+        { 
+            label: 'CFDA鐘舵��', 
+            fieldName: 'SFDA_Status__c', 
+            //initialWidth : 100,
+            wrapText:true,
+            hideDefaultActions: true
+        },
+        { 
+            label: '娉ㄥ唽璇佺紪鐮佸彿', 
+            fieldName: 'approbation_No', 
+            //initialWidth : 150,
+            wrapText:true,
+            hideDefaultActions: true
+        },
+        { 
+            label: '娉ㄥ唽璇佹晥鏈�',
+            //initialWidth : 100, 
+            wrapText:true,
+            fieldName: 'expiration_Date', 
+            hideDefaultActions: true ,
+        },
+        { 
+            label: '绗�3鍒嗙被', 
+            fieldName: 'Category3__c', 
+            //initialWidth : 100,
+            wrapText:true,
+            hideDefaultActions: true,
+            sortable: true,
+        },
+        { 
+            label: '绗�4鍒嗙被', 
+            fieldName: 'Category4__c', 
+            //initialWidth : 100,
+            wrapText:true,
+            hideDefaultActions: true,
+            sortable: true
+        },
+        { 
+            label: '绗�5鍒嗙被', 
+            fieldName: 'Category5__c',
+            //initialWidth : 100,
+            wrapText:true,
+            hideDefaultActions: true,
+            sortable: true 
+        },
+        { 
+            label: '鍗曚綅', 
+            type:'customUnit',
+            //initialWidth : 100,
+            hideDefaultActions: true,
+            typeAttributes: {
+                unitValue: { fieldName: 'unitValue' },
+                unitOptions: { fieldName: 'unitOptions' },
+                recordId: { fieldName: 'recordId' }
+            },
+        },
+        { 
+            label: '鍑鸿揣鏁伴噺', 
+            type: 'customShipment',
+            //initialWidth : 150,
+            hideDefaultActions: true,
+            typeAttributes: {
+                recordId: { fieldName: 'recordId' },
+                shipmentNumber: { fieldName: 'shipmentNumber' },
+            },
+        },
+        { 
+            label: '鍑鸿揣鍗曚环(鍏�)', 
+            type: 'customShipmentUnitPrice',
+            //initialWidth : 150,
+            hideDefaultActions: true,
+            typeAttributes: {
+                recordId: { fieldName: 'recordId' },
+                shippingUnitPrice: { fieldName: 'shippingUnitPrice' }
+            },
+        },
+        { 
+            label: '鍑鸿揣閲戦(鍏�)', 
+            type: 'customShipmentAmount',
+            //initialWidth : 120,
+            hideDefaultActions: true,
+            typeAttributes: {
+                shipmentAmount: { fieldName: 'shipmentAmount' }
+            },
+        },
+        { 
+            label: '鏈夋晥鏈熷唴搴撳瓨(鐩�)', 
+            fieldName: 'Boxnumber',
+            //initialWidth : 120,
+            wrapText:true,
+            hideDefaultActions: true,
+        },
+        { 
+            label: '鏈夋晥鏈熷唴搴撳瓨(涓�)', 
+            fieldName: 'Piecenumber',
+            //initialWidth : 120,
+            wrapText:true,
+            hideDefaultActions: true,
+        }
+    ];
+    @track editColumns = [
+        { 
+            label: '娑堣�楀搧鍚嶇О', 
+            fieldName: 'Name__c', 
+            hideDefaultActions: true ,
+            initialWidth : 250,
+        },
+        { 
+            label: '瑙勬牸', 
+            fieldName: 'packinglist', 
+            initialWidth : 50,
+            hideDefaultActions: true
+        },
+        { 
+            label: 'CFDA鐘舵��', 
+            fieldName: 'SFDA_Status__c', 
+            initialWidth : 100,
+            hideDefaultActions: true
+        },
+        { 
+            label: '娉ㄥ唽璇佺紪鐮佸彿', 
+            fieldName: 'approbation_No', 
+            initialWidth : 150,
+            hideDefaultActions: true
+        },
+        { 
+            label: '娉ㄥ唽璇佹晥鏈�',
+            initialWidth : 100, 
+            fieldName: 'expiration_Date', 
+            hideDefaultActions: true ,
+        },
+        { 
+            label: '绗�3鍒嗙被', 
+            fieldName: 'Category3__c', 
+            initialWidth : 100,
+            hideDefaultActions: true,
+            sortable: true,
+        },
+        { 
+            label: '绗�4鍒嗙被', 
+            fieldName: 'Category4__c', 
+            initialWidth : 100,
+            hideDefaultActions: true,
+            sortable: true
+        },
+        { 
+            label: '绗�5鍒嗙被', 
+            fieldName: 'Category5__c',
+            initialWidth : 100,
+            hideDefaultActions: true,
+            sortable: true 
+        },
+        { 
+            label: '鍗曚綅', 
+            fieldName: 'Box_Piece__c',
+            initialWidth : 100,
+            hideDefaultActions: true,
+        },
+        { 
+            label: '鍑鸿揣鏁伴噺', 
+            fieldName: 'Shipment_Count__c',
+            initialWidth : 150,
+            hideDefaultActions: true,
+        },
+        { 
+            label: '鍑鸿揣鍗曚环(鍏�)', 
+            fieldName: 'Shipment_amount__c',
+            initialWidth : 150,
+            hideDefaultActions: true,
+        }
+    ];
+
+
+    @track hospitalList=[];
+    @track hospitalColumns = [
+        { 
+            label: '鍖婚櫌鍚嶇О', 
+            fieldName: 'Name', 
+            initialWidth : 400,
+            hideDefaultActions: true ,
+        },
+        { 
+            label: '鐪佷唤', 
+            fieldName: 'stateMasterName', 
+            hideDefaultActions: true ,
+        },
+        { 
+            label: '閫夋嫨', 
+            fieldName : 'Id1',
+            type : 'button',
+            hideDefaultActions: true ,
+            typeAttributes: {
+                label: '閫夋嫨',
+                name: 'Id2',
+                size: 1
+            }
+        }
+    ];
+
+    @track accountid = '';
+    @track consumableproductdetailsRecords = [];
+    @track SummonsStatus = '';
+    @track ESetid = '';
+    @track cocLwc = {};
+    @track selectedRows = [];
+    @track ConsumableOut_report = '';
+
+    //鏄剧ず鎸夐挳
+    @track isSaveShow = false;
+    @track isEditShow = false;
+    @track isDeliveryShow = false;
+    @track isOpenToInvoiceShow = false;
+    @track isPraseToPDFShow = false;
+    @track isOpenReportShow = false;
+    @track isDeleteShow = false;
+    @track isFileShow = false;
+
+    //disable鎸夐挳
+    @track isEditDisabled = false;
+    @track isDeliveryDisabled = false;
+    @track isOpenToInvoiceDisabled = true;
+    @track isPraseToPDFDisabled = true;
+    @track isOpenReportDisabled = true;
+    @track isDeleteDisabled = false;
+
+    //鍑哄簱鍗曚俊鎭�
+    @track cocId = ''
+    @track EditAble = false;
+    @track summonsStatusPriceNotDetermined = false;
+    @track isSummonsForDirctionTwoShow = false;
+    @track isSummonsFlag = false;
+    @track isConInvoiceShow = false;
+    @track sumPrice = '';
+    @track isSearchShow = false;
+    @track Existarrive = false;
+    @track Category3 = '';
+    @track category3Options=[];
+    @track Category4 = '';
+    @track category4Options=[];
+    @track Category5 = '';
+    @track category5Options=[];
+
+    //浜岀骇缁忛攢鍟�
+    @track secondaryDistributor = '';
+    @track secondaryDistributorOptions = [];
+    @track isDisabledSecondaryDistributor = false;
+
+    //缁忛攢鍟嗗綍鍏�
+    @track ForDealerText = '';
+    @track isDisabledForDealerText = false;
+
+    //瀹㈡埛鍚�
+    @track isModalOpen = false;
+    @track HospitalName = '';
+    @track searchHospitalName = '';
+    @track OECId = '';
+    @track isDisabledHospitalName = false;
+
+    //绉戝
+    @track ForCustomerText = '';
+    @track isDisabledForCustomerText = false;
+
+    //娌℃湁纭畾浠锋牸
+    @track NoConfirmedPrice = false;
+
+    //娑堣�楀搧鍚嶇О
+    @track consumableName = '';
+
+    @track agencyProType = '';
+    @track accountName = '';
+    @track userWorkLocation = '';
+    @track OutPattern__c = false;
+    @track outOutPattern = '';
+
+    //鍑哄簱鍗曟槑缁�
+    @track showTable = false;
+    @track data = [];
+    @track isSelectShow = false;
+    @track hidecheckboxcolumn = false;
+    @track is345Show = false;
+    @track arriveorder = '';
+    @track hasHosPro = false;
+    @track InvoiceProNotLabel = '';
+    @track RrturnProLabel = '';
+    @track InvoicedLabel = '';
+    @track outOutPatternOptionList = [];
+
+
+    //InvoiceProNotLabel    RrturnProLabel  InvoicedLabel
+    @wire(getObjectInfo, { objectApiName: OPPORTUNITY_OBJECT })
+    oppInfo({ data, error }) {
+        if (data) {
+            this.InvoiceProNotLabel = data.fields.InvoiceProNot_count__c.label
+            this.RrturnProLabel = data.fields.RrturnPro_count__c.label
+            this.InvoicedLabel = data.fields.Invoiced_Procount__c.label
+            console.log('this.InvoiceProNotLabel = ' + this.InvoiceProNotLabel);
+            console.log('this.RrturnProLabel = ' + this.RrturnProLabel);
+            console.log('this.InvoicedLabel = ' + this.InvoicedLabel);
+        }
+    }
+
+    // get secondaryDistributorOptions() {
+    //     return this.secondaryDistributorOptions;
+    // }
+
+    // get outOutPatternOptionList() {
+    //     return this.outOutPatternOptionList;
+    // }
+    
+    // // get category3Options() {
+    // //     return this.category3Options;
+    // // }
+    // get category4Options() {
+    //     return this.category4Options;
+    // }
+    // get category5Options() {
+    //     return this.category5Options;
+    // }
+
+    //鑾峰彇閾炬帴鍙傛暟
+    getQueryString(name) {
+        console.log('getQueryString name ' + name)
+        let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
+        let r = window.location.search.substr(1).match(reg);
+        if (r != null) {
+            return decodeURIComponent(r[2]);
+        };
+        return null;
+     }
+    connectedCallback(){
+        this.ESetid = this.getQueryString('ESetid');
+        this.ESetid = this.ESetid == null ? '' : this.ESetid;
+        init({
+            ESetidJs : this.ESetid
+        }).then((r) => {
+            r = JSON.parse(JSON.stringify(r));
+            console.log('r = ' + JSON.stringify(r));
+            
+            if (r.status == 'Success') {
+                this.ConsumableOut_report = r.entity.ConsumableOut_report;
+                console.log('this.ConsumableOut_report = ' + this.ConsumableOut_report)
+                this.accountid = r.entity.accountid;
+                this.consumableproductdetailsRecords = r.entity.consumableproductdetailsRecords;
+                this.accountName = r.entity.accountName;
+                this.agencyProType = r.entity.agencyProType;
+                this.accountName = r.entity.accountName;
+                this.userWorkLocation = r.entity.userWorkLocation;
+                this.EditAble = r.entity.EditAble;
+                console.log('this.agencyProType = ' + this.agencyProType);
+                console.log('this.EditAble = ' + this.EditAble);
+                //绗�3鍒嗙被
+                for(var key in r.entity.categoryOptionMap){
+                    let object = {};
+                    object['label'] = r.entity.categoryOptionMap[key];
+                    object['value'] = key;
+                    this.category3Options.push(object);
+                }
+                console.log('this.category3Options = ' + this.category3Options)
+                //绗�4鍒嗙被
+                for(var key in r.entity.category4OptionMap){
+                    let object = {};
+                    object['label'] = r.entity.category4OptionMap[key];
+                    object['value'] = key;
+                    this.category4Options.push(object);
+                }
+                console.log('this.category4Options = ' + this.category4Options)
+                //绗�5鍒嗙被
+                for(var key in r.entity.category5OptionMap){
+                    let object = {};
+                    object['label'] = r.entity.category5OptionMap[key];
+                    object['value'] = key;
+                    this.category5Options.push(object);
+                }
+                console.log('this.category5Options = ' + this.category5Options)
+
+                this.data = r.entity.pageRecords;
+                for(var i in this.data){
+                    let unitOptions = [];
+                    for(var key in this.data[i].boxorpieceMap){
+                        let unitOption = {};
+                        unitOption['label'] = this.data[i].boxorpieceMap[key];
+                        unitOption['value'] = key;
+                        unitOptions.push(unitOption);
+                    }
+                    this.data[i]['unitOptions'] = unitOptions;
+                    this.data[i]['unitValue'] = unitOptions[0].value;
+                    if(this.EditAble){
+                        this.data[i].orderdetails1['Box_Piece__c'] = unitOptions[0].value;
+                        this.data[i].orderdetails1['Shipment_Count__c'] = 0;
+                        this.data[i].orderdetails1['Delivery_List_RMB__c'] = 0.00;
+                    }else{
+                        this.data[i]['InvoiceProNot_count__c'] = this.data[i].orderdetails1.InvoiceProNot_count__c;
+                        this.data[i]['RrturnPro_count__c'] = this.data[i].orderdetails1.RrturnPro_count__c;
+                        this.data[i]['Invoiced_Procount__c'] = this.data[i].orderdetails1.Invoiced_Procount__c;
+                    }
+                    this.data[i]['shipmentNumber'] = 0;
+                    this.data[i]['shippingUnitPrice'] = 0.00;
+
+                    this.data[i]['recordId'] = this.data[i].Prod.Id;
+                    this.data[i]['Id'] = this.data[i].Prod.Id;
+                    this.data[i]['Name__c'] = this.data[i].Prod.Name__c;
+                    this.data[i]['SFDA_Status__c'] = this.data[i].Prod.SFDA_Status__c;
+                    this.data[i]['Category3__c'] = this.data[i].Prod.Category3__c;
+                    this.data[i]['Category4__c'] = this.data[i].Prod.Category4__c;
+                    this.data[i]['Category5__c'] = this.data[i].Prod.Category5__c;
+                    this.data[i]['Box_Piece__c'] = this.data[i].orderdetails1.Box_Piece__c; 
+                    this.data[i]['shipmentAmount'] = this.data[i].orderdetails1.Shipment_amount__c;
+                    this.data[i]['Shipment_amount__c'] = this.data[i].orderdetails1.Shipment_amount__c;
+                    this.data[i]['Shipment_Count__c'] = this.data[i].orderdetails1.Shipment_Count__c;
+                    
+                }
+                console.log('this.data = ' + JSON.stringify(this.data));
+                //show
+                if(r.entity.EditDelCommitBtnDisabled || r.entity.EditAble){
+                    this.isSaveShow = true;
+                }else{
+                    this.isEditShow = true;
+                    this.isDeliveryShow = true;
+                    this.isOpenToInvoiceShow = true;
+                    this.isPraseToPDFShow = true;
+                    this.isOpenReportShow = true;
+                    this.isDeleteShow = true;
+                }
+
+                this.Existarrive = r.entity.Existarrive;
+                
+                console.log('this.EditAble = ' + this.EditAble);
+                this.hasHosPro = r.entity.hasHosPro;
+                //disable
+                
+                if(Object.values(r.entity.coc).length > 0){
+                    this.cocLwc = r.entity.coc;
+                    console.log('this.cocLwc = ' + JSON.stringify(this.cocLwc));
+                    var coc = r.entity.coc;
+                    this.cocId = coc.Id;
+                    coc.SummonsStatus = coc.SummonsStatus_c__c;
+                    if(coc.SummonsStatus_c__c == '宸插畬鎴�'){
+                        this.isEditDisabled = true;
+                    }
+                    if(coc.SummonsStatus_c__c == '鎵瑰噯' || coc.SummonsStatus_c__c == '宸查攢鍞緟涓婁紶绾冲搧涔�' || coc.SummonsStatus_c__c == '鍑哄簱鍗曞凡鎵撳嵃' || coc.SummonsStatus_c__c == '宸插畬鎴�'){
+                        this.isDeliveryDisabled = true;
+                    }
+                    if(((coc.Billed_Status__c != '鍏ㄩ儴寮�绁�' && coc.SummonsStatus_c__c == '宸插畬鎴�') || coc.Onchange_order__c == true) && coc.SummonsForDirction__c != '浜掔浉璋冭揣'){
+                        this.isOpenToInvoiceDisabled = false;
+                    }
+                    if(coc.SummonsStatus_c__c == '宸查攢鍞緟涓婁紶绾冲搧涔�' || coc.SummonsStatus_c__c == '鎵瑰噯' || coc.SummonsStatus_c__c == '鍑哄簱鍗曞凡鎵撳嵃' || coc.SummonsStatus_c__c == '鑽夋涓�'){
+                        this.isPraseToPDFDisabled = false;
+                    }
+                    if(coc.Billed_Status__c != '杩樻病寮�绁�' || coc.SummonsStatus_c__c == '宸插畬鎴�'){
+                        this.isOpenReportDisabled = false;
+                    }
+                    if(coc.SummonsStatus_c__c == '宸查攢鍞緟涓婁紶绾冲搧涔�' || coc.SummonsStatus_c__c == '浠锋牸鏈畾' || coc.SummonsStatus_c__c == '鎵瑰噯' || coc.SummonsStatus_c__c == '鍑哄簱鍗曞凡鎵撳嵃' || coc.SummonsStatus_c__c == '宸插畬鎴�'){
+                        this.isDeleteDisabled = true;
+                    }
+                    this.isConInvoiceShow = (coc.SummonsStatus_c__c == '宸插畬鎴�' && coc.SummonsForDirction__c != '浜掔浉璋冭揣') ? true : false;
+                    this.summonsStatusPriceNotDetermined = coc.SummonsStatus_c__c == '浠锋牸鏈畾' ? true : false;
+                    this.isSummonsForDirctionTwoShow = coc.SummonsForDirction__c == '閿�鍞粰浜岀骇缁忛攢鍟�' ? true : false;
+                }
+                this.isSearchShow = (!this.Existarrive && r.entity.coc.SummonsStatus_c__c != '浠锋牸鏈畾' && r.entity.EditAble) ? true : false;
+                this.hidecheckboxcolumn = !this.isSearchShow;
+                this.arriveorder = r.entity.arriveorder;
+                this.is345Show = (this.arriveorder == '' && this.Existarrive == false && this.EditAble) ? true : false;
+                //濡傛灉涓嶆樉绀�345鍒嗙被锛宑olumns閲岄潰鍒犻櫎3锛�4锛�5鍒嗙被
+                if(!this.is345Show){
+                    for(var i=0; i<this.columns.length; i++){
+                        if(this.columns[i].label == '绗�3鍒嗙被'){
+                            this.columns.splice(i,1);
+                        }
+                    }
+                    for(var i=0; i<this.columns.length; i++){
+                        if(this.columns[i].label == '绗�4鍒嗙被'){
+                            this.columns.splice(i,1);
+                        }
+                    }
+                    for(var i=0; i<this.columns.length; i++){
+                        if(this.columns[i].label == '绗�5鍒嗙被'){
+                            this.columns.splice(i,1);
+                        }
+                    }
+                    for(var i=0; i<this.editColumns.length; i++){
+                        if(this.editColumns[i].label == '绗�3鍒嗙被'){
+                            this.editColumns.splice(i,1);
+                        }
+                    }
+                    for(var i=0; i<this.editColumns.length; i++){
+                        if(this.editColumns[i].label == '绗�4鍒嗙被'){
+                            this.editColumns.splice(i,1);
+                        }
+                    }
+                    for(var i=0; i<this.editColumns.length; i++){
+                        if(this.editColumns[i].label == '绗�5鍒嗙被'){
+                            this.editColumns.splice(i,1);
+                        }
+                    }
+                }
+                //濡傛灉EditAble==false锛屽垹闄� 鍑鸿揣閲戦(鍏�) 鏈夋晥鏈熷唴搴撳瓨(鐩�) 鏈夋晥鏈熷唴搴撳瓨(涓�) 3鍒� 灞曠ず 杩樻病鍙戠エ鏁伴噺 杩斿搧鏁伴噺 宸插彂绁ㄦ暟閲�
+                if(!this.EditAble){
+                    let object1 = {
+                        label: this.InvoiceProNotLabel, 
+                        fieldName: 'InvoiceProNot_count__c', 
+                        hideDefaultActions: true
+                    };
+                    let object2 = {
+                        label: this.RrturnProLabel, 
+                        fieldName: 'RrturnPro_count__c', 
+                        hideDefaultActions: true
+                    };
+                    let object3 = {
+                        label: this.InvoicedLabel, 
+                        fieldName: 'Invoiced_Procount__c', 
+                        hideDefaultActions: true
+                    };
+                    this.editColumns.push(object1);
+                    this.editColumns.push(object2);
+                    this.editColumns.push(object3);
+                }
+
+                //濡傛灉hasHosPro = true 鍖婚櫌鐗逛环
+                if(this.hasHosPro){
+                    let object1 = {
+                        label: '鍖婚櫌鐗逛环', 
+                        fieldName: 'InvoiceProNot_count__c', 
+                        hideDefaultActions: true
+                    };
+                    this.columns.push(object1);
+                    this.editColumns.push(object1);
+                }
+                //鍑哄簱鍗曚俊鎭�
+                this.isSummonsFlag = r.entity.SummonsFlag == 'visible' ? true : false;
+                console.log('r.entity.provinceOptsMap = ' + r.entity.provinceOptsMap);
+                for(var key in r.entity.provinceOptsMap){
+                    let object = {};
+                    object['label'] = r.entity.provinceOptsMap[key];
+                    object['value'] = key;
+                    this.secondaryDistributorOptions.push(object);
+                }
+                for(var key in r.entity.outOutPatternOptionMap){
+                    let object = {};
+                    object['label'] = r.entity.outOutPatternOptionMap[key];
+                    object['value'] = key;
+                    this.outOutPatternOptionList.push(object);
+                }
+                console.log('this.secondaryDistributorOptions = '  + JSON.stringify(this.secondaryDistributorOptions));
+                this.HospitalName = r.entity.HospitalName;
+                this.sumPrice = r.entity.sumPrice + '鍏�';
+                this.isShowSpinner = false;
+                this.showTable = true;
+                console.log('ESetid = ' + this.ESetid)
+            } else {
+                console.log('r = ' + JSON.stringify(r))
+                this.showToast('Error', r.msg);
+            }
+        })
+    }
+
+
+    ChangeDirction(event){
+        let value = event.target.value;
+        this.summonsForDirction = value;
+        this.cocLwc['SummonsForDirction__c'] = value;
+        console.log('閫夋嫨浜� = ' + value);
+        switch(value){
+            case '鐩存帴閿�鍞粰鍖婚櫌':
+                this.isDisabledHospitalName = false;
+                this.isDisabledForCustomerText = false;
+                this.secondaryDistributor = '';
+                this.ForDealerText = '';
+                this.isDisabledForDealerText = true;
+                this.isDisabledSecondaryDistributor = true;
+                break;
+            case '鍖婚櫌璇曠敤':
+                this.isDisabledHospitalName = false;
+                this.isDisabledForCustomerText = false;
+                this.isDisabledForDealerText = false;
+                this.isDisabledSecondaryDistributor = false;
+                break;
+            case '閿�鍞粰浜岀骇缁忛攢鍟�':
+                this.isDisabledHospitalName = false;
+                this.isDisabledForCustomerText = false;
+                this.isDisabledForDealerText = false;
+                this.isDisabledSecondaryDistributor = false;
+                break;
+            case '浜掔浉璋冭揣':
+                this.isDisabledHospitalName = true;
+                this.HospitalName = '';
+                this.OECId = '';
+                this.isDisabledForCustomerText = true;
+                this.ForCustomerText = '';
+                this.isDisabledForDealerText = false;
+                this.isDisabledSecondaryDistributor = false;
+                break;
+            default:
+                this.isDisabledHospitalName = false;
+                this.isDisabledForCustomerText = false;
+                this.isDisabledForDealerText = false;
+                this.isDisabledSecondaryDistributor = false;
+        }
+    }
+
+    dataChange(event) {
+        let fieldName = event.target.getAttribute("data-field");
+        let value = event.detail.value;
+        switch (fieldName) {
+            case 'summonsForDirction':   
+                this.summonsForDirction = value;
+                break
+            case 'secondaryDistributor':
+                this.secondaryDistributor = value;
+                break
+            case 'HospitalName':
+                this.HospitalName = value;
+                break
+            case 'ForDealerText':
+                this.ForDealerText = value;
+                this.cocLwc['Order_ForDealerText__c'] = value;
+                break
+            case 'ForCustomerText':
+                this.cocLwc['Order_ForCustomerText__c'] = value;
+                this.ForCustomerText = value;
+                break
+            case 'sumPrice':
+                this.sumPrice = value;
+                break
+            case 'NoConfirmedPrice':
+                this.NoConfirmedPrice = !this.NoConfirmedPrice
+                this.cocLwc['NoConfirmedPrice__c'] = this.NoConfirmedPrice;
+                console.log('this.NoConfirmedPrice = ' + this.NoConfirmedPrice)
+                break
+            case 'consumableName':
+                this.consumableName = value;
+                break
+            case 'Category3':
+                this.Category3 = value;
+                break
+            case 'Category4':
+                this.Category4 = value;
+                break
+            case 'Category5':
+                this.Category5 = value;
+                break
+            case 'searchHospitalName':
+                this.searchHospitalName = value;
+                break
+        }
+    }
+
+    showToast(type, msg) {
+        this.isShowSpinner = false;
+        const event = new ShowToastEvent({
+            title: type,
+            variant: type,
+            message: msg
+        });
+        this.dispatchEvent(event);
+    }
+
+    searchProductJs(){
+        this.isShowSpinner = true;
+        //this.showTable = false;
+
+        let cloneData = this.data;
+        for(var i in cloneData){
+            cloneData[i]['Name'] = cloneData[i].Name__c;
+            cloneData[i]['Category3'] = cloneData[i].Category3__c;
+            cloneData[i]['Category4'] = cloneData[i].Category4__c;
+            cloneData[i]['Category5'] = cloneData[i].Category5__c;
+            cloneData[i]['BoxPiece'] = cloneData[i].Box_Piece__c;
+            delete cloneData[i].Name__c;
+            delete cloneData[i].Category3__c;
+            delete cloneData[i].Category4__c;
+            delete cloneData[i].Category5__c;
+            delete cloneData[i].Box_Piece__c;
+        }
+
+        console.log('cloneData = ' + JSON.stringify(cloneData));
+        searchConsumableorderdetails({
+            agencyProTypeLwc : this.agencyProType,
+            accountNameLwc : this.accountName,
+            userWorkLocationLwc : this.userWorkLocation,
+            outOutPattern : this.outOutPattern,
+            category1 : this.consumableName,
+            category3 : this.Category3,
+            category4 : this.Category4,
+            category5 : this.Category5,
+            editAbleLwc : this.EditAble,
+            pageRecordsLwcLwc : cloneData,
+            consumableproductdetailsRecordsLwc : this.consumableproductdetailsRecords,
+            arriveorderLwc : this.arriveorder
+        }).then((r) => {
+            r = JSON.parse(JSON.stringify(r));
+            console.log('r = ' + JSON.stringify(r));
+            if (r.status == 'Success') {
+                let tempData = [];
+                //this.data = r.entity.pageRecords;
+                tempData = r.entity.pageRecords;
+                for(var i in tempData){
+                    let unitOptions = [];
+                    for(var key in tempData[i].boxorpieceMap){
+                        let unitOption = {};
+                        unitOption['label'] = tempData[i].boxorpieceMap[key];
+                        unitOption['value'] = key;
+                        unitOptions.push(unitOption);
+                    }
+                    tempData[i]['unitOptions'] = unitOptions;
+                    tempData[i]['unitValue'] = unitOptions[0].value;
+                    tempData[i]['recordId'] = tempData[i].Prod.Id;
+                    tempData[i]['Id'] = tempData[i].Prod.Id;
+                    tempData[i]['Name__c'] = tempData[i].Prod.Name__c;
+                    tempData[i]['SFDA_Status__c'] = tempData[i].Prod.SFDA_Status__c;
+                    tempData[i]['Category3__c'] = tempData[i].Prod.Category3__c;
+                    tempData[i]['Category4__c'] = tempData[i].Prod.Category4__c;
+                    tempData[i]['Category5__c'] = tempData[i].Prod.Category5__c;
+                    tempData[i]['Box_Piece__c'] = tempData[i].orderdetails1.Box_Piece__c; 
+                    tempData[i]['shipmentNumber'] = tempData[i].orderdetails1.Shipment_Count__c; 
+                    tempData[i]['shippingUnitPrice'] = tempData[i].orderdetails1.Delivery_List_RMB__c; 
+                    console.log('shippingUnitPrice = ' + tempData[i]['shippingUnitPrice']);
+                    if(tempData[i]['shippingUnitPrice'] && tempData[i]['shipmentNumber'])
+                        tempData[i]['shipmentAmount'] = this.amend(tempData[i]['shipmentNumber'],tempData[i]['shippingUnitPrice'],'*')
+                }
+                this.data = tempData;
+                console.log('this.data = ' + JSON.stringify(this.data));
+                //this.showTable = true;
+                this.isShowSpinner = false;
+            }
+        })
+    }
+
+    searchHospitalNameModal(){
+        console.log('searchHospitalNameModal')
+        hospitalInit({
+            ctype : this.agencyProType
+        }).then((r) => {
+            r = JSON.parse(JSON.stringify(r));
+            if (r.status == 'Success') {
+                this.hospitalList = r.entity.at;
+                for(var i in this.hospitalList){
+                    this.hospitalList[i]['stateMasterName'] = this.hospitalList[i].State_Master__r.Name;
+                }
+                console.log('hospitalInit r = ' + JSON.stringify(this.hospitalList));
+                this.isModalOpen = true;
+            }
+        });
+        
+    }
+
+    searchHospital(){
+        console.log('this.searchHospitalName = '  +  this.searchHospitalName);
+        serContact({
+            searchName : this.searchHospitalName,
+            ctype : this.agencyProType
+        }).then((r) => {
+            r = JSON.parse(JSON.stringify(r));
+            if (r.status == 'Success') {
+                this.hospitalList = r.entity.at;
+                for(var i in this.hospitalList){
+                    this.hospitalList[i]['stateMasterName'] = this.hospitalList[i].State_Master__r.Name;
+                }
+                console.log('hospitalInit r = ' + JSON.stringify(this.hospitalList));
+            }
+        });
+    }
+
+    searchHandleRowAction(event) {
+        console.log('searchHandleRowAction')
+        let row = event.detail.row;
+        this.OECId = row.Id;
+        this.HospitalName = row.Name;
+        console.log('this.OECId = ' + this.OECId + ' this.HospitalName = ' + this.HospitalName);
+        this.isModalOpen = false;
+        console.log('this.isModalOpen = ' + this.isModalOpen);
+    }
+
+    clearAgencyI(event){
+        this.HospitalName = event.target.value;
+        if(this.HospitalName == '' || this.HospitalName == null){
+            this.OECId = '';
+        }
+        console.log('this.HospitalName = ' + this.HospitalName);
+        console.log('this.OECId = ' + this.OECId);
+        if (this.OECId != null && this.OECId != '') {
+            this.checkOutPattern();
+        }
+    }
+
+    checkOutPattern(){
+        //鏍规嵁鐢ㄦ埛閫変腑鐨勪骇鍝佺粰 鍑哄簱鍗曚笂鐨勬槸鍚﹀尰闄㈢壒浠峰嚭搴撳瓧娈佃祴鍊�
+        let ishos = 0;
+        for(var i in this.data){
+            if(this.data[i].check == true && this.data[i].hospitalSpecialOffer == true){
+                ishos = ishos +1;
+            }
+        }
+        if (ishos > 0) {
+            this.cocLwc['OutPattern__c'] = true;
+        }else{
+            this.cocLwc['OutPattern__c'] = false;
+        }
+    }
+
+    closeModal(){
+        this.isModalOpen = false;
+    }
+
+    handleUnitChange(event){
+        console.log('handleUnitChange')
+        const unitDetail = event.detail;
+        console.log('unitDetail = ' + JSON.stringify(unitDetail))
+        for(var i in this.data){
+            if(this.data[i].recordId == unitDetail.data.recordId){
+                this.data[i].unitValue = unitDetail.data.unitValue;
+                this.data[i].orderdetails1['Box_Piece__c'] = unitDetail.data.unitValue;
+            }
+        }
+        console.log('this.data = ' + JSON.stringify(this.data))
+    }
+
+    handleShipmentNumber(event){
+        console.log('handleShipmentNumber')
+        const numberDetail = event.detail;
+        console.log('numberDetail = ' + JSON.stringify(numberDetail))
+        let index = 0;
+        for(var i in this.data){
+            if(this.data[i].recordId == numberDetail.data.recordId){
+                index = i;
+                this.data[i].shipmentNumber = Number(numberDetail.data.shipmentnumber);
+                this.data[i].orderdetails1['Shipment_Count__c'] = Number(numberDetail.data.shipmentnumber);
+                console.log('this.data[i].shipmentNumber = ' + this.data[i].shipmentNumber)
+            }
+        }
+        this.ComputePrice(index,this.data[index].shipmentNumber,this.data[index].shippingUnitPrice);
+    }
+
+    handleShipmentUnitPrice(event){
+        console.log('handleShipmentUnitPrice')
+        const priceDetail = event.detail;
+        let index = 0;
+        for(var i in this.data){
+            if(this.data[i].recordId == priceDetail.data.recordId){
+                index = i;
+                this.data[i].shippingUnitPrice = Number(priceDetail.data.shipmentunitprice);
+                this.data[i].orderdetails1['Delivery_List_RMB__c'] = Number(priceDetail.data.shipmentunitprice);
+                console.log('this.data[i].shippingUnitPrice = ' + this.data[i].shippingUnitPrice)
+            }
+        }
+        this.ComputePrice(index,this.data[index].shipmentNumber,this.data[index].shippingUnitPrice);
+    }
+
+    ComputePrice(index,number,price){
+        console.log('index = ' + index);
+        console.log('number = ' + number);
+        console.log('price = ' + price);
+        let shipmentAmount = this.amend(number,price,'*');
+        console.log('shipmentAmount = ' + shipmentAmount);
+        let sumPrice = 0.00;
+        this.data[index].shipmentAmount = shipmentAmount;
+        for(var i in this.data){
+            if(this.data[i].shipmentAmount)
+                sumPrice += this.data[i].shipmentAmount;
+        }
+        this.sumPrice = sumPrice + '鍏�';
+        //瀛樹笅閫夋嫨琛岋紝涓嶄細琚竻绌�
+        this.selectedRows = [];
+        for(var i in this.data){
+            if(this.data[i].check){
+                this.selectedRows.push(this.data[i].Id);
+            }
+        }
+        this.data = [...this.data];
+        console.log('this.selectedRows = ' + JSON.stringify(this.selectedRows))
+        console.log('this.data = ' + JSON.stringify(this.data))
+    }
+
+    //num1 num2浼犲叆涓や釜鍊�  symbol +-*/绗﹀彿
+    amend(num1,num2,symbol){
+        var str1=num1.toString(),str2=num2.toString(),result,str1Length,str2Length
+        //瑙e喅鏁存暟娌℃湁灏忔暟鐐规柟娉�
+        try {str1Length= str1.split('.')[1].length} catch (error) {str1Length=0}
+        try {str2Length= str2.split('.')[1].length} catch (error) {str2Length=0}
+        var step=Math.pow(10,Math.max(str1Length,str2Length))
+        // 
+        console.log(step);
+        switch (symbol) {
+            case "+":
+                result= (num1*step+num2*step)/step
+                break;
+            case "-":
+                result= (num1*step-num2*step)/step
+                break;
+            case "*":
+                result= ((num1*step)*(num2*step)) / step/step
+                break;
+            case "/":
+                result= (num1*step)/(num2*step)
+                break;
+            default:
+                break;
+        }
+        return result
+    }
+  
+
+    getSelectedRows(event) {
+        const selectedRows = event.detail.selectedRows;
+        console.log('this.selectedRows = ' + this.selectedRows);
+        for(var i in this.data){
+            this.data[i]['check'] = false;
+        }
+        for(var i in this.data){
+            for(var j in selectedRows){
+                if(this.data[i].Id == selectedRows[j].Id){
+                    this.data[i]['check'] = true;
+                }
+            }
+        }
+    }
+    
+    saveConfirmJs(){
+        let msg = "鍑哄簱浠锋牸浠呭彲鎿嶄綔涓�娆″彉鏇达紝淇濆瓨鍚庡皢鏃犳硶淇敼銆俓n\n璇风‘璁わ紒";
+        if(this.SummonsStatus == '浠锋牸鏈畾'){
+            if(confirm(msg)==true){
+                this.saveConfirm()
+            }
+        }else{
+            this.saveConfirm()
+        }
+    }
+
+    saveConfirm(){
+        this.isShowSpinner = true;
+        let cloneData = this.data;
+        for(var i in cloneData){
+            cloneData[i]['Name'] = cloneData[i].Name__c;
+            cloneData[i]['Category3'] = cloneData[i].Category3__c;
+            cloneData[i]['Category4'] = cloneData[i].Category4__c;
+            cloneData[i]['Category5'] = cloneData[i].Category5__c;
+            cloneData[i]['BoxPiece'] = cloneData[i].Box_Piece__c;
+            delete cloneData[i].Name__c;
+            delete cloneData[i].Category3__c;
+            delete cloneData[i].Category4__c;
+            delete cloneData[i].Category5__c;
+            delete cloneData[i].Box_Piece__c;
+        }
+        console.log('this.cocLwc = ' + JSON.stringify(this.cocLwc))
+        console.log('this.OECId = ' + this.OECId)
+        console.log('this.HospitalName = ' + this.HospitalName)
+        console.log('this.secondaryDistributor = ' + this.secondaryDistributor)
+        console.log('this.pageRecordsLwc = ' + JSON.stringify(cloneData))
+        console.log('this.accountid = ' + this.accountid)
+        console.log('this.ESetid = ' + this.ESetid)
+        console.log('this.consumableproductdetailsRecords = ' + JSON.stringify(this.consumableproductdetailsRecords))
+        save({
+            cocLwc : this.cocLwc,
+            hospitalInfoLwc : this.OECId,
+            hospitalNameLwc : this.HospitalName,
+            secondaryDistributor : this.secondaryDistributor,
+            pageRecordsLwc : cloneData,
+            accountid : this.accountid,
+            ESetId  : this.ESetid,
+            consumableproductdetailsRecordsLwc : this.consumableproductdetailsRecords
+        }).then((r) => {
+            r = JSON.parse(JSON.stringify(r));
+            console.log('r = ' + JSON.stringify(r));
+            
+            if (r.status == 'Success') {
+                let url = '/lexsummonscreat?ESetid=' + r.entity.ESetId;
+                this[NavigationMixin.Navigate]({
+                    type: 'standard__webPage',
+                    attributes: {
+                        url: url
+                    }
+                });
+            }else{
+                console.log('r.msg = ' + r.msg);
+                this.showToast('Error', r.msg);
+            }
+        }).catch((error) => {
+            console.log('error = ' + JSON.stringify(error))
+        });
+    }
+
+    //鎵撳嵃鎸囩ず鍗�
+    PraseToPDFJs(){
+        console.log('this.cocLwc = ' + JSON.stringify(this.cocLwc))
+        console.log('this.ESetId = ' + this.ESetid)
+        PraseToPDF({
+            cocLwc : this.cocLwc,
+            ESetId  : this.ESetid
+        }).then((r) => {
+            r = JSON.parse(JSON.stringify(r));
+            console.log('r = ' + JSON.stringify(r));
+            if (r.status == 'Success') {
+                window.open('/customer/summonsPDF?ESetid=' + r.entity.ESetId);
+            }else{
+                console.log('r.msg = ' + r.msg);
+                this.showToast('Error', r.msg);
+            }
+        });
+    }
+
+    //鏄剧ず鏄庣粏 
+    openReportJs(){
+        var reportId = this.ESetid;
+        reportId = reportId.substring(0,15);
+        window.open("/customer/" +this.ConsumableOut_report+ "?pv1="+ reportId);
+    }
+
+    setVisitorPlace(){
+        console.log('setVisitorPlace')
+        if(this.summonsForDirction == '浜掔浉璋冭揣'){
+
+        }
+    }
+
+    vpClear2Delay(event){
+        console.log('vpClear2Delay')
+        if(this.summonsForDirction != '浜掔浉璋冭揣'){
+            this.cocLwc['Order_ForDealerText__c'] = event.target.value;
+        }else{
+            console.log('Order_ForDealerTextID__c = ' + this.cocLwc['Order_ForDealerTextID__c'])
+            this.cocLwc['Order_ForDealerText__c'] = (this.cocLwc['Order_ForDealerTextID__c'] == '' || this.cocLwc['Order_ForDealerTextID__c'] == null || this.cocLwc['Order_ForDealerTextID__c'] == undefined) ? '' : this.cocLwc['Order_ForDealerText__c'];
+            console.log('this.cocLwc = ' + JSON.stringify(this.cocLwc));
+            this.ForDealerText = this.cocLwc['Order_ForDealerText__c'];
+            event.target.value = this.cocLwc['Order_ForDealerText__c'];
+            console.log('this.ForDealerText = ' + this.ForDealerText);
+        }
+    }
+    handleSearch(event) {
+        debugger
+        const lookupElement = event.target;
+        console.log('event.detail = ' + JSON.stringify(event.detail))
+        apexSearch({
+            searchTerm : event.detail.searchTerm,
+            selectedIds : event.detail.selectedIds
+        })
+            .then(results => {
+                lookupElement.setSearchResults(results);
+            })
+            .catch(error => {
+                // TODO: handle error
+                console.log('error'+JSON.stringify(error));
+            });
+    }
+
+    handleSelectionChange(event) {
+        // Get the selected ids from the event (same interface as lightning-input-field)
+        const selectedIds = event.detail;
+        // Or, get the selection objects with ids, labels, icons...
+        const selection = event.target.getSelection();
+        // TODO: do something with the lookup selection
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js-meta.xml b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js-meta.xml
new file mode 100644
index 0000000..d893635
--- /dev/null
+++ b/force-app/main/default/lwc/lexSummonsCreat/lexSummonsCreat.js-meta.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+        <target>lightningCommunity__Page</target>
+        <target>lightningCommunity__Default</target>
+    </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.html b/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.html
new file mode 100644
index 0000000..ae1f345
--- /dev/null
+++ b/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.html
@@ -0,0 +1,176 @@
+<template>
+    <div style="border: 1px solid #D4D4D4;border-radius:5px;">
+        <div style="border-top: 3px solid #51606E;;border-bottom: 1px solid #D4D4D4;padding:3px;">
+            <p style="font-size: 19px;"><strong>搴撳瓨绠$悊</strong></p>
+        </div>
+        <div style="padding:10px;">
+            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
+                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                    <table>
+                        <colgroup>
+                            <col width="160px"/>
+                            <col width="100px"/>
+                            <col width="10px"/>
+                            <col width="70px"/>
+                            <col width="100px"/>
+                            <col width="10px"/>
+                            <col width="90px"/>
+                            <col width="100px"/>
+                            <col width="10px"/>
+                            <col width="85px"/>
+                            <col width="100px"/>
+                            <col width="10px"/>
+                            <col width="70px"/>
+                            <col width="100px"/>
+                        </colgroup>
+                        <tbody>
+                            <tr>
+                                <td></td>
+                                <td><lightning-button label="搴撳瓨鐩樼偣" title="搴撳瓨鐩樼偣" onclick={inventoryCount} ></lightning-button></td>
+                                <td></td>
+                                <td></td>
+                                <td style="width:100px;"><lightning-button label="杩囨湡搴撳瓨閿�瀛�"  title="杩囨湡搴撳瓨閿�瀛�" onclick={handleClick} ></lightning-button></td>
+                                <td></td>
+                                <td></td>
+                                <td style="width:100px;"><lightning-button label="鎷嗙洅" title="鎷嗙洅" onclick={handleClick} ></lightning-button></td>
+                                <td></td>
+                                <td></td>
+                                <td style="width:100px;"><lightning-button label="鍙栨秷鎷嗙洅" title="鍙栨秷鎷嗙洅" onclick={handleClick}></lightning-button></td>
+        
+                            </tr>
+                        </tbody>  
+                </table>
+                </div>
+            </div>
+
+                <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
+                    <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                        <table>
+                            <colgroup>
+                                <col width="160px"/>
+                                <col width="100px"/>
+                                <col width="10px"/>
+                                <col width="70px"/>
+                                <col width="100px"/>
+                                <col width="10px"/>
+                                <col width="70px"/>
+                                <col width="100px"/>
+                                <col width="10px"/>
+                                <col width="90px"/>
+                                <col width="100px"/>
+                                <col width="85px"/>
+                                <col width="100px"/>
+                                <col width="10px"/>
+                                <col width="70px"/>
+                                <col width="100px"/>
+                            </colgroup>
+                            <tbody>
+                                <tr>
+                                    <td style="width: 21%;">
+                                        <lightning-input type="text" name="Name" label="娑堣�楀搧鍚嶇О"  value={Name}  variant="label-inline" onchange={handleChange} data-field ="Name" ></lightning-input>
+                                    </td>
+                                    <td style="width: 21%;">
+                                        <lightning-combobox   name="CategoryThree" label="绗�3鍒嗙被" value={value} placeholder="璇烽�夋嫨..." options={optionscatone} variant="label-inline" onchange={handleChange}></lightning-combobox>
+                                    </td>
+                                    <td style="width: 21%;">
+                                        <lightning-combobox  name="CategoryFour" label="绗�4鍒嗙被" value={value} placeholder="璇烽�夋嫨..." options={options2} variant="label-inline" onchange={handleChange}></lightning-combobox>
+                                    </td>
+                                    <td style="width: 21%;">
+                                        <lightning-combobox  name="CategoryFive" label="绗�5鍒嗙被" value={value} placeholder="璇烽�夋嫨..." options={options3} variant="label-inline" onchange={handleChange}></lightning-combobox>
+                                    </td>
+                                    <td style="width: 3%;"></td>
+                                    <td style="width: 8%;">
+                                        <lightning-button label="娑堣�楀搧鎼滅储" onclick={searchOrderDetail}></lightning-button>
+                                    </td>
+                                    <td style="width: 8%;">
+                                        <lightning-button label="娓呯┖" onclick={clearAll}></lightning-button>
+                                    </td>
+                                </tr>
+                            </tbody>
+                        </table>
+                    </div>
+                </div>
+            <div style="border: 1px solid #D4D4D4;border-radius:5px;margin-bottom:7px;">
+                <div style="border-top: 3px solid #51606E;border-bottom: 1px solid #D4D4D4;padding:3px;">
+                    <p style="font-size: 16px;"><strong>搴撳瓨璇︽儏</strong></p>
+                </div>
+                <div style="padding:10px;">
+                    <template if:true={showTable}>
+                        <c-lwc-datatable-utility 
+                            records={data} 
+                            total-records={data.length} 
+                            columns = {columns}
+                            key-field="Id"
+                            show-search-box="true"            
+                            max-row-selection={data.length}
+                            onpaginatorchange={handlePaginatorChange}>
+                        </c-lwc-datatable-utility>
+                    </template>
+                  
+
+                    <!-- <table class="list" border="0" cellpadding="0" cellspacing="0" id="example">
+                        <thead>
+                            <tr class="headerRow">
+                                <th>娑堣�楀搧鍚嶇О</th>
+                                <th>绗�3鍒嗙被</th>
+                                <th>绗�4鍒嗙被</th>
+                                <th>绗�5鍒嗙被</th>
+                                <th>瑙勬牸</th>
+                                <th>鍗曚綅</th>
+                                <th>娉ㄥ唽璇佺紪鐮佸彿</th>
+                                <th>娉ㄥ唽璇佹晥鏈�</th>
+                                <th>CFDA鐘舵��</th>
+                                <th>浣跨敤鏈熼檺</th>
+                                <th>鏈夋晥鏈熷唴搴撳瓨</th>
+                                <th>杩囨湡搴撳瓨</th>
+                              
+                                <template if:true={hasHos}>
+                                    <th>鍖婚櫌鐗逛环</th>
+                                </template>
+                            </tr>
+                        </thead>
+                        <tbody>
+                            <template for:each={pageRecords} for:item="m">
+                                <tr key={m.Prod.Name__c}>
+                                    <td align="center">{m.Prod.Name__c}</td>
+                                    <td align="center">{m.Prod.Category3__c}</td>
+                                    <td align="center">{m.Prod.Category4__c}</td>
+                                    <td align="center">{m.Prod.Category5__c}</td>
+                                    <td align="center">{m.packing_list}</td>
+                                    <td align="center">{m.BoxPiece}</td>
+                                    <td align="center">{m.approbation_No}</td>
+                                    <td align="center">{m.expiration_Date}</td>
+                                    <td align="center">{m.Prod.SFDA_Status__c}</td>
+                                    <td align="center">{m.guaranteeperiod}</td>
+                                    <td align="center">{m.limitCount}</td>
+                                    <td align="center">{m.overlimitCount}</td>
+                                    <template if:true={hasHos}>
+                                        <td>
+                                            <template if:true={m.hospitalSpecialOffer}>
+                                                鈭�
+                                            </template>
+                                        </td>
+                                    </template>
+                                </tr>
+                            </template>
+                        </tbody>
+                    </table> -->
+                    <!-- <div style="height: 300px;">
+                        <lightning-datatable
+                                key-field="id"
+                                data={data}
+                                columns={columns}
+                                hide-checkbox-column
+                                default-sort-direction={defaultSortDirection}
+                                sorted-direction={sortDirection}
+                                sorted-by={sortedBy}
+                                onsort={onHandleSort}>
+                        </lightning-datatable>
+                    </div> -->
+                </div>
+            </div>
+        </div>
+
+
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js b/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js
new file mode 100644
index 0000000..ac4f146
--- /dev/null
+++ b/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js
@@ -0,0 +1,323 @@
+import { LightningElement, wire, api, track } from 'lwc';
+import oninit from '@salesforce/apex/LexInventoryViewController.init';
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import searchOrder from '@salesforce/apex/LexInventoryViewController.searchConsumableorderdetails';
+import { NavigationMixin } from 'lightning/navigation';
+const columns = [
+    {
+        label: '娑堣�楀搧鍚嶇О',
+        fieldName: 'Name__c',
+        type: 'Name',
+        sortable: true,
+        cellAttributes: { alignment: 'left' }
+    },
+    {
+        label: '绗笁鍒嗙被',
+        fieldName: 'Category3__c',
+        hideDefaultActions: true,
+        sortable: true
+    },
+    {
+        label: '绗洓鍒嗙被',
+        fieldName: 'Category4__c',
+        hideDefaultActions: true,
+        sortable: true
+    },
+    {
+        label: '绗簲鍒嗙被',
+        fieldName: 'Category5__c',
+        hideDefaultActions: true
+    },
+
+    {
+        label: '瑙勬牸',
+        fieldName: 'packing_list',
+        hideDefaultActions: true,
+        initialWidth: 100
+    },
+    {
+        label: '鍗曚綅',
+        fieldName: 'BoxPiece',
+        hideDefaultActions: true,
+        initialWidth: 100
+    },
+    {
+        label: '娉ㄥ唽璇佺紪鐮佸彿',
+        fieldName: 'approbation_No',
+        hideDefaultActions: true,
+        initialWidth: 100
+    },
+    {
+        label: '娉ㄥ唽鏈夋晥鏈�',
+        fieldName: 'expiration_Date',
+        hideDefaultActions: true,
+        initialWidth: 150
+    },
+    {
+        label: 'CFDA鐘舵��',
+        fieldName: 'SFDA_Status__c',
+        hideDefaultActions: true
+    },
+    {
+        label: '浣跨敤鏈熼檺',
+        fieldName: 'guaranteeperiod',
+        hideDefaultActions: true
+    },
+    {
+        label: '鏈夋晥鏈熷唴搴撳瓨',
+        fieldName: 'limitCount',
+        hideDefaultActions: true,
+        sortable: true
+    },
+    {
+        label: '杩囨湡搴撳瓨',
+        fieldName: 'overlimitCount',
+        hideDefaultActions: true
+    }
+];
+
+export default class LexinventoryViewLWC extends LightningElement {
+    @track pageRecords = [];
+    @track data = [];
+    @track message = '';
+    @track Name;
+    @track CategoryThree;
+    @track CategoryFour;
+    @track CategoryFive;
+    @track orderDetZaikuList = [];
+    @track accountName;
+    @track agencyProType;
+    @track userWorkLocation;
+    @track value = '';
+    @track showTable = false;
+    @track optionscatone = [];
+    @track options2 = [];
+    @track options3 = [];
+
+    columns = columns;
+    defaultSortDirection = 'asc';
+    sortDirection = 'asc';
+    sortedBy;
+
+    //   columns = columns;
+
+    connectedCallback() {
+        oninit()
+            .then((result) => {
+                result = JSON.parse(JSON.stringify(result));
+                console.log('result.status = ' + result.status);
+                console.log('result = ' + JSON.stringify(result));
+                console.log('result 1= ' + JSON.stringify(result.entity));
+                console.log(
+                    'result 2= ' + JSON.stringify(result.entity.pageRecords)
+                );
+                console.log(
+                    'result.entity.categoryOptionMap 2= ' +
+                        JSON.stringify(result.entity.categoryOptionMap)
+                );
+                console.log(
+                    'result.entity.categoryOptionMap 2= ' +
+                        JSON.stringify(result.entity.category4OptionMap)
+                );
+                console.log(
+                    'result.entity.categoryOptionMap 2= ' +
+                        JSON.stringify(result.entity.category5OptionMap)
+                );
+                if (result.status == 'Success') {
+                    //   this.pageRecords = result.entity.pageRecords;
+                    this.data = result.entity.pageRecords;
+                    for (var i in this.data) {
+                        this.data[i]['Name__c'] = this.data[i].Prod.Name__c;
+                        this.data[i]['Category3__c'] =
+                            this.data[i].Prod.Category3__c;
+                        this.data[i]['Category4__c'] =
+                            this.data[i].Prod.Category3__c;
+                        this.data[i]['Category5__c'] =
+                            this.data[i].Prod.Category3__c;
+                        this.data[i]['SFDA_Status__c'] =
+                            this.data[i].Prod.SFDA_Status__c;
+                    }
+                    console.log();
+                    this.showTable = true;
+                    this.orderDetZaikuList = result.entity.orderDetZaikuList;
+                    this.accountName = result.entity.accountName;
+                    this.agencyProType = result.entity.agencyProType;
+                    this.userWorkLocation = result.entity.userWorkLocation;
+                    let option1ValueTemp = [];
+                    for (var key in result.entity.categoryOptionMap) {
+                        let object = {};
+                        object['label'] = result.entity.categoryOptionMap[key];
+                        object['value'] = key;
+                        option1ValueTemp.push(object);
+                    }
+                    this.optionscatone = option1ValueTemp;
+                    console.log(
+                        ' this.optionscatone===>' +
+                            JSON.stringify(this.optionscatone)
+                    );
+                    let option2ValueTemp = [];
+                    for (var key in result.entity.category4OptionMap) {
+                        let object = {};
+                        object['label'] = result.entity.category4OptionMap[key];
+                        object['value'] = key;
+                        option2ValueTemp.push(object);
+                    }
+                    this.options2 = option2ValueTemp;
+                    for (var key in result.entity.category5OptionMap) {
+                        let object = {};
+                        object['label'] = result.entity.category5OptionMap[key];
+                        object['value'] = key;
+                        this.options3.push(object);
+                    }
+
+                    console.log(' this.data=====>' + this.data);
+
+                    console.log('this.accountName=====>' + this.accountName);
+
+                    console.log(
+                        'this.agencyProType=====>' + this.agencyProType
+                    );
+                    console.log(
+                        'this.userWorkLocationt=====>' + this.userWorkLocation
+                    );
+                    console.log(
+                        'orderDetZaikuList=====>' + this.orderDetZaikuList
+                    );
+                } else {
+                    console.log('Error:' + result.errorMsg);
+                    const evt = new ShowToastEvent({
+                        title: '瑙f瀽澶辫触',
+                        message: result.errorMsg,
+                        variant: 'error'
+                    });
+                    this.dispatchEvent(evt);
+                }
+            })
+            .catch((error) => {
+                console.log('error = ' + JSON.stringify(error));
+            });
+    }
+
+    get options2() {
+        return this.options2;
+    }
+    get options3() {
+        return this.options3;
+    }
+    sortBy(field, reverse, primer) {
+        const key = primer
+            ? function (x) {
+                  return primer(x[field]);
+              }
+            : function (x) {
+                  return x[field];
+              };
+
+        return function (a, b) {
+            a = key(a);
+            b = key(b);
+            return reverse * ((a > b) - (b > a));
+        };
+    }
+
+    onHandleSort(event) {
+        const { fieldName: sortedBy, sortDirection } = event.detail;
+        const cloneData = [...this.data];
+
+        cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1));
+        this.data = cloneData;
+        this.sortDirection = sortDirection;
+        this.sortedBy = sortedBy;
+    }
+    handlePaginatorChange(event) {
+        this.recordsToDisplay = event.detail.recordsToDisplay;
+        this.preSelected = event.detail.preSelected;
+        if (this.recordsToDisplay && this.recordsToDisplay > 0) {
+            this.rowNumberOffset = this.recordsToDisplay[0].rowNumber - 1;
+        } else {
+            this.rowNumberOffset = 0;
+        }
+    }
+
+    handleChange(event) {
+        let fieldName = event.target.getAttribute('data-field');
+        let value = event.detail.value;
+        console.log('======>fieldName' + fieldName);
+        console.log('======>value' + value);
+        switch (fieldName) {
+            case 'Name':
+                this.Name = value;
+                break;
+            case 'CategoryThree':
+                this.CategoryThree = value;
+                break;
+            case 'CategoryFour':
+                this.CategoryFour = value;
+                break;
+            case 'CategoryFive':
+                this.CategoryFive = value;
+                break;
+            default:
+                console.log('no data');
+        }
+    }
+
+    searchOrderDetail() {
+        this.showTable = false;
+        console.log('杩涘叆鎼滅储11111111111111');
+        console.log('杩涘叆鎼滅储');
+        console.log('this.Name = ' + this.Name);
+        searchOrder({
+            category1: this.Name,
+            Category3: this.CategoryThree,
+            Category4: '',
+            Category5: '',
+            orderDetZaikuListLWC: JSON.stringify(this.orderDetZaikuList),
+            accountName: this.accountName,
+            agencyProType: this.agencyProType,
+            userWorkLocation: this.userWorkLocation
+        })
+            .then((result) => {
+                result = JSON.parse(JSON.stringify(result));
+                console.log('result鎼滅储 = ' + JSON.stringify(result));
+                if (result.status == 'Success') {
+                    const evt = new ShowToastEvent({
+                        title: '鎼滅储鎴愬姛',
+                        message: result.msg,
+                        variant: 'Success'
+                    });
+                    this.dispatchEvent(evt);
+                    this.pageRecords = result.entity.pageRecords;
+                    this.showTable = true;
+                } else {
+                    const evt = new ShowToastEvent({
+                        title: '',
+                        message: result.msg,
+                        variant: 'Success'
+                    });
+                    this.dispatchEvent(evt);
+                    this.pageRecords = [];
+                    console.log('  this.data===>= ' + this.pageRecords);
+                }
+            })
+            .catch((error) => {
+                console.log('error = ' + JSON.stringify(error));
+            });
+    }
+    inventoryCount() {
+        console.log('111搴撳瓨鐩樼偣');
+        this[NavigationMixin.Navigate]({
+            type: 'standard__webPage',
+            attributes: {
+                url: '/lexInventoryCount'
+            }
+        });
+    }
+    clearAll() {
+        this.Name = '';
+        this.value = '鏃�';
+        this.template.querySelectorAll('lightning-combobox').forEach((each) => {
+            each.value = null;
+        });
+    }
+}
diff --git a/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js-meta.xml b/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js-meta.xml
new file mode 100644
index 0000000..d893635
--- /dev/null
+++ b/force-app/main/default/lwc/lexinventoryViewLWC/lexinventoryViewLWC.js-meta.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+        <target>lightningCommunity__Page</target>
+        <target>lightningCommunity__Default</target>
+    </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lookup/lookup.css b/force-app/main/default/lwc/lookup/lookup.css
new file mode 100644
index 0000000..0286cad
--- /dev/null
+++ b/force-app/main/default/lwc/lookup/lookup.css
@@ -0,0 +1,30 @@
+.slds-combobox__input,
+.slds-combobox_container {
+    transition: border 0.1s linear, box-shadow 0.1 linear;
+}
+
+.slds-combobox__input {
+    box-shadow: none;
+}
+
+.slds-combobox__input.has-custom-border {
+    box-shadow: 0 0 0 2px #fff inset, 0 0 0 3px rgb(221, 219, 218) inset;
+}
+
+.slds-combobox__input.has-custom-error {
+    border: 1px solid rgb(194, 57, 52);
+    box-shadow: rgb(194, 57, 52) 0 0 0 1px inset;
+}
+
+.slds-combobox_container.has-custom-error {
+    border: none !important;
+}
+
+.slds-combobox__input.has-custom-height {
+    height: 32px !important;
+}
+
+.form-error {
+    color: rgb(194, 57, 52);
+    display: block;
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lookup/lookup.html b/force-app/main/default/lwc/lookup/lookup.html
new file mode 100644
index 0000000..36864a9
--- /dev/null
+++ b/force-app/main/default/lwc/lookup/lookup.html
@@ -0,0 +1,139 @@
+<template>
+    <div class={getFormElementClass}>
+        <label lwc:if={label} class={getLabelClass} for="combobox">
+            <abbr lwc:if={required} title="required" class="slds-required">*</abbr>
+            {label}
+        </label>
+        <div class="slds-form-element__control">
+            <div class={getContainerClass}>
+                <div class={getDropdownClass} aria-expanded={isListboxOpen} aria-haspopup="listbox" aria-owns="listbox"
+                    role="combobox">
+                    <!-- Search input start -->
+                    <div class={getComboboxClass} role="none">
+                        <template lwc:if={isSingleEntry}>
+                            <lightning-icon icon-name={getSelectIconName} size="small"
+                                alternative-text="Selected item icon" class={getSelectIconClass}>
+                            </lightning-icon>
+                        </template>
+
+                        <!-- Text input -->
+                        <input type="text" class={getInputClass} aria-autocomplete="list" aria-controls="listbox"
+                            aria-activedescendant={_focusedResultIndex} autocomplete="off" role="textbox" id="combobox"
+                            placeholder={placeholder} value={getInputValue} title={getInputTitle}
+                            readonly={isInputReadonly} disabled={disabled} onfocus={handleFocus} onblur={handleBlur}
+                            oninput={handleInput} onkeydown={handleKeyDown} />
+
+                        <!-- Search icon -->
+                        <lightning-icon icon-name="utility:search" size="x-small" alternative-text="Search icon"
+                            class={getSearchIconClass}></lightning-icon>
+
+                        <!-- Clear selection button icon for single entry lookups -->
+                        <template lwc:if={isSingleEntry}>
+                            <button title="Remove selected option" type="button" onclick={handleClearSelection}
+                                class={getClearSelectionButtonClass} disabled={disabled}>
+                                <lightning-icon icon-name="utility:close" size="x-small"
+                                    alternative-text="Remove selected option"
+                                    class="slds-button__icon"></lightning-icon>
+                            </button>
+                        </template>
+                    </div>
+                    <!-- Search input end -->
+
+                    <!-- Result list box start -->
+                    <div id="listbox" role="listbox" aria-label={label} onmousedown={handleComboboxMouseDown}
+                        onmouseup={handleComboboxMouseUp} class={getListboxClass}>
+                        <ul class="slds-listbox slds-listbox_vertical" role="presentation">
+                            <!-- Spinner to display when waiting for results of search -->
+                            <div lwc:if={loading}>
+                                <lightning-spinner alternative-text="Loading" size="small"></lightning-spinner>
+                            </div>
+
+                            <!-- Result list start -->
+                            <template for:each={searchResultsLocalState} for:item="item" for:index="index"
+                                lwc:if={hasResults}>
+                                <li key={item.result.id} role="presentation" class="slds-listbox__item">
+                                    <div class={item.classes} role="option" id={index} aria-label={item.result.title}
+                                        onclick={handleResultClick} data-recordid={item.result.id}>
+                                        <span class="slds-media__figure slds-listbox__option-icon">
+                                            <lightning-icon icon-name={item.result.icon} size="small"
+                                                alternative-text="Result item icon"></lightning-icon>
+                                        </span>
+                                        <span class="slds-media__body">
+                                            <span class="slds-listbox__option-text slds-listbox__option-text_entity">
+                                                <lightning-formatted-rich-text value={item.result.titleFormatted}
+                                                    disable-linkify>
+                                                </lightning-formatted-rich-text>
+                                            </span>
+                                            <span lwc:if={item.result.subtitleFormatted}
+                                                class="slds-listbox__option-meta slds-listbox__option-meta_entity">
+                                                <lightning-formatted-rich-text value={item.result.subtitleFormatted}
+                                                    disable-linkify>
+                                                </lightning-formatted-rich-text>
+                                            </span>
+                                        </span>
+                                    </div>
+                                </li>
+                            </template>
+                            <!-- Result list end -->
+
+                            <!-- No results start -->
+                            <template lwc:else>
+                                <li role="presentation">
+                                    <span class="slds-media slds-listbox__option_entity" role="option">
+                                        <span lwc:if={loading} class="slds-media__body">Loading...</span>
+                                        <span lwc:else class="slds-media__body">No results.</span>
+                                    </span>
+                                </li>
+                            </template>
+                            <!-- No results end -->
+
+                            <!-- Create new records -->
+                            <template for:each={newRecordOptions} for:item="newRecord">
+                                <li key={newRecord.value} role="presentation" class="slds-listbox__item">
+                                    <div class="slds-media slds-media_center slds-listbox__option slds-listbox__option_entity"
+                                        onclick={handleNewRecordClick} data-sobject={newRecord.value} role="option">
+                                        <span class="slds-media__figure slds-listbox__option-icon">
+                                            <lightning-icon icon-name="utility:add" size="small"
+                                                alternative-text={newRecord.label}></lightning-icon>
+                                        </span>
+                                        <span class="slds-media__body">
+                                            <span class="slds-listbox__option-text">{newRecord.label}</span>
+                                        </span>
+                                    </div>
+                                </li>
+                            </template>
+                            <!-- Create new records end -->
+                        </ul>
+                    </div>
+                    <!-- Result list box end -->
+                </div>
+            </div>
+
+            <!-- Multi-selection start -->
+            <template lwc:if={isMultiEntry}>
+                <div id="selection" role="listbox" aria-label={label} aria-orientation="horizontal">
+                    <ul class="slds-listbox slds-listbox_inline slds-var-p-top_xxx-small" role="group"
+                        aria-label="Selected options">
+                        <template for:each={selection} for:item="item">
+                            <li key={item.id} role="presentation">
+                                <lightning-pill label={item.title} title={item.title}
+                                    onremove={handleRemoveSelectedItem} name={item.id}>
+                                    <lightning-icon icon-name={item.icon}></lightning-icon>
+                                </lightning-pill>
+                            </li>
+                        </template>
+                    </ul>
+                </div>
+            </template>
+            <!-- Multi-selection end -->
+
+            <!-- Errors start -->
+            <template for:each={_errors} for:item="error">
+                <div key={error.id} role="alert" class="slds-form-element__label slds-var-m-top_xx-small form-error">
+                    {error.message}
+                </div>
+            </template>
+            <!-- Errors end -->
+        </div>
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lookup/lookup.js b/force-app/main/default/lwc/lookup/lookup.js
new file mode 100644
index 0000000..f071366
--- /dev/null
+++ b/force-app/main/default/lwc/lookup/lookup.js
@@ -0,0 +1,468 @@
+import { LightningElement, api } from 'lwc';
+import { NavigationMixin } from 'lightning/navigation';
+
+const SEARCH_DELAY = 300; // Wait 300 ms after user stops typing then, peform search
+
+const KEY_ARROW_UP = 38;
+const KEY_ARROW_DOWN = 40;
+const KEY_ENTER = 13;
+
+const VARIANT_LABEL_STACKED = 'label-stacked';
+const VARIANT_LABEL_INLINE = 'label-inline';
+const VARIANT_LABEL_HIDDEN = 'label-hidden';
+
+const REGEX_SOSL_RESERVED = /(\?|&|\||!|\{|\}|\[|\]|\(|\)|\^|~|\*|:|"|\+|-|\\)/g;
+const REGEX_EXTRA_TRAP = /(\$|\\)/g;
+
+export default class Lookup extends NavigationMixin(LightningElement) {
+    // Public properties
+    @api variant = VARIANT_LABEL_STACKED;
+    @api label = '';
+    @api required = false;
+    @api disabled = false;
+    @api placeholder = '';
+    @api isMultiEntry = false;
+    @api scrollAfterNItems = null;
+    @api newRecordOptions = [];
+    @api minSearchTermLength = 2;
+
+    // Template properties
+    searchResultsLocalState = [];
+    loading = false;
+
+    // Private properties
+    _errors = [];
+    _hasFocus = false;
+    _isDirty = false;
+    _searchTerm = '';
+    _cleanSearchTerm;
+    _cancelBlur = false;
+    _searchThrottlingTimeout;
+    _searchResults = [];
+    _defaultSearchResults = [];
+    _curSelection = [];
+    _focusedResultIndex = null;
+
+    // PUBLIC FUNCTIONS AND GETTERS/SETTERS
+    @api
+    set selection(initialSelection) {
+        if (initialSelection) {
+            this._curSelection = Array.isArray(initialSelection) ? initialSelection : [initialSelection];
+            this.processSelectionUpdate(false);
+        }
+    }
+
+    get selection() {
+        return this._curSelection;
+    }
+
+    @api
+    set errors(errors) {
+        this._errors = errors;
+        // Blur component if errors are passed
+        if (this._errors?.length > 0) {
+            this.blur();
+        }
+    }
+
+    get errors() {
+        return this._errors;
+    }
+
+    @api
+    get validity() {
+        return { valid: !this._errors || this._errors.length === 0 };
+    }
+
+    @api
+    get value() {
+        return this.getSelection();
+    }
+
+    @api
+    setSearchResults(results) {
+        // Reset the spinner
+        this.loading = false;
+        // Clone results before modifying them to avoid Locker restriction
+        let resultsLocal = JSON.parse(JSON.stringify(results));
+        // Remove selected items from search results
+        const selectedIds = this._curSelection.map((sel) => sel.id);
+        resultsLocal = resultsLocal.filter((result) => selectedIds.indexOf(result.id) === -1);
+        // Format results
+        const cleanSearchTerm = this._searchTerm.replace(REGEX_SOSL_RESERVED, '.?').replace(REGEX_EXTRA_TRAP, '\\$1');
+        const regex = new RegExp(`(${cleanSearchTerm})`, 'gi');
+        this._searchResults = resultsLocal.map((result) => {
+            // Format title and subtitle
+            if (this._searchTerm.length > 0) {
+                result.titleFormatted = result.title
+                    ? result.title.replace(regex, '<strong>$1</strong>')
+                    : result.title;
+                result.subtitleFormatted = result.subtitle
+                    ? result.subtitle.replace(regex, '<strong>$1</strong>')
+                    : result.subtitle;
+            } else {
+                result.titleFormatted = result.title;
+                result.subtitleFormatted = result.subtitle;
+            }
+            // Add icon if missing
+            if (typeof result.icon === 'undefined') {
+                result.icon = 'standard:default';
+            }
+            return result;
+        });
+        // Add local state and dynamic class to search results
+        this._focusedResultIndex = null;
+        const self = this;
+        this.searchResultsLocalState = this._searchResults.map((result, i) => {
+            return {
+                result,
+                state: {},
+                get classes() {
+                    let cls = 'slds-media slds-media_center slds-listbox__option slds-listbox__option_entity';
+                    if (result.subtitleFormatted) {
+                        cls += ' slds-listbox__option_has-meta';
+                    }
+                    if (self._focusedResultIndex === i) {
+                        cls += ' slds-has-focus';
+                    }
+                    return cls;
+                }
+            };
+        });
+    }
+
+    @api
+    getSelection() {
+        return this._curSelection;
+    }
+
+    @api
+    setDefaultResults(results) {
+        this._defaultSearchResults = [...results];
+        if (this._searchResults.length === 0) {
+            this.setSearchResults(this._defaultSearchResults);
+        }
+    }
+
+    @api
+    blur() {
+        this.template.querySelector('input')?.blur();
+    }
+
+    // INTERNAL FUNCTIONS
+
+    updateSearchTerm(newSearchTerm) {
+        this._searchTerm = newSearchTerm;
+
+        // Compare clean new search term with current one and abort if identical
+        const newCleanSearchTerm = newSearchTerm.trim().replace(REGEX_SOSL_RESERVED, '?').toLowerCase();
+        if (this._cleanSearchTerm === newCleanSearchTerm) {
+            return;
+        }
+
+        // Save clean search term
+        this._cleanSearchTerm = newCleanSearchTerm;
+
+        // Ignore search terms that are too small after removing special characters
+        if (newCleanSearchTerm.replace(/\?/g, '').length < this.minSearchTermLength) {
+            this.setSearchResults(this._defaultSearchResults);
+            return;
+        }
+
+        // Apply search throttling (prevents search if user is still typing)
+        if (this._searchThrottlingTimeout) {
+            clearTimeout(this._searchThrottlingTimeout);
+        }
+        // eslint-disable-next-line @lwc/lwc/no-async-operation
+        this._searchThrottlingTimeout = setTimeout(() => {
+            // Send search event if search term is long enougth
+            if (this._cleanSearchTerm.length >= this.minSearchTermLength) {
+                // Display spinner until results are returned
+                this.loading = true;
+
+                const searchEvent = new CustomEvent('search', {
+                    detail: {
+                        searchTerm: this._cleanSearchTerm,
+                        rawSearchTerm: newSearchTerm,
+                        selectedIds: this._curSelection.map((element) => element.id)
+                    }
+                });
+                this.dispatchEvent(searchEvent);
+            }
+            this._searchThrottlingTimeout = null;
+        }, SEARCH_DELAY);
+    }
+
+    isSelectionAllowed() {
+        if (this.isMultiEntry) {
+            return true;
+        }
+        return !this.hasSelection();
+    }
+
+    hasSelection() {
+        return this._curSelection.length > 0;
+    }
+
+    processSelectionUpdate(isUserInteraction) {
+        // Reset search
+        this._cleanSearchTerm = '';
+        this._searchTerm = '';
+        this.setSearchResults([...this._defaultSearchResults]);
+        // Indicate that component was interacted with
+        this._isDirty = isUserInteraction;
+        // Blur input after single select lookup selection
+        if (!this.isMultiEntry && this.hasSelection()) {
+            this._hasFocus = false;
+        }
+        // If selection was changed by user, notify parent components
+        if (isUserInteraction) {
+            const selectedIds = this._curSelection.map((sel) => sel.id);
+            this.dispatchEvent(new CustomEvent('selectionchange', { detail: selectedIds }));
+        }
+    }
+
+    // EVENT HANDLING
+
+    handleInput(event) {
+        // Prevent action if selection is not allowed
+        if (!this.isSelectionAllowed()) {
+            return;
+        }
+        this.updateSearchTerm(event.target.value);
+    }
+
+    handleKeyDown(event) {
+        if (this._focusedResultIndex === null) {
+            this._focusedResultIndex = -1;
+        }
+        if (event.keyCode === KEY_ARROW_DOWN) {
+            // If we hit 'down', select the next item, or cycle over.
+            this._focusedResultIndex++;
+            if (this._focusedResultIndex >= this._searchResults.length) {
+                this._focusedResultIndex = 0;
+            }
+            event.preventDefault();
+        } else if (event.keyCode === KEY_ARROW_UP) {
+            // If we hit 'up', select the previous item, or cycle over.
+            this._focusedResultIndex--;
+            if (this._focusedResultIndex < 0) {
+                this._focusedResultIndex = this._searchResults.length - 1;
+            }
+            event.preventDefault();
+        } else if (event.keyCode === KEY_ENTER && this._hasFocus && this._focusedResultIndex >= 0) {
+            // If the user presses enter, and the box is open, and we have used arrows,
+            // treat this just like a click on the listbox item
+            const selectedId = this._searchResults[this._focusedResultIndex].id;
+            this.template.querySelector(`[data-recordid="${selectedId}"]`).click();
+            event.preventDefault();
+        }
+    }
+
+    handleResultClick(event) {
+        const recordId = event.currentTarget.dataset.recordid;
+
+        // Save selection
+        const selectedItem = this._searchResults.find((result) => result.id === recordId);
+        if (!selectedItem) {
+            return;
+        }
+        const newSelection = [...this._curSelection];
+        newSelection.push(selectedItem);
+        this._curSelection = newSelection;
+
+        // Process selection update
+        this.processSelectionUpdate(true);
+    }
+
+    handleComboboxMouseDown(event) {
+        const mainButton = 0;
+        if (event.button === mainButton) {
+            this._cancelBlur = true;
+        }
+    }
+
+    handleComboboxMouseUp() {
+        this._cancelBlur = false;
+        // Re-focus to text input for the next blur event
+        this.template.querySelector('input').focus();
+    }
+
+    handleFocus() {
+        // Prevent action if selection is not allowed
+        if (!this.isSelectionAllowed()) {
+            return;
+        }
+        this._hasFocus = true;
+        this._focusedResultIndex = null;
+    }
+
+    handleBlur() {
+        // Prevent action if selection is either not allowed or cancelled
+        if (!this.isSelectionAllowed() || this._cancelBlur) {
+            return;
+        }
+        this._hasFocus = false;
+    }
+
+    handleRemoveSelectedItem(event) {
+        if (this.disabled) {
+            return;
+        }
+        const recordId = event.currentTarget.name;
+        this._curSelection = this._curSelection.filter((item) => item.id !== recordId);
+        // Process selection update
+        this.processSelectionUpdate(true);
+    }
+
+    handleClearSelection() {
+        this._curSelection = [];
+        this._hasFocus = false;
+        // Process selection update
+        this.processSelectionUpdate(true);
+    }
+
+    handleNewRecordClick(event) {
+        const objectApiName = event.currentTarget.dataset.sobject;
+        const selection = this.newRecordOptions.find((option) => option.value === objectApiName);
+
+        const preNavigateCallback = selection.preNavigateCallback
+            ? selection.preNavigateCallback
+            : () => Promise.resolve();
+        preNavigateCallback(selection).then(() => {
+            this[NavigationMixin.Navigate]({
+                type: 'standard__objectPage',
+                attributes: {
+                    objectApiName,
+                    actionName: 'new'
+                },
+                state: {
+                    defaultFieldValues: selection.defaults
+                }
+            });
+        });
+    }
+
+    // STYLE EXPRESSIONS
+
+    get isSingleEntry() {
+        return !this.isMultiEntry;
+    }
+
+    get isListboxOpen() {
+        const isSearchTermValid = this._cleanSearchTerm && this._cleanSearchTerm.length >= this.minSearchTermLength;
+        return (
+            this._hasFocus &&
+            this.isSelectionAllowed() &&
+            (isSearchTermValid || this.hasResults || this.newRecordOptions?.length > 0)
+        );
+    }
+
+    get hasResults() {
+        return this._searchResults.length > 0;
+    }
+
+    get getFormElementClass() {
+        return this.variant === VARIANT_LABEL_INLINE
+            ? 'slds-form-element slds-form-element_horizontal'
+            : 'slds-form-element';
+    }
+
+    get getLabelClass() {
+        return this.variant === VARIANT_LABEL_HIDDEN
+            ? 'slds-form-element__label slds-assistive-text'
+            : 'slds-form-element__label';
+    }
+
+    get getContainerClass() {
+        let css = 'slds-combobox_container ';
+        if (this._errors.length > 0) {
+            css += 'has-custom-error';
+        }
+        return css;
+    }
+
+    get getDropdownClass() {
+        let css = 'slds-combobox slds-dropdown-trigger slds-dropdown-trigger_click ';
+        if (this.isListboxOpen) {
+            css += 'slds-is-open';
+        }
+        return css;
+    }
+
+    get getInputClass() {
+        let css = 'slds-input slds-combobox__input has-custom-height ';
+        if (this._hasFocus && this.hasResults) {
+            css += 'slds-has-focus ';
+        }
+        if (this._errors.length > 0 || (this._isDirty && this.required && !this.hasSelection())) {
+            css += 'has-custom-error ';
+        }
+        if (!this.isMultiEntry) {
+            css += 'slds-combobox__input-value ' + (this.hasSelection() ? 'has-custom-border' : '');
+        }
+        return css;
+    }
+
+    get getComboboxClass() {
+        let css = 'slds-combobox__form-element slds-input-has-icon ';
+        if (this.isMultiEntry) {
+            css += 'slds-input-has-icon_right';
+        } else {
+            css += this.hasSelection() ? 'slds-input-has-icon_left-right' : 'slds-input-has-icon_right';
+        }
+        return css;
+    }
+
+    get getSearchIconClass() {
+        let css = 'slds-input__icon slds-input__icon_right ';
+        if (!this.isMultiEntry) {
+            css += this.hasSelection() ? 'slds-hide' : '';
+        }
+        return css;
+    }
+
+    get getClearSelectionButtonClass() {
+        return (
+            'slds-button slds-button_icon slds-input__icon slds-input__icon_right ' +
+            (this.hasSelection() ? '' : 'slds-hide')
+        );
+    }
+
+    get getSelectIconName() {
+        return this.hasSelection() ? this._curSelection[0].icon : 'standard:default';
+    }
+
+    get getSelectIconClass() {
+        return 'slds-combobox__input-entity-icon ' + (this.hasSelection() ? '' : 'slds-hide');
+    }
+
+    get getInputValue() {
+        if (this.isMultiEntry) {
+            return this._searchTerm;
+        }
+        return this.hasSelection() ? this._curSelection[0].title : this._searchTerm;
+    }
+
+    get getInputTitle() {
+        if (this.isMultiEntry) {
+            return '';
+        }
+        return this.hasSelection() ? this._curSelection[0].title : '';
+    }
+
+    get getListboxClass() {
+        return (
+            'slds-dropdown ' +
+            (this.scrollAfterNItems ? `slds-dropdown_length-with-icon-${this.scrollAfterNItems} ` : '') +
+            'slds-dropdown_fluid'
+        );
+    }
+
+    get isInputReadonly() {
+        if (this.isMultiEntry) {
+            return false;
+        }
+        return this.hasSelection();
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lookup/lookup.js-meta.xml b/force-app/main/default/lwc/lookup/lookup.js-meta.xml
new file mode 100644
index 0000000..036b264
--- /dev/null
+++ b/force-app/main/default/lwc/lookup/lookup.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata" fqn="lookup">
+    <apiVersion>57.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.css b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.css
new file mode 100644
index 0000000..97ec122
--- /dev/null
+++ b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.css
@@ -0,0 +1,25 @@
+
+.customSelect select {
+    padding-right: 1.25rem;
+    min-height: inherit;
+    line-height: normal;
+    height: 1.4rem;    
+}
+.customSelect label {
+    margin-top: .1rem;
+}
+.customSelect .slds-select_container::before {
+    border-bottom: 0;
+}
+.customInput {
+    width: 3rem;
+    height: 1.4rem;
+    text-align: center;
+    border: 1px solid #dddbda;
+    border-radius: 3px;
+    background-color:#fff;
+}
+
+.THIS .slds-table_header-fixed_container {
+    min-height: 12em;
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.html b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.html
new file mode 100644
index 0000000..8294ccc
--- /dev/null
+++ b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.html
@@ -0,0 +1,80 @@
+<template>
+    <template if:true={records}>
+        <div class="slds-grid slds-grid_vertical-align-center slds-grid_align-spread">
+            <div class="slds-col"><!--RECORDS PER PAGE-->
+                <div style={paginationVisibility} class="slds-list_inline slds-p-bottom_xx-small customSelect">
+                    <label class="slds-text-color_weak slds-p-horizontal_x-small" for="recordsPerPage">Page Size:</label> 
+                    <div class="slds-select_container">
+                        <select class="slds-select" id="recordsPerPage" onchange={handleRecordsPerPage}>
+                            <template for:each={pageSizeOptions} for:item="option">
+                                <option key={option} value={option}>{option}</option>
+                            </template>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <!-- <div class="slds-col">
+                <div if:true={showSearchBox}>
+                    <div class="slds-p-horizontal_x-small slds-p-bottom_xx-small">
+                        <lightning-input label="" type="search" placeholder="Search" variant="label-hidden" onchange={handleKeyChange}></lightning-input>
+                    </div>
+                </div>
+            </div>         -->
+        </div>
+
+        <div class="slds-grid slds-grid_vertical-align-center slds-grid_align-spread">
+            <div class="slds-col">             
+                <div class="slds-col slds-p-bottom_xx-small">
+                    <span>
+                        <label class="slds-text-color_weak slds-p-horizontal_x-small" >Total: {filtredNum}</label>  
+                    </span>  
+                    <span>
+                        <label class="slds-text-color_weak slds-p-horizontal_x-small" >Selected: {totalSelected}</label>  
+                    </span>                                                                                               
+                </div>
+            </div>
+        </div> 
+        
+
+        <div class="slds-grid slds-grid_vertical-align-center slds-grid_align-spread" >
+            <div class="slds-col" style={tableHeightStyle}>
+                <lightning-datatable key-field={keyField} 
+                    hide-checkbox-column = {hidecheckboxcolumn}
+                    data={recordsToDisplay} 
+                    columns={columns}
+                    max-row-selection={maxRowSelection} 
+                    onrowselection={getSelectedRows}   
+                    selected-rows={preSelected}    
+                    default-sort-direction={defaultSortDirection}
+                    sorted-direction={sortDirection}
+                    sorted-by={sortedBy}
+                    onsort={handelSort}
+                    show-row-number-column = {showrownumber}>
+                </lightning-datatable>              
+            </div>
+        </div>    
+
+        <div class="slds-grid slds-grid_vertical-align-center slds-grid_align-spread" style="padding-top: 0.5em;">
+            <div class="slds-col"></div>
+            <div class="slds-col"></div>
+            <!--PAGE NAVIGATION-->
+            <div class="slds-col">
+                <div style={paginationVisibility}>                 
+                    <div class="slds-col slds-p-bottom_xx-small">                     
+                        <span>
+                            <lightning-button-icon icon-name="utility:chevronleft" variant="bare" size="medium" alternative-text="Previous Page" onclick={previousPage}></lightning-button-icon>
+                        </span>
+                        <label class="slds-text-color_weak slds-p-horizontal_x-small" for="pageNum">Page:</label> 
+                        <input type="number" id="pageNum" value={pageNumber} maxlength="4" onkeypress={handlePageNumberChange} class="customInput" title="Go to a Page"></input>
+                        <span>&nbsp;of&nbsp;<b id="totalPages">{totalPages}</b></span>
+                        <span>
+                            <template if:true={pageNumber}></template>
+                            <lightning-button-icon icon-name="utility:chevronright" variant="bare" size="medium" alternative-text="Next Page" onclick={nextPage} class="slds-p-horizontal_x-small"></lightning-button-icon>
+                        </span>                                                          
+                    </div>
+                </div>
+            </div>      
+        </div>
+
+    </template>    
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js
new file mode 100644
index 0000000..a6ede92
--- /dev/null
+++ b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js
@@ -0,0 +1,273 @@
+import { LightningElement, api,track } from 'lwc';
+import customUnitTemplate from './templates/customUnit.html';
+import customShipmentNumberTemplate from './templates/customShipmentNumber.html';
+import customShippingUnitPriceTemplate from './templates/customShippingUnitPrice.html';
+
+const DELAY = 300;
+const recordsPerPage = [5,10,25,50,75,100];
+const pageNumber = 1;
+const SHOWDIV = 'visibility:visible';
+const HIDEDIV = 'visibility:hidden';  
+const DEFAULTHEIGHT = '300';
+
+export default class LwcDatatableUtility extends LightningElement {
+
+    static customTypes = {
+        customUnit: {
+            template: customUnitTemplate,
+            standardCellLayout: true,
+            typeAttributes: ['Id'],
+        },
+        customShipment: {
+            template: customShipmentNumberTemplate,
+            standardCellLayout: true,
+            typeAttributes: ['Id'],
+        },
+        customShipmentUnitPrice: {
+            template: customShippingUnitPriceTemplate,
+            standardCellLayout: true,
+            typeAttributes: ['Id'],
+        }
+        // Other types here
+    } 
+
+    // Input Attributes from Parent Componant
+    @api keyField = 'Id';
+    @api showSearchBox = false; //Show/hide search box; valid values are true/false
+    @api showPagination; //Show/hide pagination; valid values are true/false
+    @api pageSizeOptions = recordsPerPage; //Page size options; valid values are array of integers
+    @api totalRecords; //Total no.of records; valid type is Integer
+    @api records; //All records available in the data table; valid type is Array
+    @api maxRowSelection; //All records available in the data table; valid type is Array 
+    @api columns = []; //Records to be displayed on the page
+    @api hidecheckboxcolumn = false;
+    @api showrownumber = false;
+    
+    tableHeightStyle = 'height: '+ DEFAULTHEIGHT +'px;';    // Set Default Height as 300px 
+    @api
+    get tableHeight() {
+        return this.tableHeightStyle;
+    }
+
+    set tableHeight(value) {
+       this.tableHeightStyle = 'height: '+ value +'px;'; 
+    }    
+
+    pageSize; //No.of records to be displayed per page
+    totalPages; //Total no.of pages
+    pageNumber = pageNumber; //Page number
+    searchKey; //Search Input
+    paginationVisibility = SHOWDIV; 
+    rowNumberOffset; //Row number
+    preSelected; //preSelectedOnDisplay
+    recordsToDisplay = []; //Records to be displayed on the page
+    
+    filteredRecords = []; //Filtered records available in the data table; valid type is Array
+    selectedRecords = []; //OverallSelected records  in the data table; valid type is Array 
+    pageSelectedRecords = []; //Page Selected rows  in the data table; valid type is Array
+    filtredNum; // Total no.of Filtered records; valid type is Integer
+    totalSelected = 0;
+    refreshCurrentData;
+    //SORT
+    defaultSortDirection = 'asc';
+    sortDirection = 'asc';
+    sortedBy;    
+
+    //Called after the component finishes inserting to DOM
+    connectedCallback() {
+        console.log('杩涘叆 瀛愮粍浠� connectedCallback ');
+        console.log('this.records = '  + JSON.stringify(this.records));
+        console.log('keyField = ' + this.keyField);
+        if(this.pageSizeOptions && this.pageSizeOptions.length > 0) 
+            this.pageSize = this.pageSizeOptions[0];
+        else{
+            this.pageSize = this.totalRecords;
+            this.showPagination = false;
+        }
+        this.paginationVisibility = this.showPagination === false ? HIDEDIV : SHOWDIV;
+        this.filteredRecords = this.records; 
+        this.filtredNum = this.totalRecords;
+        this.setRecordsOnPage();
+    }
+
+    handleRecordsPerPage(event){
+        this.pageSize = event.target.value;
+        this.setRecordsOnPage();
+    }
+
+    handlePageNumberChange(event){
+        if(event.keyCode === 13){
+            this.pageNumber = event.target.value;
+            this.setRecordsOnPage();
+        }
+    }
+   
+    previousPage(){
+        this.pageNumber = this.pageNumber-1;
+        this.setRecordsOnPage();
+    }
+    nextPage(){
+        this.pageNumber = this.pageNumber+1;
+        this.setRecordsOnPage();
+    }
+
+    @api
+    setRecordsOnPage(){
+        this.recordsToDisplay = [];
+        if(!this.pageSize)
+            this.pageSize = this.filtredNum;
+
+        this.totalPages = Math.ceil(this.filtredNum/this.pageSize);
+
+        this.setPaginationControls();
+        for(let i=(this.pageNumber-1)*this.pageSize; i < this.pageNumber*this.pageSize; i++){
+            if(i === this.filtredNum) break;
+            this.recordsToDisplay.push(this.filteredRecords[i]);
+        }
+
+        this.preSelected = [];
+        this.selectedRecords.forEach((item) => {
+            if(item.selected)
+                this.preSelected.push(item.Id);
+        })       
+        let paginatedRecords = new Object();
+        paginatedRecords.recordsToDisplay = this.recordsToDisplay;
+        paginatedRecords.preSelected = this.preSelected;
+        if(this.maxRowSelection === '1' ){
+            this.totalSelected = 0;
+        }    
+        if(this.selectedRecords && this.selectedRecords.length > 0){
+            this.refreshCurrentData = true;
+        }                                      
+    }
+
+    setPaginationControls(){
+        // Previous/Next buttons visibility by Total pages
+        if(this.totalPages === 1){
+            this.showPrevious = HIDEDIV;
+            this.showNext = HIDEDIV;
+        }else if(this.totalPages > 1){
+           this.showPrevious = SHOWDIV;
+           this.showNext = SHOWDIV;
+        }
+        // Previous/Next buttons visibility by Page number
+        if(this.pageNumber <= 1){
+            this.pageNumber = 1;
+            this.showPrevious = HIDEDIV;
+        }else if(this.pageNumber >= this.totalPages){
+            this.pageNumber = this.totalPages;
+            this.showNext = HIDEDIV;
+        }
+        // Previous/Next buttons visibility by Pagination visibility
+        if(this.paginationVisibility === HIDEDIV){
+            this.showPrevious = HIDEDIV;
+            this.showNext = HIDEDIV;
+        }
+    }
+
+    handleKeyChange(event) {
+        window.clearTimeout(this.delayTimeout);
+        const searchKey = event.target.value;
+        if(searchKey){
+            this.delayTimeout = setTimeout(() => {
+                //this.paginationVisibility = HIDEDIV;
+                this.setPaginationControls();
+
+                this.searchKey = searchKey;
+                //Use other field name here in place of 'Name' field if you want to search by other field
+                //this.recordsToDisplay = this.records.filter(rec => rec.includes(searchKey));
+                //Search with any column value (Updated as per the feedback)
+                this.filteredRecords = this.records.filter(rec => JSON.stringify(rec).toLowerCase().includes(searchKey.toLowerCase()));
+                this.filtredNum = this.filteredRecords.length; 
+                this.setRecordsOnPage();
+            }, DELAY);
+        }else{
+            this.filteredRecords = this.records; 
+            this.filtredNum = this.totalRecords;            
+            this.paginationVisibility = SHOWDIV;
+            this.setRecordsOnPage();
+        }        
+    }
+
+    handelRowsSelected(selectedRows) {
+        console.log(selectedRows.length);
+        this.totalSelected = 0;
+        this.pageSelectedRecords = [];
+        if(this.maxRowSelection != '1' && this.recordsToDisplay && 
+            this.recordsToDisplay.length > 0 && 
+            ((selectedRows.length === 0 && !this.refreshCurrentData) || selectedRows.length > 0) ){                       
+            this.recordsToDisplay.forEach((item)=>{                
+                var row = new Object(); 
+                row.Id = item.Id;                
+                if(selectedRows.includes(item.Id)){
+                    row.selected = true;
+                }else{
+                    row.selected = false;
+                }
+                this.pageSelectedRecords.push(row) ;
+            });                       
+        }
+        // To store previous row Selection
+        if(this.selectedRecords.length == 0 ){
+            this.selectedRecords = this.pageSelectedRecords;
+        }
+        this.selectedRecords = this.mergeObjectArray(this.selectedRecords, this.pageSelectedRecords, "Id");          
+        if(this.maxRowSelection === '1' && selectedRows && selectedRows.length > 0){
+            this.totalSelected = 1;
+        }else{
+            let i=0;
+            this.selectedRecords.forEach(item => {
+                if(item.selected){
+                    i++;
+                    this.totalSelected = i;
+                }
+            }) 
+            //this.totalSelected = this.totalSelected ===1 && selectedRows.length ===0? 0: this.totalSelected;           
+        }
+        const filterSelected = this.selectedRecords.filter(({ selected }) => selected === true );
+        this.dispatchEvent(new CustomEvent('setselectedrecords', {detail: filterSelected})); //Send records to display on table to the parent component
+        this.refreshCurrentData = false;
+    }
+
+    mergeObjectArray(firstArray, secondArray, prop){
+        var reduced =  firstArray.filter( aitem => ! secondArray.find ( bitem => aitem[prop] === bitem[prop]) )
+        //let arr3 = arr1.map((item, i) => Object.assign({}, item, arr2[i]));
+        return reduced.concat(secondArray);
+    }    
+
+    getSelectedRows(event) {
+        const selectedRows = event.detail.selectedRows;
+        let selectedRecordIds = [];
+        // Display that fieldName of the selected rows
+        for (let i = 0; i < selectedRows.length; i++){
+            selectedRecordIds.push(selectedRows[i].Id);
+        }     
+        this.handelRowsSelected(selectedRecordIds);        
+    }      
+
+    handelSort(event){        
+        const { fieldName: sortedBy, sortDirection } = event.detail;
+        const cloneData = [...this.filteredRecords];
+        cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1));
+        this.filteredRecords = cloneData;  
+        this.sortDirection = sortDirection;
+        this.sortedBy = sortedBy;        
+        this.setRecordsOnPage();
+    } 
+
+    sortBy(field, reverse, primer) {
+        const key = primer
+            ? function(x) {
+                  return primer(x[field]);
+              }
+            : function(x) {
+                  return x[field];
+              };
+
+        return function(a, b) {
+            a = key(a);
+            b = key(b);
+            return reverse * ((a > b) - (b > a));
+        };
+    }    
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js-meta.xml b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js-meta.xml
new file mode 100644
index 0000000..4087371
--- /dev/null
+++ b/force-app/main/default/lwc/lwcDatatableUtility/lwcDatatableUtility.js-meta.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>48.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+        <target>lightning__AppPage</target>
+    </targets>    
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lwcDatatableUtility/templates/customShipmentNumber.html b/force-app/main/default/lwc/lwcDatatableUtility/templates/customShipmentNumber.html
new file mode 100644
index 0000000..62d1cfc
--- /dev/null
+++ b/force-app/main/default/lwc/lwcDatatableUtility/templates/customShipmentNumber.html
@@ -0,0 +1,11 @@
+<template>
+    <lightning-input
+        type="text"
+        name="shipmentNumber"
+        label="deliveryOrderNo"
+        variant="label-hidden"
+        onchange={dataChange}
+        data-field="shipmentNumber"
+        value={shipmentNumber}
+    ></lightning-input>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lwcDatatableUtility/templates/customShippingUnitPrice.html b/force-app/main/default/lwc/lwcDatatableUtility/templates/customShippingUnitPrice.html
new file mode 100644
index 0000000..d10e147
--- /dev/null
+++ b/force-app/main/default/lwc/lwcDatatableUtility/templates/customShippingUnitPrice.html
@@ -0,0 +1,11 @@
+<template>
+    <lightning-input
+        type="number"
+        name="shipmentUnitPrice"
+        label="deliveryOrderNo"
+        variant="label-hidden"
+        onchange={dataChange}
+        data-field="shipmentUnitPrice"
+        value={shipmentUnitPrice}
+    ></lightning-input>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/lwcDatatableUtility/templates/customUnit.html b/force-app/main/default/lwc/lwcDatatableUtility/templates/customUnit.html
new file mode 100644
index 0000000..169416c
--- /dev/null
+++ b/force-app/main/default/lwc/lwcDatatableUtility/templates/customUnit.html
@@ -0,0 +1,8 @@
+<!-- sldsValidatorIgnore -->
+<!-- sldsValidatorIgnore -->
+<template>
+    <select>
+        <option value="鐩�">鐩�</option>
+        <option value="涓�">涓�</option>
+      </select>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/customName.html b/force-app/main/default/lwc/myCustomTypeDatatable/customName.html
new file mode 100644
index 0000000..f33c4ea
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/customName.html
@@ -0,0 +1,6 @@
+<template>
+    <lightning-badge 
+        label={typeAttributes.accountName}
+        icon-name="standard:account">
+    </lightning-badge>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/customNumber.html b/force-app/main/default/lwc/myCustomTypeDatatable/customNumber.html
new file mode 100644
index 0000000..ae6203e
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/customNumber.html
@@ -0,0 +1,6 @@
+<template>
+    <div class="slds-p-around_x-small">
+        <lightning-formatted-number value={value} class="slds-float_right"></lightning-formatted-number>
+        <lightning-icon icon-name={typeAttributes.status} alternative-text="Employer Status"></lightning-icon>
+    </div>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/customShipmentNumber.html b/force-app/main/default/lwc/myCustomTypeDatatable/customShipmentNumber.html
new file mode 100644
index 0000000..62d1cfc
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/customShipmentNumber.html
@@ -0,0 +1,11 @@
+<template>
+    <lightning-input
+        type="text"
+        name="shipmentNumber"
+        label="deliveryOrderNo"
+        variant="label-hidden"
+        onchange={dataChange}
+        data-field="shipmentNumber"
+        value={shipmentNumber}
+    ></lightning-input>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/customShippingUnitPrice.html b/force-app/main/default/lwc/myCustomTypeDatatable/customShippingUnitPrice.html
new file mode 100644
index 0000000..d10e147
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/customShippingUnitPrice.html
@@ -0,0 +1,11 @@
+<template>
+    <lightning-input
+        type="number"
+        name="shipmentUnitPrice"
+        label="deliveryOrderNo"
+        variant="label-hidden"
+        onchange={dataChange}
+        data-field="shipmentUnitPrice"
+        value={shipmentUnitPrice}
+    ></lightning-input>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/customUnit.html b/force-app/main/default/lwc/myCustomTypeDatatable/customUnit.html
new file mode 100644
index 0000000..169416c
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/customUnit.html
@@ -0,0 +1,8 @@
+<!-- sldsValidatorIgnore -->
+<!-- sldsValidatorIgnore -->
+<template>
+    <select>
+        <option value="鐩�">鐩�</option>
+        <option value="涓�">涓�</option>
+      </select>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.html b/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.html
new file mode 100644
index 0000000..ba53413
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.html
@@ -0,0 +1,2 @@
+<template>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js b/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js
new file mode 100644
index 0000000..5d161b7
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js
@@ -0,0 +1,41 @@
+import { LightningElement,api,wire,track } from 'lwc';
+import LightningDatatable from 'lightning/datatable';
+import customUnitTemplate from './customUnit.html';
+import customShipmentNumberTemplate from './customShipmentNumber.html';
+import customShippingUnitPriceTemplate from './customShippingUnitPrice.html';
+import customNameTemplate from './customName.html';
+import customNumberTemplate from './customNumber.html';
+
+
+export default class MyCustomTypeDatatable extends LightningDatatable  {
+
+
+    // static customTypes = {
+    //     customUnit: {
+    //         template: customUnitTemplate,
+    //         //typeAttributes: ['value'],
+    //     },
+    //     customShipment: {
+    //         template: customShipmentNumberTemplate,
+    //         //typeAttributes: ['value'],
+    //     },
+    //     customShipmentUnitPrice: {
+    //         template: customShippingUnitPriceTemplate,
+    //         //typeAttributes: ['value'],
+    //     }
+    //     // Other types here
+    // } 
+
+    static customTypes = {
+        customName: {
+            template: customNameTemplate,
+            standardCellLayout: true,
+            typeAttributes: ['accountName'],
+        }
+        // Other types here
+    }
+
+    connectedCallback(){
+        console.log('MyCustomTypeDatatable enter')
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js-meta.xml b/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js-meta.xml
new file mode 100644
index 0000000..f8c5cb4
--- /dev/null
+++ b/force-app/main/default/lwc/myCustomTypeDatatable/myCustomTypeDatatable.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/paginatedList/paginatedList.html b/force-app/main/default/lwc/paginatedList/paginatedList.html
new file mode 100644
index 0000000..808aba7
--- /dev/null
+++ b/force-app/main/default/lwc/paginatedList/paginatedList.html
@@ -0,0 +1,35 @@
+<template>
+    <template if:true={loader}>
+        <lightning-spinner alternative-text="Loading..." size="small"></lightning-spinner>
+    </template>
+    <template if:true={records}>
+        <div class="table-container">
+            <lightning-datatable
+                key-field="id"
+                data={records}
+                columns={columns}
+                sorted-by={sortBy}
+                sorted-direction={sortDirection}
+                onsort={doSorting}
+            >
+            </lightning-datatable>
+        </div>
+        <c-paginator    
+            if:true={paginationVisibility}
+            onprevious={handlePrevious}
+            onnext={handleNext}
+            onpageschange={handlePageschange}
+            onfirst={handleFirst}
+            onlast={handleLast}
+            page-size-options={pageSizeOptions}          
+            previous-button-disabled={previousButtonDisabled}
+            next-button-disabled={nextButtonDisabled}
+            record-start={recordStart}
+            record-end={recordEnd}
+            total-records={totalRecords}
+        ></c-paginator>
+    </template>
+    <template if:true={error}>
+        <c-error-panel errors={error}></c-error-panel>
+    </template>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/paginatedList/paginatedList.js b/force-app/main/default/lwc/paginatedList/paginatedList.js
new file mode 100644
index 0000000..b35c510
--- /dev/null
+++ b/force-app/main/default/lwc/paginatedList/paginatedList.js
@@ -0,0 +1,120 @@
+import { LightningElement, api, track } from "lwc";
+import getAccountsPaginated from "@salesforce/apex/PaginatedListControllerLwc.getAccountsPaginated";
+import { ShowToastEvent } from 'lightning/platformShowToastEvent';
+import { reduceErrors } from 'c/ldsUtils';
+import ACCOUNT_NAME_FIELD from "@salesforce/schema/Account.Name";
+import ACCOUNT_TYPE_FIELD from "@salesforce/schema/Account.Type";
+import ACCOUNT_PHONE_FIELD from "@salesforce/schema/Account.Type";
+import ACCOUNT_EMPLOYEES_FIELD from "@salesforce/schema/Account.NumberOfEmployees";
+
+const COLUMNS = [
+    {
+        label: "Account Name",
+        fieldName: ACCOUNT_NAME_FIELD.fieldApiName,
+        type: "text",
+        sortable: "true"
+    },
+    { label: "Type", fieldName: ACCOUNT_TYPE_FIELD.fieldApiName, type: "text" },
+    {
+        label: "Phone",
+        fieldName: ACCOUNT_PHONE_FIELD.fieldApiName,
+        type: "phone"
+    },
+    {
+        label: "Employees",
+        fieldName: ACCOUNT_EMPLOYEES_FIELD.fieldApiName,
+        type: "Number"
+    }
+];
+
+export default class PaginatedList extends LightningElement {
+    columns = COLUMNS;
+    @track sortBy = "Name";
+    @track sortDirection = "asc";
+    @track pageSize = 10;
+    error;
+    records;
+    currentPageToken = 0;
+    nextPageToken = this.pageSize;
+    @track loader = false;
+    @track pageNumber = 1;
+    @track paginationVisibility = false;
+    @track totalPages = 1;
+    @api pageSizeOptions = [10, 25, 50, 75, 100];
+    connectedCallback() {
+        this.getAccounts();
+    }
+
+    getAccounts() {
+        this.loader = true;
+        getAccountsPaginated({
+            pageSize: this.pageSize,
+            pageToken: this.currentPageToken,
+            sortField: this.sortBy,
+            sortOrder: this.sortDirection
+        })
+            .then((result) => {
+                this.loader = false;
+                if (result) {
+                    this.records = result.records;
+                    this.nextPageToken = result.nextPageToken;
+                    this.totalRecords = result.totalRecords;
+                    this.recordStart = result.recordStart;
+                    this.recordEnd = result.recordEnd;
+                    this.totalPages = Math.ceil(result.totalRecords / this.pageSize);
+                    this.paginationVisibility = this.totalPages > 1 ? true : false;
+                }
+            })
+            .catch((error) => {
+                this.loader = false;
+                this.error = error;
+                this.currentPageToken = 0;
+                const evt = new ShowToastEvent({
+                    title: 'Error',
+                    message: reduceErrors(error).join(', '),
+                    variant: 'error'
+                });
+                this.dispatchEvent(evt);
+            });
+    }
+    doSorting(event) {
+        console.log("Sort");
+        this.sortBy = event.detail.fieldName;
+        this.sortDirection = event.detail.sortDirection;
+        this.currentPageToken = 0;
+        this.getAccounts();
+    }
+
+    handlePrevious() {
+        this.currentPageToken = Number(this.currentPageToken) - Number(this.pageSize);
+        this.getAccounts();
+    }
+
+    handleNext() {
+        this.currentPageToken = Number(this.currentPageToken) + Number(this.pageSize);
+        this.getAccounts();
+    }
+    handleFirst() {
+        this.currentPageToken = 0;
+        this.getAccounts();
+    }
+
+    handleLast() {
+        this.currentPageToken = this.totalPages > 1? (this.totalPages-1)* this.pageSize:0;
+        this.getAccounts();
+    }
+
+    handlePageschange(event) {
+        console.log(event.detail);
+        this.pageSize = event.detail;
+        this.currentPageToken = 0;
+        this.getAccounts();
+    }
+    get previousButtonDisabled() {
+        return this.currentPageToken === 0;
+    }
+
+    get nextButtonDisabled() {
+        return this.nextPageToken === undefined;
+    }
+}
diff --git a/force-app/main/default/lwc/paginatedList/paginatedList.js-meta.xml b/force-app/main/default/lwc/paginatedList/paginatedList.js-meta.xml
new file mode 100644
index 0000000..b9a3113
--- /dev/null
+++ b/force-app/main/default/lwc/paginatedList/paginatedList.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>54.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/paginator/paginator.css b/force-app/main/default/lwc/paginator/paginator.css
new file mode 100644
index 0000000..7022ad9
--- /dev/null
+++ b/force-app/main/default/lwc/paginator/paginator.css
@@ -0,0 +1,13 @@
+
+.customSelect select {
+    padding-right: 1.25rem;
+    min-height: inherit;
+    line-height: normal;
+    height: 1.4rem;    
+}
+.customSelect label {
+    margin-top: .1rem;
+}
+.customSelect .slds-select_container::before {
+    border-bottom: 0;
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/paginator/paginator.html b/force-app/main/default/lwc/paginator/paginator.html
new file mode 100644
index 0000000..3add3b3
--- /dev/null
+++ b/force-app/main/default/lwc/paginator/paginator.html
@@ -0,0 +1,42 @@
+<template>
+    <lightning-card>
+        <div class="slds-grid slds-grid_vertical-align-center slds-grid_align-spread">
+            <div class="slds-col"><!--RECORDS PER PAGE-->
+                <div class="slds-list_inline slds-p-bottom_xx-small customSelect">
+                    <label class="slds-text-color_weak slds-p-horizontal_x-small" for="recordsPerPage">Page Size:</label>
+                    <div class="slds-select_container">
+                        <select class="slds-select" id="recordsPerPage" onchange={handleRecordsPerPage}>
+                            <template for:each={pageSizeOptions} for:item="option">
+                                <option key={option} value={option}>{option}</option>
+                            </template>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="slds-align_absolute-center">
+                <lightning-layout>
+                    <lightning-layout-item>
+                        <lightning-button icon-name="utility:jump_to_left" onclick={handleFirst} class="first"
+                            disabled={previousButtonDisabled}></lightning-button>
+                    </lightning-layout-item>
+                    <lightning-layout-item>
+                        <lightning-button icon-name="utility:chevronleft" onclick={handlePrevious} class="previous"
+                            disabled={previousButtonDisabled}></lightning-button>
+                    </lightning-layout-item>
+                    <lightning-layout-item flexibility="grow"></lightning-layout-item>
+                    <span class="slds-badge slds-badge_lightest">
+                        {recordStart}-{recordEnd} 鍏� {totalRecords}涓�
+                    </span>
+                    <lightning-layout-item>
+                        <lightning-button icon-name="utility:chevronright" onclick={handleNext}
+                            class="next" disabled={nextButtonDisabled}></lightning-button>
+                    </lightning-layout-item>
+                    <lightning-layout-item>
+                        <lightning-button icon-name="utility:jump_to_right" onclick={handleLast} class="last"
+                            disabled={nextButtonDisabled}></lightning-button>
+                    </lightning-layout-item>
+                </lightning-layout>
+            </div>
+        </div>
+    </lightning-card>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/paginator/paginator.js b/force-app/main/default/lwc/paginator/paginator.js
new file mode 100644
index 0000000..290042f
--- /dev/null
+++ b/force-app/main/default/lwc/paginator/paginator.js
@@ -0,0 +1,32 @@
+import { LightningElement, api } from 'lwc';
+
+export default class Paginator extends LightningElement {
+    @api previousButtonDisabled;
+    @api nextButtonDisabled;
+    @api recordStart;
+    @api recordEnd;
+    @api totalRecords;
+    @api pageSizeOptions;
+
+    handlePrevious() {
+        this.dispatchEvent(new CustomEvent('previous'));
+    }
+
+    handleNext() {
+        this.dispatchEvent(new CustomEvent('next'));
+    }
+
+    handleFirst() {
+        this.dispatchEvent(new CustomEvent('first'));
+    }
+
+    handleLast() {
+        this.dispatchEvent(new CustomEvent('last'));
+    }
+
+    handleRecordsPerPage(event){
+        let perpages = event.target.value;
+        let pageschangeEvent = new CustomEvent("pageschange",{detail:perpages});
+        this.dispatchEvent(pageschangeEvent);
+    }
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/paginator/paginator.js-meta.xml b/force-app/main/default/lwc/paginator/paginator.js-meta.xml
new file mode 100644
index 0000000..b9a3113
--- /dev/null
+++ b/force-app/main/default/lwc/paginator/paginator.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>54.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/customShipmentAmount.html b/force-app/main/default/lwc/pocLightningDatatable/customShipmentAmount.html
new file mode 100644
index 0000000..6b8fb9f
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/customShipmentAmount.html
@@ -0,0 +1,7 @@
+<template>
+    <c-custom-shipment-Amount-comp
+    shipment-amount={typeAttributes.shipmentAmount}
+    record-id={typeAttributes.recordId}>
+
+    </c-custom-shipment-Amount-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/customShipmentNumber.html b/force-app/main/default/lwc/pocLightningDatatable/customShipmentNumber.html
new file mode 100644
index 0000000..9c16166
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/customShipmentNumber.html
@@ -0,0 +1,6 @@
+<template>
+    <c-custom-shipment-number-comp
+    record-id={typeAttributes.recordId}>
+
+    </c-custom-shipment-number-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/customShippingUnitPrice.html b/force-app/main/default/lwc/pocLightningDatatable/customShippingUnitPrice.html
new file mode 100644
index 0000000..a4d518a
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/customShippingUnitPrice.html
@@ -0,0 +1,6 @@
+<template>
+    <c-custom-shipping-unit-price-comp
+    record-id={typeAttributes.recordId}>
+
+    </c-custom-shipping-unit-price-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/customUnit.html b/force-app/main/default/lwc/pocLightningDatatable/customUnit.html
new file mode 100644
index 0000000..f4f17ba
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/customUnit.html
@@ -0,0 +1,12 @@
+<!-- sldsValidatorIgnore -->
+<!-- sldsValidatorIgnore -->
+<template>
+    <c-custom-unit-comp
+        style="position:relative; z-index:9999;"
+        unit-value={typeAttributes.unitValue}
+        unit-options={typeAttributes.unitOptions}
+        record-id={typeAttributes.recordId}
+        onunitchange={handleDataChange}
+    >
+    </c-custom-unit-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/pocFileUpload.html b/force-app/main/default/lwc/pocLightningDatatable/pocFileUpload.html
new file mode 100644
index 0000000..deebcf7
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/pocFileUpload.html
@@ -0,0 +1,5 @@
+<template>
+    <c-poc-custom-comp record-id={value}
+                       accepted-formats={typeAttributes.acceptedFormats}>
+    </c-poc-custom-comp>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.html b/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.html
new file mode 100644
index 0000000..27e0f69
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.html
@@ -0,0 +1,3 @@
+<template>
+    
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js b/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js
new file mode 100644
index 0000000..15828ae
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js
@@ -0,0 +1,28 @@
+import LightningDatatable from 'lightning/datatable';
+import pocFileUpload from './pocFileUpload.html';
+import customUnitTemplate from './customUnit.html';
+import customShipmentNumberTemplate from './customShipmentNumber.html';
+import customShippingUnitPriceTemplate from './customShippingUnitPrice.html';
+import customShipmentAmountTemplate from './customShipmentAmount.html';
+
+ 
+export default class PocLightningDatatable extends LightningDatatable {
+    static customTypes = {
+        customUnit: {
+            template: customUnitTemplate,
+            typeAttributes: ['unitValue','unitOptions','recordId'],
+        },
+        customShipment: {
+            template: customShipmentNumberTemplate,
+            typeAttributes: ['recordId'],
+        },
+        customShipmentUnitPrice: {
+            template: customShippingUnitPriceTemplate,
+            typeAttributes: ['recordId'],
+        },
+        customShipmentAmount: {
+            template: customShipmentAmountTemplate,
+            typeAttributes: ['shipmentAmount','recordId'],
+        }
+    };
+}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js-meta.xml b/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js-meta.xml
new file mode 100644
index 0000000..f8c5cb4
--- /dev/null
+++ b/force-app/main/default/lwc/pocLightningDatatable/pocLightningDatatable.js-meta.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>false</isExposed>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/testPaginated/__tests__/testPaginated.test.js b/force-app/main/default/lwc/testPaginated/__tests__/testPaginated.test.js
new file mode 100644
index 0000000..f1cc319
--- /dev/null
+++ b/force-app/main/default/lwc/testPaginated/__tests__/testPaginated.test.js
@@ -0,0 +1,25 @@
+import { createElement } from 'lwc';
+import TestPaginated from 'c/testPaginated';
+
+describe('c-test-paginated', () => {
+    afterEach(() => {
+        // The jsdom instance is shared across test cases in a single file so reset the DOM
+        while (document.body.firstChild) {
+            document.body.removeChild(document.body.firstChild);
+        }
+    });
+
+    it('TODO: test case generated by CLI command, please fill in test logic', () => {
+        // Arrange
+        const element = createElement('c-test-paginated', {
+            is: TestPaginated
+        });
+
+        // Act
+        document.body.appendChild(element);
+
+        // Assert
+        // const div = element.shadowRoot.querySelector('div');
+        expect(1).toBe(1);
+    });
+});
\ No newline at end of file
diff --git a/force-app/main/default/lwc/testPaginated/testPaginated.html b/force-app/main/default/lwc/testPaginated/testPaginated.html
new file mode 100644
index 0000000..9034aa2
--- /dev/null
+++ b/force-app/main/default/lwc/testPaginated/testPaginated.html
@@ -0,0 +1,3 @@
+<template>
+    <c-paginated-list slot="lwc"></c-paginated-list>
+</template>
\ No newline at end of file
diff --git a/force-app/main/default/lwc/testPaginated/testPaginated.js b/force-app/main/default/lwc/testPaginated/testPaginated.js
new file mode 100644
index 0000000..99a983f
--- /dev/null
+++ b/force-app/main/default/lwc/testPaginated/testPaginated.js
@@ -0,0 +1,3 @@
+import { LightningElement } from 'lwc';
+
+export default class TestPaginated extends LightningElement {}
\ No newline at end of file
diff --git a/force-app/main/default/lwc/testPaginated/testPaginated.js-meta.xml b/force-app/main/default/lwc/testPaginated/testPaginated.js-meta.xml
new file mode 100644
index 0000000..5b31309
--- /dev/null
+++ b/force-app/main/default/lwc/testPaginated/testPaginated.js-meta.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
+    <apiVersion>56.0</apiVersion>
+    <isExposed>true</isExposed>
+    <targets>
+        <target>lightning__AppPage</target>
+    </targets>
+</LightningComponentBundle>
\ No newline at end of file
diff --git a/force-app/main/default/package.xml b/force-app/main/default/package.xml
deleted file mode 100644
index 8d94da9..0000000
--- a/force-app/main/default/package.xml
+++ /dev/null
@@ -1,478 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<Package xmlns="http://soap.sforce.com/2006/04/metadata">
-    <types>
-        <members>*</members>
-        <name>ApexClass</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>ApexComponent</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>ApexPage</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>ApexTrigger</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>AuraDefinitionBundle</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>CustomApplication</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>CustomApplicationComponent</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>CustomMetadata</name>
-    </types>
-    <types>
-        <members>ASEActivity__c</members>
-        <members>AWS_Integration_Info__mdt</members>
-        <members>Account</members>
-        <members>Account2__c</members>
-        <members>AccountBrand</members>
-        <members>AccountContactRole</members>
-        <members>AccountTeamMember</members>
-        <members>Account_Number_of_case__c</members>
-        <members>Account_Number_of_target__c</members>
-        <members>Account_Service_Of_Target__c</members>
-        <members>Achievement_linkage__c</members>
-        <members>Activity</members>
-        <members>ActivityRecurrence2Exception</members>
-        <members>Activity_History_Daily_Report__c</members>
-        <members>Address_Level2__c</members>
-        <members>Address_Level__c</members>
-        <members>Address__c</members>
-        <members>Advance_Payment__c</members>
-        <members>Agency_Contact__c</members>
-        <members>Agency_Hospital_Link__c</members>
-        <members>Agency_Opportunity__c</members>
-        <members>Agency_Report_Header__c</members>
-        <members>Agency_Report__c</members>
-        <members>Amount_Major_Product__c</members>
-        <members>Application_for_Conference_Adjudication__c</members>
-        <members>AssessmentReportStaff__c</members>
-        <members>AssessmentReport__c</members>
-        <members>Asset</members>
-        <members>AssetHistory__c</members>
-        <members>AssetMaintainDetail__c</members>
-        <members>AssetMaintainHeader__c</members>
-        <members>AssetModifyBelongsChangeDetail__c</members>
-        <members>AssetModifyBelongsChange__c</members>
-        <members>AssetRelationship</members>
-        <members>Asset_EquipmentSet_Managment_Code__c</members>
-        <members>Asset_Service_Of_Target__c</members>
-        <members>AssistantProgress</members>
-        <members>AssociatedLocation</members>
-        <members>AuthorizationForm</members>
-        <members>AuthorizationFormConsent</members>
-        <members>AuthorizationFormDataUse</members>
-        <members>AuthorizationFormText</members>
-        <members>BI_OpportunityLineItem__c</members>
-        <members>BI_Opportunity__c</members>
-        <members>BI_Product2__c</members>
-        <members>BI_Statu_Achievements__c</members>
-        <members>BMEFollowup__c</members>
-        <members>BSS_Master__c</members>
-        <members>BackOrderOpen__c</members>
-        <members>BackOrder__c</members>
-        <members>Backorder_Comment__c</members>
-        <members>BatchIF_Log__c</members>
-        <members>BatchIF_Transfer__c</members>
-        <members>Bid_Announcement__c</members>
-        <members>Bulletin_Board__c</members>
-        <members>BusinessBrand</members>
-        <members>CIC__c</members>
-        <members>CIC_and_product_middle_table__c</members>
-        <members>CIC_case_and_product_middle_table__c</members>
-        <members>Campaign</members>
-        <members>CampaignLable__c</members>
-        <members>CampaignMember</members>
-        <members>CampaignMember__c</members>
-        <members>Campaign_Cost__c</members>
-        <members>CancelPostponePlan__c</members>
-        <members>Case</members>
-        <members>CaseContactRole</members>
-        <members>ChatterActivity</members>
-        <members>CollaborationGroup</members>
-        <members>CollaborationGroupMember</members>
-        <members>CommSubscription</members>
-        <members>CommSubscriptionChannelType</members>
-        <members>CommSubscriptionConsent</members>
-        <members>CommSubscriptionTiming</members>
-        <members>Comment_Sequence__c</members>
-        <members>Common_Sequence__c</members>
-        <members>Competition_Company__c</members>
-        <members>Complaint__c</members>
-        <members>ConsumApplySafetyStockMiddleTable__c</members>
-        <members>Consum_Apply_Equipment_Set_Detail__c</members>
-        <members>Consum_Apply_Equipment_Set__c</members>
-        <members>Consum_Apply_Meta__mdt</members>
-        <members>Consum_Apply__c</members>
-        <members>Consum_Inventory_Detail__c</members>
-        <members>ConsumableSales__c</members>
-        <members>ConsumableSampleLineItem__c</members>
-        <members>ConsumableSample__c</members>
-        <members>Consumable_ET__c</members>
-        <members>Consumable_Orderdetails__c</members>
-        <members>Consumable_Promotion__c</members>
-        <members>Consumable_accessories_invoice__c</members>
-        <members>Consumable_order_LinkTable__c</members>
-        <members>Consumable_order__c</members>
-        <members>Consumable_order_details2__c</members>
-        <members>Contact</members>
-        <members>ContactPointAddress</members>
-        <members>ContactPointConsent</members>
-        <members>ContactPointEmail</members>
-        <members>ContactPointPhone</members>
-        <members>ContactPointTypeConsent</members>
-        <members>ContactRequest</members>
-        <members>ContentVersion</members>
-        <members>Contract</members>
-        <members>ContractContactRole</members>
-        <members>CustomObject123__c</members>
-        <members>Customer</members>
-        <members>Daily_Report__c</members>
-        <members>DataUseLegalBasis</members>
-        <members>DataUsePurpose</members>
-        <members>Dealer_Product__c</members>
-        <members>Dealer_Stock__c</members>
-        <members>Dealer_elationship__c</members>
-        <members>DelegatedAccount</members>
-        <members>DiscountProductApplicationDetail__c</members>
-        <members>DiscountProductApplication__c</members>
-        <members>DuplicateRecordItem</members>
-        <members>DuplicateRecordSet</members>
-        <members>EffectProgress__c</members>
-        <members>EmailMessage</members>
-        <members>EngagementChannelType</members>
-        <members>Enquiry_No_Bidding_Apply__c</members>
-        <members>Equipment_Set_Detail__c</members>
-        <members>Equipment_Set__c</members>
-        <members>Event</members>
-        <members>Event_Oppotunity__c</members>
-        <members>Event_Service__c</members>
-        <members>Event__c</members>
-        <members>ExchangeUserMapping</members>
-        <members>ExpressionFilter</members>
-        <members>ExpressionFilterCriteria</members>
-        <members>ExternalEventMapping</members>
-        <members>FSE_Regional_Assistant_Account__mdt</members>
-        <members>FSE_Regional_Assistant__mdt</members>
-        <members>FeedItem</members>
-        <members>FixtureDeliverySlip__c</members>
-        <members>FixtureRemindSnapshot__c</members>
-        <members>Fixture_OneToOne_Link__c</members>
-        <members>Fixture_Set_Detail__c</members>
-        <members>Fixture_Set__c</members>
-        <members>GIRSolutionAreaNumber__c</members>
-        <members>GuaranteePeriodAlterationApplication__c</members>
-        <members>GuaranteePeriodAlterationDetail__c</members>
-        <members>IS_Opportunity_Demand_Configuration__c</members>
-        <members>IS_Opportunity_Demand_Demonstration__c</members>
-        <members>IS_Opportunity_Demand_Operating__c</members>
-        <members>IS_Opportunity_Demand__c</members>
-        <members>Idea</members>
-        <members>Image</members>
-        <members>ImportantProductCategory__c</members>
-        <members>Individual</members>
-        <members>Inquiry_form__c</members>
-        <members>Inspection_Item__c</members>
-        <members>Inspection_Report__c</members>
-        <members>Inspectup_Plan__c</members>
-        <members>InstructStatusMonthly__c</members>
-        <members>Instruct_report__c</members>
-        <members>Instructed_staff__c</members>
-        <members>Inventory_Batch_Mapping__mdt</members>
-        <members>Inventory_Detail__c</members>
-        <members>Inventory_Header_New__c</members>
-        <members>Inventory_Header__c</members>
-        <members>Inventory_User_Permission__mdt</members>
-        <members>JF_scope_Training__c</members>
-        <members>Key_Product_Goals__c</members>
-        <members>LTV_6_SS__c</members>
-        <members>LastbuyProduct__c</members>
-        <members>Lead</members>
-        <members>License_Information__c</members>
-        <members>Loaner_check_disinfection__c</members>
-        <members>Location</members>
-        <members>LocationTrustMeasure</members>
-        <members>LogisticsInformation__c</members>
-        <members>LostReport_Detail__c</members>
-        <members>LostReport__c</members>
-        <members>Lost_Report__c</members>
-        <members>Lost_cancel_report__c</members>
-        <members>MB4S__MotionBoardProperty__c</members>
-        <members>MB_Account__c</members>
-        <members>MB_Asset__c</members>
-        <members>MB_Daily_Report__c</members>
-        <members>MB_Event__c</members>
-        <members>MB_Maintenance_Contract__c</members>
-        <members>MB_OpportunityLineItem__c</members>
-        <members>MB_Opportunity__c</members>
-        <members>MB_Repair__c</members>
-        <members>MB_Report__c</members>
-        <members>MB_Statu_Achievements__c</members>
-        <members>MB_TargetLineItem__c</members>
-        <members>MB_Target__c</members>
-        <members>Macro</members>
-        <members>MacroAction</members>
-        <members>MacroInstruction</members>
-        <members>MacroUsage</members>
-        <members>Maintenance_Contract_Asset_Estimate__c</members>
-        <members>Maintenance_Contract_Asset__c</members>
-        <members>Maintenance_Contract_Estimate__c</members>
-        <members>Maintenance_Contract__c</members>
-        <members>Maintenance_Product_Data_Details__c</members>
-        <members>Maintenance_Product_Data__c</members>
-        <members>Maintenance_Task__c</members>
-        <members>ManagedContentVersion</members>
-        <members>Material_For__c</members>
-        <members>Medical_expense_Province__c</members>
-        <members>Medical_expense_Request__c</members>
-        <members>Medical_expense__c</members>
-        <members>Medical_expense_product_middle__c</members>
-        <members>MeetingManagement__c</members>
-        <members>ModelLendingProduct__c</members>
-        <members>Monthly_Report__c</members>
-        <members>NetworkMember</members>
-        <members>NetworkMemberChunk</members>
-        <members>NewMaintenanceReport_Task__c</members>
-        <members>NotesEventHistory__c</members>
-        <members>Num_Major_Product__c</members>
-        <members>OCM_Management_Province__c</members>
-        <members>ODS__c</members>
-        <members>OFSHospitalLayout__c</members>
-        <members>OFSInsReportLayout__c</members>
-        <members>OFSSetting__c</members>
-        <members>OPDPlan__c</members>
-        <members>ObjectPrefix__c</members>
-        <members>OlympusCalendar__c</members>
-        <members>OnCall_detail__c</members>
-        <members>On_Call__c</members>
-        <members>On_Line_Survey__c</members>
-        <members>OppComment__c</members>
-        <members>Opponent_Bid_Information__c</members>
-        <members>Opportunity</members>
-        <members>Opportunity2__c</members>
-        <members>OpportunityCompetitor</members>
-        <members>OpportunityContactRole</members>
-        <members>OpportunityFileOrder__c</members>
-        <members>OpportunityLineItem</members>
-        <members>OpportunitySpecialApply__c</members>
-        <members>OpportunityTeamMember</members>
-        <members>Opportunity_Budget_Actual__c</members>
-        <members>Opportunity_File__c</members>
-        <members>OrderOpen__c</members>
-        <members>Order__c</members>
-        <members>Order_history__c</members>
-        <members>OrgMetricScanResult</members>
-        <members>OrgMetricScanSummary</members>
-        <members>PAE_DecisionRecordDetail__c</members>
-        <members>PAE_DecisionRecord__c</members>
-        <members>PBIAuthorization__c</members>
-        <members>PCLLostBrand__c</members>
-        <members>PCLLostProduct__c</members>
-        <members>PI_Field_Policy__c</members>
-        <members>PartnerRole</members>
-        <members>PartyConsent</members>
-        <members>Payment_Maintenance_Contract__c</members>
-        <members>PersonalEvaluation__c</members>
-        <members>Personal_Evaluation__c</members>
-        <members>Plan_Rental_Equipment__c</members>
-        <members>PowerBISyncDefine__c</members>
-        <members>Pricebook2</members>
-        <members>PricebookEntry</members>
-        <members>ProcessException</members>
-        <members>Product2</members>
-        <members>Product2__c</members>
-        <members>ProductMonthlySales__c</members>
-        <members>ProductTypes__c</members>
-        <members>ProductURF__c</members>
-        <members>Product_CategoryPrice_Table__c</members>
-        <members>Product_Documentation__c</members>
-        <members>Product_Material__c</members>
-        <members>Product_Register_Link__c</members>
-        <members>Product_Register__c</members>
-        <members>Product_Register_contrast__c</members>
-        <members>Product_Score_Table_History__c</members>
-        <members>Product_Score_Table__c</members>
-        <members>Product_Set_Detail__c</members>
-        <members>Product_Set__c</members>
-        <members>Product_and_document_middle_table__c</members>
-        <members>Product_document_Lead__c</members>
-        <members>PromotionHead__c</members>
-        <members>PromotionProduct__c</members>
-        <members>PromotionSalesProducts__c</members>
-        <members>PromotionSales__c</members>
-        <members>PromptAction</members>
-        <members>PromptError</members>
-        <members>Province_Target_Table__c</members>
-        <members>Provincial_Goal_Setting_Input__c</members>
-        <members>QIS_M_BC__c</members>
-        <members>QIS_Report__c</members>
-        <members>QIS_SC_Report__c</members>
-        <members>Questionnaire_Survey__c</members>
-        <members>QuestionsAndAnswers__c</members>
-        <members>QuickText</members>
-        <members>QuickTextUsage</members>
-        <members>Quote</members>
-        <members>QuoteIraiLineItem__c</members>
-        <members>QuoteIrai__c</members>
-        <members>QuoteLineItem</members>
-        <members>RSA_master_data__c</members>
-        <members>ReceivingNoteDetail__c</members>
-        <members>ReceivingNoteSummary__c</members>
-        <members>ReceivingNote__c</members>
-        <members>Recommendation</members>
-        <members>RecordAction</members>
-        <members>RecordMergeHistory</members>
-        <members>RentalApply_Postpone__mdt</members>
-        <members>Rental_Apply_App_CCEmail__mdt</members>
-        <members>Rental_Apply_Equipment_Set_DetailPower_B__c</members>
-        <members>Rental_Apply_Equipment_Set_Detail__c</members>
-        <members>Rental_Apply_Equipment_Set_Power_BI__c</members>
-        <members>Rental_Apply_Equipment_Set__c</members>
-        <members>Rental_Apply_Power_BI__c</members>
-        <members>Rental_Apply_Sequence__c</members>
-        <members>Rental_Apply__c</members>
-        <members>Rental_Equipment__c</members>
-        <members>Rental_Queue_Info__c</members>
-        <members>RepairAgainAn__c</members>
-        <members>RepairComment__c</members>
-        <members>RepairSubOrder__c</members>
-        <members>Repair_Quotation__c</members>
-        <members>Repair__c</members>
-        <members>Repair_quotation_reason__c</members>
-        <members>Repair_reason__c</members>
-        <members>Repair_receipt__c</members>
-        <members>ReportList__c</members>
-        <members>ReportMemo__c</members>
-        <members>Report__c</members>
-        <members>Request_tedner_doc__c</members>
-        <members>Result_for_Conference_Adjudication__c</members>
-        <members>SAP_for_BackOrder__c</members>
-        <members>SFDA__c</members>
-        <members>SFDelete__c</members>
-        <members>SI_Attachment__c</members>
-        <members>SLAReportInfo__c</members>
-        <members>SMARM__c</members>
-        <members>SSConsumable_order_details2__c</members>
-        <members>SS_BO_shipment_accurancy__c</members>
-        <members>SS_BatchColumnMapping__c</members>
-        <members>SS_Batch_Column_Mapping__c</members>
-        <members>SS_Dinghuo_accurancy__c</members>
-        <members>SS_HCP_vist_cover_monthly__c</members>
-        <members>SS_LTV_Dept_monthly__c</members>
-        <members>SS_LTV_HP_monthly__c</members>
-        <members>SS_LastMonthCompleteaccuracy__c</members>
-        <members>SS_OPDPlan__c</members>
-        <members>SS_OPDQuarterPlan__c</members>
-        <members>SS_OPD_SIS_Monthly_by_User__c</members>
-        <members>SS_Prospect_5days_list__c</members>
-        <members>SS_Prospect_Order_accurancy__c</members>
-        <members>SS_Prospect_detail_product__c</members>
-        <members>SS_Prospect_list__c</members>
-        <members>SS_User_list__c</members>
-        <members>SS_accompany_report_monthly__c</members>
-        <members>SS_backorder_list__c</members>
-        <members>SS_monthly_submit_daily_report__c</members>
-        <members>SS_shipment_acurancy__c</members>
-        <members>SS_update_this_month__c</members>
-        <members>SS_user_visit_covager__c</members>
-        <members>Sample_inventory_sheet__c</members>
-        <members>Sample_order_list_DN__c</members>
-        <members>Sample_order_list__c</members>
-        <members>Sample_order_list_detail__c</members>
-        <members>Sample_stock_log_sheet__c</members>
-        <members>Scorecard</members>
-        <members>ScorecardAssociation</members>
-        <members>ScorecardMetric</members>
-        <members>SelableProduct__c</members>
-        <members>Seller</members>
-        <members>Service_Category6__c</members>
-        <members>Service_Category7__c</members>
-        <members>Ship_History__c</members>
-        <members>Ship_History_open__c</members>
-        <members>Ship_Open__c</members>
-        <members>Ship__c</members>
-        <members>Shipment_address__c</members>
-        <members>Site</members>
-        <members>SocialPersona</members>
-        <members>SocialPost</members>
-        <members>Solution</members>
-        <members>SolutionProjectRequirements__c</members>
-        <members>Solution_Programme__c</members>
-        <members>Statu_Achievements_DN__c</members>
-        <members>Statu_Achievements_DN_details__c</members>
-        <members>Statu_Achievements_Journal__c</members>
-        <members>Statu_Achievements__c</members>
-        <members>StreamActivityAccess</members>
-        <members>StreamingChannel</members>
-        <members>SubAuthorized__c</members>
-        <members>SurveyQuestionResponse__c</members>
-        <members>SurveyTaker__c</members>
-        <members>Survey_Question__c</members>
-        <members>Survey__c</members>
-        <members>System_Request__c</members>
-        <members>System_UserSetting__c</members>
-        <members>Target_account_manage__c</members>
-        <members>Task</members>
-        <members>TaskEventReportOPD__c</members>
-        <members>TemporaryFileBox__c</members>
-        <members>Tender_Opportunity_Link__c</members>
-        <members>Tender_information__c</members>
-        <members>Tender_information_details__c</members>
-        <members>Territory2</members>
-        <members>Territory2Model</members>
-        <members>ThreeMonthlyContact__c</members>
-        <members>Topic</members>
-        <members>TopicAssignment</members>
-        <members>TracingCode__c</members>
-        <members>Training_test_Result__c</members>
-        <members>Transaction_Log__c</members>
-        <members>TransferApplyDetail__c</members>
-        <members>TransferApplySummary__c</members>
-        <members>TransferApply__c</members>
-        <members>User</members>
-        <members>UserProvisioningRequest</members>
-        <members>UserTerritory2Association</members>
-        <members>VideoCall</members>
-        <members>VideoCallParticipant</members>
-        <members>VideoCallRecording</members>
-        <members>Visit_Report__c</members>
-        <members>WarlockClassification__c</members>
-        <members>Weekly_OPP_Follow_record__c</members>
-        <members>accompanying_report__c</members>
-        <members>asset_Power_BI__c</members>
-        <members>bidInfoFile__c</members>
-        <members>bp3_Setting__c</members>
-        <members>eSignFormEntry__c</members>
-        <members>eSignFormLineItemEntry__c</members>
-        <members>eSignFormLineItem__c</members>
-        <members>eSignForm__c</members>
-        <members>guar__GUAR_Setting__mdt</members>
-        <members>hospitalprice__c</members>
-        <members>meeting_delay_apply__c</members>
-        <members>report_report__c</members>
-        <members>solutionClosingAttachment__c</members>
-        <members>task__c</members>
-        <name>CustomObject</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>HomePageComponent</name>
-    </types>
-    <types>
-        <members>*</members>
-        <name>StaticResource</name>
-    </types>
-    <version>41.0</version>
-</Package>
diff --git a/force-app/main/default/pages/Inventory.page b/force-app/main/default/pages/Inventory.page
index 7f05f37..126a68d 100644
--- a/force-app/main/default/pages/Inventory.page
+++ b/force-app/main/default/pages/Inventory.page
@@ -5,6 +5,7 @@
     <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}" />
 
     <script>
+        console.log('ConsumableorderdetailsRecordsview = ' + '{!ConsumableorderdetailsRecordsview}')
 function checkAll() {
     var productCount = j$(escapeVfId('allPage:allForm:allBlock:ConsumableorderdetailsSection:ConsumableorderdetailsCnt')).value();
     if (j$(escapeVfId('checker')).attr('checked') == 'checked') {
diff --git a/force-app/main/default/pages/InventoryView.page b/force-app/main/default/pages/InventoryView.page
index 3f801b5..764097b 100644
--- a/force-app/main/default/pages/InventoryView.page
+++ b/force-app/main/default/pages/InventoryView.page
@@ -4,6 +4,7 @@
 <apex:includeScript value="{!URLFOR($Resource.PleaseWaitDialog)}"/>
 <apex:includeScript value="{!URLFOR($Resource.CommonUtilJs)}"/>
 <script>
+    console.log('pageRecords = ' + '{!pageRecords}')
 function ClearJs(){
     blockme();
     //document.getElementById("allPage:allForm:allBlock:searchBlock:OrderCodeSearch").value = "";
diff --git a/force-app/main/default/staticresources/LexCustomDataTable.css b/force-app/main/default/staticresources/LexCustomDataTable.css
new file mode 100644
index 0000000..f140d52
--- /dev/null
+++ b/force-app/main/default/staticresources/LexCustomDataTable.css
@@ -0,0 +1,12 @@
+.picklist-container,
+.lookup-container {
+    overflow: visible;
+}
+
+.picklist-container .slds-dropdown,
+.lookup-container .slds-dropdown {
+    position: relative !important;
+    z-index: 99 !important;
+    max-height: 120px;
+    overflow: visible;
+}
\ No newline at end of file
diff --git a/force-app/main/default/staticresources/LexCustomDataTable.resource-meta.xml b/force-app/main/default/staticresources/LexCustomDataTable.resource-meta.xml
new file mode 100644
index 0000000..1c665a5
--- /dev/null
+++ b/force-app/main/default/staticresources/LexCustomDataTable.resource-meta.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<StaticResource xmlns="http://soap.sforce.com/2006/04/metadata">
+    <cacheControl>Public</cacheControl>
+    <contentType>text/css</contentType>
+    <description>File to hold CSS for custom datatable</description>
+</StaticResource>
\ No newline at end of file
diff --git a/manifest/package.xml b/manifest/package.xml
index c18b30a..8d94da9 100644
--- a/manifest/package.xml
+++ b/manifest/package.xml
@@ -1,9 +1,478 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <Package xmlns="http://soap.sforce.com/2006/04/metadata">
     <types>
-        <members>NewAndEditLead</members>
-        <members>NewAndEditReport</members>
+        <members>*</members>
+        <name>ApexClass</name>
+    </types>
+    <types>
+        <members>*</members>
+        <name>ApexComponent</name>
+    </types>
+    <types>
+        <members>*</members>
         <name>ApexPage</name>
     </types>
-    <version>52.0</version>
-</Package>
\ No newline at end of file
+    <types>
+        <members>*</members>
+        <name>ApexTrigger</name>
+    </types>
+    <types>
+        <members>*</members>
+        <name>AuraDefinitionBundle</name>
+    </types>
+    <types>
+        <members>*</members>
+        <name>CustomApplication</name>
+    </types>
+    <types>
+        <members>*</members>
+        <name>CustomApplicationComponent</name>
+    </types>
+    <types>
+        <members>*</members>
+        <name>CustomMetadata</name>
+    </types>
+    <types>
+        <members>ASEActivity__c</members>
+        <members>AWS_Integration_Info__mdt</members>
+        <members>Account</members>
+        <members>Account2__c</members>
+        <members>AccountBrand</members>
+        <members>AccountContactRole</members>
+        <members>AccountTeamMember</members>
+        <members>Account_Number_of_case__c</members>
+        <members>Account_Number_of_target__c</members>
+        <members>Account_Service_Of_Target__c</members>
+        <members>Achievement_linkage__c</members>
+        <members>Activity</members>
+        <members>ActivityRecurrence2Exception</members>
+        <members>Activity_History_Daily_Report__c</members>
+        <members>Address_Level2__c</members>
+        <members>Address_Level__c</members>
+        <members>Address__c</members>
+        <members>Advance_Payment__c</members>
+        <members>Agency_Contact__c</members>
+        <members>Agency_Hospital_Link__c</members>
+        <members>Agency_Opportunity__c</members>
+        <members>Agency_Report_Header__c</members>
+        <members>Agency_Report__c</members>
+        <members>Amount_Major_Product__c</members>
+        <members>Application_for_Conference_Adjudication__c</members>
+        <members>AssessmentReportStaff__c</members>
+        <members>AssessmentReport__c</members>
+        <members>Asset</members>
+        <members>AssetHistory__c</members>
+        <members>AssetMaintainDetail__c</members>
+        <members>AssetMaintainHeader__c</members>
+        <members>AssetModifyBelongsChangeDetail__c</members>
+        <members>AssetModifyBelongsChange__c</members>
+        <members>AssetRelationship</members>
+        <members>Asset_EquipmentSet_Managment_Code__c</members>
+        <members>Asset_Service_Of_Target__c</members>
+        <members>AssistantProgress</members>
+        <members>AssociatedLocation</members>
+        <members>AuthorizationForm</members>
+        <members>AuthorizationFormConsent</members>
+        <members>AuthorizationFormDataUse</members>
+        <members>AuthorizationFormText</members>
+        <members>BI_OpportunityLineItem__c</members>
+        <members>BI_Opportunity__c</members>
+        <members>BI_Product2__c</members>
+        <members>BI_Statu_Achievements__c</members>
+        <members>BMEFollowup__c</members>
+        <members>BSS_Master__c</members>
+        <members>BackOrderOpen__c</members>
+        <members>BackOrder__c</members>
+        <members>Backorder_Comment__c</members>
+        <members>BatchIF_Log__c</members>
+        <members>BatchIF_Transfer__c</members>
+        <members>Bid_Announcement__c</members>
+        <members>Bulletin_Board__c</members>
+        <members>BusinessBrand</members>
+        <members>CIC__c</members>
+        <members>CIC_and_product_middle_table__c</members>
+        <members>CIC_case_and_product_middle_table__c</members>
+        <members>Campaign</members>
+        <members>CampaignLable__c</members>
+        <members>CampaignMember</members>
+        <members>CampaignMember__c</members>
+        <members>Campaign_Cost__c</members>
+        <members>CancelPostponePlan__c</members>
+        <members>Case</members>
+        <members>CaseContactRole</members>
+        <members>ChatterActivity</members>
+        <members>CollaborationGroup</members>
+        <members>CollaborationGroupMember</members>
+        <members>CommSubscription</members>
+        <members>CommSubscriptionChannelType</members>
+        <members>CommSubscriptionConsent</members>
+        <members>CommSubscriptionTiming</members>
+        <members>Comment_Sequence__c</members>
+        <members>Common_Sequence__c</members>
+        <members>Competition_Company__c</members>
+        <members>Complaint__c</members>
+        <members>ConsumApplySafetyStockMiddleTable__c</members>
+        <members>Consum_Apply_Equipment_Set_Detail__c</members>
+        <members>Consum_Apply_Equipment_Set__c</members>
+        <members>Consum_Apply_Meta__mdt</members>
+        <members>Consum_Apply__c</members>
+        <members>Consum_Inventory_Detail__c</members>
+        <members>ConsumableSales__c</members>
+        <members>ConsumableSampleLineItem__c</members>
+        <members>ConsumableSample__c</members>
+        <members>Consumable_ET__c</members>
+        <members>Consumable_Orderdetails__c</members>
+        <members>Consumable_Promotion__c</members>
+        <members>Consumable_accessories_invoice__c</members>
+        <members>Consumable_order_LinkTable__c</members>
+        <members>Consumable_order__c</members>
+        <members>Consumable_order_details2__c</members>
+        <members>Contact</members>
+        <members>ContactPointAddress</members>
+        <members>ContactPointConsent</members>
+        <members>ContactPointEmail</members>
+        <members>ContactPointPhone</members>
+        <members>ContactPointTypeConsent</members>
+        <members>ContactRequest</members>
+        <members>ContentVersion</members>
+        <members>Contract</members>
+        <members>ContractContactRole</members>
+        <members>CustomObject123__c</members>
+        <members>Customer</members>
+        <members>Daily_Report__c</members>
+        <members>DataUseLegalBasis</members>
+        <members>DataUsePurpose</members>
+        <members>Dealer_Product__c</members>
+        <members>Dealer_Stock__c</members>
+        <members>Dealer_elationship__c</members>
+        <members>DelegatedAccount</members>
+        <members>DiscountProductApplicationDetail__c</members>
+        <members>DiscountProductApplication__c</members>
+        <members>DuplicateRecordItem</members>
+        <members>DuplicateRecordSet</members>
+        <members>EffectProgress__c</members>
+        <members>EmailMessage</members>
+        <members>EngagementChannelType</members>
+        <members>Enquiry_No_Bidding_Apply__c</members>
+        <members>Equipment_Set_Detail__c</members>
+        <members>Equipment_Set__c</members>
+        <members>Event</members>
+        <members>Event_Oppotunity__c</members>
+        <members>Event_Service__c</members>
+        <members>Event__c</members>
+        <members>ExchangeUserMapping</members>
+        <members>ExpressionFilter</members>
+        <members>ExpressionFilterCriteria</members>
+        <members>ExternalEventMapping</members>
+        <members>FSE_Regional_Assistant_Account__mdt</members>
+        <members>FSE_Regional_Assistant__mdt</members>
+        <members>FeedItem</members>
+        <members>FixtureDeliverySlip__c</members>
+        <members>FixtureRemindSnapshot__c</members>
+        <members>Fixture_OneToOne_Link__c</members>
+        <members>Fixture_Set_Detail__c</members>
+        <members>Fixture_Set__c</members>
+        <members>GIRSolutionAreaNumber__c</members>
+        <members>GuaranteePeriodAlterationApplication__c</members>
+        <members>GuaranteePeriodAlterationDetail__c</members>
+        <members>IS_Opportunity_Demand_Configuration__c</members>
+        <members>IS_Opportunity_Demand_Demonstration__c</members>
+        <members>IS_Opportunity_Demand_Operating__c</members>
+        <members>IS_Opportunity_Demand__c</members>
+        <members>Idea</members>
+        <members>Image</members>
+        <members>ImportantProductCategory__c</members>
+        <members>Individual</members>
+        <members>Inquiry_form__c</members>
+        <members>Inspection_Item__c</members>
+        <members>Inspection_Report__c</members>
+        <members>Inspectup_Plan__c</members>
+        <members>InstructStatusMonthly__c</members>
+        <members>Instruct_report__c</members>
+        <members>Instructed_staff__c</members>
+        <members>Inventory_Batch_Mapping__mdt</members>
+        <members>Inventory_Detail__c</members>
+        <members>Inventory_Header_New__c</members>
+        <members>Inventory_Header__c</members>
+        <members>Inventory_User_Permission__mdt</members>
+        <members>JF_scope_Training__c</members>
+        <members>Key_Product_Goals__c</members>
+        <members>LTV_6_SS__c</members>
+        <members>LastbuyProduct__c</members>
+        <members>Lead</members>
+        <members>License_Information__c</members>
+        <members>Loaner_check_disinfection__c</members>
+        <members>Location</members>
+        <members>LocationTrustMeasure</members>
+        <members>LogisticsInformation__c</members>
+        <members>LostReport_Detail__c</members>
+        <members>LostReport__c</members>
+        <members>Lost_Report__c</members>
+        <members>Lost_cancel_report__c</members>
+        <members>MB4S__MotionBoardProperty__c</members>
+        <members>MB_Account__c</members>
+        <members>MB_Asset__c</members>
+        <members>MB_Daily_Report__c</members>
+        <members>MB_Event__c</members>
+        <members>MB_Maintenance_Contract__c</members>
+        <members>MB_OpportunityLineItem__c</members>
+        <members>MB_Opportunity__c</members>
+        <members>MB_Repair__c</members>
+        <members>MB_Report__c</members>
+        <members>MB_Statu_Achievements__c</members>
+        <members>MB_TargetLineItem__c</members>
+        <members>MB_Target__c</members>
+        <members>Macro</members>
+        <members>MacroAction</members>
+        <members>MacroInstruction</members>
+        <members>MacroUsage</members>
+        <members>Maintenance_Contract_Asset_Estimate__c</members>
+        <members>Maintenance_Contract_Asset__c</members>
+        <members>Maintenance_Contract_Estimate__c</members>
+        <members>Maintenance_Contract__c</members>
+        <members>Maintenance_Product_Data_Details__c</members>
+        <members>Maintenance_Product_Data__c</members>
+        <members>Maintenance_Task__c</members>
+        <members>ManagedContentVersion</members>
+        <members>Material_For__c</members>
+        <members>Medical_expense_Province__c</members>
+        <members>Medical_expense_Request__c</members>
+        <members>Medical_expense__c</members>
+        <members>Medical_expense_product_middle__c</members>
+        <members>MeetingManagement__c</members>
+        <members>ModelLendingProduct__c</members>
+        <members>Monthly_Report__c</members>
+        <members>NetworkMember</members>
+        <members>NetworkMemberChunk</members>
+        <members>NewMaintenanceReport_Task__c</members>
+        <members>NotesEventHistory__c</members>
+        <members>Num_Major_Product__c</members>
+        <members>OCM_Management_Province__c</members>
+        <members>ODS__c</members>
+        <members>OFSHospitalLayout__c</members>
+        <members>OFSInsReportLayout__c</members>
+        <members>OFSSetting__c</members>
+        <members>OPDPlan__c</members>
+        <members>ObjectPrefix__c</members>
+        <members>OlympusCalendar__c</members>
+        <members>OnCall_detail__c</members>
+        <members>On_Call__c</members>
+        <members>On_Line_Survey__c</members>
+        <members>OppComment__c</members>
+        <members>Opponent_Bid_Information__c</members>
+        <members>Opportunity</members>
+        <members>Opportunity2__c</members>
+        <members>OpportunityCompetitor</members>
+        <members>OpportunityContactRole</members>
+        <members>OpportunityFileOrder__c</members>
+        <members>OpportunityLineItem</members>
+        <members>OpportunitySpecialApply__c</members>
+        <members>OpportunityTeamMember</members>
+        <members>Opportunity_Budget_Actual__c</members>
+        <members>Opportunity_File__c</members>
+        <members>OrderOpen__c</members>
+        <members>Order__c</members>
+        <members>Order_history__c</members>
+        <members>OrgMetricScanResult</members>
+        <members>OrgMetricScanSummary</members>
+        <members>PAE_DecisionRecordDetail__c</members>
+        <members>PAE_DecisionRecord__c</members>
+        <members>PBIAuthorization__c</members>
+        <members>PCLLostBrand__c</members>
+        <members>PCLLostProduct__c</members>
+        <members>PI_Field_Policy__c</members>
+        <members>PartnerRole</members>
+        <members>PartyConsent</members>
+        <members>Payment_Maintenance_Contract__c</members>
+        <members>PersonalEvaluation__c</members>
+        <members>Personal_Evaluation__c</members>
+        <members>Plan_Rental_Equipment__c</members>
+        <members>PowerBISyncDefine__c</members>
+        <members>Pricebook2</members>
+        <members>PricebookEntry</members>
+        <members>ProcessException</members>
+        <members>Product2</members>
+        <members>Product2__c</members>
+        <members>ProductMonthlySales__c</members>
+        <members>ProductTypes__c</members>
+        <members>ProductURF__c</members>
+        <members>Product_CategoryPrice_Table__c</members>
+        <members>Product_Documentation__c</members>
+        <members>Product_Material__c</members>
+        <members>Product_Register_Link__c</members>
+        <members>Product_Register__c</members>
+        <members>Product_Register_contrast__c</members>
+        <members>Product_Score_Table_History__c</members>
+        <members>Product_Score_Table__c</members>
+        <members>Product_Set_Detail__c</members>
+        <members>Product_Set__c</members>
+        <members>Product_and_document_middle_table__c</members>
+        <members>Product_document_Lead__c</members>
+        <members>PromotionHead__c</members>
+        <members>PromotionProduct__c</members>
+        <members>PromotionSalesProducts__c</members>
+        <members>PromotionSales__c</members>
+        <members>PromptAction</members>
+        <members>PromptError</members>
+        <members>Province_Target_Table__c</members>
+        <members>Provincial_Goal_Setting_Input__c</members>
+        <members>QIS_M_BC__c</members>
+        <members>QIS_Report__c</members>
+        <members>QIS_SC_Report__c</members>
+        <members>Questionnaire_Survey__c</members>
+        <members>QuestionsAndAnswers__c</members>
+        <members>QuickText</members>
+        <members>QuickTextUsage</members>
+        <members>Quote</members>
+        <members>QuoteIraiLineItem__c</members>
+        <members>QuoteIrai__c</members>
+        <members>QuoteLineItem</members>
+        <members>RSA_master_data__c</members>
+        <members>ReceivingNoteDetail__c</members>
+        <members>ReceivingNoteSummary__c</members>
+        <members>ReceivingNote__c</members>
+        <members>Recommendation</members>
+        <members>RecordAction</members>
+        <members>RecordMergeHistory</members>
+        <members>RentalApply_Postpone__mdt</members>
+        <members>Rental_Apply_App_CCEmail__mdt</members>
+        <members>Rental_Apply_Equipment_Set_DetailPower_B__c</members>
+        <members>Rental_Apply_Equipment_Set_Detail__c</members>
+        <members>Rental_Apply_Equipment_Set_Power_BI__c</members>
+        <members>Rental_Apply_Equipment_Set__c</members>
+        <members>Rental_Apply_Power_BI__c</members>
+        <members>Rental_Apply_Sequence__c</members>
+        <members>Rental_Apply__c</members>
+        <members>Rental_Equipment__c</members>
+        <members>Rental_Queue_Info__c</members>
+        <members>RepairAgainAn__c</members>
+        <members>RepairComment__c</members>
+        <members>RepairSubOrder__c</members>
+        <members>Repair_Quotation__c</members>
+        <members>Repair__c</members>
+        <members>Repair_quotation_reason__c</members>
+        <members>Repair_reason__c</members>
+        <members>Repair_receipt__c</members>
+        <members>ReportList__c</members>
+        <members>ReportMemo__c</members>
+        <members>Report__c</members>
+        <members>Request_tedner_doc__c</members>
+        <members>Result_for_Conference_Adjudication__c</members>
+        <members>SAP_for_BackOrder__c</members>
+        <members>SFDA__c</members>
+        <members>SFDelete__c</members>
+        <members>SI_Attachment__c</members>
+        <members>SLAReportInfo__c</members>
+        <members>SMARM__c</members>
+        <members>SSConsumable_order_details2__c</members>
+        <members>SS_BO_shipment_accurancy__c</members>
+        <members>SS_BatchColumnMapping__c</members>
+        <members>SS_Batch_Column_Mapping__c</members>
+        <members>SS_Dinghuo_accurancy__c</members>
+        <members>SS_HCP_vist_cover_monthly__c</members>
+        <members>SS_LTV_Dept_monthly__c</members>
+        <members>SS_LTV_HP_monthly__c</members>
+        <members>SS_LastMonthCompleteaccuracy__c</members>
+        <members>SS_OPDPlan__c</members>
+        <members>SS_OPDQuarterPlan__c</members>
+        <members>SS_OPD_SIS_Monthly_by_User__c</members>
+        <members>SS_Prospect_5days_list__c</members>
+        <members>SS_Prospect_Order_accurancy__c</members>
+        <members>SS_Prospect_detail_product__c</members>
+        <members>SS_Prospect_list__c</members>
+        <members>SS_User_list__c</members>
+        <members>SS_accompany_report_monthly__c</members>
+        <members>SS_backorder_list__c</members>
+        <members>SS_monthly_submit_daily_report__c</members>
+        <members>SS_shipment_acurancy__c</members>
+        <members>SS_update_this_month__c</members>
+        <members>SS_user_visit_covager__c</members>
+        <members>Sample_inventory_sheet__c</members>
+        <members>Sample_order_list_DN__c</members>
+        <members>Sample_order_list__c</members>
+        <members>Sample_order_list_detail__c</members>
+        <members>Sample_stock_log_sheet__c</members>
+        <members>Scorecard</members>
+        <members>ScorecardAssociation</members>
+        <members>ScorecardMetric</members>
+        <members>SelableProduct__c</members>
+        <members>Seller</members>
+        <members>Service_Category6__c</members>
+        <members>Service_Category7__c</members>
+        <members>Ship_History__c</members>
+        <members>Ship_History_open__c</members>
+        <members>Ship_Open__c</members>
+        <members>Ship__c</members>
+        <members>Shipment_address__c</members>
+        <members>Site</members>
+        <members>SocialPersona</members>
+        <members>SocialPost</members>
+        <members>Solution</members>
+        <members>SolutionProjectRequirements__c</members>
+        <members>Solution_Programme__c</members>
+        <members>Statu_Achievements_DN__c</members>
+        <members>Statu_Achievements_DN_details__c</members>
+        <members>Statu_Achievements_Journal__c</members>
+        <members>Statu_Achievements__c</members>
+        <members>StreamActivityAccess</members>
+        <members>StreamingChannel</members>
+        <members>SubAuthorized__c</members>
+        <members>SurveyQuestionResponse__c</members>
+        <members>SurveyTaker__c</members>
+        <members>Survey_Question__c</members>
+        <members>Survey__c</members>
+        <members>System_Request__c</members>
+        <members>System_UserSetting__c</members>
+        <members>Target_account_manage__c</members>
+        <members>Task</members>
+        <members>TaskEventReportOPD__c</members>
+        <members>TemporaryFileBox__c</members>
+        <members>Tender_Opportunity_Link__c</members>
+        <members>Tender_information__c</members>
+        <members>Tender_information_details__c</members>
+        <members>Territory2</members>
+        <members>Territory2Model</members>
+        <members>ThreeMonthlyContact__c</members>
+        <members>Topic</members>
+        <members>TopicAssignment</members>
+        <members>TracingCode__c</members>
+        <members>Training_test_Result__c</members>
+        <members>Transaction_Log__c</members>
+        <members>TransferApplyDetail__c</members>
+        <members>TransferApplySummary__c</members>
+        <members>TransferApply__c</members>
+        <members>User</members>
+        <members>UserProvisioningRequest</members>
+        <members>UserTerritory2Association</members>
+        <members>VideoCall</members>
+        <members>VideoCallParticipant</members>
+        <members>VideoCallRecording</members>
+        <members>Visit_Report__c</members>
+        <members>WarlockClassification__c</members>
+        <members>Weekly_OPP_Follow_record__c</members>
+        <members>accompanying_report__c</members>
+        <members>asset_Power_BI__c</members>
+        <members>bidInfoFile__c</members>
+        <members>bp3_Setting__c</members>
+        <members>eSignFormEntry__c</members>
+        <members>eSignFormLineItemEntry__c</members>
+        <members>eSignFormLineItem__c</members>
+        <members>eSignForm__c</members>
+        <members>guar__GUAR_Setting__mdt</members>
+        <members>hospitalprice__c</members>
+        <members>meeting_delay_apply__c</members>
+        <members>report_report__c</members>
+        <members>solutionClosingAttachment__c</members>
+        <members>task__c</members>
+        <name>CustomObject</name>
+    </types>
+    <types>
+        <members>*</members>
+        <name>HomePageComponent</name>
+    </types>
+    <types>
+        <members>*</members>
+        <name>StaticResource</name>
+    </types>
+    <version>41.0</version>
+</Package>
diff --git a/manifest/packageForPIPL.xml b/manifest/packageForPIPL.xml
index 1cb3506..85ff7ee 100644
--- a/manifest/packageForPIPL.xml
+++ b/manifest/packageForPIPL.xml
@@ -1,255 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
 <Package xmlns="http://soap.sforce.com/2006/04/metadata">
     <types>
-        <members>AgencyAccountCmp</members>
-        <members>AgencyAccountCmpTest</members>
-        <members>AgencyContactHandler</members>
-        <members>AgencyContactHandlerTest</members>
-        <members>AssessmentReportController</members>
-        <members>AssessmentReportControllerTest</members>
-        <members>AWSServiceTool</members>
-        <members>AWSServiceToolTest</members>
-        <members>B_Test</members>
-        <members>B_TestTest</members>
-        <members>BmeWorkController</members>
-        <members>BmeWorkControllerTest</members>
-        <members>CampaignMemberController</members>
-        <members>CampaignMemberControllerTest</members>
-        <members>CampaignMemberServiceController</members>
-        <members>CampaignMemberServiceControllerTest</members>
-        <members>CM_SearchContact</members>
-        <members>CM_SearchContactServiceController</members>
-        <members>CM_SearchContactServiceControllerTest</members>
-        <members>CM_SearchContactTest</members>
-        <members>ConsumFixtureSetSelectController</members>
-        <members>ConsumFixtureSetSelectControllerTest</members>
-        <members>ConsumReassignController</members>
-        <members>ConsumReassignControllerTest</members>
-        <members>ConsumTrialController</members>
-        <members>ConsumTrialControllerTest</members>
-        <members>ConsumTrialPDFController</members>
-        <members>ConsumTrialPDFControllerTest</members>
-        <members>ControllerResponse</members>
-        <members>ControllerResponseTest</members>
-        <members>DeleteBatch</members>
-        <members>DeleteBatchTest</members>
-        <members>FieldInfo</members>
-        <members>FieldInfoTest</members>
-        <members>FileUploadController</members>
-        <members>FileUploadControllerTest</members>
-        <members>FixtureRentalPDFController</members>
-        <members>FixtureRentalPDFControllerTest</members>
-        <members>InsReportPDFController</members>
-        <members>InsReportPDFControllerTest</members>
-        <members>InstructReportController</members>
-        <members>InstructReportControllerTest</members>
-        <members>LayoutDescriberHelper</members>
-        <members>LayoutDescriberHelperTest</members>
-        <members>LeadIntentionController</members>
-        <members>LeadIntentionControllerTest</members>
-        <members>LightningUtil</members>
-        <members>LightningUtilTest</members>
-        <members>MetaDataUtility</members>
-        <members>NewAgencyContactController</members>
-        <members>NewAgencyContactControllerTest</members>
-        <members>NewAndEditAddressController</members>
-        <members>NewAndEditAddressControllerTest</members>
-        <members>NewAndEditAgencyContactController</members>
-        <members>NewAndEditAgencyContactControllerTest</members>
-        <members>NewAndEditASEActivityController</members>
-        <members>NewAndEditASEActivityControllerTest</members>
-        <members>NewAndEditBaseController</members>
-        <members>NewAndEditBaseControllerTest</members>
-        <members>NewAndEditCampaignMemberController</members>
-        <members>NewAndEditCampaignMemberControllerTest</members>
-        <members>NewAndEditCaseController</members>
-        <members>NewAndEditCaseControllerTest</members>
-        <members>NewAndEditContactController</members>
-        <members>NewAndEditContactControllerTest</members>
-        <members>NewAndEditEventController</members>
-        <members>NewAndEditEventControllerTest</members>
-        <members>NewAndEditInquiryFormController</members>
-        <members>NewAndEditInquiryFormControllerTest</members>
-        <members>NewAndEditInspectionReportController</members>
-        <members>NewAndEditInspectionReportControllerTest</members>
-        <members>NewAndEditLeadController</members>
-        <members>NewAndEditLeadControllerTest</members>
-        <members>NewAndEditQISController</members>
-        <members>NewAndEditQISControllerTest</members>
-        <members>NewAndEditRepairSubOrderController</members>
-        <members>NewAndEditRepairSubOrderControllerTest</members>
-        <members>NewAndEditReportController</members>
-        <members>NewAndEditReportControllerTest</members>
-        <members>NewAndEditTenderinformationController</members>
-        <members>NewAndEditTenderinformationControlTest</members>
-        <members>NewConsumApplyController</members>
-        <members>NewConsumApplyControllerTest</members>
-        <members>NewConsumApplyEquipSetDetailController</members>
-        <members>NewConsumApplyEquipSetDetailControlTest</members>
-        <members>NewRepairController</members>
-        <members>NewRepairControllerTest</members>
-        <members>NFM103Controller</members>
-        <members>NFM103ControllerTest</members>
-        <members>NFM115ControllerTest</members>
-        <members>NFM203Rest</members>
-        <members>NFM203RestTest</members>
-        <members>NFM501Controller</members>
-        <members>NFM501ControllerTest</members>
-        <members>NFM501FutureController</members>
-        <members>NFM501FutureControllerTest</members>
-        <members>NFM502Controller</members>
-        <members>NFM502ControllerTest</members>
-        <members>NFM503Controller</members>
-        <members>NFM503InfoFileBatch</members>
-        <members>NFM503InfoFileBatchTest</members>
-        <members>NFM606Controller</members>
-        <members>NFM606ControllerTest</members>
-        <members>NFM607Rest</members>
-        <members>NFM607RestTest</members>
-        <members>NFM612Rest</members>
-        <members>NFM612RestTest</members>
-        <members>NFM620Rest</members>
-        <members>NFM620RestSchedule</members>
-        <members>NFM620RestScheduleTest</members>
-        <members>NFM620RestTest</members>
-        <members>NFM623Rest</members>
-        <members>NFM623RestTest</members>
-        <members>NFM702Controller</members>
-        <members>NFM702ControllerTest</members>
-        <members>NFM702WebService</members>
-        <members>NFM702WebServiceTest</members>
-        <members>NFMUtil</members>
-        <members>NFMUtilTest</members>
-        <members>OFSInsReportLayoutController</members>
-        <members>OFSInsReportLayoutControllerTest</members>
-        <members>OnCallController</members>
-        <members>OnCallControllerTest</members>
-        <members>Option</members>
-        <members>PIHelper</members>
-        <members>PIHelperTest</members>
-        <members>QISPDFController</members>
-        <members>QISPDFControllerTest</members>
-        <members>RentalApplyController</members>
-        <members>RentalApplyControllerTest</members>
-        <members>SearchContactController</members>
-        <members>SearchContactControllerTest</members>
-        <members>SearchLeadController</members>
-        <members>SearchLeadControllerTest</members>
-        <members>SearchVisitorController</members>
-        <members>SearchVistorControllerTest</members>
-        <members>SimpleEventRegisterController</members>
-        <members>SimpleEventRegisterControllerTester</members>
-        <members>SLAReportDetailsController</members>
-        <members>SLAReportDetailsControllerTest</members>
-        <members>SObjectHelper</members>
-        <members>SObjectHelperTest</members>
-        <members>SoqlHelper</members>
-        <members>SoqlHelperTest</members>
-        <members>StartTradingController</members>
-        <members>StartTradingControllerTest</members>
-        <members>StraightBackAddressController</members>
-        <members>StraightBackAddressControllerTest</members>
-        <members>UpdateContractAimAmountHandler</members>
-        <members>UpdateContractAimAmountHandlerTest</members>
-        <members>ViewParticipantsController</members>
-        <members>ViewParticipantsControllerTest</members>
-        <members>WeeklyReportCmp</members>
-        <members>WeeklyReportCmpTest</members>
-        <members>XinDailyReportController</members>
-        <members>XinDailyReportControllerTest</members>
-        <name>ApexClass</name>
-    </types>
-    <types>
-        <members>AssessmentReport</members>
-        <members>BMEWorkPage</members>
-        <members>B_Test</members>
-        <members>CampaignMember</members>
-        <members>CampaignMemberService</members>
-        <members>CM_SearchContact</members>
-        <members>CM_SearchContactService</members>
-        <members>ConsumApplyUploadPdf</members>
-        <members>ConsumReassign</members>
-        <members>ConsumTrial</members>
-        <members>ConsumTrialPDF</members>
-        <members>FixtureRentalPDF</members>
-        <members>FixtureRentalPicturePDF</members>
-        <members>InsReportPDF</members>
-        <members>InsReportPDFOuter</members>
-        <members>InstructReport</members>
-        <members>LeadIntention</members>
-        <members>NewAndEditAddress</members>
-        <members>NewAndEditAgencyContact</members>
-        <members>NewAndEditASEActivity</members>
-        <members>NewAndEditCampaignMember</members>
-        <members>NewAndEditCase</members>
-        <members>NewAndEditContact</members>
-        <members>NewAndEditInquiryForm</members>
-        <members>NewAndEditInspectionReport</members>
-        <members>NewAndEditLead</members>
-        <members>NewAndEditQIS</members>
-        <members>NewAndEditRepairSubOrder</members>
-        <members>NewAndEditReport</members>
-        <members>NewAndEditTenderinformation</members>
-        <members>NewConsumApply</members>
-        <members>NewConsumApplyEquipmentSetDetail</members>
-        <members>NewListOfConsumables</members>
-        <members>NewOnCall</members>
-        <members>NewRentalApply</members>
-        <members>NewRepair</members>
-        <members>NewRepairPage</members>
-        <members>OFSInsReportLayout</members>
-        <members>QISPDF</members>
-        <members>RentalApplyUploadPdf</members>
-        <members>SearchContactPage</members>
-        <members>SearchLeadPage</members>
-        <members>SearchVisitor</members>
-        <members>SimpleEventRegister</members>
-        <members>SLAReportDetails</members>
-        <members>StartTrading</members>
-        <members>StraightBackAddress</members>
-        <members>TenderInformationUploadPdf</members>
-        <members>TestClass</members>
-        <members>TestVfPage</members>
-        <members>UploadPdf</members>
-        <members>ViewAddressDecryptInfo</members>
-        <members>ViewAgencyContactDecryptInfo</members>
-        <members>ViewASEActivityDecryptInfo</members>
-        <members>ViewCaseDecryptInfo</members>
-        <members>ViewConsumApplyEquipmentSetDetailDecrypt</members>
-        <members>ViewContactDecryptInfo</members>
-        <members>ViewDecryptConsumApply</members>
-        <members>ViewEventDecryptInfo</members>
-        <members>ViewInquiryFormDecryptInfo</members>
-        <members>ViewInspectionReportDecryptInfo</members>
-        <members>ViewLeadDecryptInfo</members>
-        <members>ViewListOfConsumablesDecrypt</members>
-        <members>ViewOnCallDecrypt</members>
-        <members>ViewParticipantsDecryptInfo</members>
-        <members>ViewQISReportDecryptInfo</members>
-        <members>ViewRentalApplyDecrypt</members>
-        <members>ViewRepairEncrypt</members>
-        <members>ViewRepairSubOrderDecryptInfo</members>
-        <members>ViewReportDecryptInfo</members>
-        <members>ViewTenderinformationDecryptInfo</members>
-        <members>XinDailyReport</members>
-        <members>SearchAWSContactByNamePage</members>        
-        <name>ApexPage</name>
-    </types>
-    <types>
-        <members>ContactHpDeptUpd</members>
-        <members>FileAddressTrigger</members>
-        <members>Repair</members>
-        <name>ApexTrigger</name>
-    </types>
-    <types>
-        <members>AgencyAccount</members>
-        <members>NewAgencyContact</members>
-        <members>WeeklyReport</members>
-        <name>AuraDefinitionBundle</name>
-    </types>
-    <types>
-        <members>AWSService</members>
-        <name>StaticResource</name>
+        <members>lexInventoryCount</members>
+        <name>LightningComponentBundle</name>
     </types>
     <version>52.0</version>
 </Package>
\ No newline at end of file

--
Gitblit v1.9.1