@isTest
private class LexRemoveBoxControllerTest {
  static testMethod void myUnitTest() {
    user myUser_test;
    Account myAccount2;
    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 = '販売店'
      ];
      if (rectCo.size() == 0) {
        return;
      }
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)'
      ];
      myAccount2 = new Account(
        name = 'Testaccount002',
        Dealer_discount__c = 20,
        RecordTypeId = rectCo[0].Id,
        AgentCode_Ext__c = '9999900'
      );
      insert myAccount2;
      Contact core = new Contact(
        email = 'jplumber@salesforce.com',
        firstname = 'Joe',
        lastname = 'Plumber',
        accountid = myAccount2.id
      );
      insert core;
      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',
        Work_Location__c = '重庆'
      );
      insert MyUser_Test;
    }

    System.runAs(myUser_Test) {
      StaticParameter.EscapeConsumableOrderDetail2Trigger = true;
      StaticParameter.EscapeNFM007Trigger = true;
      StaticParameter.EscapeOpportunityBefUpdTrigger = true;
      StaticParameter.EscapeOpportunityHpDeptUpdTrigger = true;
      StaticParameter.EscapeSyncOpportunityTrigger = true;
      StaticParameter.EscapeSyncProduct2Trigger = true;
      Product2 prod01 = new Product2(
        Name = 'Test01',
        ProductCode = 'Test01',
        Asset_Model_No__c = 'Test01',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200311',
        Packing_list_manual__c = 12,
        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',
        Packing_list_manual__c = 10,
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      Product2 prod03 = new Product2(
        Name = 'Test03',
        ProductCode = 'Test03',
        Asset_Model_No__c = 'Test03',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200313',
        Packing_list_manual__c = 1,
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02, prod03 };
      Product2__c pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'Test001',
        Product2__c = prod01.Id
      );
      Product2__c pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'Test002',
        Product2__c = prod02.Id
      );
      Product2__c pro3 = new Product2__c(
        Name = 'Pro003',
        OT_CODE_Text__c = 'Test003',
        Product2__c = prod03.Id
      );
      insert new List<Product2__c>{ pro1, pro2, pro3 };
      //订单
      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 = myAccount2.Id;
      Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
      Order1.Order_ProType__c = 'ET';
      insert Order1;
      List<Consumable_order_details2__c> conList1 = new List<Consumable_order_details2__c>();

      //daoku
      Consumable_order_details2__c Orderdet2 = new Consumable_order_details2__c();
      Orderdet2.Name = 'OCM_01_001001';
      Orderdet2.Consumable_order_minor__c = Order1.Id;
      Orderdet2.Consumable_Product__c = pro1.Id;
      Orderdet2.Asset_Model_No__c = 'Test01';
      Orderdet2.Arrive_date__c = Date.today();
      Orderdet2.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRF';
      Orderdet2.Used_date__c = null;
      Orderdet2.Lose_Flag__c = false;
      Orderdet2.Return_date__c = null;
      Orderdet2.Send_Date__c = null;
      Orderdet2.Box_Piece__c = '盒';
      conList1.add(Orderdet2);

      //chuhe
      Consumable_order_details2__c Orderdet3 = new Consumable_order_details2__c();
      Orderdet3.Name = 'OCM_01_001002';
      Orderdet3.Consumable_order_minor__c = Order1.Id;
      Orderdet3.Consumable_Product__c = pro2.Id;
      Orderdet3.Asset_Model_No__c = 'Test02';
      Orderdet3.Arrive_date__c = Date.today();
      Orderdet3.Send_Date__c = Date.today();
      Orderdet3.Box_Piece__c = '个';
      Orderdet3.RemoveBox_date__c = Date.today();
      Orderdet3.Bar_Code__c = '01049531702003111115120017181000105ZK250BXJRA';
      Orderdet3.Used_date__c = null;
      Orderdet3.Lose_Flag__c = false;
      Orderdet3.Return_date__c = null;
      conList1.add(Orderdet3);

      //sale
      Consumable_order_details2__c Orderdet4 = new Consumable_order_details2__c();
      Orderdet4.Name = 'OCM_01_001004';
      Orderdet4.Consumable_order_minor__c = Order1.Id;
      Orderdet4.Consumable_Product__c = pro2.Id;
      Orderdet4.Asset_Model_No__c = 'Test02';
      Orderdet4.Arrive_date__c = Date.today();
      Orderdet4.Box_Piece__c = '个';
      Orderdet4.RemoveBox_date__c = Date.today();
      Orderdet4.Bar_Code__c = '011495317020843711170400172003311074K250CXSDS';
      Orderdet4.Lose_Flag__c = false;
      Orderdet4.Return_date__c = null;
      Orderdet4.Used_date__c = Date.today();
      conList1.add(Orderdet4);

      List<Consumable_order_details2__c> conList = new List<Consumable_order_details2__c>();
      //ProductPacking_list_manual__c=1
      Consumable_order_details2__c Orderdet5 = new Consumable_order_details2__c();
      Orderdet5.Name = 'OCM_01_001004';
      Orderdet5.Consumable_order_minor__c = Order1.Id;
      Orderdet5.Consumable_Product__c = pro3.Id;
      Orderdet5.Asset_Model_No__c = 'Test03';
      Orderdet5.Arrive_date__c = Date.today();
      //Orderdet5.Used_date__c = Date.today();
      Orderdet5.Box_Piece__c = '盒';
      Orderdet5.RemoveBox_date__c = Date.today();
      Orderdet5.Used_date__c = null;
      Orderdet5.Lose_Flag__c = false;
      Orderdet5.Return_date__c = null;
      Orderdet5.Send_Date__c = null;
      Orderdet5.Bar_Code__c = '010495317014059411170400172203311074K250DCWQW';
      conList.add(Orderdet5);
      //pandian
      Consumable_order_details2__c Orderdet7 = new Consumable_order_details2__c();
      Orderdet7.Name = 'OCM_01_001004';
      Orderdet7.Consumable_order_minor__c = Order1.Id;
      Orderdet7.Consumable_Product__c = pro2.Id;
      Orderdet7.Asset_Model_No__c = 'Test02';
      Orderdet7.Box_Piece__c = '盒';
      Orderdet7.Lose_Flag__c = false;
      Orderdet7.Bar_Code__c = '010495317014059411170400172203311074K250DBVUD';
      Orderdet7.RemoveBox_date__c = Date.today();
      Orderdet7.Inventory_date__c = Date.today();
      conList.add(Orderdet7);

      Consumable_order_details2__c Orderdet8 = new Consumable_order_details2__c();
      Orderdet8.Name = 'OCM_01_001004';
      Orderdet8.Consumable_order_minor__c = Order1.Id;
      Orderdet8.Consumable_Product__c = pro2.Id;
      Orderdet8.Asset_Model_No__c = 'Test02';
      Orderdet8.Arrive_date__c = Date.today();
      Orderdet8.Box_Piece__c = '个';
      Orderdet8.Lose_Flag__c = false;
      Orderdet8.Bar_Code__c = '010495317014059411170400172203311074K250DBVUC';
      Orderdet8.Used_date__c = null;
      Orderdet8.Lose_Flag__c = false;
      Orderdet8.Return_date__c = null;
      Orderdet8.RemoveBox_date__c = Date.today();
      Orderdet8.Send_Date__c = null;
      Orderdet8.RemoveBox_No__c = 3;
      conList.add(Orderdet8);
      insert conList1;
      insert conList;

      System.Test.startTest();
      LexRemoveBoxController Controller = new LexRemoveBoxController();
      LexRemoveBoxController.init();
      LexRemoveBoxController.searchConsumableorderdetails(
        '01049531702003111115120017181000105ZK250BXJRF\n01049531702003111115120017181000105ZK250BXJRA\n011495317020843711170400172003311074K250CXSDS\n010495317014059411170400172203311074K250DCWQW\n010495317014059411170400172203311074K250DBVUD\n010495317014059411170400172203311074K250DBVUC',
        myAccount2.Id,
        '深圳',
        'ET'
      );
      LexRemoveBoxController.searchConsumableorderdetails(
        '',
        myAccount2.Id,
        '重庆',
        'ET'
      );
      LexRemoveBoxController.barcode = '1004\n1003\n1002\n1001';
      LexRemoveBoxController.getinventorysize();
      LexRemoveBoxController.removeBoxConfirm(
        JSON.serialize(conList),
        'Testaccount002',
        '重庆',
        'ENG'
      );
      List<Consumable_order_details2__c> orderDetaList = new List<Consumable_order_details2__c>();
      LexRemoveBoxController.removeBoxConfirm(
        JSON.serialize(orderDetaList),
        'Testaccount002',
        '重庆',
        'ENG'
      );
      System.Test.stopTest();
    }
  }
  static testMethod void testMethod1() {
    user myUser_test;
    Account myAccount2;
    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 = '販売店'
      ];
      if (rectCo.size() == 0) {
        return;
      }
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)'
      ];
      myAccount2 = new Account(
        name = 'Testaccount002',
        Dealer_discount__c = 20,
        RecordTypeId = rectCo[0].Id,
        AgentCode_Ext__c = '9999900'
      );
      insert myAccount2;
      Contact core = new Contact(
        email = 'jplumber@salesforce.com',
        firstname = 'Joe',
        lastname = 'Plumber',
        accountid = myAccount2.id
      );
      insert core;
      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',
        Work_Location__c = '重庆'
      );
      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',
        Packing_list_manual__c = 12,
        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',
        Packing_list_manual__c = 10,
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      Product2 prod03 = new Product2(
        Name = 'Test03',
        ProductCode = 'Test03',
        Asset_Model_No__c = 'Test03',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200313',
        Dealer_special_Object__c = true,
        Packing_list_manual__c = 1,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02, prod03 };
      Product2__c pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'Test001',
        Product2__c = prod01.Id
      );
      Product2__c pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'Test002',
        Product2__c = prod02.Id
      );
      Product2__c pro3 = new Product2__c(
        Name = 'Pro003',
        OT_CODE_Text__c = 'Test003',
        Product2__c = prod03.Id
      );
      insert new List<Product2__c>{ pro1, pro2, pro3 };
      //订单
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01';
      Order1.Order_status__c = '批准';
      Order1.Order_type__c = '订单';
      Order1.Dealer_Info__c = myAccount2.Id;
      Order1.RecordTypeid = System.Label.RT_ConOrder_Delivery;
      Order1.Order_ProType__c = 'ET';
      insert Order1;
      //发货
      Consumable_order__c Order2 = new Consumable_order__c();
      Order2.Name = 'OCM_01';
      Order2.Order_status__c = '批准';
      Order2.Order_type__c = '订单 ';
      Order2.Dealer_Info__c = myAccount2.Id;
      Order2.RecordTypeid = '01210000000c9drAAA';
      Order2.Order_ProType__c = 'ENG';
      insert Order2;

      List<Consumable_order_details2__c> conList1 = new List<Consumable_order_details2__c>();
      //产品类型不同
      Consumable_order_details2__c con = new Consumable_order_details2__c();
      con.Name = 'OCM_01_001001';
      con.Consumable_order_minor__c = Order1.Id;
      con.Consumable_Product__c = pro1.Id;
      con.Asset_Model_No__c = 'Test01';
      con.Arrive_date__c = Date.today();
      con.Bar_Code__c = '10011';
      con.Used_date__c = null;
      con.Lose_Flag__c = false;
      con.Return_date__c = null;
      con.Send_Date__c = null;
      con.Box_Piece__c = '盒';
      conList1.add(con);

      // 未到货
      Consumable_order_details2__c con2 = new Consumable_order_details2__c();
      con2.Arrive_date__c = null;
      con2.Send_Date__c = null;
      con2.Used_date__c = null;
      con2.Return_date__c = null;
      con2.Lose_Flag__c = false;
      con2.Box_Piece__c = '盒';
      con2.Consumable_Arrived_order__c = Order2.Id;
      con2.Consumable_Product__c = pro2.Id;
      con2.Consumable_order_minor__c = Order2.Id;
      con2.Bar_Code__c = '10031';
      conList1.add(con2);
      //规格=1
      Consumable_order_details2__c con3 = new Consumable_order_details2__c();
      con3.Arrive_date__c = Date.today();
      con3.Send_Date__c = null;
      con3.Used_date__c = null;
      con3.Return_date__c = null;
      con3.Lose_Flag__c = false;
      con3.Box_Piece__c = '盒';
      con3.Consumable_Arrived_order__c = Order2.Id;
      con3.Consumable_Product__c = pro3.Id;
      con3.Consumable_order_minor__c = Order2.Id;
      con3.RemoveBox_date__c = Date.today();
      con3.Bar_Code__c = '10032';
      conList1.add(con3);

      insert conList1;
      System.Test.startTest();
      LexRemoveBoxController.searchConsumableorderdetails(
        '10011',
        'Testaccount002',
        '重庆',
        'ET'
      );
      LexRemoveBoxController.searchConsumableorderdetails(
        '10031\n10032',
        'Testaccount002',
        '重庆',
        'ENG'
      );
      System.Test.stopTest();
    }
  }
  static testMethod void testMethod2() {
    // TO DO: implement unit test
    user myUser_test;
    Account myAccount2;
    Product2__c pro2;
    Product2__c pro3;
    Product2__c pro1;
    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 = '販売店'
      ];
      if (rectCo.size() == 0) {
        return;
      }
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)'
      ];
      myAccount2 = new Account(
        name = 'Testaccount002',
        Dealer_discount__c = 20,
        RecordTypeId = rectCo[0].Id,
        AgentCode_Ext__c = '9999900'
      );
      insert myAccount2;
      Contact core = new Contact(
        email = 'jplumber@salesforce.com',
        firstname = 'Joe',
        lastname = 'Plumber',
        accountid = myAccount2.id
      );
      insert core;
      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',
        Work_Location__c = '重庆'
      );
      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',
        Packing_list_manual__c = 12,
        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',
        Packing_list_manual__c = 10,
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      Product2 prod03 = new Product2(
        Name = 'Test03',
        ProductCode = 'Test03',
        Asset_Model_No__c = 'Test03',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200313',
        Dealer_special_Object__c = true,
        Packing_list_manual__c = 1,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02, prod03 };
      pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'Test001',
        Product2__c = prod01.Id
      );
      pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'Test002',
        Product2__c = prod02.Id
      );
      pro3 = new Product2__c(
        Name = 'Pro003',
        OT_CODE_Text__c = 'Test003',
        Product2__c = prod03.Id
      );
      insert new List<Product2__c>{ pro1, pro2, pro3 };
      List<Consumable_order__c> orderList = new List<Consumable_order__c>();
      List<Consumable_order__c> orderList1 = new List<Consumable_order__c>();
      //到货
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01';
      Order1.Order_status__c = '批准';
      Order1.Order_type__c = '到货';
      Order1.Dealer_Info__c = myAccount2.Id;
      Order1.RecordTypeid = '01210000000c9dqAAA';
      Order1.Order_ProType__c = 'ET';
      orderList.add(Order1);
      //销售
      Consumable_order__c Order2 = new Consumable_order__c();
      Order2.Name = 'OCM_0144';
      Order2.Order_status__c = '批准';
      Order2.Order_type__c = '销售';
      Order2.Dealer_Info__c = myAccount2.Id;
      Order2.RecordTypeid = '01210000000c9duAAA';
      Order2.Order_ProType__c = 'ENG';
      orderList.add(Order2);
      insert orderList;

      //出货
      Consumable_order__c Order3 = new Consumable_order__c();
      Order3.Name = 'OCM_03';
      Order3.Order_status__c = '批准';
      Order3.Order_type__c = '出货';
      Order3.Dealer_Info__c = myAccount2.Id;
      Order3.RecordTypeid = '012100000006Jx9AAE';
      Order3.Order_ProType__c = 'ENG';
      orderList1.add(Order3);

      //发货
      Consumable_order__c Order4 = new Consumable_order__c();
      Order4.Name = 'OCM_03';
      Order4.Order_status__c = '批准';
      Order4.Order_type__c = '发货';
      Order4.Dealer_Info__c = myAccount2.Id;
      Order4.RecordTypeid = '01210000000c9drAAA';
      Order4.Order_ProType__c = 'ENG';
      orderList1.add(Order4);
      insert orderList1;

      List<Consumable_order_details2__c> conList1 = new List<Consumable_order_details2__c>();
      //产品类型不同
      Consumable_order_details2__c con = new Consumable_order_details2__c();
      con.Name = 'OCM_01_001001';
      con.Consumable_order_minor__c = Order1.Id;
      con.Consumable_Product__c = pro1.Id;
      con.Asset_Model_No__c = 'Test01';
      con.Arrive_date__c = Date.today();
      con.Bar_Code__c = '10011';
      con.Used_date__c = null;
      con.Lose_Flag__c = false;
      con.Return_date__c = null;
      con.Send_Date__c = null;
      con.Box_Piece__c = '盒';
      conList1.add(con);

      // // 未到货
      Consumable_order_details2__c con2 = new Consumable_order_details2__c();
      con2.Arrive_date__c = null;
      con2.Send_Date__c = null;
      con2.Used_date__c = null;
      con2.Return_date__c = null;
      con2.Lose_Flag__c = false;
      con2.Box_Piece__c = '盒';
      con2.Consumable_Arrived_order__c = Order2.Id;
      con2.Consumable_Product__c = pro2.Id;
      con2.Consumable_order_minor__c = Order2.Id;
      con2.Bar_Code__c = '10031';
      conList1.add(con2);
      //规格=1
      Consumable_order_details2__c con3 = new Consumable_order_details2__c();
      con3.Arrive_date__c = Date.today();
      con3.Send_Date__c = null;
      con3.Used_date__c = null;
      con3.Return_date__c = null;
      con3.Lose_Flag__c = false;
      con3.Box_Piece__c = '盒';
      con3.Consumable_Arrived_order__c = Order2.Id;
      con3.Consumable_Product__c = pro3.Id;
      con3.Consumable_order_minor__c = Order2.Id;
      con3.RemoveBox_date__c = Date.today();
      con3.Bar_Code__c = '10032';
      conList1.add(con3);

      insert conList1;
      System.Test.startTest();
      LexRemoveBoxController.searchConsumableorderdetails(
        '10031\n10032\n',
        'Testaccount002',
        '重庆',
        'ENG'
      );
      System.Test.stopTest();
    }
  }
  static testMethod void testMethod3() {
    // TO DO: implement unit test
    user myUser_test;
    Account myAccount2;
    Product2__c pro2;
    Product2__c pro3;
    Product2__c pro1;
    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 = '販売店'
      ];
      if (rectCo.size() == 0) {
        return;
      }
      Profile prof = [
        SELECT Id
        FROM Profile
        WHERE Name = '901_经销商社区普通权限_2重验证(ET Email)'
      ];
      myAccount2 = new Account(
        name = 'Testaccount002',
        Dealer_discount__c = 20,
        RecordTypeId = rectCo[0].Id,
        AgentCode_Ext__c = '9999900'
      );
      insert myAccount2;
      Contact core = new Contact(
        email = 'jplumber@salesforce.com',
        firstname = 'Joe',
        lastname = 'Plumber',
        accountid = myAccount2.id
      );
      insert core;
      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',
        Work_Location__c = '重庆'
      );
      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',
        Packing_list_manual__c = 12,
        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',
        Packing_list_manual__c = 10,
        Dealer_special_Object__c = true,
        Manual_Entry__c = false
      );
      Product2 prod03 = new Product2(
        Name = 'Test03',
        ProductCode = 'Test03',
        Asset_Model_No__c = 'Test03',
        SFDA_Status__c = '有効',
        JANCODE__c = '04953170200313',
        Dealer_special_Object__c = true,
        Packing_list_manual__c = 1,
        Manual_Entry__c = false
      );
      insert new List<Product2>{ prod01, prod02, prod03 };
      pro1 = new Product2__c(
        Name = 'Pro001',
        OT_CODE_Text__c = 'Test001',
        Product2__c = prod01.Id
      );
      pro2 = new Product2__c(
        Name = 'Pro002',
        OT_CODE_Text__c = 'Test002',
        Product2__c = prod02.Id
      );
      pro3 = new Product2__c(
        Name = 'Pro003',
        OT_CODE_Text__c = 'Test003',
        Product2__c = prod03.Id
      );
      insert new List<Product2__c>{ pro1, pro2, pro3 };
      List<Consumable_order__c> orderList = new List<Consumable_order__c>();
      //到货
      Consumable_order__c Order1 = new Consumable_order__c();
      Order1.Name = 'OCM_01';
      Order1.Order_status__c = '批准';
      Order1.Order_type__c = '到货';
      Order1.Dealer_Info__c = myAccount2.Id;
      Order1.RecordTypeid = '01210000000c9dqAAA';
      Order1.Order_ProType__c = 'ENG';
      orderList.add(Order1);
      //发货
      Consumable_order__c Order2 = new Consumable_order__c();
      Order2.Name = 'OCM_01';
      Order2.Order_status__c = '批准';
      Order2.Order_type__c = '订单 ';
      Order2.Dealer_Info__c = myAccount2.Id;
      Order2.RecordTypeid = '01210000000c9drAAA';
      Order2.Order_ProType__c = 'ENG';
      orderList.add(Order2);
      insert orderList;

      List<Consumable_order_details2__c> conList1 = new List<Consumable_order_details2__c>();
      //产品类型不同
      Consumable_order_details2__c con = new Consumable_order_details2__c();
      con.Name = 'OCM_01_001001';
      con.Consumable_order_minor__c = Order1.Id;
      con.Consumable_Product__c = pro1.Id;
      con.Asset_Model_No__c = 'Test01';
      con.Arrive_date__c = Date.today();
      con.Bar_Code__c = '10011';
      con.Used_date__c = null;
      con.Lose_Flag__c = false;
      con.Return_date__c = null;
      con.Send_Date__c = null;
      con.Box_Piece__c = '盒';
      conList1.add(con);

      // 未到货
      Consumable_order_details2__c con2 = new Consumable_order_details2__c();
      con2.Arrive_date__c = null;
      con2.Send_Date__c = null;
      con2.Used_date__c = null;
      con2.Return_date__c = null;
      con2.Lose_Flag__c = false;
      con2.Box_Piece__c = '盒';
      con2.Consumable_Arrived_order__c = Order2.Id;
      con2.Consumable_Product__c = pro2.Id;
      con2.Consumable_order_minor__c = Order2.Id;
      con2.Bar_Code__c = '10031';
      conList1.add(con2);
      //规格=1
      Consumable_order_details2__c con3 = new Consumable_order_details2__c();
      con3.Arrive_date__c = Date.today();
      con3.Send_Date__c = null;
      con3.Used_date__c = null;
      con3.Return_date__c = null;
      con3.Lose_Flag__c = false;
      con3.Box_Piece__c = '盒';
      con3.Consumable_Arrived_order__c = Order2.Id;
      con3.Consumable_Product__c = pro3.Id;
      con3.Consumable_order_minor__c = Order2.Id;
      con3.RemoveBox_date__c = Date.today();
      con3.Bar_Code__c = '10032';
      conList1.add(con3);

      insert conList1;
      System.Test.startTest();
      LexRemoveBoxController.searchConsumableorderdetails(
        '10011\n10031',
        'Testaccount002',
        '重庆',
        'ENG'
      );
      LexRemoveBoxController.searchConsumableorderdetails(
        '10032',
        'Testaccount002',
        '上海',
        'ENG'
      );
      LexRemoveBoxController.removeBoxConfirm(
        JSON.serialize(conList1),
        'Testaccount002',
        '重庆',
        'ENG'
      );
      System.Test.stopTest();
    }
  }
}
