From cd05a7b0ab8dd5838f8998fb36fc0435fd9c5b84 Mon Sep 17 00:00:00 2001
From: buli <137736985@qq.com>
Date: 星期二, 11 七月 2023 14:07:40 +0800
Subject: [PATCH] LEX Community Code Deploy0711

---
 force-app/main/default/classes/LexSummonsCreatControllerTest.cls | 3845 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 3,661 insertions(+), 184 deletions(-)

diff --git a/force-app/main/default/classes/LexSummonsCreatControllerTest.cls b/force-app/main/default/classes/LexSummonsCreatControllerTest.cls
index e46778e..63245bf 100644
--- a/force-app/main/default/classes/LexSummonsCreatControllerTest.cls
+++ b/force-app/main/default/classes/LexSummonsCreatControllerTest.cls
@@ -2,61 +2,987 @@
 private class LexSummonsCreatControllerTest {
   @isTest
   static void testInit() {
-    System.Test.startTest();
     Account accountItem1;
     Account accountItem2;
     User userTest;
-    User thisUser = [SELECT Id FROM User WHERE Id = :UserInfo.getUserId()];
-    System.runAs(thisUser) {
-      List<RecordType> rectCo = [
-        SELECT Id
-        FROM RecordType
-        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '璨╁2搴�'
-      ];
-      if (rectCo.size() == 0) {
-        return;
-      }
-      List<RecordType> rectHp = [
-        SELECT Id
-        FROM RecordType
-        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鐥呴櫌'
-      ];
-      if (rectHp.size() == 0) {
-        return;
-      }
-      List<RecordType> rectHos = [
-        SELECT Id
-        FROM RecordType
-        WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鐥呴櫌'
-      ];
-      if (rectHos.size() == 0) {
-        return;
-      }
+    String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('Agency')
+      .getRecordTypeId();
+    String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('HP')
+      .getRecordTypeId();
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    accountItem1 = new Account(
+      Name = 'Testaccount001',
+      RecordTypeId = rectCo,
+      AgentCode_Ext__c = '9999900'
+    );
+    insert accountItem1;
+    accountItem2 = new Account(
+      Name = 'Testaccount002',
+      RecordTypeId = rectHp,
+      AgentCode_Ext__c = '9999999',
+      ParentId = accountItem1.Id,
+      Contract_Decide_Start_Date__c = Date.today(),
+      ENG_Dealer__c = true,
+      BillingCity = null
+    );
+    insert accountItem2;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountId = accountItem1.Id
+    );
+    insert core;
 
-      Profile prof = [
-        SELECT Id
-        FROM Profile
-        WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    Agency_Hospital_Link__c ahl = new Agency_Hospital_Link__c();
+    ahl.Name = 'test1缁忛攢鍟嗗尰闄�';
+    ahl.Hospital__c = accountItem2.Id;
+    ahl.Agency__c = accountItem1.Id;
+    insert new List<Agency_Hospital_Link__c>{ ahl };
+
+    System.runAs(new user(ID = UserInfo.getUserID())) {
+      userTest = new User(
+        ContactId = core.id,
+        Alias = 'newUser',
+        Email = 'newuser@testorg.com',
+        EmailEncodingKey = 'UTF-8',
+        LastName = 'TestUser',
+        LanguageLocaleKey = 'zh_CN',
+        LocaleSidKey = 'zh_CN',
+        ProfileId = prof.Id,
+        TimeZoneSidKey = 'Asia/Shanghai',
+        UserName = 'testUser@testorg.com',
+        UserPro_Type__c = 'ENG',
+        Work_Location__c = '鍖椾含'
+      );
+      insert userTest;
+    }
+    //鍙戣揣
+    Consumable_order__c consOrder = new Consumable_order__c();
+    consOrder.Name = 'test01';
+    consOrder.Order_status__c = '鎵瑰噯';
+    consOrder.Deliver_date__c = Date.today();
+    consOrder.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+    consOrder.Order_type__c = '璁㈠崟';
+    consOrder.Order_ProType__c = 'ENG';
+    consOrder.Dealer_Info__c = accountItem1.Id;
+    consOrder.Delivery_detail_count__c = 5;
+    insert consOrder;
+
+    // create ContentVersions
+    list<ContentVersion> cvList = new List<ContentVersion>();
+    cvList.add(
+      new ContentVersion(
+        Title = 'test1',
+        PathOnClient = '/' + 'Test1.txt',
+        VersionData = Blob.valueOf('test data 1'),
+        IsMajorVersion = true
+      )
+    );
+    cvList.add(
+      new ContentVersion(
+        Title = 'test2',
+        PathOnClient = '/' + 'Test2.txt',
+        VersionData = Blob.valueOf('test data 2'),
+        IsMajorVersion = true
+      )
+    );
+    cvList.add(
+      new ContentVersion(
+        Title = 'test3',
+        PathOnClient = '/' + 'Test3.txt',
+        VersionData = Blob.valueOf('test data 3'),
+        IsMajorVersion = true
+      )
+    );
+    insert cvList;
+    // retrieve Ids for ContentDocuments created on insert of ContentVersions
+    list<Id> cdIdList = new List<Id>();
+    for (ContentDocument cd : [
+      SELECT Id, LatestPublishedVersionId
+      FROM ContentDocument
+      WHERE
+        LatestPublishedVersionId = :cvList[0].Id
+        OR LatestPublishedVersionId = :cvList[1].Id
+        OR LatestPublishedVersionId = :cvList[2].Id
+      ORDER BY Title
+    ]) {
+      cdIdList.add(cd.Id);
+    }
+    system.assertEquals(3, cdIdList.size());
+    list<ContentDocumentLink> cdlList = new List<ContentDocumentLink>();
+    cdlList.add(
+      new ContentDocumentLink(
+        ContentDocumentId = cdIdList[0],
+        LinkedEntityId = consOrder.Id,
+        ShareType = 'V'
+      )
+    );
+    insert cdlList;
+    LexSummonsCreatController.saveFile(
+      consOrder.Id,
+      'A-65224941-20200923--1.docx',
+      'Unit Test Attachment Body'
+    );
+    LexSummonsCreatController.getFiles(consOrder.Id);
+    LexSummonsCreatController.deleteAtt(cvList[0].Id);
+    System.runAs(userTest) {
+      String userId = UserInfo.getUserId();
+      User thisUserInfo = [
+        SELECT
+          accountid,
+          UserPro_Type__c,
+          ContactId,
+          Contact.AccountId,
+          Contact.Account.Name,
+          Work_Location__c
+        FROM User
+        WHERE id = :userId
       ];
-      accountItem1 = new Account(
-        Name = 'Testaccount001',
-        RecordTypeId = rectCo[0].Id,
-        AgentCode_Ext__c = '9999900'
+      String accountId = thisUserInfo.accountid;
+      String accountName = thisUserInfo.Contact.Account.Name;
+      String agencyProType = thisUserInfo.UserPro_Type__c;
+      String userWorkLocation = thisUserInfo.Work_Location__c;
+      thisUserInfo.UserPro_Type__c = '';
+      update thisUserInfo;
+      if (String.isBlank(thisUserInfo.UserPro_Type__c)) {
+        agencyProType = 'ET';
+      }
+      Product2 prod07 = new Product2(
+        Name = 'Test07',
+        ProductCode = 'Test07',
+        Asset_Model_No__c = 'Test07',
+        Category3__c = 'CDS',
+        Category4__c = 'OER',
+        Category5__c = 'Celon',
+        SFDA_Status__c = '鏈夊姽',
+        Product_Status__c = '姝e父閿�鍞�',
+        SFDA_Approbated_Status__c = '鏈夋晥',
+        Dealer_special_Object__c = true,
+        SFDA_Approbation_No__c = 'Test002',
+        Packing_list_manual__c = 1,
+        SFDA_Expiration_Date__c = Date.today(),
+        Manual_Entry__c = false
       );
-      insert accountItem1;
-      accountItem2 = new Account(
-        Name = 'Testaccount002',
-        RecordTypeId = rectHp[0].Id,
-        AgentCode_Ext__c = '9999999'
+      insert new List<Product2>{ prod07 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'MH-155:鐧藉钩琛″附',
+        OT_CODE_Text__c = 'Test001',
+        Product2__c = prod07.Id,
+        Category3_text__c = 'test123',
+        Category4_text__c = 'test123',
+        Category5_text__c = 'test123'
       );
-      insert accountItem2;
-      Contact core = new Contact(
-        email = 'jplumber@salesforce.com',
-        firstname = 'Joe',
-        lastname = 'Plumber',
-        accountId = accountItem1.Id
+      insert new List<Product2__c>{ pro1 };
+      //鍙戣揣
+      Consumable_order__c createIdSend = new Consumable_order__c();
+      createIdSend.Name = 'testMing1';
+      createIdSend.Order_status__c = '鎵瑰噯';
+      createIdSend.Deliver_date__c = Date.today();
+      createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend.Order_type__c = '璁㈠崟';
+      createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend.Order_ForCustomerText__c = 'Test000';
+      createIdSend.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend.Dealer_Info__c = accountItem1.Id;
+      createIdSend.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend1 = new Consumable_order__c();
+      createIdSend1.Name = 'testMing2';
+      createIdSend1.Order_status__c = '鎵瑰噯';
+      createIdSend1.Deliver_date__c = Date.today();
+      createIdSend1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend1.Order_type__c = '璁㈠崟';
+      createIdSend1.Order_ProType__c = 'ENG';
+      createIdSend1.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      createIdSend1.Order_ForCustomerText__c = '';
+      createIdSend1.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend1.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend1.Dealer_Info__c = accountItem1.Id;
+      createIdSend1.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend2 = new Consumable_order__c();
+      createIdSend2.Name = 'testMing2';
+      createIdSend2.Order_status__c = '鎵瑰噯';
+      createIdSend2.Deliver_date__c = Date.today();
+      createIdSend2.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend2.Order_type__c = '璁㈠崟';
+      createIdSend2.Order_ProType__c = 'ENG';
+      createIdSend2.SummonsForDirction__c = '';
+      createIdSend2.Order_ForCustomerText__c = '';
+      createIdSend2.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend2.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend2.Dealer_Info__c = accountItem1.Id;
+      createIdSend2.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend3 = new Consumable_order__c();
+      createIdSend3.Name = 'testMing123456';
+      createIdSend3.Order_status__c = '鎵瑰噯';
+      createIdSend3.Deliver_date__c = Date.today();
+      createIdSend3.Arrive_Order__c = createIdSend.Id;
+      createIdSend3.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend3.Order_type__c = '璁㈠崟';
+      createIdSend3.Order_ProType__c = 'ENG';
+      createIdSend3.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend3.Order_ForDealerText__c = '';
+      createIdSend3.Order_ForCustomerText__c = 'Test001';
+      createIdSend3.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend3.Dealer_Info__c = accountItem1.Id;
+      createIdSend3.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend4 = new Consumable_order__c();
+      createIdSend4.Name = 'testMing1';
+      createIdSend4.Order_status__c = '鎵瑰噯';
+      createIdSend4.Deliver_date__c = Date.today();
+      createIdSend4.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend4.Order_type__c = '璁㈠崟';
+      createIdSend4.Order_ProType__c = 'ENG';
+      createIdSend4.SummonsForDirction__c = '鍖婚櫌璇曠敤';
+      createIdSend4.Order_ForDealerText__c = '';
+      createIdSend4.Order_ForCustomerText__c = 'Test000';
+      createIdSend4.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend4.Dealer_Info__c = accountItem1.Id;
+      createIdSend4.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend5 = new Consumable_order__c();
+      createIdSend5.Name = 'testMing1111111';
+      createIdSend5.Order_status__c = '鎵瑰噯';
+      createIdSend5.Deliver_date__c = Date.today();
+      createIdSend5.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend5.Order_type__c = '璁㈠崟';
+      createIdSend5.Order_ProType__c = 'ENG';
+      createIdSend5.SummonsForDirction__c = '閿�鍞粰浜岀骇缁忛攢鍟�';
+      createIdSend5.Order_ForDealerText__c = '';
+      createIdSend5.Order_ForCustomerText__c = '';
+      createIdSend5.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend5.Dealer_Info__c = accountItem1.Id;
+      createIdSend5.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend6 = new Consumable_order__c();
+      createIdSend6.Name = 'testMing222222';
+      createIdSend6.Order_status__c = '鎵瑰噯';
+      createIdSend6.Deliver_date__c = Date.today();
+      createIdSend6.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend6.Order_type__c = '璁㈠崟';
+      createIdSend6.Order_ProType__c = 'ENG';
+      createIdSend6.SummonsForDirction__c = '閿�鍞粰浜岀骇缁忛攢鍟�';
+      createIdSend6.Order_ForDealerText__c = '';
+      createIdSend6.Order_ForCustomerText__c = '';
+      createIdSend6.SummonsStatus_c__c = '';
+      createIdSend6.Dealer_Info__c = accountItem1.Id;
+      createIdSend6.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend7 = new Consumable_order__c();
+      createIdSend7.Name = 'testMing222222';
+      createIdSend7.Order_status__c = '鎵瑰噯';
+      createIdSend7.Deliver_date__c = Date.today();
+      createIdSend7.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend7.Order_type__c = '璁㈠崟';
+      createIdSend7.Order_ProType__c = 'ENG';
+      createIdSend7.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend7.Order_ForDealerText__c = '';
+      createIdSend7.Order_ForCustomerText__c = '';
+      createIdSend7.SummonsStatus_c__c = '';
+      createIdSend7.Dealer_Info__c = accountItem1.Id;
+      createIdSend7.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend8 = new Consumable_order__c();
+      createIdSend8.Name = 'testMing222222';
+      createIdSend8.Order_status__c = '鎵瑰噯';
+      createIdSend8.Deliver_date__c = Date.today();
+      createIdSend8.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend8.Order_type__c = '璁㈠崟';
+      createIdSend8.Order_ProType__c = 'ENG';
+      createIdSend8.SummonsForDirction__c = '娴嬭瘯001';
+      createIdSend8.Order_ForDealerText__c = '';
+      createIdSend8.Order_ForCustomerText__c = '';
+      createIdSend8.SummonsStatus_c__c = '';
+      createIdSend8.Dealer_Info__c = accountItem1.Id;
+      createIdSend8.Delivery_detail_count__c = 5;
+
+      //鍙戠エ淇℃伅
+      Consumable_order__c createIdSend9 = new Consumable_order__c();
+      createIdSend9.Name = 'invoice01';
+      createIdSend9.Invoice_status__c = '宸插畬鎴�';
+      createIdSend9.Order_type__c = '鍙戠エ';
+      createIdSend9.RecordTypeid = System.Label.RT_ConOrder_Invoice;
+      createIdSend9.Order_status__c = '鑽夋涓�';
+      createIdSend9.Invoice_Date__c = Date.Today();
+      createIdSend9.Order_ProType__c = 'ENG';
+      createIdSend9.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+
+      Consumable_order__c createIdSend10 = new Consumable_order__c();
+      createIdSend10.Name = 'OCMtest';
+      createIdSend10.Order_status__c = '鎵瑰噯';
+      createIdSend10.Order_type__c = '鍒拌揣';
+      createIdSend10.Dealer_Info__c = accountItem1.Id;
+      createIdSend10.RecordTypeid = System.Label.RT_ConOrder_Arrive;
+      createIdSend10.Order_ProType__c = 'ET';
+
+      Consumable_order__c createIdSend11 = new Consumable_order__c();
+      createIdSend11.Name = 'OCM_01_002';
+      createIdSend11.Order_status__c = '鎵瑰噯';
+      createIdSend11.Order_type__c = '浼犵エ';
+      createIdSend11.Arrive_Order__c = createIdSend9.Id;
+      createIdSend11.Dealer_Info__c = accountItem1.Id;
+      createIdSend11.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      createIdSend11.RecordTypeid = System.Label.RT_ConOrder_Order;
+      createIdSend11.Order_ProType__c = 'ET';
+
+      Consumable_order__c testList1 = new Consumable_order__c();
+      testList1.Name = 'Test1';
+      testList1.Summons_Sale_Status__c = '鍑鸿揣';
+      testList1.SummonsStatus_c__c = '宸插畬鎴�';
+      testList1.Arrive_Order__c = createIdSend9.Id;
+      testList1.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      testList1.Order_status__c = '鑽夋涓�';
+      testList1.Order_type__c = '浼犵エ';
+      testList1.Dealer_info__c = accountItem1.Id;
+      testList1.ConInvoice_Code__c = createIdSend9.id;
+
+      //鍒拌揣
+      Consumable_order__c createIdArrived = new Consumable_order__c();
+      createIdArrived.Name = 'testMing2';
+      createIdArrived.Order_status__c = '鎵瑰噯';
+      createIdArrived.Deliver_date__c = Date.today();
+      createIdArrived.RecordTypeid = System.Label.RT_ConOrder_Arrive;
+      createIdArrived.Order_type__c = '璁㈠崟';
+      createIdArrived.Order_ProType__c = 'ET';
+      createIdArrived.orderPattern__c = 'promotionorder';
+      createIdArrived.Dealer_Info__c = accountItem1.Id;
+      createIdArrived.Delivery_detail_count__c = 5;
+      insert new List<Consumable_order__c>{
+        createIdSend,
+        createIdSend1,
+        createIdSend2,
+        createIdSend3,
+        createIdSend4,
+        createIdSend5,
+        createIdSend6,
+        createIdSend7,
+        createIdSend8,
+        createIdSend9,
+        createIdSend10,
+        createIdSend11,
+        createIdArrived,
+        testList1
+      };
+
+      System.debug('createIdSend9.id = ' + createIdSend9.id);
+
+      Consumable_order_LinkTable__c order_LinkTable1 = new Consumable_order_LinkTable__c(
+        Name = 'order_LinkTable1',
+        Outboundorder_Code_link__c = testList1.Id,
+        Invoice_Code_link__c = createIdSend9.Id
       );
-      insert core;
+      insert new List<Consumable_order_LinkTable__c>{ order_LinkTable1 };
+
+      Consumable_orderdetails__c coc = new Consumable_orderdetails__c();
+      coc.Name = 'Too001';
+      coc.Dealer_Custom_Price__c = 999.00;
+      coc.Consumable_count__c = 3;
+      coc.Consumable_product__c = pro1.Id;
+      coc.Box_Piece__c = '鐩�';
+      coc.isOutPattern__c = true;
+      coc.Consumable_order__c = createIdSend.Id;
+      coc.Unitprice_To_agency__c = 999.00;
+      coc.Delivery_List_RMB__c = 999.00;
+      coc.Shipment_Count__c = null;
+      coc.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc1 = new Consumable_orderdetails__c();
+      coc1.Name = 'Too001';
+      coc1.Dealer_Custom_Price__c = 999.00;
+      coc1.Consumable_count__c = 3;
+      coc1.Consumable_product__c = pro1.Id;
+      coc1.Box_Piece__c = '鐩�';
+      coc1.isOutPattern__c = true;
+      coc1.Consumable_order__c = createIdSend3.Id;
+      coc1.Unitprice_To_agency__c = 999.00;
+      coc1.Delivery_List_RMB__c = 999.00;
+      coc1.Shipment_Count__c = 9999.00;
+      coc1.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc2 = new Consumable_orderdetails__c();
+      coc2.Name = 'Too001';
+      coc2.Dealer_Custom_Price__c = 999.00;
+      coc2.Consumable_count__c = 3;
+      coc2.Consumable_product__c = pro1.Id;
+      coc2.Box_Piece__c = '鐩�';
+      coc2.isOutPattern__c = true;
+      coc2.Consumable_order__c = createIdSend3.Id;
+      coc2.Unitprice_To_agency__c = 999.00;
+      coc2.Delivery_List_RMB__c = -999.00;
+      coc2.Shipment_Count__c = 9999.00;
+      coc2.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      insert new List<Consumable_orderdetails__c>{ coc, coc1, coc2 };
+
+      Consumable_order_details2__c conOrderDetail1 = new Consumable_order_details2__c();
+      conOrderDetail1.Name = 'OCM_01_001001';
+      conOrderDetail1.Consumable_ZS_order__c = createIdArrived.Id;
+      conOrderDetail1.Consumable_Product__c = pro1.Id;
+      conOrderDetail1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      conOrderDetail1.Bar_Code__c = '11111';
+      conOrderDetail1.Arrive_date__c = Date.today().addDays(1);
+      conOrderDetail1.Send_Date__c = null;
+      conOrderDetail1.Used_date__c = null;
+      conOrderDetail1.Return_date__c = null;
+      conOrderDetail1.Consumable_order_minor__c = createIdArrived.Id;
+      conOrderDetail1.Lose_Flag__c = false;
+      conOrderDetail1.exchangeOutPattern__c = false;
+      conOrderDetail1.Cancellation_Flag__c = false;
+      conOrderDetail1.Box_Piece__c = '鐩�';
+      conOrderDetail1.Sterilization_limit__c = Date.Today();
+      insert new List<Consumable_order_details2__c>{ conOrderDetail1 };
+
+      hospitalprice__c hp1 = new hospitalprice__c();
+      hp1.hospital__c = accountId;
+      hp1.account__c = accountId;
+      hp1.product__c = pro1.Id;
+      insert new List<hospitalprice__c>{ hp1 };
+
+      Dealer_elationship__c dealerelationship = new Dealer_elationship__c(
+        Dealer_principal__c = accountItem1.id,
+        Dealer_subordinate__c = accountItem1.id
+      );
+      Dealer_elationship__c dealerelationship1 = new Dealer_elationship__c(
+        Dealer_principal__c = accountItem1.id,
+        Dealer_subordinate__c = accountItem1.id
+      );
+      insert new List<Dealer_elationship__c>{
+        dealerelationship,
+        dealerelationship1
+      };
+
+      LexSummonsCreatController.ConsumableorderdetailsInfo c0 = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      c0.packinglist = 0;
+      c0.approbation_No = null;
+      c0.expiration_Date = Date.Today();
+      c0.boxorpiecein = null;
+      c0.hospitalSpecialOffer = true;
+      LexSummonsCreatController.ConsumableorderdetailsInfo c1 = new LexSummonsCreatController.ConsumableorderdetailsInfo(
+        coc
+      );
+      c1.check = true;
+      c1.oldCheck = true;
+      c1.orderdetails1 = coc;
+      c1.orderdetails2 = null;
+      c1.Prod = coc.Consumable_Product__r;
+      c1.oldConsumableCount = coc.Shipment_Count__c;
+      c1.canSelect = true;
+      c1.allnumber = 0.00;
+      c1.Boxnumber = 0.00;
+      c1.Piecenumber = 0.00;
+      c1.BoxPiece = coc.Box_Piece__c;
+      c1.hospitalSpecialOffer = true;
+      c1.hosPro = false;
+      List<SelectOption> boxorpiece = new List<SelectOption>();
+      boxorpiece.add(new SelectOption('鐩�', '鐩�'));
+      boxorpiece.add(new SelectOption('涓�', '涓�'));
+      Map<String, String> boxorpieceMap = new Map<String, String>();
+      boxorpieceMap.put('鐩�', '鐩�');
+      boxorpieceMap.put('涓�', '涓�');
+      LexSummonsCreatController.ConsumableorderdetailsInfo coder = new LexSummonsCreatController.ConsumableorderdetailsInfo(
+        conOrderDetail1
+      );
+      coder.check = true;
+      coder.oldCheck = true;
+      coder.hospitalSpecialOffer = true;
+      coder.orderdetails1 = null;
+      coder.orderdetails2 = conOrderDetail1;
+      coder.Prod = conOrderDetail1.Consumable_Product__r;
+      coder.canSelect = true;
+      coder.allnumber = 0;
+      coder.Boxnumber = 0;
+      coder.Piecenumber = 0;
+      coder.hosPro = false;
+      LexSummonsCreatController.ConsumableorderdetailsInfo c2 = new LexSummonsCreatController.ConsumableorderdetailsInfo(
+        pro1
+      );
+      c2.sortBy = true;
+      c2.Boxnumber = 20;
+      c1.compareTo(c2);
+      c1.Boxnumber = 20;
+      c2.Boxnumber = 10;
+      c1.compareTo(c2);
+      c1.Boxnumber = 10;
+      c2.Boxnumber = 20;
+      c2.compareTo(c1);
+      c1.Boxnumber = 20;
+      c2.Boxnumber = 10;
+      c2.compareTo(c1);
+      LexSummonsCreatController.ConsumableorderdetailsInfo c3 = new LexSummonsCreatController.ConsumableorderdetailsInfo(
+        pro1
+      );
+      c3.sortBy = false;
+      c3.Boxnumber = 10;
+      c1.compareTo(c3);
+      c1.Boxnumber = 20;
+      c3.Boxnumber = 10;
+      c1.compareTo(c3);
+      c3.Boxnumber = 10;
+      c1.Boxnumber = 20;
+      c3.compareTo(c1);
+      c3.Boxnumber = 20;
+      c3.Boxnumber = 10;
+      c1.compareTo(c1);
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c4 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c4.check = true;
+      c4.oldCheck = true;
+      c4.orderdetails1 = null;
+      c4.orderdetails2 = null;
+      c4.Prod = null;
+      c4.Boxnumber = 0.00;
+      c4.Piecenumber = 0.00;
+      c4.allnumber = 0.00;
+      c4.oldConsumableCount = 0.00;
+      c4.canSelect = true;
+      c4.sortBy = true;
+      c4.packinglist = 1;
+      c4.approbation_No = null;
+      c4.expiration_Date = Date.Today();
+      c4.boxorpiecein = null;
+      c4.boxorpiece = null;
+      c4.boxorpieceMap = null;
+      c4.concc = null;
+      c4.BoxPiece = null;
+      c4.hospitalSpecialOffer = true;
+      c4.hosPro = true;
+      c4.unitOptions = null;
+      c4.unitValue = null;
+      c4.shipmentNumber = 1;
+      c4.shippingUnitPrice = 0.00;
+      c4.recordId = null;
+      c4.Id = null;
+      c4.Name = null;
+      c4.Category3 = null;
+      c4.Category4 = null;
+      c4.Category5 = null;
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c5 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c5.check = true;
+      c5.orderdetails1 = coc;
+      c5.hospitalSpecialOffer = true;
+      c5.allnumber = 1999.00;
+      pageRecordsLwcLwc.add(c5);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c6 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c6.check = true;
+      c6.oldCheck = true;
+      c6.hospitalSpecialOffer = true;
+      c6.orderdetails1 = coc1;
+      c6.orderdetails2 = conOrderDetail1;
+      c6.Prod = pro1;
+      c6.Boxnumber = 0.00;
+      c6.Piecenumber = 0.00;
+      c6.allnumber = 1999.00;
+      c6.oldConsumableCount = 1999.00;
+      c6.canSelect = true;
+      c6.sortBy = true;
+      c6.packinglist = 1;
+      c6.approbation_No = '';
+      c6.expiration_Date = Date.Today();
+      c6.boxorpiecein = '';
+      c6.boxorpiece = null;
+      c6.boxorpieceMap = null;
+      c6.concc = null;
+      c6.BoxPiece = null;
+      c6.hosPro = true;
+      pageRecords.add(c6);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecordsLwc = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c7 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c7.check = true;
+      c7.oldCheck = true;
+      c7.hospitalSpecialOffer = true;
+      c7.orderdetails1 = coc2;
+      c7.orderdetails2 = conOrderDetail1;
+      c7.Prod = pro1;
+      c7.Boxnumber = 0.00;
+      c7.Piecenumber = 0.00;
+      c7.allnumber = 1999.00;
+      c7.oldConsumableCount = 1999.00;
+      c7.canSelect = true;
+      c7.sortBy = true;
+      c7.packinglist = 1;
+      c7.approbation_No = '';
+      c7.expiration_Date = Date.Today();
+      c7.boxorpiecein = '';
+      c7.boxorpiece = null;
+      c7.boxorpieceMap = null;
+      c7.concc = null;
+      c7.BoxPiece = null;
+      c7.hosPro = true;
+      pageRecordsLwc.add(c7);
+
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = coc;
+      codi.Prod = pro1;
+      consumable.add(codi);
+      List<SelectOption> categoryOptionList = new List<SelectOption>();
+      System.Test.startTest();
+      Integer size = Integer.valueOf(System.Label.orderdetLimitsize);
+      String ESetId = null;
+      String statusEdit = null;
+      String arrive = null;
+      String alertMessage = null;
+
+      String category1 = '3400PK:PK閽� 5mm脳33cm';
+      String Category3 = '鑵硅厰闀滄墜鏈�';
+      String Category4 = 'PK';
+      String Category5 = 'G400';
+      LexSummonsCreatController.category1 = category1;
+      LexSummonsCreatController.Category3 = Category3;
+      LexSummonsCreatController.Category4 = Category4;
+      LexSummonsCreatController.Category5 = Category5;
+      LexSummonsCreatController.statusEdit = statusEdit;
+      LexSummonsCreatController.alertMessage = alertMessage;
+      LexSummonsCreatController.zaikuId = new List<String>();
+      LexSummonsCreatController.categoryOptionMap = new Map<String, String>();
+      LexSummonsCreatController.category4OptionMap = new Map<String, String>();
+      LexSummonsCreatController.category5OptionMap = new Map<String, String>();
+      LexSummonsCreatController.orderpieceorboxMap = new Map<String, String>();
+      LexSummonsCreatController.orderagencypriceMap = new Map<String, Decimal>();
+      LexSummonsCreatController.orderpriceMap = new Map<String, Decimal>();
+      LexSummonsCreatController.orderdetCountMap = new Map<String, Decimal>();
+      LexSummonsCreatController.hasSpecialHos = false;
+      LexSummonsCreatController.outOutPattern = null;
+      LexSummonsCreatController.provinceOptsMap = new Map<String, String>();
+      LexSummonsCreatController.categoryOptionList = new List<SelectOption>();
+      LexSummonsCreatController.category4OptionList = new List<SelectOption>();
+      LexSummonsCreatController.category5OptionList = new List<SelectOption>();
+      LexSummonsCreatController.outOutPatternOptionList = new List<SelectOption>();
+      LexSummonsCreatController.orderdetails = new List<Consumable_orderdetails__c>();
+      LexSummonsCreatController.consumableorderdetailsRecords = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.consumableorderdetailsRecordserror = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      List<SelectOption> cityOpts1 = new List<SelectOption>();
+      cityOpts1.add(new SelectOption('', '--鏃�--'));
+      cityOpts1.add(new SelectOption('ishos', '鍖婚櫌鐗逛环浜у搧'));
+      cityOpts1.add(new SelectOption('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�'));
+      Map<String, String> optionMap = new Map<String, String>();
+      optionMap.put('', '-鏃�-');
+      optionMap.put('ishos', '鍖婚櫌鐗逛环浜у搧');
+      optionMap.put('nothos', '闈炲尰闄㈢壒浠蜂骇鍝�');
+
+      Integer count = LexSummonsCreatController.consumableorderdetailsCount;
+      Consumable_order__c cocOrderId = new Consumable_order__c();
+      LexSummonsCreatController.coc = cocOrderId;
+      String consumableorderId = LexSummonsCreatController.consumableorderId;
+      LexSummonsCreatController summonCC = new LexSummonsCreatController();
+
+      LexSummonsCreatController.init(
+        testList1.Id,
+        'Test',
+        1,
+        100,
+        testList1.Id
+      );
+      LexSummonsCreatController.firstInit(ESetId);
+      LexSummonsCreatController.init(ESetId, statusEdit, 1, 100, arrive);
+      LexSummonsCreatController.init(
+        ESetId,
+        statusEdit,
+        1,
+        100,
+        createIdSend.Id
+      );
+      LexSummonsCreatController.init(
+        createIdSend.Id,
+        statusEdit,
+        1,
+        100,
+        arrive
+      );
+      LexSummonsCreatController.init(
+        createIdSend.Id,
+        'Test',
+        1,
+        100,
+        createIdSend3.Id
+      );
+      LexSummonsCreatController.init(ESetId, 'Test', 1, 100, createIdSend.Id);
+      LexSummonsCreatController.searchConsumableorderdetails(
+        'ENG',
+        'Testaccount001',
+        '鍖椾含',
+        'ishos',
+        'Test07',
+        'CDS',
+        'OER',
+        'Celon',
+        true,
+        pageRecords,
+        consumable,
+        '',
+        1,
+        100
+      );
+      LexSummonsCreatController.searchConsumableorderdetails(
+        'ENG',
+        'Testaccount001',
+        '鍖椾含',
+        'nothos',
+        'Test07',
+        'CDS',
+        'OER',
+        'Celon',
+        true,
+        pageRecords,
+        consumable,
+        '',
+        1,
+        100
+      );
+      LexSummonsCreatController.save(
+        createIdSend2,
+        '',
+        '',
+        '',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend2.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend1,
+        '',
+        '',
+        'Test',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend1.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend1,
+        'Test',
+        'Test',
+        'Test',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend1.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend7,
+        '',
+        '',
+        accountItem1.Id,
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend7.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        'Test',
+        'Test',
+        'Test',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend3,
+        'Test',
+        'Test',
+        '',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend3.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend3,
+        '',
+        '',
+        'Test',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend3.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend3,
+        'Test',
+        'Test',
+        'Test',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend3.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend4,
+        '',
+        '',
+        '',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend4.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend5,
+        '',
+        '',
+        '',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend5.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend5,
+        '',
+        '',
+        'Test',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend5.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend5,
+        'Test',
+        'Test',
+        'Test',
+        pageRecordsLwcLwc,
+        accountId,
+        createIdSend5.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend8,
+        accountId,
+        'Test',
+        accountId,
+        pageRecords,
+        accountId,
+        createIdSend8.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend8,
+        accountId,
+        'Test',
+        null,
+        pageRecordsLwc,
+        accountId,
+        createIdSend8.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.checkOutPattern();
+      LexSummonsCreatController.PraseToPDF(createIdSend, createIdSend.Id);
+      LexSummonsCreatController.search('Testaccount001');
+      LexSummonsCreatController.GoodsDelivery(
+        createIdSend,
+        createIdSend.Id,
+        pageRecordsLwcLwc
+      );
+      LexSummonsCreatController.GoodsDelivery(
+        createIdSend3,
+        createIdSend3.Id,
+        pageRecords
+      );
+      LexSummonsCreatController.GoodsDelivery(
+        createIdSend1,
+        createIdSend1.Id,
+        pageRecordsLwcLwc
+      );
+      LexSummonsCreatController.GoodsDelivery(
+        createIdSend6,
+        createIdSend6.Id,
+        pageRecordsLwcLwc
+      );
+      LexSummonsCreatController.DelConsumable(createIdSend.Id);
+      System.Test.stopTest();
+    }
+  }
+
+  @isTest
+  static void testSaveMethod() {
+    Account accountItem1;
+    Account accountItem2;
+    User userTest;
+    String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('Agency')
+      .getRecordTypeId();
+    String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('HP')
+      .getRecordTypeId();
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    accountItem1 = new Account(
+      Name = 'Testaccount001',
+      RecordTypeId = rectCo,
+      AgentCode_Ext__c = '9999900'
+    );
+    insert accountItem1;
+    accountItem2 = new Account(
+      Name = 'Testaccount002',
+      RecordTypeId = rectHp,
+      AgentCode_Ext__c = '9999999',
+      ParentId = accountItem1.Id,
+      Contract_Decide_Start_Date__c = Date.today(),
+      ENG_Dealer__c = true,
+      BillingCity = null
+    );
+    insert accountItem2;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountId = accountItem1.Id
+    );
+    insert core;
+    System.runAs(new user(ID = UserInfo.getUserID())) {
       userTest = new User(
         ContactId = core.id,
         Alias = 'newUser',
@@ -81,27 +1007,19 @@
           UserPro_Type__c,
           ContactId,
           Contact.AccountId,
+          Contact.Account.Name,
           Work_Location__c
         FROM User
         WHERE id = :userId
       ];
       String accountId = thisUserInfo.accountid;
+      String accountName = thisUserInfo.Contact.Account.Name;
       String agencyProType = thisUserInfo.UserPro_Type__c;
       String userWorkLocation = thisUserInfo.Work_Location__c;
       thisUserInfo.UserPro_Type__c = '';
       update thisUserInfo;
       if (String.isBlank(thisUserInfo.UserPro_Type__c)) {
         agencyProType = 'ET';
-      }
-      String accountName;
-      Account[] accountInfo = [
-        SELECT Name
-        FROM account
-        WHERE id = :accountId
-        LIMIT 1
-      ];
-      if (accountInfo.size() > 0) {
-        accountName = accountInfo[0].Name;
       }
       Product2 prod07 = new Product2(
         Name = 'Test07',
@@ -115,32 +1033,7 @@
         Packing_list_manual__c = 1,
         Manual_Entry__c = false
       );
-      Product2 prod08 = new Product2(
-        Name = 'Test08',
-        ProductCode = 'Test08',
-        Asset_Model_No__c = 'Test08',
-        Category3__c = 'Test8',
-        Category4__c = 'Test88',
-        Category5__c = 'Test888',
-        SFDA_Status__c = '鏈夊姽',
-        Dealer_special_Object__c = true,
-        Packing_list_manual__c = 1,
-        Manual_Entry__c = false
-      );
-      Product2 prod09 = new Product2(
-        Name = 'Test09',
-        ProductCode = 'Test09',
-        Asset_Model_No__c = 'Test09',
-        Category3__c = 'Test9',
-        Category4__c = 'Test99',
-        Category5__c = 'Test999',
-        SFDA_Status__c = '鏈夊姽',
-        Dealer_special_Object__c = true,
-        Packing_list_manual__c = 1,
-        Manual_Entry__c = false
-      );
-      insert new List<Product2>{ prod07, prod08, prod09 };
-
+      insert new List<Product2>{ prod07 };
       Product2__c pro1 = new Product2__c(
         Name = 'MH-155:鐧藉钩琛″附',
         OT_CODE_Text__c = 'Test001',
@@ -149,16 +1042,1338 @@
         Category4_text__c = 'test123',
         Category5_text__c = 'test123'
       );
-      insert pro1;
-      Product2__c proH = new Product2__c(
-        Name = 'MB-677:BNC鐢电紗',
-        OT_CODE_Text__c = 'Test002',
-        Product2__c = prod08.Id,
+      insert new List<Product2__c>{ pro1 };
+      Consumable_order__c createIdSend = new Consumable_order__c();
+      createIdSend.Name = 'testMing1';
+      createIdSend.Order_status__c = '鎵瑰噯';
+      createIdSend.Deliver_date__c = Date.today();
+      createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend.Order_type__c = '璁㈠崟';
+      createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = '娴嬭瘯0001';
+      createIdSend.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend.Order_ForCustomerText__c = 'Test000';
+      createIdSend.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend.Dealer_Info__c = accountItem1.Id;
+      createIdSend.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend1 = new Consumable_order__c();
+      createIdSend1.Name = 'testMing1';
+      createIdSend1.Order_status__c = '鎵瑰噯';
+      createIdSend1.Deliver_date__c = Date.today();
+      createIdSend1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend1.Order_type__c = '璁㈠崟';
+      createIdSend1.Order_ProType__c = 'ENG';
+      createIdSend1.SummonsForDirction__c = '閿�鍞粰浜岀骇缁忛攢鍟�';
+      createIdSend1.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend1.Order_ForCustomerText__c = 'Test000';
+      createIdSend1.SummonsStatus_c__c = '浠锋牸鏈畾';
+      createIdSend1.Dealer_Info__c = accountItem1.Id;
+      createIdSend1.Delivery_detail_count__c = 5;
+      insert new List<Consumable_order__c>{ createIdSend, createIdSend1 };
+
+      Consumable_orderdetails__c coc = new Consumable_orderdetails__c();
+      coc.Name = 'Too001';
+      coc.Dealer_Custom_Price__c = 999.00;
+      coc.Consumable_count__c = 3;
+      coc.Consumable_product__c = pro1.Id;
+      coc.Box_Piece__c = '鐩�';
+      coc.isOutPattern__c = true;
+      coc.Consumable_order__c = createIdSend.Id;
+      coc.Unitprice_To_agency__c = 999.00;
+      coc.Delivery_List_RMB__c = -999.00;
+      coc.Shipment_Count__c = 9999.00;
+      coc.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc1 = new Consumable_orderdetails__c();
+      coc1.Name = 'Too001';
+      coc1.Dealer_Custom_Price__c = 999.00;
+      coc1.Consumable_count__c = 3;
+      coc1.Consumable_product__c = pro1.Id;
+      coc1.Box_Piece__c = '鐩�';
+      coc1.isOutPattern__c = true;
+      coc1.Consumable_order__c = createIdSend.Id;
+      coc1.Unitprice_To_agency__c = 999.00;
+      coc1.Delivery_List_RMB__c = null;
+      coc1.Shipment_Count__c = 9999.00;
+      coc1.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc2 = new Consumable_orderdetails__c();
+      coc2.Name = 'Too001';
+      coc2.Dealer_Custom_Price__c = 999.00;
+      coc2.Consumable_count__c = 3;
+      coc2.Consumable_product__c = pro1.Id;
+      coc2.Box_Piece__c = '';
+      coc2.isOutPattern__c = true;
+      coc2.Consumable_order__c = createIdSend.Id;
+      coc2.Unitprice_To_agency__c = 999.00;
+      coc2.Delivery_List_RMB__c = 999.00;
+      coc2.Shipment_Count__c = 9999.00;
+      coc2.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc3 = new Consumable_orderdetails__c();
+      coc3.Name = 'Too001';
+      coc3.Dealer_Custom_Price__c = 999.00;
+      coc3.Consumable_count__c = 3;
+      coc3.Consumable_product__c = pro1.Id;
+      coc3.Box_Piece__c = '鐩�';
+      coc3.isOutPattern__c = true;
+      coc3.Consumable_order__c = createIdSend1.Id;
+      coc3.Unitprice_To_agency__c = 999.00;
+      coc3.Delivery_List_RMB__c = 100.00;
+      coc3.Shipment_Count__c = 9999.00;
+      coc3.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      insert new List<Consumable_orderdetails__c>{ coc, coc1, coc2, coc3 };
+
+      Consumable_order_details2__c conOrderDetail1 = new Consumable_order_details2__c();
+      conOrderDetail1.Name = 'OCM_01_001001';
+      conOrderDetail1.Consumable_ZS_order__c = createIdSend.Id;
+      conOrderDetail1.Consumable_Product__c = pro1.Id;
+      conOrderDetail1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      conOrderDetail1.Bar_Code__c = '11111';
+      conOrderDetail1.Arrive_date__c = Date.today().addDays(1);
+      conOrderDetail1.Send_Date__c = null;
+      conOrderDetail1.Used_date__c = null;
+      conOrderDetail1.Return_date__c = null;
+      conOrderDetail1.Consumable_order_minor__c = createIdSend.Id;
+      conOrderDetail1.Lose_Flag__c = false;
+      conOrderDetail1.Cancellation_Flag__c = false;
+      conOrderDetail1.Box_Piece__c = '鐩�';
+      conOrderDetail1.Sterilization_limit__c = Date.Today();
+      insert new List<Consumable_order_details2__c>{ conOrderDetail1 };
+
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c0 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c0.check = true;
+      c0.oldCheck = true;
+      c0.hospitalSpecialOffer = true;
+      c0.orderdetails1 = coc;
+      c0.orderdetails2 = conOrderDetail1;
+      c0.Prod = pro1;
+      c0.Boxnumber = 0.00;
+      c0.Piecenumber = 0.00;
+      c0.allnumber = 1999.00;
+      c0.oldConsumableCount = 1999.00;
+      c0.canSelect = true;
+      c0.sortBy = true;
+      c0.packinglist = 1;
+      c0.approbation_No = '';
+      c0.expiration_Date = Date.Today();
+      c0.boxorpiecein = '';
+      c0.boxorpiece = null;
+      c0.boxorpieceMap = null;
+      c0.concc = null;
+      c0.BoxPiece = null;
+      c0.hosPro = true;
+      pageRecords.add(c0);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords1 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c1 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c1.check = true;
+      c1.oldCheck = false;
+      c1.hospitalSpecialOffer = true;
+      c1.orderdetails1 = coc1;
+      c1.orderdetails2 = conOrderDetail1;
+      c1.Prod = pro1;
+      c1.Boxnumber = 0.00;
+      c1.Piecenumber = 0.00;
+      c1.allnumber = 1999.00;
+      c1.oldConsumableCount = 1999.00;
+      c1.canSelect = true;
+      c1.sortBy = true;
+      c1.packinglist = 1;
+      c1.approbation_No = '';
+      c1.expiration_Date = Date.Today();
+      c1.boxorpiecein = '';
+      c1.boxorpiece = null;
+      c1.boxorpieceMap = null;
+      c1.concc = null;
+      c1.BoxPiece = null;
+      c1.hosPro = true;
+      pageRecords1.add(c1);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords2 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c2 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c2.check = true;
+      c2.oldCheck = false;
+      c2.hospitalSpecialOffer = true;
+      c2.orderdetails1 = coc2;
+      c2.orderdetails2 = conOrderDetail1;
+      c2.Prod = pro1;
+      c2.Boxnumber = 0.00;
+      c2.Piecenumber = 0.00;
+      c2.allnumber = 1999.00;
+      c2.oldConsumableCount = 1999.00;
+      c2.canSelect = true;
+      c2.sortBy = true;
+      c2.packinglist = 1;
+      c2.approbation_No = '';
+      c2.expiration_Date = Date.Today();
+      c2.boxorpiecein = '';
+      c2.boxorpiece = null;
+      c2.boxorpieceMap = null;
+      c2.concc = null;
+      c2.BoxPiece = null;
+      c2.hosPro = true;
+      pageRecords2.add(c2);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords3 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c3 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c3.check = true;
+      c3.oldCheck = false;
+      c3.hospitalSpecialOffer = true;
+      c3.orderdetails1 = coc3;
+      c3.orderdetails2 = conOrderDetail1;
+      c3.Prod = pro1;
+      c3.Boxnumber = 0.00;
+      c3.Piecenumber = 0.00;
+      c3.allnumber = 1999.00;
+      c3.oldConsumableCount = 1999.00;
+      c3.canSelect = true;
+      c3.sortBy = true;
+      c3.packinglist = 1;
+      c3.approbation_No = '';
+      c3.expiration_Date = Date.Today();
+      c3.boxorpiecein = '';
+      c3.boxorpiece = null;
+      c3.boxorpieceMap = null;
+      c3.concc = null;
+      c3.BoxPiece = null;
+      c3.hosPro = true;
+      pageRecords3.add(c3);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords0 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c001 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c001.check = true;
+      c001.oldCheck = true;
+      c001.hospitalSpecialOffer = true;
+      c001.orderdetails1 = coc3;
+      c001.orderdetails2 = conOrderDetail1;
+      c001.Prod = pro1;
+      c001.Boxnumber = 0.00;
+      c001.Piecenumber = 0.00;
+      c001.allnumber = 1999.00;
+      c001.oldConsumableCount = 1999.00;
+      c001.canSelect = true;
+      c001.sortBy = true;
+      c001.packinglist = 1;
+      c001.approbation_No = '';
+      c001.expiration_Date = Date.Today();
+      c001.boxorpiecein = '';
+      c001.boxorpiece = null;
+      c001.boxorpieceMap = null;
+      c001.concc = null;
+      c001.BoxPiece = null;
+      c001.hosPro = true;
+      pageRecords0.add(c001);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords4 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c4 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c4.check = true;
+      c4.oldCheck = true;
+      c4.hospitalSpecialOffer = true;
+      c4.orderdetails1 = coc2;
+      c4.orderdetails2 = conOrderDetail1;
+      c4.Prod = pro1;
+      c4.Boxnumber = 0.00;
+      c4.Piecenumber = 0.00;
+      c4.allnumber = 1999.00;
+      c4.oldConsumableCount = 1999.00;
+      c4.canSelect = true;
+      c4.sortBy = true;
+      c4.packinglist = 1;
+      c4.approbation_No = '';
+      c4.expiration_Date = Date.Today();
+      c4.boxorpiecein = '';
+      c4.boxorpiece = null;
+      c4.boxorpieceMap = null;
+      c4.concc = null;
+      c4.BoxPiece = null;
+      c4.hosPro = true;
+      pageRecords4.add(c4);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = coc;
+      codi.Prod = pro1;
+      consumable.add(codi);
+      System.Test.startTest();
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords1,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords2,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords3,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords0,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords4,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      System.Test.stopTest();
+    }
+  }
+
+  @isTest
+  static void testSaveMethod1() {
+    Account accountItem1;
+    Account accountItem2;
+    User userTest;
+    String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('Agency')
+      .getRecordTypeId();
+    String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('HP')
+      .getRecordTypeId();
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    accountItem1 = new Account(
+      Name = 'Testaccount001',
+      RecordTypeId = rectCo,
+      AgentCode_Ext__c = '9999900'
+    );
+    insert accountItem1;
+    accountItem2 = new Account(
+      Name = 'Testaccount002',
+      RecordTypeId = rectHp,
+      AgentCode_Ext__c = '9999999',
+      ParentId = accountItem1.Id,
+      Contract_Decide_Start_Date__c = Date.today(),
+      ENG_Dealer__c = true,
+      BillingCity = null
+    );
+    insert accountItem2;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountId = accountItem1.Id
+    );
+    insert core;
+    System.runAs(new user(ID = UserInfo.getUserID())) {
+      userTest = new User(
+        ContactId = core.id,
+        Alias = 'newUser',
+        Email = 'newuser@testorg.com',
+        EmailEncodingKey = 'UTF-8',
+        LastName = 'TestUser',
+        LanguageLocaleKey = 'zh_CN',
+        LocaleSidKey = 'zh_CN',
+        ProfileId = prof.Id,
+        TimeZoneSidKey = 'Asia/Shanghai',
+        UserName = 'testUser@testorg.com',
+        UserPro_Type__c = 'ENG',
+        Work_Location__c = '鍖椾含'
+      );
+      insert userTest;
+    }
+    System.runAs(userTest) {
+      String userId = UserInfo.getUserId();
+      User thisUserInfo = [
+        SELECT
+          accountid,
+          UserPro_Type__c,
+          ContactId,
+          Contact.AccountId,
+          Contact.Account.Name,
+          Work_Location__c
+        FROM User
+        WHERE id = :userId
+      ];
+      String accountId = thisUserInfo.accountid;
+      String accountName = thisUserInfo.Contact.Account.Name;
+      String agencyProType = thisUserInfo.UserPro_Type__c;
+      String userWorkLocation = thisUserInfo.Work_Location__c;
+      thisUserInfo.UserPro_Type__c = '';
+      update thisUserInfo;
+      if (String.isBlank(thisUserInfo.UserPro_Type__c)) {
+        agencyProType = 'ET';
+      }
+      Product2 prod07 = new Product2(
+        Name = 'Test07',
+        ProductCode = 'Test07',
+        Asset_Model_No__c = 'Test07',
+        Category3__c = 'Test7',
+        Category4__c = 'Test77',
+        Category5__c = 'Test777',
+        SFDA_Status__c = '鏈夊姽',
+        Intra_Trade_List_RMB_End_Date1__c = Date.Today(),
+        Intra_Trade_List_RMB_Date2__c = null,
+        Intra_Trade_List_RMB_1__c = 1,
+        Dealer_special_Object__c = true,
+        Packing_list_manual__c = 1,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod07 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'MH-155:鐧藉钩琛″附',
+        OT_CODE_Text__c = 'Test001',
+        Product2__c = prod07.Id,
         Category3_text__c = 'test123',
         Category4_text__c = 'test123',
         Category5_text__c = 'test123'
       );
-      insert proH;
+      insert new List<Product2__c>{ pro1 };
+      Consumable_order__c createIdSend = new Consumable_order__c();
+      createIdSend.Name = 'testMing1';
+      createIdSend.Order_status__c = '鎵瑰噯';
+      createIdSend.Deliver_date__c = Date.today();
+      createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend.Order_type__c = '璁㈠崟';
+      createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = '娴嬭瘯0001';
+      createIdSend.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend.Order_ForCustomerText__c = 'Test000';
+      createIdSend.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend.Dealer_Info__c = accountItem1.Id;
+      createIdSend.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend1 = new Consumable_order__c();
+      createIdSend1.Name = 'testMing2';
+      createIdSend1.Order_status__c = '鎵瑰噯';
+      createIdSend1.Deliver_date__c = Date.today();
+      createIdSend1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend1.Order_type__c = '璁㈠崟';
+      createIdSend1.Order_ProType__c = 'ENG';
+      createIdSend1.SummonsForDirction__c = '閿�鍞粰浜岀骇缁忛攢鍟�';
+      createIdSend1.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend1.Order_ForCustomerText__c = 'Test000';
+      createIdSend1.SummonsStatus_c__c = '浠锋牸鏈畾';
+      createIdSend1.Dealer_Info__c = accountItem1.Id;
+      createIdSend1.Delivery_detail_count__c = 5;
+      insert new List<Consumable_order__c>{ createIdSend, createIdSend1 };
+
+      Consumable_orderdetails__c coc = new Consumable_orderdetails__c();
+      coc.Name = 'Too001';
+      coc.Dealer_Custom_Price__c = 999.00;
+      coc.Consumable_count__c = 3;
+      coc.Consumable_product__c = pro1.Id;
+      coc.Box_Piece__c = '涓�';
+      coc.isOutPattern__c = true;
+      coc.Consumable_order__c = createIdSend.Id;
+      coc.Unitprice_To_agency__c = 999.00;
+      coc.Delivery_List_RMB__c = 999.00;
+      coc.Shipment_Count__c = 9999.00;
+      coc.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc1 = new Consumable_orderdetails__c();
+      coc1.Name = 'Too002';
+      coc1.Dealer_Custom_Price__c = 999.00;
+      coc1.Consumable_count__c = 3;
+      coc1.Consumable_product__c = pro1.Id;
+      coc1.Box_Piece__c = '涓�';
+      coc1.isOutPattern__c = true;
+      coc1.Consumable_order__c = createIdSend.Id;
+      coc1.Unitprice_To_agency__c = 999.00;
+      coc1.Delivery_List_RMB__c = 999.00;
+      coc1.Shipment_Count__c = null;
+      coc1.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc2 = new Consumable_orderdetails__c();
+      coc2.Name = 'Too003';
+      coc2.Dealer_Custom_Price__c = 999.00;
+      coc2.Consumable_count__c = 3;
+      coc2.Consumable_product__c = pro1.Id;
+      coc2.Box_Piece__c = '涓�';
+      coc2.isOutPattern__c = true;
+      coc2.Consumable_order__c = createIdSend.Id;
+      coc2.Unitprice_To_agency__c = 999.00;
+      coc2.Delivery_List_RMB__c = 0;
+      coc2.Shipment_Count__c = 100.00;
+      coc2.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc3 = new Consumable_orderdetails__c();
+      coc3.Name = 'Too004';
+      coc3.Dealer_Custom_Price__c = 999.00;
+      coc3.Consumable_count__c = 3;
+      coc3.Consumable_product__c = pro1.Id;
+      coc3.Box_Piece__c = '';
+      coc3.isOutPattern__c = true;
+      coc3.Consumable_order__c = createIdSend1.Id;
+      coc3.Unitprice_To_agency__c = 999.00;
+      coc3.Delivery_List_RMB__c = 0.00;
+      coc3.Shipment_Count__c = 9999.00;
+      coc3.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc4 = new Consumable_orderdetails__c();
+      coc4.Name = 'Too005';
+      coc4.Dealer_Custom_Price__c = 999.00;
+      coc4.Consumable_count__c = 3;
+      coc4.Consumable_product__c = pro1.Id;
+      coc4.Box_Piece__c = '';
+      coc4.isOutPattern__c = true;
+      coc4.Consumable_order__c = createIdSend1.Id;
+      coc4.Unitprice_To_agency__c = 999.00;
+      coc4.Delivery_List_RMB__c = 9999.00;
+      coc4.Shipment_Count__c = 100.00;
+      coc4.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc5 = new Consumable_orderdetails__c();
+      coc5.Name = 'Too006';
+      coc5.Dealer_Custom_Price__c = 999.00;
+      coc5.Consumable_count__c = 3;
+      coc5.Consumable_product__c = pro1.Id;
+      coc5.Box_Piece__c = '鐩�';
+      coc5.isOutPattern__c = true;
+      coc5.Consumable_order__c = createIdSend1.Id;
+      coc5.Unitprice_To_agency__c = 999.00;
+      coc5.Delivery_List_RMB__c = 9999.00;
+      coc5.Shipment_Count__c = 9999.00;
+      coc5.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc6 = new Consumable_orderdetails__c();
+      coc6.Name = 'Too007';
+      coc6.Dealer_Custom_Price__c = 999.00;
+      coc6.Consumable_count__c = 3;
+      coc6.Consumable_product__c = pro1.Id;
+      coc6.Box_Piece__c = '涓�';
+      coc6.isOutPattern__c = true;
+      coc6.Consumable_order__c = createIdSend1.Id;
+      coc6.Unitprice_To_agency__c = 999.00;
+      coc6.Delivery_List_RMB__c = 9999.00;
+      coc6.Shipment_Count__c = 9999.00;
+      coc6.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc7 = new Consumable_orderdetails__c();
+      coc7.Name = 'Too008';
+      coc7.Dealer_Custom_Price__c = 999.00;
+      coc7.Consumable_count__c = 3;
+      coc7.Consumable_product__c = pro1.Id;
+      coc7.Box_Piece__c = '鐩�';
+      coc7.isOutPattern__c = true;
+      coc7.Consumable_order__c = createIdSend1.Id;
+      coc7.Unitprice_To_agency__c = 999.00;
+      coc7.Delivery_List_RMB__c = 100;
+      coc7.Shipment_Count__c = 0;
+      coc7.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      insert new List<Consumable_orderdetails__c>{
+        coc,
+        coc1,
+        coc2,
+        coc3,
+        coc4,
+        coc5,
+        coc6,
+        coc7
+      };
+
+      Consumable_order_details2__c conOrderDetail1 = new Consumable_order_details2__c();
+      conOrderDetail1.Name = 'OCM_01_001001';
+      conOrderDetail1.Consumable_ZS_order__c = createIdSend.Id;
+      conOrderDetail1.Consumable_Product__c = pro1.Id;
+      conOrderDetail1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      conOrderDetail1.Bar_Code__c = '11111';
+      conOrderDetail1.Arrive_date__c = Date.today().addDays(1);
+      conOrderDetail1.Send_Date__c = null;
+      conOrderDetail1.Used_date__c = null;
+      conOrderDetail1.Return_date__c = null;
+      conOrderDetail1.Consumable_order_minor__c = createIdSend.Id;
+      conOrderDetail1.Lose_Flag__c = false;
+      conOrderDetail1.Cancellation_Flag__c = false;
+      conOrderDetail1.Box_Piece__c = '鐩�';
+      conOrderDetail1.Sterilization_limit__c = Date.Today();
+      insert new List<Consumable_order_details2__c>{ conOrderDetail1 };
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c0 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c0.check = true;
+      c0.oldCheck = false;
+      c0.hospitalSpecialOffer = true;
+      c0.orderdetails1 = coc;
+      c0.orderdetails2 = conOrderDetail1;
+      c0.Prod = pro1;
+      c0.Boxnumber = 0.00;
+      c0.Piecenumber = 0.00;
+      c0.allnumber = 1999.00;
+      c0.oldConsumableCount = 1999.00;
+      c0.canSelect = true;
+      c0.sortBy = true;
+      c0.packinglist = 1;
+      c0.approbation_No = '';
+      c0.expiration_Date = Date.Today();
+      c0.boxorpiecein = '';
+      c0.boxorpiece = null;
+      c0.boxorpieceMap = null;
+      c0.concc = null;
+      c0.BoxPiece = null;
+      c0.hosPro = true;
+      pageRecords.add(c0);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords1 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c1 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c1.check = true;
+      c1.oldCheck = true;
+      c1.hospitalSpecialOffer = true;
+      c1.orderdetails1 = coc;
+      c1.orderdetails2 = conOrderDetail1;
+      c1.Prod = pro1;
+      c1.Boxnumber = 0.00;
+      c1.Piecenumber = 0.00;
+      c1.allnumber = 1999.00;
+      c1.oldConsumableCount = 1999.00;
+      c1.canSelect = true;
+      c1.sortBy = true;
+      c1.packinglist = 1;
+      c1.approbation_No = '';
+      c1.expiration_Date = Date.Today();
+      c1.boxorpiecein = '';
+      c1.boxorpiece = null;
+      c1.boxorpieceMap = null;
+      c1.concc = null;
+      c1.BoxPiece = null;
+      c1.hosPro = true;
+      pageRecords1.add(c1);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords2 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c2 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c2.check = true;
+      c2.oldCheck = false;
+      c2.hospitalSpecialOffer = true;
+      c2.orderdetails1 = coc1;
+      c2.orderdetails2 = conOrderDetail1;
+      c2.Prod = pro1;
+      c2.Boxnumber = 0.00;
+      c2.Piecenumber = 0.00;
+      c2.allnumber = 1999.00;
+      c2.oldConsumableCount = 1999.00;
+      c2.canSelect = true;
+      c2.sortBy = true;
+      c2.packinglist = 1;
+      c2.approbation_No = '';
+      c2.expiration_Date = Date.Today();
+      c2.boxorpiecein = '';
+      c2.boxorpiece = null;
+      c2.boxorpieceMap = null;
+      c2.concc = null;
+      c2.BoxPiece = null;
+      c2.hosPro = true;
+      pageRecords2.add(c2);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords3 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c3 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c3.check = true;
+      c3.oldCheck = true;
+      c3.hospitalSpecialOffer = true;
+      c3.orderdetails1 = coc2;
+      c3.orderdetails2 = conOrderDetail1;
+      c3.Prod = pro1;
+      c3.Boxnumber = 0.00;
+      c3.Piecenumber = 0.00;
+      c3.allnumber = 199999.00;
+      c3.oldConsumableCount = 1999.00;
+      c3.canSelect = true;
+      c3.sortBy = true;
+      c3.packinglist = 1;
+      c3.approbation_No = '';
+      c3.expiration_Date = Date.Today();
+      c3.boxorpiecein = '';
+      c3.boxorpiece = null;
+      c3.boxorpieceMap = null;
+      c3.concc = null;
+      c3.BoxPiece = null;
+      c3.hosPro = true;
+      pageRecords3.add(c3);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = coc;
+      codi.Prod = pro1;
+      consumable.add(codi);
+      System.Test.startTest();
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords1,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords2,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords3,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      System.Test.stopTest();
+    }
+  }
+
+  @isTest
+  static void testSave() {
+    Account accountItem1;
+    Account accountItem2;
+    User userTest;
+    String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('Agency')
+      .getRecordTypeId();
+    String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('HP')
+      .getRecordTypeId();
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    accountItem1 = new Account(
+      Name = 'Testaccount001',
+      RecordTypeId = rectCo,
+      AgentCode_Ext__c = '9999900',
+      Contract_Decide_Start_Date__c = Date.today(),
+      ENG_Dealer__c = true
+    );
+    insert accountItem1;
+    accountItem2 = new Account(
+      Name = 'Testaccount002',
+      RecordTypeId = rectHp,
+      AgentCode_Ext__c = '9999999',
+      ParentId = accountItem1.Id
+    );
+    insert accountItem2;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountId = accountItem1.Id
+    );
+    insert core;
+    System.runAs(new user(ID = UserInfo.getUserID())) {
+      userTest = new User(
+        ContactId = core.id,
+        Alias = 'newUser',
+        Email = 'newuser@testorg.com',
+        EmailEncodingKey = 'UTF-8',
+        LastName = 'TestUser',
+        LanguageLocaleKey = 'zh_CN',
+        LocaleSidKey = 'zh_CN',
+        ProfileId = prof.Id,
+        TimeZoneSidKey = 'Asia/Shanghai',
+        UserName = 'testUser@testorg.com',
+        UserPro_Type__c = 'ENG',
+        Work_Location__c = '鍖椾含'
+      );
+      insert userTest;
+    }
+    System.runAs(userTest) {
+      String userId = UserInfo.getUserId();
+      User thisUserInfo = [
+        SELECT
+          accountid,
+          UserPro_Type__c,
+          ContactId,
+          Contact.AccountId,
+          Contact.Account.Name,
+          Work_Location__c
+        FROM User
+        WHERE id = :userId
+      ];
+      String accountId = thisUserInfo.accountid;
+      String accountName = thisUserInfo.Contact.Account.Name;
+      String agencyProType = thisUserInfo.UserPro_Type__c;
+      String userWorkLocation = thisUserInfo.Work_Location__c;
+      thisUserInfo.UserPro_Type__c = '';
+      update thisUserInfo;
+      if (String.isBlank(thisUserInfo.UserPro_Type__c)) {
+        agencyProType = 'ET';
+      }
+      Product2 prod07 = new Product2(
+        Name = 'Test07',
+        ProductCode = 'Test07',
+        Asset_Model_No__c = 'Test07',
+        Category3__c = 'Test7',
+        Category4__c = 'Test77',
+        Category5__c = 'Test777',
+        SFDA_Status__c = '鏈夊姽',
+        Dealer_special_Object__c = true,
+        Packing_list_manual__c = 1,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod07 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'MH-155:鐧藉钩琛″附',
+        OT_CODE_Text__c = 'Test001',
+        Product2__c = prod07.Id,
+        Category3_text__c = 'test123',
+        Category4_text__c = 'test123',
+        Category5_text__c = 'test123'
+      );
+      insert new List<Product2__c>{ pro1 };
+
+      Consumable_order__c createIdSend = new Consumable_order__c();
+      createIdSend.Name = 'testMing1';
+      createIdSend.Order_status__c = '鎵瑰噯';
+      createIdSend.Deliver_date__c = Date.today();
+      createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend.Order_type__c = '璁㈠崟';
+      createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = 'Test123456';
+      createIdSend.Order_ForDealerText__c = '';
+      createIdSend.Order_ForDealer__c = accountItem1.Id;
+      createIdSend.Order_ForCustomerText__c = '';
+      createIdSend.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend.Dealer_Info__c = accountItem1.Id;
+      createIdSend.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend1 = new Consumable_order__c();
+      createIdSend.Name = 'testMing1';
+      createIdSend.Order_status__c = '鎵瑰噯';
+      createIdSend.Deliver_date__c = Date.today();
+      createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend.Order_type__c = '璁㈠崟';
+      createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend.Order_ForDealerText__c = 'Test';
+      createIdSend.Order_ForDealer__c = accountItem1.Id;
+      createIdSend.Order_ForCustomerText__c = '';
+      createIdSend.SummonsStatus_c__c = '';
+      createIdSend.Dealer_Info__c = accountItem1.Id;
+      createIdSend.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend2 = new Consumable_order__c();
+      createIdSend2.Name = 'testMing1';
+      createIdSend2.Order_status__c = '鎵瑰噯';
+      createIdSend2.Deliver_date__c = Date.today();
+      createIdSend2.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend2.Order_type__c = '璁㈠崟';
+      createIdSend2.Order_ProType__c = 'ENG';
+      createIdSend2.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      createIdSend2.Order_ForDealerText__c = '';
+      createIdSend2.Order_ForDealer__c = accountItem1.Id;
+      createIdSend2.Order_ForCustomerText__c = '';
+      createIdSend2.SummonsStatus_c__c = '浠锋牸鏈畾';
+      createIdSend2.Dealer_Info__c = accountItem1.Id;
+      createIdSend2.Delivery_detail_count__c = 5;
+      insert new List<Consumable_order__c>{
+        createIdSend,
+        createIdSend1,
+        createIdSend2
+      };
+
+      Consumable_orderdetails__c coc = new Consumable_orderdetails__c();
+      coc.Name = 'Too001';
+      coc.Dealer_Custom_Price__c = 999.00;
+      coc.Consumable_count__c = 3;
+      coc.Consumable_product__c = pro1.Id;
+      coc.Box_Piece__c = '鐩�';
+      coc.isOutPattern__c = true;
+      coc.Consumable_order__c = createIdSend.Id;
+      coc.Unitprice_To_agency__c = 999.00;
+      coc.Delivery_List_RMB__c = 999.00;
+      coc.Shipment_Count__c = 10000;
+      coc.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc1 = new Consumable_orderdetails__c();
+      coc1.Name = 'Too001';
+      coc1.Dealer_Custom_Price__c = 999.00;
+      coc1.Consumable_count__c = 3;
+      coc1.Consumable_product__c = pro1.Id;
+      coc1.Box_Piece__c = '鐩�';
+      coc1.isOutPattern__c = true;
+      coc1.Consumable_order__c = createIdSend.Id;
+      coc1.Unitprice_To_agency__c = 999.00;
+      coc1.Delivery_List_RMB__c = -999.00;
+      coc1.Shipment_Count__c = 10000;
+      coc1.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc2 = new Consumable_orderdetails__c();
+      coc2.Name = 'Too001';
+      coc2.Dealer_Custom_Price__c = 999.00;
+      coc2.Consumable_count__c = 3;
+      coc2.Consumable_product__c = pro1.Id;
+      coc2.Box_Piece__c = '涓�';
+      coc2.isOutPattern__c = true;
+      coc2.Consumable_order__c = createIdSend.Id;
+      coc2.Unitprice_To_agency__c = 999.00;
+      coc2.Delivery_List_RMB__c = null;
+      coc2.Shipment_Count__c = 10000;
+      coc2.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc3 = new Consumable_orderdetails__c();
+      coc3.Name = 'Too001';
+      coc3.Dealer_Custom_Price__c = 999.00;
+      coc3.Consumable_count__c = 3;
+      coc3.Consumable_product__c = pro1.Id;
+      coc3.Box_Piece__c = '';
+      coc3.isOutPattern__c = true;
+      coc3.Consumable_order__c = createIdSend2.Id;
+      coc3.Unitprice_To_agency__c = 999.00;
+      coc3.Delivery_List_RMB__c = 0;
+      coc3.Shipment_Count__c = 10000;
+      coc3.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc4 = new Consumable_orderdetails__c();
+      coc4.Name = 'Too001';
+      coc4.Dealer_Custom_Price__c = 999.00;
+      coc4.Consumable_count__c = 3;
+      coc4.Consumable_product__c = pro1.Id;
+      coc4.Box_Piece__c = '';
+      coc4.isOutPattern__c = true;
+      coc4.Consumable_order__c = createIdSend2.Id;
+      coc4.Unitprice_To_agency__c = 999.00;
+      coc4.Delivery_List_RMB__c = 0;
+      coc4.Shipment_Count__c = 10000;
+      coc4.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc5 = new Consumable_orderdetails__c();
+      coc5.Name = 'Too001';
+      coc5.Dealer_Custom_Price__c = 999.00;
+      coc5.Consumable_count__c = 3;
+      coc5.Consumable_product__c = pro1.Id;
+      coc5.Box_Piece__c = '鐩�';
+      coc5.isOutPattern__c = true;
+      coc5.Consumable_order__c = createIdSend2.Id;
+      coc5.Unitprice_To_agency__c = 999.00;
+      coc5.Delivery_List_RMB__c = 100;
+      coc5.Shipment_Count__c = 10000;
+      coc5.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      insert new List<Consumable_orderdetails__c>{
+        coc,
+        coc1,
+        coc2,
+        coc3,
+        coc4,
+        coc5
+      };
+
+      Consumable_order_details2__c conOrderDetail1 = new Consumable_order_details2__c();
+      conOrderDetail1.Name = 'OCM_01_001001';
+      conOrderDetail1.Consumable_ZS_order__c = createIdSend.Id;
+      conOrderDetail1.Consumable_Product__c = pro1.Id;
+      conOrderDetail1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      conOrderDetail1.Bar_Code__c = '11111';
+      conOrderDetail1.Arrive_date__c = Date.today().addDays(1);
+      conOrderDetail1.Send_Date__c = null;
+      conOrderDetail1.Used_date__c = null;
+      conOrderDetail1.Return_date__c = null;
+      conOrderDetail1.Consumable_order_minor__c = createIdSend.Id;
+      conOrderDetail1.Lose_Flag__c = false;
+      conOrderDetail1.Box_Piece__c = '鐩�';
+      insert new List<Consumable_order_details2__c>{ conOrderDetail1 };
+
+      hospitalprice__c hp1 = new hospitalprice__c();
+      hp1.hospital__c = accountId;
+      hp1.account__c = accountId;
+      hp1.product__c = pro1.Id;
+      insert new List<hospitalprice__c>{ hp1 };
+
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecordsList = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc cod = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      cod.check = true;
+      cod.oldCheck = true;
+      cod.hospitalSpecialOffer = true;
+      cod.orderdetails1 = coc;
+      cod.orderdetails2 = conOrderDetail1;
+      cod.Prod = pro1;
+      cod.Boxnumber = 0.00;
+      cod.Piecenumber = 0.00;
+      cod.allnumber = 1999.00;
+      cod.oldConsumableCount = 1999.00;
+      cod.canSelect = true;
+      cod.sortBy = true;
+      cod.packinglist = 1;
+      cod.approbation_No = '';
+      cod.expiration_Date = Date.Today();
+      cod.boxorpiecein = '';
+      cod.boxorpiece = null;
+      cod.boxorpieceMap = null;
+      cod.concc = null;
+      cod.BoxPiece = null;
+      cod.hosPro = true;
+      pageRecordsList.add(cod);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c7 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c7.check = false;
+      c7.oldCheck = true;
+      c7.hospitalSpecialOffer = false;
+      c7.orderdetails1 = coc1;
+      c7.orderdetails2 = conOrderDetail1;
+      c7.Prod = pro1;
+      c7.Boxnumber = 0.00;
+      c7.Piecenumber = 0.00;
+      c7.allnumber = 1999.00;
+      c7.oldConsumableCount = 1999.00;
+      c7.canSelect = true;
+      c7.sortBy = true;
+      c7.packinglist = 1;
+      c7.approbation_No = '';
+      c7.expiration_Date = Date.Today();
+      c7.boxorpiecein = '';
+      c7.boxorpiece = null;
+      c7.boxorpieceMap = null;
+      c7.concc = null;
+      c7.BoxPiece = null;
+      c7.hosPro = true;
+      pageRecords.add(c7);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords2 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c9 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c9.check = true;
+      c9.oldCheck = true;
+      c9.hospitalSpecialOffer = true;
+      c9.orderdetails1 = coc3;
+      c9.orderdetails2 = conOrderDetail1;
+      c9.Prod = pro1;
+      c9.Boxnumber = 0.00;
+      c9.Piecenumber = 0.00;
+      c9.allnumber = 1999.00;
+      c9.oldConsumableCount = 1999.00;
+      c9.canSelect = true;
+      c9.sortBy = true;
+      c9.packinglist = 1;
+      c9.approbation_No = '';
+      c9.expiration_Date = Date.Today();
+      c9.boxorpiecein = '';
+      c9.boxorpiece = null;
+      c9.boxorpieceMap = null;
+      c9.concc = null;
+      c9.BoxPiece = null;
+      c9.hosPro = true;
+      pageRecords2.add(c9);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords3 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c10 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c10.check = true;
+      c10.oldCheck = false;
+      c10.hospitalSpecialOffer = true;
+      c10.orderdetails1 = coc4;
+      c10.orderdetails2 = conOrderDetail1;
+      c10.Prod = pro1;
+      c10.Boxnumber = 0.00;
+      c10.Piecenumber = 0.00;
+      c10.allnumber = 1999.00;
+      c10.oldConsumableCount = 1999.00;
+      c10.canSelect = true;
+      c10.sortBy = true;
+      c10.packinglist = 1;
+      c10.approbation_No = '';
+      c10.expiration_Date = Date.Today();
+      c10.boxorpiecein = '';
+      c10.boxorpiece = null;
+      c10.boxorpieceMap = null;
+      c10.concc = null;
+      c10.BoxPiece = null;
+      c10.hosPro = true;
+      pageRecords3.add(c10);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.oldCheck = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = coc;
+      codi.Prod = pro1;
+      consumable.add(codi);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumableList = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi1 = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi1.check = false;
+      codi1.oldCheck = true;
+      codi1.hospitalSpecialOffer = false;
+      codi1.packinglist = 0;
+      codi1.approbation_No = null;
+      codi1.expiration_Date = Date.Today();
+      codi1.boxorpiecein = null;
+      codi1.orderdetails1 = coc;
+      codi1.Prod = pro1;
+      consumableList.add(codi1);
+      Integer size = Integer.valueOf(System.Label.orderdetLimitsize);
+      String ESetId = createIdSend.Id;
+      String statusEdit = 'Test';
+      String arrive = createIdSend.Id;
+      System.Test.startTest();
+      LexSummonsCreatController.firstInit(ESetId);
+      LexSummonsCreatController.init(ESetId, statusEdit, 1, 100, arrive);
+      LexSummonsCreatController.init(ESetId, null, 1, 100, arrive);
+      LexSummonsCreatController.GoodsDelivery(
+        createIdSend2,
+        createIdSend2.Id,
+        pageRecords
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        accountId,
+        'Test',
+        accountItem1.Id,
+        pageRecordsList,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        accountId,
+        'Test',
+        accountItem1.Id,
+        pageRecords,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        accountId,
+        'Test',
+        accountItem1.Id,
+        null,
+        accountId,
+        createIdSend.Id,
+        null,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        accountId,
+        'Test',
+        accountItem1.Id,
+        pageRecords,
+        accountId,
+        null,
+        consumableList,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend2,
+        accountId,
+        'Test',
+        null,
+        pageRecords,
+        accountId,
+        createIdSend2.Id,
+        null,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend2,
+        accountId,
+        'Test',
+        null,
+        pageRecords2,
+        accountId,
+        createIdSend2.Id,
+        null,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend2,
+        accountId,
+        'Test',
+        null,
+        pageRecords3,
+        accountId,
+        createIdSend2.Id,
+        null,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend1,
+        '',
+        '',
+        accountItem1.Id,
+        pageRecords3,
+        accountId,
+        createIdSend2.Id,
+        null,
+        agencyProType,
+        userWorkLocation
+      );
+      System.Test.stopTest();
+    }
+  }
+  @isTest
+  static void testAttachment() {
+    Account accountItem1;
+    Account accountItem2;
+    User userTest;
+    String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('Agency')
+      .getRecordTypeId();
+    String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('HP')
+      .getRecordTypeId();
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    accountItem1 = new Account(
+      Name = 'Testaccount001',
+      RecordTypeId = rectCo,
+      AgentCode_Ext__c = '9999900',
+      Contract_Decide_Start_Date__c = Date.today(),
+      ENG_Dealer__c = true
+    );
+    insert accountItem1;
+    accountItem2 = new Account(
+      Name = 'Testaccount002',
+      RecordTypeId = rectHp,
+      AgentCode_Ext__c = '9999999',
+      ParentId = accountItem1.Id
+    );
+    insert accountItem2;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountId = accountItem1.Id
+    );
+    insert core;
+    System.runAs(new user(ID = UserInfo.getUserID())) {
+      userTest = new User(
+        ContactId = core.id,
+        Alias = 'newUser',
+        Email = 'newuser@testorg.com',
+        EmailEncodingKey = 'UTF-8',
+        LastName = 'TestUser',
+        LanguageLocaleKey = 'zh_CN',
+        LocaleSidKey = 'zh_CN',
+        ProfileId = prof.Id,
+        TimeZoneSidKey = 'Asia/Shanghai',
+        UserName = 'testUser@testorg.com',
+        UserPro_Type__c = 'ENG',
+        Work_Location__c = '鍖椾含'
+      );
+      insert userTest;
+    }
+    System.runAs(userTest) {
+      String userId = UserInfo.getUserId();
+      User thisUserInfo = [
+        SELECT
+          accountid,
+          UserPro_Type__c,
+          ContactId,
+          Contact.AccountId,
+          Contact.Account.Name,
+          Work_Location__c
+        FROM User
+        WHERE id = :userId
+      ];
+      String accountId = thisUserInfo.accountid;
+      String accountName = thisUserInfo.Contact.Account.Name;
+      String agencyProType = thisUserInfo.UserPro_Type__c;
+      String userWorkLocation = thisUserInfo.Work_Location__c;
+      thisUserInfo.UserPro_Type__c = '';
+      update thisUserInfo;
+      if (String.isBlank(thisUserInfo.UserPro_Type__c)) {
+        agencyProType = 'ET';
+      }
+      Product2 prod07 = new Product2(
+        Name = 'Test07',
+        ProductCode = 'Test07',
+        Asset_Model_No__c = 'Test07',
+        Category3__c = 'Test7',
+        Category4__c = 'Test77',
+        Category5__c = 'Test777',
+        SFDA_Status__c = '鏈夊姽',
+        Dealer_special_Object__c = true,
+        Packing_list_manual__c = 1,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod07 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'MH-155:鐧藉钩琛″附',
+        OT_CODE_Text__c = 'Test001',
+        Product2__c = prod07.Id,
+        Category3_text__c = 'test123',
+        Category4_text__c = 'test123',
+        Category5_text__c = 'test123'
+      );
+      insert new List<Product2__c>{ pro1 };
       //鍙戣揣
       Consumable_order__c createIdSend = new Consumable_order__c();
       createIdSend.Name = 'testMing1';
@@ -167,56 +2382,75 @@
       createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
       createIdSend.Order_type__c = '璁㈠崟';
       createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      createIdSend.Order_ForDealerText__c = 'Test';
+      createIdSend.Order_ForCustomerText__c = 'Test';
+      createIdSend.SummonsStatus_c__c = '鎵瑰噯';
       createIdSend.Dealer_Info__c = accountItem1.Id;
       createIdSend.Delivery_detail_count__c = 5;
-      insert createIdSend;
 
-      //鍙戠エ淇℃伅
-      Consumable_order__c invoiceorder = new Consumable_order__c(
-        Name = 'invoice01',
-        Order_type__c = '鍙戠エ',
-        Invoice_status__c = '宸插畬鎴�',
-        Invoice_Date__c = Date.today(),
-        RecordTypeid = System.Label.RT_ConOrder_Invoice,
-        SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌',
-        Order_status__c = '鑽夋涓�',
-        Dealer_info__c = accountItem1.Id
-      );
-      insert invoiceorder;
+      Consumable_order__c createIdSend1 = new Consumable_order__c();
+      createIdSend1.Name = 'testMing1';
+      createIdSend1.Order_status__c = '鎵瑰噯';
+      createIdSend1.Deliver_date__c = Date.today();
+      createIdSend1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend1.Order_type__c = '璁㈠崟';
+      createIdSend1.Order_ProType__c = 'ENG';
+      createIdSend1.SummonsForDirction__c = '鍖婚櫌璇曠敤';
+      createIdSend1.Order_ForDealerText__c = 'Test';
+      createIdSend1.Order_ForCustomerText__c = '';
+      createIdSend1.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend1.Dealer_Info__c = accountItem1.Id;
+      createIdSend1.Delivery_detail_count__c = 5;
 
-      //鍒拌揣
-      Consumable_order__c createIdArrived = new Consumable_order__c();
-      createIdArrived.Name = 'testMing2';
-      createIdArrived.Order_status__c = '鎵瑰噯';
-      createIdArrived.Deliver_date__c = Date.today();
-      createIdArrived.RecordTypeid = System.Label.RT_ConOrder_Arrive;
-      createIdArrived.Order_type__c = '璁㈠崟';
-      createIdArrived.Order_ProType__c = 'ENG';
-      createIdArrived.Arrive_Order__c = createIdSend.Id;
-      createIdArrived.Dealer_Info__c = accountItem1.Id;
-      createIdArrived.Delivery_detail_count__c = 5;
-      insert createIdArrived;
+      Consumable_order__c createIdSend2 = new Consumable_order__c();
+      createIdSend2.Name = 'testMing1';
+      createIdSend2.Order_status__c = '鎵瑰噯';
+      createIdSend2.Deliver_date__c = Date.today();
+      createIdSend2.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend2.Order_type__c = '璁㈠崟';
+      createIdSend2.Order_ProType__c = 'ENG';
+      createIdSend2.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend2.Order_ForDealerText__c = '';
+      createIdSend2.Order_ForCustomerText__c = 'Test';
+      createIdSend2.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend2.Dealer_Info__c = accountItem1.Id;
+      createIdSend2.Delivery_detail_count__c = 5;
+      insert new List<Consumable_order__c>{
+        createIdSend,
+        createIdSend1,
+        createIdSend2
+      };
 
-      List<Consumable_orderdetails__c> orderdetails = new List<Consumable_orderdetails__c>();
-      Consumable_orderdetails__c coc = new Consumable_orderdetails__c(
-        Name = 'Too001',
-        Dealer_Custom_Price__c = 999.00,
-        Consumable_count__c = 3,
-        Consumable_product__c = pro1.Id,
-        Box_Piece__c = '鐩�',
-        isOutPattern__c = true,
-        Consumable_order__c = createIdArrived.Id,
-        Unitprice_To_agency__c = 999.00,
-        Delivery_List_RMB__c = 999.00,
-        Shipment_Count__c = 999.00,
-        RecordTypeid = System.Label.RT_ConOrderDetail1_Order
-      );
-      orderdetails.add(coc);
-      insert orderdetails;
+      Consumable_orderdetails__c coc = new Consumable_orderdetails__c();
+      coc.Name = 'Too001';
+      coc.Dealer_Custom_Price__c = 999.00;
+      coc.Consumable_count__c = 3;
+      coc.Consumable_product__c = pro1.Id;
+      coc.Box_Piece__c = '鐩�';
+      coc.isOutPattern__c = true;
+      coc.Consumable_order__c = createIdSend.Id;
+      coc.Unitprice_To_agency__c = 999.00;
+      coc.Delivery_List_RMB__c = 999.00;
+      coc.Shipment_Count__c = null;
+      coc.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc2 = new Consumable_orderdetails__c();
+      coc2.Name = 'Too001';
+      coc2.Dealer_Custom_Price__c = 999.00;
+      coc2.Consumable_count__c = 3;
+      coc2.Consumable_product__c = pro1.Id;
+      coc2.Box_Piece__c = '涓�';
+      coc2.isOutPattern__c = true;
+      coc2.Consumable_order__c = createIdSend.Id;
+      coc2.Unitprice_To_agency__c = 999.00;
+      coc2.Delivery_List_RMB__c = 0;
+      coc2.Shipment_Count__c = 0;
+      coc2.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      insert new List<Consumable_orderdetails__c>{ coc, coc2 };
 
       Consumable_order_details2__c conOrderDetail1 = new Consumable_order_details2__c();
       conOrderDetail1.Name = 'OCM_01_001001';
-      conOrderDetail1.Consumable_ZS_order__c = createIdArrived.Id;
+      conOrderDetail1.Consumable_ZS_order__c = createIdSend.Id;
       conOrderDetail1.Consumable_Product__c = pro1.Id;
       conOrderDetail1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
       conOrderDetail1.Bar_Code__c = '11111';
@@ -224,69 +2458,1312 @@
       conOrderDetail1.Send_Date__c = null;
       conOrderDetail1.Used_date__c = null;
       conOrderDetail1.Return_date__c = null;
-      conOrderDetail1.Consumable_order_minor__c = createIdArrived.Id;
+      conOrderDetail1.Consumable_order_minor__c = createIdSend.Id;
       conOrderDetail1.Lose_Flag__c = false;
       conOrderDetail1.Box_Piece__c = '鐩�';
-      insert conOrderDetail1;
+      insert new List<Consumable_order_details2__c>{ conOrderDetail1 };
+
+      hospitalprice__c hp1 = new hospitalprice__c();
+      hp1.hospital__c = accountId;
+      hp1.account__c = accountId;
+      hp1.product__c = pro1.Id;
+      insert new List<hospitalprice__c>{ hp1 };
+
+      Attachment attach = new Attachment();
+      attach.Name = 'A-65224941-20200923--1.docx';
+      Blob bodyBlob = Blob.valueOf('Unit Test Attachment Body');
+      attach.body = bodyBlob;
+      attach.ParentId = createIdSend.id;
+      attach.ContentType = 'application/pdf';
+      insert new List<Attachment>{ attach };
+
+      System.Test.startTest();
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecordsLwcLwc = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c5 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c5.check = true;
+      c5.hospitalSpecialOffer = true;
+      c5.orderdetails1 = coc;
+      c5.allnumber = 1999.00;
+      pageRecordsLwcLwc.add(c5);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecordsList = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c8 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c8.check = true;
+      c8.hospitalSpecialOffer = true;
+      c8.orderdetails1 = coc2;
+      c8.allnumber = 1999.00;
+      pageRecordsList.add(c8);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c6 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c6.check = false;
+      c6.hospitalSpecialOffer = false;
+      c6.orderdetails1 = coc;
+      c6.allnumber = 1999.00;
+      pageRecords.add(c6);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecordsLwc = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c7 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c7.check = true;
+      c7.oldCheck = true;
+      c7.hospitalSpecialOffer = true;
+      c7.orderdetails1 = coc;
+      c7.orderdetails2 = conOrderDetail1;
+      c7.Prod = pro1;
+      c7.Boxnumber = 0.00;
+      c7.Piecenumber = 0.00;
+      c7.allnumber = 1999.00;
+      c7.oldConsumableCount = 1999.00;
+      c7.canSelect = true;
+      c7.sortBy = true;
+      c7.packinglist = 1;
+      c7.approbation_No = '';
+      c7.expiration_Date = Date.Today();
+      c7.boxorpiecein = '';
+      c7.boxorpiece = null;
+      c7.boxorpieceMap = null;
+      c7.concc = null;
+      c7.BoxPiece = null;
+      c7.hosPro = true;
+      pageRecordsLwc.add(c7);
+
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.oldCheck = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = coc;
+      codi.Prod = pro1;
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi1 = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi1.check = false;
+      codi1.oldCheck = true;
+      codi1.hospitalSpecialOffer = false;
+      codi1.packinglist = 0;
+      codi1.approbation_No = null;
+      codi1.expiration_Date = Date.Today();
+      codi1.boxorpiecein = null;
+      codi1.orderdetails1 = coc;
+      codi1.Prod = pro1;
+      consumable.add(codi);
 
       Integer size = Integer.valueOf(System.Label.orderdetLimitsize);
-      String ESetId = null;
-      String statusEdit = null;
-      String arrive = null;
+      String ESetId = createIdSend.Id;
+      String statusEdit = 'Test';
+      String arrive = createIdSend.Id;
       LexSummonsCreatController.firstInit(ESetId);
       LexSummonsCreatController.init(ESetId, statusEdit, 1, 100, arrive);
-      List<LexSummonsCreatController.ConsumableorderdetailsInfo> inList = LexSummonsCreatController.consumableorderdetailsRecords;
-      List<LexSummonsCreatController.ConsumableorderdetailsInfo> inList1 = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
-      for (LexSummonsCreatController.ConsumableorderdetailsInfo ass : inList) {
-        ass.orderdetails2 = conOrderDetail1;
-        inList1.add(ass);
-      }
-      LexSummonsCreatController.ConsumableorderdetailsInfo c0 = new LexSummonsCreatController.ConsumableorderdetailsInfo();
-      LexSummonsCreatController.ConsumableorderdetailsInfo c1 = new LexSummonsCreatController.ConsumableorderdetailsInfo(
-        coc
+      LexSummonsCreatController.save(
+        createIdSend,
+        'Test',
+        'Test',
+        'Test',
+        pageRecordsLwc,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
       );
-      c1.check = true;
-      c1.oldCheck = true;
-      c1.orderdetails1 = coc;
-      c1.orderdetails2 = null;
-      c1.Prod = coc.Consumable_Product__r;
-      c1.oldConsumableCount = coc.Shipment_Count__c;
-      c1.canSelect = true;
-      c1.allnumber = 0;
-      c1.Boxnumber = 0;
-      c1.Piecenumber = 0;
-      c1.BoxPiece = coc.Box_Piece__c;
-      c1.hospitalSpecialOffer = false;
-      c1.hosPro = false;
-      List<SelectOption> boxorpiece = new List<SelectOption>();
-      boxorpiece.add(new SelectOption('鐩�', '鐩�'));
-      boxorpiece.add(new SelectOption('涓�', '涓�'));
-      Map<String, String> boxorpieceMap = new Map<String, String>();
-      boxorpieceMap.put('鐩�', '鐩�');
-      boxorpieceMap.put('涓�', '涓�');
-      LexSummonsCreatController.ConsumableorderdetailsInfo c2 = new LexSummonsCreatController.ConsumableorderdetailsInfo(
-        proH
+      LexSummonsCreatController.save(
+        createIdSend1,
+        'Test',
+        'Test',
+        'Test',
+        pageRecordsLwc,
+        accountId,
+        createIdSend1.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
       );
-      c2.sortBy = true;
-      c2.Boxnumber = 20;
-      c1.compareTo(c2);
-      c1.Boxnumber = 20;
-      c2.Boxnumber = 10;
-      c1.compareTo(c2);
-      c1.Boxnumber = 10;
-      c2.Boxnumber = 20;
-      c2.compareTo(c1);
-      c1.Boxnumber = 20;
-      c2.Boxnumber = 10;
-      c2.compareTo(c1);
-      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c3 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      LexSummonsCreatController.save(
+        createIdSend2,
+        '',
+        '',
+        '',
+        pageRecordsLwc,
+        accountId,
+        createIdSend2.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecordsList,
+        accountId,
+        null,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.searchConsumableorderdetails(
+        agencyProType,
+        accountName,
+        userWorkLocation,
+        'ishos',
+        'Test07',
+        'Test7',
+        'Test77',
+        'Test777',
+        true,
+        pageRecordsLwc,
+        consumable,
+        '',
+        1,
+        100
+      );
+      LexSummonsCreatController.ConsumableorderdetailsInfo con = new LexSummonsCreatController.ConsumableorderdetailsInfo(
+        attach
+      );
+      con.concc = attach;
+      con.hospitalSpecialOffer = false;
+      con.hosPro = false;
+      System.Test.stopTest();
     }
-    System.Test.stopTest();
   }
+
+  @isTest
+  static void testSave1() {
+    Account accountItem1;
+    Account accountItem2;
+    User userTest;
+    String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('Agency')
+      .getRecordTypeId();
+    String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('HP')
+      .getRecordTypeId();
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    accountItem1 = new Account(
+      Name = 'Testaccount001',
+      RecordTypeId = rectCo,
+      AgentCode_Ext__c = '9999900',
+      Contract_Decide_Start_Date__c = Date.today(),
+      ENG_Dealer__c = true
+    );
+    insert accountItem1;
+    accountItem2 = new Account(
+      Name = 'Testaccount002',
+      RecordTypeId = rectHp,
+      AgentCode_Ext__c = '9999999',
+      ParentId = accountItem1.Id
+    );
+    insert accountItem2;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountId = accountItem1.Id
+    );
+    insert core;
+    System.runAs(new user(ID = UserInfo.getUserID())) {
+      userTest = new User(
+        ContactId = core.id,
+        Alias = 'newUser',
+        Email = 'newuser@testorg.com',
+        EmailEncodingKey = 'UTF-8',
+        LastName = 'TestUser',
+        LanguageLocaleKey = 'zh_CN',
+        LocaleSidKey = 'zh_CN',
+        ProfileId = prof.Id,
+        TimeZoneSidKey = 'Asia/Shanghai',
+        UserName = 'testUser@testorg.com',
+        UserPro_Type__c = 'ENG',
+        Work_Location__c = '鍖椾含'
+      );
+      insert userTest;
+    }
+    System.runAs(userTest) {
+      String userId = UserInfo.getUserId();
+      User thisUserInfo = [
+        SELECT
+          accountid,
+          UserPro_Type__c,
+          ContactId,
+          Contact.AccountId,
+          Contact.Account.Name,
+          Work_Location__c
+        FROM User
+        WHERE id = :userId
+      ];
+      String accountId = thisUserInfo.accountid;
+      String accountName = thisUserInfo.Contact.Account.Name;
+      String agencyProType = thisUserInfo.UserPro_Type__c;
+      String userWorkLocation = thisUserInfo.Work_Location__c;
+      thisUserInfo.UserPro_Type__c = '';
+      update thisUserInfo;
+      if (String.isBlank(thisUserInfo.UserPro_Type__c)) {
+        agencyProType = 'ET';
+      }
+      Product2 prod07 = new Product2(
+        Name = 'Test07',
+        ProductCode = 'Test07',
+        Asset_Model_No__c = 'Test07',
+        Category3__c = 'Test7',
+        Category4__c = 'Test77',
+        Category5__c = 'Test777',
+        SFDA_Status__c = '鏈夊姽',
+        Dealer_special_Object__c = true,
+        Packing_list_manual__c = 1,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod07 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'MH-155:鐧藉钩琛″附',
+        OT_CODE_Text__c = 'Test001',
+        Product2__c = prod07.Id,
+        Category3_text__c = 'test123',
+        Category4_text__c = 'test123',
+        Category5_text__c = 'test123'
+      );
+      insert new List<Product2__c>{ pro1 };
+
+      Consumable_order__c createIdSend = new Consumable_order__c();
+      createIdSend.Name = 'testMing1';
+      createIdSend.Order_status__c = '鎵瑰噯';
+      createIdSend.Deliver_date__c = Date.today();
+      createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend.Order_type__c = '璁㈠崟';
+      createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend.Order_ForDealerText__c = '';
+      createIdSend.Order_ForCustomerText__c = '';
+      createIdSend.SummonsStatus_c__c = '';
+      createIdSend.Dealer_Info__c = accountItem1.Id;
+      createIdSend.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend1 = new Consumable_order__c();
+      createIdSend1.Name = 'testMing1';
+      createIdSend1.Order_status__c = '鎵瑰噯';
+      createIdSend1.Deliver_date__c = Date.today();
+      createIdSend1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend1.Order_type__c = '璁㈠崟';
+      createIdSend1.Order_ProType__c = 'ENG';
+      createIdSend1.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend1.Order_ForDealerText__c = '';
+      createIdSend1.Order_ForCustomerText__c = '';
+      createIdSend1.SummonsStatus_c__c = '';
+      createIdSend1.Arrive_Order__c = createIdSend.Id;
+      createIdSend1.Order_ForDealerTextID__c = accountItem1.Id;
+      createIdSend1.Dealer_Info__c = accountItem1.Id;
+      createIdSend1.Delivery_detail_count__c = 5;
+      insert new List<Consumable_order__c>{ createIdSend, createIdSend1 };
+
+      Consumable_orderdetails__c coc = new Consumable_orderdetails__c();
+      coc.Name = 'Too001';
+      coc.Dealer_Custom_Price__c = 999.00;
+      coc.Consumable_count__c = 3;
+      coc.Consumable_product__c = pro1.Id;
+      coc.Box_Piece__c = '鐩�';
+      coc.isOutPattern__c = true;
+      coc.Consumable_order__c = createIdSend.Id;
+      coc.Unitprice_To_agency__c = 999.00;
+      coc.Delivery_List_RMB__c = 999.00;
+      coc.Shipment_Count__c = null;
+      coc.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      Consumable_orderdetails__c coc1 = new Consumable_orderdetails__c();
+      coc1.Name = 'Too001';
+      coc1.Dealer_Custom_Price__c = 999.00;
+      coc1.Consumable_count__c = 3;
+      coc1.Consumable_product__c = pro1.Id;
+      coc1.Box_Piece__c = '鐩�';
+      coc1.isOutPattern__c = true;
+      coc1.Consumable_order__c = createIdSend.Id;
+      coc1.Unitprice_To_agency__c = 999.00;
+      coc1.Delivery_List_RMB__c = null;
+      coc1.Shipment_Count__c = 10000;
+      coc1.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      insert new List<Consumable_orderdetails__c>{ coc, coc1 };
+
+      Consumable_order_details2__c conOrderDetail1 = new Consumable_order_details2__c();
+      conOrderDetail1.Name = 'OCM_01_001001';
+      conOrderDetail1.Consumable_ZS_order__c = createIdSend.Id;
+      conOrderDetail1.Consumable_Product__c = pro1.Id;
+      conOrderDetail1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      conOrderDetail1.Bar_Code__c = '11111';
+      conOrderDetail1.Arrive_date__c = Date.today().addDays(1);
+      conOrderDetail1.Send_Date__c = null;
+      conOrderDetail1.Used_date__c = null;
+      conOrderDetail1.Return_date__c = null;
+      conOrderDetail1.Consumable_order_minor__c = createIdSend.Id;
+      conOrderDetail1.Lose_Flag__c = false;
+      conOrderDetail1.Box_Piece__c = '鐩�';
+      insert new List<Consumable_order_details2__c>{ conOrderDetail1 };
+
+      hospitalprice__c hp1 = new hospitalprice__c();
+      hp1.hospital__c = accountId;
+      hp1.account__c = accountId;
+      hp1.product__c = pro1.Id;
+      insert new List<hospitalprice__c>{ hp1 };
+
+      Integer size = Integer.valueOf(System.Label.orderdetLimitsize);
+      String ESetId = createIdSend.Id;
+      String statusEdit = 'Test';
+      String arrive = createIdSend.Id;
+
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecordsLwc = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c7 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c7.check = true;
+      c7.oldCheck = true;
+      c7.hospitalSpecialOffer = true;
+      c7.orderdetails1 = coc;
+      c7.orderdetails2 = conOrderDetail1;
+      c7.Prod = pro1;
+      c7.Boxnumber = 0.00;
+      c7.Piecenumber = 0.00;
+      c7.allnumber = 1999.00;
+      c7.oldConsumableCount = 1999.00;
+      c7.canSelect = true;
+      c7.sortBy = true;
+      c7.packinglist = 1;
+      c7.approbation_No = '';
+      c7.expiration_Date = Date.Today();
+      c7.boxorpiecein = '';
+      c7.boxorpiece = null;
+      c7.boxorpieceMap = null;
+      c7.concc = null;
+      c7.BoxPiece = null;
+      c7.hosPro = true;
+      pageRecordsLwc.add(c7);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords1 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c8 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c8.check = true;
+      c8.oldCheck = true;
+      c8.hospitalSpecialOffer = true;
+      c8.orderdetails1 = coc1;
+      c8.orderdetails2 = conOrderDetail1;
+      c8.Prod = null;
+      c8.Boxnumber = 0.00;
+      c8.Piecenumber = 0.00;
+      c8.allnumber = 1999.00;
+      c8.oldConsumableCount = 1999.00;
+      c8.canSelect = true;
+      c8.sortBy = true;
+      c8.packinglist = 1;
+      c8.approbation_No = '';
+      c8.expiration_Date = Date.Today();
+      c8.boxorpiecein = '';
+      c8.boxorpiece = null;
+      c8.boxorpieceMap = null;
+      c8.concc = null;
+      c8.BoxPiece = null;
+      c8.hosPro = true;
+      pageRecords1.add(c8);
+
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.oldCheck = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = coc;
+      codi.Prod = pro1;
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi1 = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi1.check = false;
+      codi1.oldCheck = true;
+      codi1.hospitalSpecialOffer = false;
+      codi1.packinglist = 0;
+      codi1.approbation_No = null;
+      codi1.expiration_Date = Date.Today();
+      codi1.boxorpiecein = null;
+      codi1.orderdetails1 = coc;
+      codi1.Prod = pro1;
+      consumable.add(codi);
+      System.Test.startTest();
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecordsLwc,
+        accountId,
+        createIdSend.Id,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend1,
+        '',
+        '',
+        '',
+        pageRecordsLwc,
+        accountId,
+        null,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      LexSummonsCreatController.save(
+        createIdSend,
+        '',
+        '',
+        '',
+        pageRecords1,
+        accountId,
+        null,
+        consumable,
+        agencyProType,
+        userWorkLocation
+      );
+      System.Test.stopTest();
+    }
+  }
+
   static testMethod void testInnerClass() {
-    System.Test.startTest();
-    List<LexSummonsCreatController.ConsumableorderdetailsInfo> cro = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
-    cro.sort();
-    System.Test.stopTest();
+    Account accountItem1;
+    Account accountItem2;
+    User userTest;
+    String rectCo = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('Agency')
+      .getRecordTypeId();
+    String rectHp = Schema.SObjectType.Account.getRecordTypeInfosByDeveloperName()
+      .get('HP')
+      .getRecordTypeId();
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    accountItem1 = new Account(
+      Name = 'Testaccount001',
+      RecordTypeId = rectCo,
+      AgentCode_Ext__c = '9999900'
+    );
+    insert accountItem1;
+    accountItem2 = new Account(
+      Name = 'Testaccount002',
+      RecordTypeId = rectHp,
+      AgentCode_Ext__c = '9999999',
+      ParentId = accountItem1.Id,
+      Contract_Decide_Start_Date__c = Date.today(),
+      ENG_Dealer__c = true,
+      BillingCity = null
+    );
+    insert accountItem2;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountId = accountItem1.Id
+    );
+    insert core;
+    System.runAs(new user(ID = UserInfo.getUserID())) {
+      userTest = new User(
+        ContactId = core.id,
+        Alias = 'newUser',
+        Email = 'newuser@testorg.com',
+        EmailEncodingKey = 'UTF-8',
+        LastName = 'TestUser',
+        LanguageLocaleKey = 'zh_CN',
+        LocaleSidKey = 'zh_CN',
+        ProfileId = prof.Id,
+        TimeZoneSidKey = 'Asia/Shanghai',
+        UserName = 'testUser@testorg.com',
+        UserPro_Type__c = 'ENG',
+        Work_Location__c = '鍖椾含'
+      );
+      insert userTest;
+    }
+    System.runAs(userTest) {
+      String userId = UserInfo.getUserId();
+      User thisUserInfo = [
+        SELECT
+          accountid,
+          UserPro_Type__c,
+          ContactId,
+          Contact.AccountId,
+          Contact.Account.Name,
+          Work_Location__c
+        FROM User
+        WHERE id = :userId
+      ];
+      String accountId = thisUserInfo.accountid;
+      String accountName = thisUserInfo.Contact.Account.Name;
+      String agencyProType = thisUserInfo.UserPro_Type__c;
+      String userWorkLocation = thisUserInfo.Work_Location__c;
+      thisUserInfo.UserPro_Type__c = '';
+      update thisUserInfo;
+      if (String.isBlank(thisUserInfo.UserPro_Type__c)) {
+        agencyProType = 'ET';
+      }
+      Product2 prod07 = new Product2(
+        Name = 'Test07',
+        ProductCode = 'Test07',
+        Asset_Model_No__c = 'Test07',
+        ProductCode_Ext__c = 'Test07',
+        Category3__c = 'Test7',
+        Category4__c = 'Test77',
+        Category5__c = 'Test777',
+        SFDA_Status__c = '鏈夊姽',
+        Dealer_special_Object__c = true,
+        Packing_list_manual__c = 1,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod07 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'MH-155:鐧藉钩琛″附',
+        OT_CODE_Text__c = 'Test001',
+        Product2__c = prod07.Id,
+        Category3_text__c = 'test123',
+        Category4_text__c = 'test123',
+        Category5_text__c = 'test123'
+      );
+      insert new List<Product2__c>{ pro1 };
+      Consumable_order__c createIdSend = new Consumable_order__c();
+      createIdSend.Name = 'testMing1';
+      createIdSend.Order_status__c = '鎵瑰噯';
+      createIdSend.Deliver_date__c = Date.today();
+      createIdSend.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend.Order_type__c = '璁㈠崟';
+      createIdSend.Order_ProType__c = 'ENG';
+      createIdSend.SummonsForDirction__c = '娴嬭瘯0001';
+      createIdSend.Order_ForDealerText__c = 'Testaccount003';
+      createIdSend.Order_ForCustomerText__c = 'Test000';
+      createIdSend.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend.orderPattern__c = 'hospitalorder';
+      createIdSend.Dealer_Info__c = accountItem1.Id;
+      createIdSend.Delivery_detail_count__c = 5;
+
+      Consumable_order__c createIdSend3 = new Consumable_order__c();
+      createIdSend3.Name = 'testMing123456';
+      createIdSend3.Order_status__c = '鎵瑰噯';
+      createIdSend3.Deliver_date__c = Date.today();
+      createIdSend3.Arrive_Order__c = createIdSend.Id;
+      createIdSend3.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      createIdSend3.Order_type__c = '璁㈠崟';
+      createIdSend3.Order_ProType__c = 'ENG';
+      createIdSend3.SummonsForDirction__c = '浜掔浉璋冭揣';
+      createIdSend3.Order_ForDealerText__c = '';
+      createIdSend3.Order_ForCustomerText__c = 'Test001';
+      createIdSend3.SummonsStatus_c__c = '鎵瑰噯';
+      createIdSend3.Dealer_Info__c = accountItem1.Id;
+      createIdSend3.Delivery_detail_count__c = 5;
+      //鍒拌揣
+      Consumable_order__c createIdArrived = new Consumable_order__c();
+      createIdArrived.Name = 'testMing2';
+      createIdArrived.Order_status__c = '鎵瑰噯';
+      createIdArrived.Deliver_date__c = Date.today();
+      createIdArrived.RecordTypeid = System.Label.RT_ConOrder_Arrive;
+      createIdArrived.Order_type__c = '璁㈠崟';
+      createIdArrived.Order_ProType__c = 'ET';
+      createIdArrived.Arrive_Order__c = createIdSend.Id;
+      createIdArrived.SummonsStatus_c__c = '宸叉彁浜�';
+      createIdArrived.orderPattern__c = 'promotionorder';
+      createIdArrived.Dealer_Info__c = accountItem1.Id;
+      createIdArrived.Delivery_detail_count__c = 5;
+      insert new List<Consumable_order__c>{
+        createIdSend,
+        createIdSend3,
+        createIdArrived
+      };
+
+      Consumable_orderdetails__c coc = new Consumable_orderdetails__c();
+      coc.Name = 'Too001';
+      coc.Dealer_Custom_Price__c = 999.00;
+      coc.Consumable_count__c = 3;
+      coc.Consumable_product__c = pro1.Id;
+      coc.Box_Piece__c = '鐩�';
+      coc.isOutPattern__c = true;
+      coc.Consumable_order__c = createIdSend.Id;
+      coc.Unitprice_To_agency__c = 999.00;
+      coc.Delivery_List_RMB__c = -999.00;
+      coc.Shipment_Count__c = 9999.00;
+      coc.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+
+      Consumable_orderdetails__c coc1 = new Consumable_orderdetails__c();
+      coc1.Name = 'Too001';
+      coc1.Dealer_Custom_Price__c = 999.00;
+      coc1.Consumable_count__c = 3;
+      coc1.Consumable_product__c = pro1.Id;
+      coc1.Box_Piece__c = '鐩�';
+      coc1.isOutPattern__c = true;
+      coc1.Consumable_order__c = createIdSend3.Id;
+      coc1.Unitprice_To_agency__c = 999.00;
+      coc1.Delivery_List_RMB__c = 999.00;
+      coc1.Shipment_Count__c = 9999.00;
+      coc1.RecordTypeid = System.Label.RT_ConOrderDetail1_Order;
+      insert new List<Consumable_orderdetails__c>{ coc, coc1 };
+
+      Consumable_order_details2__c conOrderDetail1 = new Consumable_order_details2__c();
+      conOrderDetail1.Name = 'OCM_01_001001';
+      conOrderDetail1.Consumable_ZS_order__c = createIdSend.Id;
+      conOrderDetail1.Consumable_Product__c = pro1.Id;
+      conOrderDetail1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      conOrderDetail1.Bar_Code__c = '11111';
+      conOrderDetail1.Arrive_date__c = Date.today().addDays(1);
+      conOrderDetail1.Send_Date__c = null;
+      conOrderDetail1.Used_date__c = null;
+      conOrderDetail1.Return_date__c = null;
+      conOrderDetail1.Consumable_Arrived_order__c = createIdSend.Id;
+      conOrderDetail1.Consumable_order_minor__c = createIdSend.Id;
+      conOrderDetail1.Lose_Flag__c = false;
+      conOrderDetail1.Cancellation_Flag__c = false;
+      conOrderDetail1.exchangeOutPattern__c = true;
+      conOrderDetail1.Box_Piece__c = '鐩�';
+      conOrderDetail1.Sterilization_limit__c = Date.Today();
+
+      Consumable_order_details2__c conOrderDetail2 = new Consumable_order_details2__c();
+      conOrderDetail2.Name = 'OCM_01_001002';
+      conOrderDetail2.Consumable_ZS_order__c = createIdArrived.Id;
+      conOrderDetail2.Consumable_Product__c = pro1.Id;
+      conOrderDetail2.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      conOrderDetail2.Bar_Code__c = '22222';
+      conOrderDetail2.Arrive_date__c = Date.today().addDays(1);
+      conOrderDetail2.Send_Date__c = null;
+      conOrderDetail2.Used_date__c = null;
+      conOrderDetail2.Return_date__c = null;
+      conOrderDetail2.Consumable_Arrived_order__c = createIdArrived.Id;
+      conOrderDetail2.Consumable_order_minor__c = createIdArrived.Id;
+      conOrderDetail2.Lose_Flag__c = false;
+      conOrderDetail2.exchangeOutPattern__c = false;
+      conOrderDetail2.Cancellation_Flag__c = false;
+      conOrderDetail2.Box_Piece__c = '涓�';
+      conOrderDetail2.Sterilization_limit__c = Date.Today();
+      insert new List<Consumable_order_details2__c>{
+        conOrderDetail1,
+        conOrderDetail2
+      };
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c6 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c6.check = true;
+      c6.oldCheck = true;
+      c6.hospitalSpecialOffer = true;
+      c6.orderdetails1 = coc1;
+      c6.orderdetails2 = conOrderDetail1;
+      c6.Prod = pro1;
+      c6.Boxnumber = 0.00;
+      c6.Piecenumber = 0.00;
+      c6.allnumber = 1999.00;
+      c6.oldConsumableCount = 1999.00;
+      c6.canSelect = true;
+      c6.sortBy = true;
+      c6.packinglist = 1;
+      c6.approbation_No = '';
+      c6.expiration_Date = Date.Today();
+      c6.boxorpiecein = '';
+      c6.boxorpiece = null;
+      c6.boxorpieceMap = null;
+      c6.concc = null;
+      c6.BoxPiece = null;
+      c6.hosPro = true;
+      pageRecords.add(c6);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pageRecords1 = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc c111 = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      c111.check = true;
+      c111.oldCheck = true;
+      c111.hospitalSpecialOffer = false;
+      c111.orderdetails1 = coc1;
+      c111.orderdetails2 = conOrderDetail1;
+      c111.Prod = pro1;
+      c111.Boxnumber = 0.00;
+      c111.Piecenumber = 0.00;
+      c111.allnumber = 1999.00;
+      c111.oldConsumableCount = 1999.00;
+      c111.canSelect = true;
+      c111.sortBy = true;
+      c111.packinglist = 1;
+      c111.approbation_No = '';
+      c111.expiration_Date = Date.Today();
+      c111.boxorpiecein = '';
+      c111.boxorpiece = null;
+      c111.boxorpieceMap = null;
+      c111.concc = null;
+      c111.BoxPiece = null;
+      c111.hosPro = true;
+      pageRecords1.add(c111);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = coc;
+      codi.Prod = pro1;
+      consumable.add(codi);
+      System.Test.startTest();
+      LexSummonsCreatController.init(null, 'Test', 1, 100, createIdArrived.Id);
+      LexSummonsCreatController.init(null, 'Test', 1, 100, null);
+      LexSummonsCreatController.init(null, null, 1, 100, createIdArrived.Id);
+      LexSummonsCreatController.categoryAllload('Test7');
+      LexSummonsCreatController.categoryload('Test7', 'Test77');
+      LexSummonsCreatController.searchConsumableorderdetails(
+        'ET',
+        'Testaccount001',
+        '鍖椾含',
+        'ishos',
+        'Test07',
+        'Test7',
+        'Test77',
+        'Test777',
+        true,
+        pageRecords,
+        consumable,
+        '',
+        1,
+        1
+      );
+      LexSummonsCreatController.searchConsumableorderdetails(
+        'ET',
+        'Testaccount001',
+        '鍖椾含',
+        'nothos',
+        'Test07',
+        'Test7',
+        'Test77',
+        'Test777',
+        true,
+        pageRecords,
+        consumable,
+        '',
+        1,
+        1
+      );
+      LexSummonsCreatController.searchConsumableorderdetails(
+        'ET',
+        'Testaccount001',
+        '鍖椾含',
+        'ishos',
+        'Test07',
+        'Test7',
+        'Test77',
+        'Test777',
+        true,
+        pageRecords1,
+        consumable,
+        '',
+        1,
+        1
+      );
+      LexSummonsCreatController.searchConsumableorderdetails(
+        'ET',
+        'Testaccount001',
+        '鍖椾含',
+        'nothos',
+        'Test07',
+        'Test7',
+        'Test77',
+        'Test777',
+        true,
+        pageRecords1,
+        consumable,
+        '',
+        1,
+        1
+      );
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> cro = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      cro.sort();
+      System.Test.stopTest();
+    }
+  }
+
+  @isTest
+  static void saveMethodTest1() {
+    List<RecordType> rectCo = [
+      SELECT Id
+      FROM RecordType
+      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '璨╁2搴�'
+    ];
+    if (rectCo.size() == 0) {
+      return;
+    }
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    RecordType rectCoO = [
+      SELECT Id
+      FROM RecordType
+      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鐥呴櫌'
+    ];
+    Account myAccount2 = new Account(
+      RecordTypeId = rectCoO.Id,
+      AgentCode_Ext__c = '9999900',
+      Name = 'olympus'
+    );
+    Account myAccount1 = new Account(
+      name = 'Testaccount001',
+      Dealer_discount__c = 30,
+      RecordTypeId = rectCo[0].Id
+    );
+    insert new List<account>{ myAccount1, myAccount2 };
+    hospitalprice__c hp1 = new hospitalprice__c();
+    hp1.hospital__c = myAccount2.Id;
+    hp1.account__c = myAccount1.Id;
+    insert hp1;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountid = myAccount1.id
+    );
+    insert core;
+    user MyUser_Test = new User(
+      ContactId = core.id,
+      Alias = 'newUser',
+      Email = 'newuser@testorg.com',
+      EmailEncodingKey = 'UTF-8',
+      LastName = 'TestUser',
+      LanguageLocaleKey = 'zh_CN',
+      LocaleSidKey = 'zh_CN',
+      ProfileId = prof.Id,
+      TimeZoneSidKey = 'Asia/Shanghai',
+      UserName = 'testUser@testorg.com',
+      UserPro_Type__c = 'ET',
+      Work_Location__c = '鍖椾含'
+    );
+    System.runAs(new User(Id = UserInfo.getUserId())) {
+      insert MyUser_Test;
+    }
+
+    System.runAs(MyUser_Test) {
+      Product2 prod01 = new Product2(
+        Name = 'Test01',
+        ProductCode = 'Test01',
+        Asset_Model_No__c = 'Test01',
+        SFDA_Status__c = '鏈夊姽',
+        JANCODE__c = '04953170200311',
+        Dealer_special_Object__c = true,
+        Manual_Entry__c = false
+      );
+      Product2 prod02 = new Product2(
+        Name = 'Test02',
+        ProductCode = 'Test02',
+        Asset_Model_No__c = 'Test02',
+        SFDA_Status__c = '鏈夊姽',
+        JANCODE__c = '04953170200312',
+        Dealer_special_Object__c = true,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod01, prod02 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'Pro001',
+        OT_CODE_Text__c = 'N3047730',
+        Product2__c = prod01.Id
+      );
+      Product2__c pro2 = new Product2__c(
+        Name = 'Pro002',
+        OT_CODE_Text__c = 'N3047731',
+        Product2__c = prod02.Id
+      );
+      insert new List<Product2__c>{ pro1, pro2 };
+
+      Consumable_order__c Order0 = new Consumable_order__c();
+      Order0.Name = 'OCM_01_000';
+      Order0.Order_status__c = '鎵瑰噯';
+      Order0.Order_type__c = '璁㈠崟';
+      Order0.Dealer_Info__c = myAccount1.id;
+      Order0.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      Order0.Order_ProType__c = 'ET';
+      insert Order0;
+
+      Consumable_order__c Order1 = new Consumable_order__c();
+      Order1.Name = 'OCM_01_001';
+      Order1.Order_status__c = '鎵瑰噯';
+      Order1.Order_type__c = '璁㈠崟';
+      Order1.Dealer_Info__c = myAccount1.id;
+      Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      Order1.Order_ProType__c = 'ET';
+      Order1.OutPattern__c = true;
+      Order1.Arrive_Order__c = Order0.Id;
+      insert Order1;
+      Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c();
+      Orderdet.Name = 'OCM_01_00101';
+      Orderdet.Consumable_order__c = Order1.Id;
+      Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
+      Orderdet.Consumable_Product__c = pro1.Id;
+      Orderdet.Consumable_count__c = 4;
+      Orderdet.Shipment_Count__c = 10;
+      Orderdet.isOutPattern__c = true;
+      Orderdet.Delivery_List_RMB__c = 100;
+      Orderdet.Box_Piece__c = '鐩�';
+      insert Orderdet;
+      Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c();
+      Orderdet1.Name = 'OCM_01_001001';
+      Orderdet1.Consumable_order_minor__c = Order1.Id;
+      Orderdet1.Consumable_Product__c = pro1.Id;
+      Orderdet1.Asset_Model_No__c = 'Test01';
+      Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF';
+      Orderdet1.Cancellation_Date__c = null;
+      Orderdet1.TracingCode__c = 'BXJRF';
+      Orderdet1.SerialLotNo__c = '5ZK';
+      Orderdet1.Arrive_date__c = Date.today();
+      Orderdet1.exchangeOutPattern__c = true;
+      Orderdet1.Consumable_ZS_order__c = Order1.Id;
+      Orderdet1.Box_Piece__c = '鐩�';
+      insert Orderdet1;
+      System.Test.startTest();
+      LexSummonsCreatController.init(Order1.Id, 'edit', 10, 1, '');
+      List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc> pList = new List<LexSummonsCreatController.ConsumableorderdetailsInfoLwc>();
+      LexSummonsCreatController.ConsumableorderdetailsInfoLwc p = new LexSummonsCreatController.ConsumableorderdetailsInfoLwc();
+      p.check = true;
+      p.oldcheck = true;
+      p.hospitalSpecialOffer = true;
+      p.orderdetails1 = Orderdet;
+      p.orderdetails2 = Orderdet1;
+      p.Prod = pro1;
+      p.Boxnumber = 2;
+      p.Piecenumber = 2;
+      pList.add(p);
+      List<LexSummonsCreatController.ConsumableorderdetailsInfo> consumable = new List<LexSummonsCreatController.ConsumableorderdetailsInfo>();
+      LexSummonsCreatController.ConsumableorderdetailsInfo codi = new LexSummonsCreatController.ConsumableorderdetailsInfo();
+      codi.check = true;
+      codi.hospitalSpecialOffer = true;
+      codi.packinglist = 0;
+      codi.approbation_No = null;
+      codi.expiration_Date = Date.Today();
+      codi.boxorpiecein = null;
+      codi.orderdetails1 = Orderdet;
+      codi.orderdetails2 = Orderdet1;
+      codi.Prod = pro1;
+      consumable.add(codi);
+      LexSummonsCreatController.coc.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      LexSummonsCreatController.coc.Order_ForCustomerText__c = '娑堝寲绉�';
+      LexSummonsCreatController.save(
+        LexSummonsCreatController.coc,
+        myAccount2.Id,
+        myAccount2.Name,
+        '',
+        pList,
+        myAccount1.Id,
+        '',
+        consumable,
+        'ET',
+        ''
+      );
+      Orderdet.Box_Piece__c = '涓�';
+      LexSummonsCreatController.save(
+        LexSummonsCreatController.coc,
+        myAccount2.Id,
+        myAccount2.Name,
+        '',
+        pList,
+        myAccount1.Id,
+        '',
+        consumable,
+        'ET',
+        ''
+      );
+      p.Piecenumber = 20;
+      LexSummonsCreatController.save(
+        LexSummonsCreatController.coc,
+        myAccount2.Id,
+        myAccount2.Name,
+        '',
+        pList,
+        myAccount1.Id,
+        '',
+        consumable,
+        'ET',
+        ''
+      );
+      System.Test.stopTest();
+    }
+  }
+
+  @isTest
+  static void initMethodTest1() {
+    List<RecordType> rectCo = [
+      SELECT Id
+      FROM RecordType
+      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '璨╁2搴�'
+    ];
+    if (rectCo.size() == 0) {
+      return;
+    }
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    RecordType rectCoO = [
+      SELECT Id
+      FROM RecordType
+      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鐥呴櫌'
+    ];
+    Account myAccount2 = new Account(
+      RecordTypeId = rectCoO.Id,
+      AgentCode_Ext__c = '9999900',
+      Name = 'olympus'
+    );
+    Account myAccount1 = new Account(
+      name = 'Testaccount001',
+      Dealer_discount__c = 30,
+      RecordTypeId = rectCo[0].Id
+    );
+    insert new List<account>{ myAccount1, myAccount2 };
+    hospitalprice__c hp1 = new hospitalprice__c();
+    hp1.hospital__c = myAccount2.Id;
+    hp1.account__c = myAccount1.Id;
+    insert hp1;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountid = myAccount1.id
+    );
+    insert core;
+    user MyUser_Test = new User(
+      ContactId = core.id,
+      Alias = 'newUser',
+      Email = 'newuser@testorg.com',
+      EmailEncodingKey = 'UTF-8',
+      LastName = 'TestUser',
+      LanguageLocaleKey = 'zh_CN',
+      LocaleSidKey = 'zh_CN',
+      ProfileId = prof.Id,
+      TimeZoneSidKey = 'Asia/Shanghai',
+      UserName = 'testUser@testorg.com',
+      UserPro_Type__c = 'ET',
+      Work_Location__c = '鍖椾含'
+    );
+    System.runAs(new User(Id = UserInfo.getUserId())) {
+      insert MyUser_Test;
+    }
+
+    System.runAs(MyUser_Test) {
+      Product2 prod01 = new Product2(
+        Name = 'Test01',
+        ProductCode = 'Test01',
+        Asset_Model_No__c = 'Test01',
+        SFDA_Status__c = '鏈夊姽',
+        JANCODE__c = '04953170200311',
+        Dealer_special_Object__c = true,
+        Manual_Entry__c = false
+      );
+      Product2 prod02 = new Product2(
+        Name = 'Test02',
+        ProductCode = 'Test02',
+        Asset_Model_No__c = 'Test02',
+        SFDA_Status__c = '鏈夊姽',
+        JANCODE__c = '04953170200312',
+        Dealer_special_Object__c = true,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod01, prod02 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'Pro001',
+        OT_CODE_Text__c = 'N3047730',
+        Product2__c = prod01.Id
+      );
+      Product2__c pro2 = new Product2__c(
+        Name = 'Pro002',
+        OT_CODE_Text__c = 'N3047731',
+        Product2__c = prod02.Id
+      );
+      insert new List<Product2__c>{ pro1, pro2 };
+
+      Consumable_order__c Order0 = new Consumable_order__c();
+      Order0.Name = 'OCM_01_000';
+      Order0.Order_status__c = '鎵瑰噯';
+      Order0.Order_type__c = '璁㈠崟';
+      Order0.Dealer_Info__c = myAccount1.id;
+      Order0.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      Order0.Order_ProType__c = 'ET';
+      insert Order0;
+
+      Consumable_order__c Order1 = new Consumable_order__c();
+      Order1.Name = 'OCM_01_001';
+      Order1.Order_status__c = '鎵瑰噯';
+      Order1.Order_type__c = '浼犵エ';
+      Order1.Dealer_Info__c = myAccount1.id;
+      Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      Order1.Order_ProType__c = 'ET';
+      Order1.OutPattern__c = true;
+      Order1.Arrive_Order__c = Order0.Id;
+      Order1.SummonsStatus_c__c = '宸叉彁浜�';
+      Order1.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      insert Order1;
+      Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c();
+      Orderdet.Name = 'OCM_01_00101';
+      Orderdet.Consumable_order__c = Order1.Id;
+      Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
+      Orderdet.Consumable_Product__c = pro1.Id;
+      Orderdet.Consumable_count__c = 4;
+      Orderdet.Shipment_Count__c = 10;
+      Orderdet.isOutPattern__c = true;
+      Orderdet.Delivery_List_RMB__c = 100;
+      Orderdet.Box_Piece__c = '鐩�';
+      insert Orderdet;
+      Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c();
+      Orderdet1.Name = 'OCM_01_001001';
+      Orderdet1.Consumable_order_minor__c = Order1.Id;
+      Orderdet1.Consumable_Product__c = pro1.Id;
+      Orderdet1.Asset_Model_No__c = 'Test01';
+      Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF';
+      Orderdet1.Cancellation_Date__c = null;
+      Orderdet1.TracingCode__c = 'BXJRF';
+      Orderdet1.SerialLotNo__c = '5ZK';
+      Orderdet1.Arrive_date__c = Date.today();
+      Orderdet1.exchangeOutPattern__c = true;
+      Orderdet1.Consumable_ZS_order__c = Order1.Id;
+      Orderdet1.Box_Piece__c = '鐩�';
+      insert Orderdet1;
+      System.Test.startTest();
+      LexSummonsCreatController.init(Order1.Id, 'edit', 10, 1, '');
+      System.Test.stopTest();
+    }
+  }
+
+  @isTest
+  static void initMethodTest2() {
+    List<RecordType> rectCo = [
+      SELECT Id
+      FROM RecordType
+      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '璨╁2搴�'
+    ];
+    if (rectCo.size() == 0) {
+      return;
+    }
+    Profile prof = [
+      SELECT Id
+      FROM Profile
+      WHERE Name = '901_缁忛攢鍟嗙ぞ鍖烘櫘閫氭潈闄恄2閲嶉獙璇�(ET)'
+    ];
+    RecordType rectCoO = [
+      SELECT Id
+      FROM RecordType
+      WHERE IsActive = TRUE AND SobjectType = 'Account' AND Name = '鐥呴櫌'
+    ];
+    Account myAccount2 = new Account(
+      RecordTypeId = rectCoO.Id,
+      AgentCode_Ext__c = '9999900',
+      Name = 'olympus'
+    );
+    Account myAccount1 = new Account(
+      name = 'Testaccount001',
+      Dealer_discount__c = 30,
+      RecordTypeId = rectCo[0].Id
+    );
+    insert new List<account>{ myAccount1, myAccount2 };
+    hospitalprice__c hp1 = new hospitalprice__c();
+    hp1.hospital__c = myAccount2.Id;
+    hp1.account__c = myAccount1.Id;
+    insert hp1;
+    Contact core = new Contact(
+      email = 'jplumber@salesforce.com',
+      firstname = 'Joe',
+      lastname = 'Plumber',
+      accountid = myAccount1.id
+    );
+    insert core;
+    user MyUser_Test = new User(
+      ContactId = core.id,
+      Alias = 'newUser',
+      Email = 'newuser@testorg.com',
+      EmailEncodingKey = 'UTF-8',
+      LastName = 'TestUser',
+      LanguageLocaleKey = 'zh_CN',
+      LocaleSidKey = 'zh_CN',
+      ProfileId = prof.Id,
+      TimeZoneSidKey = 'Asia/Shanghai',
+      UserName = 'testUser@testorg.com',
+      UserPro_Type__c = 'ET'
+    );
+    System.runAs(new User(Id = UserInfo.getUserId())) {
+      insert MyUser_Test;
+    }
+
+    System.runAs(MyUser_Test) {
+      Product2 prod01 = new Product2(
+        Name = 'Test01',
+        ProductCode = 'Test01',
+        Asset_Model_No__c = 'Test01',
+        SFDA_Status__c = '鏈夊姽',
+        JANCODE__c = '04953170200311',
+        Dealer_special_Object__c = true,
+        Manual_Entry__c = false
+      );
+      Product2 prod02 = new Product2(
+        Name = 'Test02',
+        ProductCode = 'Test02',
+        Asset_Model_No__c = 'Test02',
+        SFDA_Status__c = '鏈夊姽',
+        JANCODE__c = '04953170200312',
+        Dealer_special_Object__c = true,
+        Manual_Entry__c = false
+      );
+      insert new List<Product2>{ prod01, prod02 };
+      Product2__c pro1 = new Product2__c(
+        Name = 'Pro001',
+        OT_CODE_Text__c = 'N3047730',
+        Product2__c = prod01.Id
+      );
+      Product2__c pro2 = new Product2__c(
+        Name = 'Pro002',
+        OT_CODE_Text__c = 'N3047731',
+        Product2__c = prod02.Id
+      );
+      insert new List<Product2__c>{ pro1, pro2 };
+
+      Consumable_order__c Order0 = new Consumable_order__c();
+      Order0.Name = 'OCM_01_000';
+      Order0.Order_status__c = '鎵瑰噯';
+      Order0.Order_type__c = '璁㈠崟';
+      Order0.Dealer_Info__c = myAccount1.id;
+      Order0.RecordTypeid = System.Label.RT_ConOrder_Delivery;
+      Order0.Order_ProType__c = 'ET';
+      insert Order0;
+
+      Consumable_order__c Order1 = new Consumable_order__c();
+      Order1.Name = 'OCM_01_001';
+      Order1.Order_status__c = '鎵瑰噯';
+      Order1.Order_type__c = '璁㈠崟';
+      Order1.Dealer_Info__c = myAccount1.id;
+      Order1.RecordTypeid = System.Label.RT_ConOrder_Arrive;
+      Order1.Order_ProType__c = 'ET';
+      Order1.OutPattern__c = true;
+      Order1.Arrive_Order__c = Order0.Id;
+      Order1.SummonsStatus_c__c = '宸叉彁浜�';
+      Order1.SummonsForDirction__c = '鐩存帴閿�鍞粰鍖婚櫌';
+      insert Order1;
+      Consumable_orderdetails__c Orderdet = new Consumable_orderdetails__c();
+      Orderdet.Name = 'OCM_01_00101';
+      Orderdet.Consumable_order__c = Order0.Id;
+      Orderdet.RecordTypeId = System.Label.RT_ConOrderDetail1_Order;
+      Orderdet.Consumable_Product__c = pro1.Id;
+      Orderdet.Consumable_count__c = 4;
+      Orderdet.Shipment_Count__c = 10;
+      Orderdet.isOutPattern__c = true;
+      Orderdet.Delivery_List_RMB__c = 100;
+      Orderdet.Box_Piece__c = '鐩�';
+      insert Orderdet;
+      Consumable_order_details2__c Orderdet1 = new Consumable_order_details2__c();
+      Orderdet1.Name = 'OCM_01_001001';
+      Orderdet1.Consumable_order_minor__c = Order1.Id;
+      Orderdet1.Consumable_Product__c = pro1.Id;
+      Orderdet1.Asset_Model_No__c = 'Test01';
+      Orderdet1.RecordTypeId = System.Label.RT_ConOrderDetail2_Delivery;
+      Orderdet1.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF';
+      Orderdet1.Cancellation_Date__c = null;
+      Orderdet1.TracingCode__c = 'BXJRF';
+      Orderdet1.SerialLotNo__c = '5ZK';
+      Orderdet1.Arrive_date__c = Date.today();
+      Orderdet1.exchangeOutPattern__c = true;
+      Orderdet1.Consumable_ZS_order__c = Order1.Id;
+      Orderdet1.Box_Piece__c = '鐩�';
+      Orderdet1.Sterilization_limit__c = Date.today().addDays(2);
+      insert Orderdet1;
+      System.Test.startTest();
+      LexSummonsCreatController.init('', 'edit', 10, 1, Order1.Id);
+      System.Test.stopTest();
+    }
   }
 }

--
Gitblit v1.9.1