buli
2023-07-14 5b5c1e16deaa3a9d6d0ed1ffca390655ed103df7
force-app/main/default/classes/ArriveGoodsController.cls
@@ -77,8 +77,9 @@
    //public String[] proidList =new String[]{};
    public Decimal orderCountAll = 0;
    public Decimal orderCountNotarrive = 0;
    private id return_Order_id = null;
    private id inventory_Order_id = null;
    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
    public id return_Order_id = null;
    public id inventory_Order_id = null;
    public boolean ReturnFLGbln {get;set;}
    public boolean saveFLGbln {get;set;}
    public String ArrType{get;set;}
@@ -91,6 +92,14 @@
    public String product_Type = null;
    public Boolean EngFlag = false;
    public Boolean ETFlag = false;
    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
    public Boolean isLwc = false;
    public String returnError;
    public List<String> warningList;
    public List<String> errorList;
    public String urlType;
    public ArriveGoodsController(){
        baseUrl = URL.getSalesforceBaseUrl().toExternalForm();
        ESetId = ApexPages.currentPage().getParameters().get('esetId');
@@ -110,6 +119,29 @@
        consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
        //add by rentx 20210602 CHAN-C3K4ZQ end 
        // OrderAllMap = new Map<String, String>();
    }
    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
    public ArriveGoodsController(String eSetId, String arrType){
        this.ESetId = eSetId;
        this.ArrType = arrType;
        ConsumableorderdetailsRecords = new List<ConsumableorderdetailsInfo>();
        ConsumableorderdetailsRecordserror = new List<ConsumableorderdetailsInfo>();
        ConsumableorderdetailsRecordsdummy = new List<ConsumableorderdetailsInfo>();
        consumableInventory = new List<ConsumableorderdetailsInfo>();
        consumableorderdetailsRecordsUse = new List<ConsumableorderdetailsInfo>();
        consumableInventoryUse = new List<ConsumableorderdetailsInfo>();
        consumableorderdetails2Cancle = new List<Consumable_order_details2__c>();
        orderdetails2trMap = new Map<String,Consumable_order_details2__c>();
        detailsSummary = new List<ConsumableorderdetailsInfo>();
        saveFLGbln = FALSE;
        consumableorderdetailsRecordsview = new List<List<ConsumableorderdetailsInfo>>();
        noboxBarcodeList = new Set<String>();
        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
        warningList = new List<String>();
        errorList = new List<String>();
        returnError = null;
        urlType = null;
    }
    //add by rentx 20210602 CHAN-C3K4ZQ start 出错的原因是页面最多展示1000条数据,但是需要展示的数据超过了1000条,现在把展示上线改为1000 * 1000
@@ -304,6 +336,16 @@
    //========20160311======ADD_End==================================
    //获取明细
    public void SearchPro() {
        //从下边移上来 by Link 2023-5-23
        if(barcode == null || barcode.trim() ==''){
            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
            if(isLwc){
                returnError = '请输入BarCode号';
            }else {
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO,'请输入BarCode号。'));
            }
            return;
        }
        notInlist = new list<String>();
        otherAgencyMap = new Map<String, String>();
        barMcodeMap = new Map<String, String>();
@@ -311,6 +353,10 @@
        consumableInventoryUse = new List<ConsumableorderdetailsInfo>();
        consumableorderdetails2Cancle = new List<Consumable_order_details2__c>();
        orderdetails2trMap = new Map<String,Consumable_order_details2__c>();
        //update by Link 20230428
        if(isLwc){
            noboxBarcodeList = new Set<String>();
        }
        //add by rentx 2021-01-27 start
        HosErrorList = new List<String>();
        HosErrorMap = new Map<String,String>();
@@ -381,10 +427,16 @@
        List<Consumable_order_details2__c> Ins = New List<Consumable_order_details2__c>();
        List<Consumable_order_details2__c> reSet = new List<Consumable_order_details2__c>();
        List<Consumable_order_details2__c> reSet1 = new List<Consumable_order_details2__c>();
        if(barcode == null || barcode.trim() ==''){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO,'请输入BarCode号。'));
            return;
        }
        //移到最上边 by Link 2023-5-23
        // if(barcode == null || barcode.trim() ==''){
        //     //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
        //     if(isLwc){
        //         returnError = '请输入BarCode号';
        //     }else {
        //         ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO,'请输入BarCode号。'));
        //     }
        //     return;
        // }
        //对比全部库存中是否存在管理编码一样,barcode号不一样的产品
        reSet1 = [SELECT Id,  Name,TracingCode__c,Bar_Code__c,Report_Product_Expiration__c 
                    FROM Consumable_order_details2__c
@@ -407,7 +459,12 @@
                }else{
                    for(String str : barMcodeMap.keySet()){
                        if(barMcodeMap.get(str) == reSet1[i].TracingCode__c){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, str + ' 的管理编码已经存在于系统的库存中,请确认输入信息是否有误。'));
                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                            if(isLwc){
                                errorList.add(str + ' 的管理编码已经存在于系统的库存中,请确认输入信息是否有误。');
                            }else {
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, str + ' 的管理编码已经存在于系统的库存中,请确认输入信息是否有误。'));
                            }
                            ErrorIdMap.put(str,str);
                            ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c);
                        }
@@ -443,6 +500,8 @@
        }
        //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '管理编码为空的产品 ' + ErrorIdMap));
        //整体到货
        System.debug('EsetId===>'+EsetId);
        System.debug('ArrType===>'+ArrType);
        if(EsetId == null || EsetId == ''){
            if(ArrType!='ReG'){
                //到货但产品类型与用户的类型不符            
@@ -481,6 +540,42 @@
                        }
                    }
                }
                System.debug('reSet1===>'+reSet1);
                //add by Wang Xueqin
                          //到货但产品类型与用户的类型不符
                          reSet1 = [SELECT Id,Name,Intra_Trade_List_RMB__c,Asset_Model_No__c,
                          Consumable_Product__c,Consumable_Product__r.Name,
                          Consumable_Product__r.Name__c,Consumable_Product__r.Asset_Model_No__c,
                          Sterilization_limit__c,Deliver_date__c,Bar_Code__c,
                          Arrive_date__c,Send_Date__c,Consumable_order_minor__r.Name,
                          Consumable_order_minor__c,Dealer_Arrive__c,
                          Guarantee_period_for_products__c,CFDA_Status__c,
                          ProductPacking_list_manual__c,Report_Product_Approbation__c,
                          Report_Product_Expiration__c,Box_Piece__c, Rrturn_count__c,
                          Product_Type__c
                          ,ContractNo_text__c
                          ,Consumable_order_minor__r.ContractNo__c
                  FROM Consumable_order_details2__c
                  WHERE Bar_Code__c  in :BarCodeListP
                  AND ( not Product_Type__c  like :userPro_Typestr)
                 ];
          if(reSet1.size()>0){
              for (Integer i = 0; i < reSet1.size(); i++) {
                  if(ErrorIdMap.containsKey(reSet1[i].Bar_Code__c)){
                      // 跳过已经处理的消耗品明细
                      continue;
                  }else{
                      String str = '产品类型['+reSet1[i].Product_Type__c+']与用户的类型['+userPro_Type+']不符';
                      ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet1[i],str));
                      ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c);
                  }
              }
          }
          System.debug('reSet1===>1'+reSet1);
        //end
                //销售产品
                reSet1 = [SELECT Id,  Name,Consumable_Product__r.Name__c,
                                Consumable_Product__c,Consumable_Product__r.Name, Sterilization_limit__c,
@@ -949,7 +1044,12 @@
                                str = '该商品在库';//没出库 ,没销售,没丢失就是在库。
                            }
                            if(reSet1[i].Lose_Flag__c == true && reSet1[i].ToDueDateDays__c >= 0){
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '产品'+reSet1[i].Consumable_Product__r.Name+'存在丢失记录'));//如果丢失产品就给提示。
                                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                if(isLwc){
                                    warningList.add('产品'+reSet1[i].Consumable_Product__r.Name+'存在丢失记录');
                                }else {
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING, '产品'+reSet1[i].Consumable_Product__r.Name+'存在丢失记录'));//如果丢失产品就给提示。
                                }
                            }
                            if (reSet1[i].Lose_Flag__c == true && reSet1[i].ToDueDateDays__c < 0) {
                                str = '过期已销存产品,不允许返品';
@@ -1028,10 +1128,24 @@
                    }else{
                        Matcher n = Pattern.compile('[0-9]').matcher(reSet[i].TracingCode__c);
                        if(n.find()){
                            String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // gzw DB202305352696 入库管理编码验证程序调整 start
                            if (reSet[i].TracingCode__c.length() == 5) {
                                String tr = reSet[i].TracingCode__c;
                                String Ctr = tr.substring(tr.length() - 3,tr.length());
                                String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                    String str = '管理编码有误,请检查条形码数据。';
                            ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            continue;
                        }
                            }
                            // String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            // ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            // continue;
                            // gzw DB202305352696 入库管理编码验证程序调整 end
                        }
                        if(otherAgencyMap.containsKey(reSet[i].Bar_Code__c)){
                            for (Integer j=0; j<consumableInventory.size(); j++) {
@@ -1111,20 +1225,38 @@
                        continue;
                    }else{
                        Matcher n = Pattern.compile('[0-9]').matcher(reSet[i].TracingCode__c);
                        if(n.find()){
                            String str = '管理编码中有数字,请与管理员确认是否错误。';
                        if(n.find()){// gzw DB202305352696 入库管理编码验证程序调整 start
                            if (reSet[i].TracingCode__c.length() == 5) {
                                String tr = reSet[i].TracingCode__c;
                                String Ctr = tr.substring(tr.length() - 3,tr.length());
                                String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                    String str = '管理编码有误,请检查条形码数据。';
                            ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            continue;
                        }
                            }
                            // String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            // ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            // continue;
                            // gzw DB202305352696 入库管理编码验证程序调整 end
                        }
                        ExistIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                        for(String str : barMcodeMap.keySet()){
                            // BarCode不一致时的警告信息
                            if(reSet[i].Bar_Code__c != str && reSet[i].TracingCode__c == barMcodeMap.get(str)){
                                // 20220815 ljh SWAG-CH65B7 start
                                // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'此管理编码与实际发货BarCode不一致,请核对管理编码('+ str +')的入库及库存数据。'));
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'条形码为('+ str +')的入库数据与发货数据不一致'));
                                // 20220815 ljh SWAG-CH65B7 end
                                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                if(isLwc){
                                    warningList.add('条形码为('+ str +')的入库数据与发货数据不一致');
                                }else {
                                    // 20220815 ljh SWAG-CH65B7 start
                                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'此管理编码与实际发货BarCode不一致,请核对管理编码('+ str +')的入库及库存数据。'));
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.WARNING,'条形码为('+ str +')的入库数据与发货数据不一致'));
                                    // 20220815 ljh SWAG-CH65B7 end
                                }
                            }
                            if(barMcodeMap.get(str) == reSet[i].TracingCode__c){
                                reSet[i].Bar_Code__c = str;
@@ -1159,7 +1291,12 @@
                    }else{
                        for(String str : barMcodeMap.keySet()){
                            if(barMcodeMap.get(str) == reSet1[i].TracingCode__c){
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, 'barcode' +str + '与出库单' + reSet1[i].Sale_orderName__c + ' 中的管理编码一致,但Barcode不同,请确认具体数据。'));
                                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                if(isLwc){
                                    errorList.add('barcode' +str + '与出库单' + reSet1[i].Sale_orderName__c + ' 中的管理编码一致,但Barcode不同,请确认具体数据。');
                                }else {
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR, 'barcode' +str + '与出库单' + reSet1[i].Sale_orderName__c + ' 中的管理编码一致,但Barcode不同,请确认具体数据。'));
                                }
                                ErrorIdMap.put(str,str);
                                ErrorIdMap.put(reSet1[i].Bar_Code__c,reSet1[i].Bar_Code__c);
                            }
@@ -1199,11 +1336,21 @@
                if(ArrType!='ReG'){
                    inventoryEntryNoESetId(notInlist);
                    if(notInStorelist.size() > 0){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号'+ notInStorelist + '不存在。'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            returnError = 'BarCode号'+ notInStorelist + '不存在';
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号'+ notInStorelist + '不存在。'));
                        }
                        return;
                    }
                }else{
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号'+ notInlist + '不存在,无对应的出库单,请先操作产品入库。'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        returnError = 'BarCode号'+ notInlist + '不存在,无对应的出库单,请先操作产品入库';
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号'+ notInlist + '不存在,无对应的出库单,请先操作产品入库。'));
                    }
                    return;
                }
            }
@@ -1211,8 +1358,12 @@
        //add by rentx 2021-01-27 start
        if (HosErrorList.size() > 0) {
            for (String str : HosErrorList) {
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号:' + str + HosErrorMap.get(str)+''));
                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                if(isLwc){
                    errorList.add('BarCode号:' + str + HosErrorMap.get(str)+'');
                }else {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号:' + str + HosErrorMap.get(str)+''));
                }
            }
        }
        //add by rentx 2021-01-27 end
@@ -1421,10 +1572,24 @@
                    }else{
                        Matcher n = Pattern.compile('[0-9]').matcher(reSet[i].TracingCode__c);
                        if(n.find()){
                            String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // gzw DB202305352696 入库管理编码验证程序调整 start
                            if (reSet[i].TracingCode__c.length() == 5) {
                                String tr = reSet[i].TracingCode__c;
                                String Ctr = tr.substring(tr.length() - 3,tr.length());
                                String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                    String str = '管理编码有误,请检查条形码数据。';
                            ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            continue;
                        }
                            }
                            // String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            // ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            // continue;
                            // gzw DB202305352696 入库管理编码验证程序调整 end
                        }
                        ConsumableorderdetailsRecordsdummy.add(new ConsumableorderdetailsInfo(reSet[i]));
                        ConsumableorderdetailsRecords.add(new ConsumableorderdetailsInfo(reSet[i]));
@@ -1483,10 +1648,24 @@
                    }else{
                        Matcher n = Pattern.compile('[0-9]').matcher(reSet[i].TracingCode__c);
                        if(n.find()){
                            String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // gzw DB202305352696 入库管理编码验证程序调整 start
                            if (reSet[i].TracingCode__c.length() == 5) {
                                String tr = reSet[i].TracingCode__c;
                                String Ctr = tr.substring(tr.length() - 3,tr.length());
                                String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                    String str = '管理编码有误,请检查条形码数据。';
                            ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            continue;
                        }
                            }
                            // String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(reSet[i],str));
                            // ErrorIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                            // continue;
                            // gzw DB202305352696 入库管理编码验证程序调整 end
                        }
                        ExistIdMap.put(reSet[i].Bar_Code__c,reSet[i].Bar_Code__c);
                        for(String str : barMcodeMap.keySet()){
@@ -1524,7 +1703,12 @@
            if(notInlist.size()>0){
                inventoryEntry(notInlist);
                if(notInStorelist.size() > 0){
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号'+ notInStorelist + '不存在。'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        returnError = 'BarCode号'+ notInStorelist + '不存在';
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号'+ notInStorelist + '不存在。'));
                    }
                    return;
                }
            }
@@ -1533,7 +1717,12 @@
        //add by rentx 2021-01-27 start 当订单为医院特价类型的订单时,如果找不到barcode,不解析,并且默认该barcode对应的明细2为非医院特价产品,直接报错
        if (HosErrorList.size() > 0) {
            for (String str : HosErrorList) {
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号:' + str +'是非医院特价产品'));
                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                if(isLwc){
                    errorList.add('BarCode号:' + str +'是非医院特价产品');
                }else {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号:' + str +'是非医院特价产品'));
                }
                
            }
        }
@@ -1572,7 +1761,12 @@
                    //生产日期
                    List<String> janCode = new List<String>();
                    if(barCodeList[i].length() < 16){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            errorList.add('产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!');
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                        }
                        continue;
                    }else {
                        //if(barCodeList[i].substring(0,2) !='01'){
@@ -1583,13 +1777,23 @@
                        try{
                            Decimal test  = Decimal.valueOf(janCodeMark);
                        }catch(Exception e){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的janCode错误!'));
                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                            if(isLwc){
                                errorList.add('产品BarCode(' + barCodeList[i] + ')的janCode错误!');
                            }else {
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的janCode错误!'));
                            }
                            continue;
                        }
                    }
                    if(barCodeList[i].length() >= 22){
                        if(barCodeList[i].substring(barCodeList[i].length() - 8,barCodeList[i].length()-5)!='250'){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                            if(isLwc){
                                errorList.add('产品BarCode(' + barCodeList[i] + ')没有管理编码!');
                            }else {
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                            }
                            continue;
                        }
                        if( barCodeList[i].substring(16,18) =='11'){
@@ -1597,7 +1801,12 @@
                                productDateStr = '20' + barCodeList[i].substring(18,20) + '-' + barCodeList[i].substring(20,22) + '-01' ;
                                productionDate = Date.valueOf(productDateStr);
                            }catch(Exception e){
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!'));
                                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                if(isLwc){
                                    errorList.add('产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!');
                                }else {
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!'));
                                }
                                continue;
                            }
                            if(barCodeList[i].length() >=32){
@@ -1612,7 +1821,12 @@
                                        expirationDate = Date.valueOf(expirationDateStr);
                                        }
                                    }catch(Exception e){
                                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                        if(isLwc){
                                            errorList.add('产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!');
                                        }else {
                                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                        }
                                        continue;
                                    }
                                    if(barCodeList[i].length() >= 42){
@@ -1636,7 +1850,12 @@
                                    expirationDate = Date.valueOf(expirationDateStr);
                                }
                            }catch(Exception e){
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                if(isLwc){
                                    errorList.add('产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!');
                                }else {
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                }
                                continue;
                            }
                            if(barCodeList[i].length() >= 34){
@@ -1656,12 +1875,31 @@
                            tracingCode = barCodeList[i].substring(barCodeList[i].length() - 5,barCodeList[i].length());
                            Matcher n = Pattern.compile('[0-9]').matcher(tracingCode);
                            if(n.find()){
                                String str = '管理编码不正确,请与管理员确认是否错误。';
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')管理编码中有数字,请与管理员确认是否错误!'));
                                continue;
                                // gzw DB202305352696 入库管理编码验证程序调整 start
                                if (tracingCode.length() == 5) {
                                    String tr = tracingCode;
                                    String Ctr = tr.substring(tr.length() - 3,tr.length());
                                    String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                    String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                    if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                        String str = '管理编码有误,请检查条形码数据。';
                                      if(isLwc){
                                          errorList.add('产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。');
                                      }else {
                                          ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。'));
                                      }
                                      continue;
                                    }
                                }
                            }
                        }else{
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的tracingCode错误!'));
                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                            if(isLwc){
                                errorList.add('产品BarCode(' + barCodeList[i] + ')的tracingCode错误!');
                            }else {
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的tracingCode错误!'));
                            }
                            continue;
                        }
                    }
@@ -1706,13 +1944,23 @@
                    barCode01List.add(barCodeList[i]);
                }else if(barCodeList[i].substring(0,3) =='241'){
                    if(barCodeList[i].length() > 8 && barCodeList[i].substring(barCodeList[i].length() - 8,barCodeList[i].length()-5)!='250'){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            errorList.add('产品BarCode(' + barCodeList[i] + ')没有管理编码!');
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                        }
                        continue;
                    }
                    List<String> otCodeList = new List<String>();
                    Map<String,String> otCodeMap = new Map<String,String>();
                    if(barCodeList[i].length() < 7){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            errorList.add('产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!');
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                        }
                        continue;
                    }else if(barCodeList[i].length() == 11){
                        String otCode4 = barCodeList[i].substring(3,7);
@@ -1754,11 +2002,21 @@
                    barOtcodeMap.put(barCodeList[i], otCodeMap);
                    barCode241List.add(barCodeList[i]);
                }else{
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')不符合要求!'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        errorList.add('产品BarCode(' + barCodeList[i] + ')不符合要求!');
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')不符合要求!'));
                    }
                    continue;
                }
            }else{
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')不符合要求!'));
                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                if(isLwc){
                    errorList.add('产品BarCode(' + barCodeList[i] + ')不符合要求!');
                }else {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')不符合要求!'));
                }
                continue;
            }
        }
@@ -1798,7 +2056,12 @@
                    }
                }
                if(errorMap.size() > 0){
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户类型['+userPro_Type+']不符'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        errorList.add('BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户类型['+userPro_Type+']不符');
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户类型['+userPro_Type+']不符'));
                    }
                }
            }
        }
@@ -1824,7 +2087,12 @@
                }
            }
            if(errorMap.size() > 0){
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户['+userPro_Type+']类型不符'));
                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                if(isLwc){
                    errorList.add('BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户['+userPro_Type+']类型不符');
                }else {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户['+userPro_Type+']类型不符'));
                }
            }
            product2InStore = [SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,OT_CODE__c,Product2_Jancode__c,
                                Pro2_Dealer_ENG__c,Pro2_Dealer_Object__c
@@ -1850,7 +2118,12 @@
                                            productDateStr = '20' + bar.substring(oTcodeLength + 5,oTcodeLength + 7) + '-' + bar.substring(oTcodeLength + 7,oTcodeLength + 9) + '-01' ;
                                            productionDate = Date.valueOf(productDateStr);
                                        }catch(Exception e){
                                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!'));
                                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                            if(isLwc){
                                                errorList.add('产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!');
                                            }else {
                                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!'));
                                            }
                                            continue;
                                        }
                                        if(bar.length() >=oTcodeLength + 3 + 16){
@@ -1865,7 +2138,12 @@
                                                    expirationDate = Date.valueOf(expirationDateStr);
                                                    }
                                                }catch(Exception e){
                                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                                    if(isLwc){
                                                        errorList.add('产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!');
                                                    }else {
                                                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                                    }
                                                    continue;
                                                }
                                                if(bar.length() >= oTcodeLength + 3 + 25){
@@ -1890,7 +2168,12 @@
                                                expirationDate = Date.valueOf(expirationDateStr);
                                            }
                                        }catch(Exception e){
                                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                            if(isLwc){
                                                errorList.add('产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!');
                                            }else {
                                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                            }
                                            continue;
                                        }
                                        if(bar.length() >=oTcodeLength + 20){
@@ -1910,12 +2193,35 @@
                                        tracingCode = bar.substring(bar.length() - 5,bar.length());
                                        Matcher n = Pattern.compile('[0-9]').matcher(tracingCode);
                                        if(n.find()){
                                            String str = '管理编码不正确,请与管理员确认是否错误。';
                                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')管理编码中有数字,请与管理员确认是否错误!'));
                                            continue;
                                            // gzw DB202305352696 入库管理编码验证程序调整 start
                                            if (tracingCode.length() == 5) {
                                                String tr = tracingCode;
                                                String Ctr = tr.substring(tr.length() - 3,tr.length());
                                                String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                                String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                                if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                                    String str = '管理编码不正确,请与管理员确认是否错误。';
                                                  //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                                  if(isLwc){
                                                      errorList.add('产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。');
                                                  }else {
                                                      ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。'));
                                                  }
                                                  continue;
                                                }
                                            }
                                            // String str = '管理编码不正确,请与管理员确认是否错误。';
                                            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')管理编码中有数字,请与管理员确认是否错误!'));
                                            // continue;
                                            // gzw DB202305352696 入库管理编码验证程序调整 end
                                        }
                                    }else{
                                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的tracingCode错误!'));
                                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                        if(isLwc){
                                            errorList.add('产品BarCode(' + bar + ')的tracingCode错误!');
                                        }else {
                                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的tracingCode错误!'));
                                        }
                                        continue;
                                    }
                                }
@@ -1982,20 +2288,35 @@
                //生产日期
                List<String> janCode = new List<String>();
                if(barCodeList[i].length() < 16){
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        errorList.add('产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!');
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                    }
                    continue;
                }else {
                    janCodeMark = barCodeList[i].substring(2,16);
                    try{
                        Decimal test  = Decimal.valueOf(janCodeMark);
                    }catch(Exception e){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的janCode错误!'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            errorList.add('产品BarCode(' + barCodeList[i] + ')的janCode错误!');
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的janCode错误!'));
                        }
                        continue;
                    }
                }
                if(barCodeList[i].length() >= 22){
                    if(barCodeList[i].substring(barCodeList[i].length() - 8,barCodeList[i].length()-5)!='250'){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            errorList.add('产品BarCode(' + barCodeList[i] + ')没有管理编码!');
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                        }
                        continue;
                    }
                    if( barCodeList[i].substring(16,18) =='11'){
@@ -2003,7 +2324,12 @@
                            productDateStr = '20' + barCodeList[i].substring(18,20) + '-' + barCodeList[i].substring(20,22) + '-01' ;
                            productionDate = Date.valueOf(productDateStr);
                        }catch(Exception e){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!'));
                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                            if(isLwc){
                                errorList.add('产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!');
                            }else {
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')的生产日期' + productDateStr + '错误!'));
                            }
                            continue;
                        }
                        if(barCodeList[i].length() >=32){
@@ -2018,7 +2344,12 @@
                                    expirationDate = Date.valueOf(expirationDateStr);
                                    }
                                }catch(Exception e){
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                    if(isLwc){
                                        errorList.add('产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!');
                                    }else {
                                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                    }
                                    continue;
                                }
                                if(barCodeList[i].length() >= 42){
@@ -2042,7 +2373,12 @@
                                expirationDate = Date.valueOf(expirationDateStr);
                            }
                        }catch(Exception e){
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                            if(isLwc){
                                errorList.add('产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!');
                            }else {
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                            }
                            continue;
                        }
                        if(barCodeList[i].length() >= 34){
@@ -2062,12 +2398,35 @@
                        tracingCode = barCodeList[i].substring(barCodeList[i].length() - 5,barCodeList[i].length());
                        Matcher n = Pattern.compile('[0-9]').matcher(tracingCode);
                        if(n.find()){
                            String str = '管理编码不正确,请与管理员确认是否错误。';
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')管理编码中有数字,请与管理员确认是否错误!'));
                            continue;
                            // gzw DB202305352696 入库管理编码验证程序调整 start
                            if (tracingCode.length() == 5) {
                                String tr = tracingCode;
                                String Ctr = tr.substring(tr.length() - 3,tr.length());
                                String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                    String str = '管理编码不正确,请与管理员确认是否错误。';
                                  //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                  if(isLwc){
                                      errorList.add('产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。');
                                  }else {
                                      ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')管理编码有误,请检查条形码数据。'));
                                  }
                                  continue;
                                }
                            }
                            // String str = '管理编码不正确,请与管理员确认是否错误。';
                            // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')管理编码中有数字,请与管理员确认是否错误!'));
                            // continue;
                            // gzw DB202305352696 入库管理编码验证程序调整 end
                        }
                    }else{
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的tracingCode错误!'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            errorList.add('产品BarCode(' + barCodeList[i] + ')的tracingCode错误!');
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的tracingCode错误!'));
                        }
                        continue;
                    }
                }
@@ -2113,13 +2472,23 @@
                barCode01List.add(barCodeList[i]);
            }else if(barCodeList[i].substring(0,3) =='241'){
                if(barCodeList[i].length() > 8 && barCodeList[i].substring(barCodeList[i].length() - 8,barCodeList[i].length()-5)!='250'){
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        errorList.add('产品BarCode(' + barCodeList[i] + ')没有管理编码!');
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + barCodeList[i] + ')没有管理编码!'));
                    }
                    continue;
                }
                List<String> otCodeList = new List<String>();
                Map<String,String> otCodeMap = new Map<String,String>();
                if(barCodeList[i].length() < 7){
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        errorList.add('产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!');
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')的位数不足16,不符合要求错误!'));
                    }
                    continue;
                }else if(barCodeList[i].length() == 11){
                    String otCode4 = barCodeList[i].substring(3,7);
@@ -2161,7 +2530,12 @@
                barOtcodeMap.put(barCodeList[i], otCodeMap);
                barCode241List.add(barCodeList[i]);
            }else{
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')没有janCode或OTcode,不符合要求!'));
                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                if(isLwc){
                    errorList.add('产品BarCode(' + barCodeList[i] + ')没有janCode或OTcode,不符合要求!');
                }else {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + barCodeList[i] + ')没有janCode或OTcode,不符合要求!'));
                }
                continue;
            }
        }
@@ -2188,7 +2562,12 @@
                    }
                }
                if(errorMap.size() > 0){
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户的类型['+userPro_Type+']不符'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        errorList.add('BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户的类型['+userPro_Type+']不符');
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户的类型['+userPro_Type+']不符'));
                    }
                }
            }                                   
            product2InStore = [SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,OT_CODE__c,Product2_Jancode__c,
@@ -2253,7 +2632,12 @@
                }
            }
            if(errorMap.size() > 0){
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户['+userPro_Type+']类型不符'));
                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                if(isLwc){
                    errorList.add('BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户['+userPro_Type+']类型不符');
                }else {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'BarCode号['+ errorMap.values() +']产品类型['+product_Type+']与用户['+userPro_Type+']类型不符'));
                }
            }
            product2InStore = [SELECT Id, Name,Name__c,Intra_Trade_List_RMB__c,Asset_Model_No__c,OT_CODE__c,
                                            Pro2_Dealer_Object__c,Pro2_Dealer_ENG__c
@@ -2278,7 +2662,12 @@
                                    productDateStr = '20' + bar.substring(oTcodeLength + 5,oTcodeLength + 7) + '-' + bar.substring(oTcodeLength + 7,oTcodeLength + 9) + '-01' ;
                                    productionDate = Date.valueOf(productDateStr);
                                }catch(Exception e){
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!'));
                                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                    if(isLwc){
                                        errorList.add('产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!');
                                    }else {
                                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,  '产品BarCode(' + bar + ')的生产日期' + productDateStr + '错误!'));
                                    }
                                    continue;
                                }
                                if(bar.length() >=oTcodeLength + 3 + 16){
@@ -2294,7 +2683,12 @@
                                            expirationDate = Date.valueOf(expirationDateStr);
                                            }
                                        }catch(Exception e){
                                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                            if(isLwc){
                                                errorList.add('产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!');
                                            }else {
                                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                            }
                                            continue;
                                        }
                                        if(bar.length() >= oTcodeLength + 3 + 25){
@@ -2319,7 +2713,12 @@
                                        expirationDate = Date.valueOf(expirationDateStr);
                                    }
                                }catch(Exception e){
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                    if(isLwc){
                                        errorList.add('产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!');
                                    }else {
                                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的滅菌有効期限' + expirationDateStr + '错误!'));
                                    }
                                    continue;
                                }
                                if(bar.length() >=oTcodeLength + 20){
@@ -2339,12 +2738,35 @@
                                tracingCode = bar.substring(bar.length() - 5,bar.length());
                                Matcher n = Pattern.compile('[0-9]').matcher(tracingCode);
                                if(n.find()){
                                    String str = '管理编码不正确,请与管理员确认是否错误。';
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')管理编码中有数字,请与管理员确认是否错误!'));
                                    continue;
                                    // gzw DB202305352696 入库管理编码验证程序调整 start
                                    if (tracingCode.length() == 5) {
                                        String tr = tracingCode;
                                        String Ctr = tr.substring(tr.length() - 3,tr.length());
                                        String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                        String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                        if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                            String str = '管理编码不正确,请与管理员确认是否错误。';
                                          //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                          if(isLwc){
                                              errorList.add('产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。');
                                          }else {
                                              ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')管理编码有误,请检查条形码数据。'));
                                          }
                                          continue;
                                        }
                                    }
                                    // String str = '管理编码不正确,请与管理员确认是否错误。';
                                    // ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')管理编码中有数字,请与管理员确认是否错误!'));
                                    // continue;
                                    // gzw DB202305352696 入库管理编码验证程序调整 end
                                }
                            }else{
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的tracingCode错误!'));
                                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                                if(isLwc){
                                    errorList.add('产品BarCode(' + bar + ')的tracingCode错误!');
                                }else {
                                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'产品BarCode(' + bar + ')的tracingCode错误!'));
                                }
                                continue;
                            }
                        }
@@ -2388,9 +2810,19 @@
        if(notEqualBARcodeCunMap.size() > 0){
            for(String widget : notEqualBARcodeCunMap.keySet()) {
                if(notEqualBARcodeCunMap.get(widget).size() >0){
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '以下barcode产品与订货产品不一致。'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        warningList.add('以下barcode产品与订货产品不一致。');
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '以下barcode产品与订货产品不一致。'));
                    }
                    for(String barcodeListTTT : (List<String>)notEqualBARcodeCunMap.get(widget)) {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            warningList.add(barcodeListTTT);
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT));
                        }
                    }
                }
            }
@@ -2732,7 +3164,12 @@
        Savepoint sp = Database.setSavepoint();
        if(ConsumableorderdetailsRecords.size()<1 && consumableInventory.size()<1){
            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'不存在到货明细'));
            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
            if(isLwc){
                returnError = '不存在到货明细';
            }else {
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'不存在到货明细'));
            }
            return null;
        }
        if(EsetId != null && EsetId != ''){
@@ -2740,9 +3177,19 @@
            if(resultcheck.length() > 0){
                for(String widget : overOrderBARcodeCunMap.keySet()) {
                    if(overOrderBARcodeCunMap.get(widget).size() >0){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '产品' + widget + '本次到货数量超过' + overOrderBARcodeCunMap.get(widget).size() +'个订货的数量。'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            warningList.add('产品' + widget + '本次到货数量超过' + overOrderBARcodeCunMap.get(widget).size() +'个订货的数量。');
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, '产品' + widget + '本次到货数量超过' + overOrderBARcodeCunMap.get(widget).size() +'个订货的数量。'));
                        }
                        for(String barcodeListTTT : (List<String>)overOrderBARcodeCunMap.get(widget)) {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT));
                            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                            if(isLwc){
                                warningList.add(barcodeListTTT);
                            }else {
                                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.INFO, barcodeListTTT));
                            }
                        }
                    }
                }
@@ -2771,6 +3218,7 @@
            arriveId = orderMain.id;
            Decimal arriveAmount =0;
            for (ConsumableorderdetailsInfo ass : consumableorderdetailsRecordsUse)  {
                //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'------1------'));
                Consumable_order_details2__c insDetails = new Consumable_order_details2__c();
                insDetails.Id                           = ass.esd.Id;
                insDetails.Consumable_Arrived_order__c  = orderMain.id;
@@ -2808,7 +3256,7 @@
                // }else{
                //     insAfterDel.Intra_Trade_List_RMB__c = 0;
                // }
                insAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
                    insAfterDel.Intra_Trade_List_RMB__c = ass.Prod.Intra_Trade_List_RMB__c;
                //gzw 手动入库 默认产品单价 20230307
                insAfterDel.Asset_Model_No__c           = ass.Prod.Asset_Model_No__c;
                if(EsetId != null && EsetId != ''){
@@ -2882,6 +3330,7 @@
            if(updateconsumableorderdetails2.size() > 0){
                update updateconsumableorderdetails2;
            }
            List<Consumable_order_details2__c> insertconsumableorderdetails2 = new List<Consumable_order_details2__c>();
            for(Consumable_order_details2__c Cod2 : consumableorderdetails2Insert){
                //ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'------4------'));
@@ -2913,7 +3362,7 @@
                i++;
            }
            // return null;
            //return null;
            if(insertconsumableorderdetails2.size() >0){
                insert insertconsumableorderdetails2;
@@ -2959,7 +3408,12 @@
            // Integer a = 1/0;
        }catch(Exception e){
            Database.rollback(sp);
            ApexPages.addMessages(e);
            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
            if(isLwc){
                returnError = e.getLineNumber()+'---'+e.getMessage();
            }else {
                ApexPages.addMessages(e);
            }
            return null;
        }
        if(resultcheck.length() > 0){
@@ -2967,6 +3421,7 @@
        }else if(resultcheckWithoutOrder.size() >0){
            return null;
        } else{
            urlType = 'UnabletoEdit';
            return UnabletoEdit();
            // return null;
        }
@@ -3108,10 +3563,24 @@
                Matcher n = Pattern.compile('[0-9]').matcher(codc.TracingCode__c);
                if(n.find()){
                    String str = '管理编码中有数字,请与管理员确认是否错误。';
                    // gzw DB202305352696 入库管理编码验证程序调整 start
                            if (codc.TracingCode__c.length() == 5) {
                                String tr = codc.TracingCode__c;
                                String Ctr = tr.substring(tr.length() - 3,tr.length());
                                String Btr = tr.substring(tr.length() - 4,tr.length()-3);
                                String Atr = tr.substring(tr.length() - 5,tr.length()-4);
                                if (Pattern.compile('[0-9]').matcher(Atr).find() || Pattern.compile('[0-9]').matcher(Ctr).find()) {
                                    String str = '管理编码有误,请检查条形码数据。';
                    ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(codc,str));
                    ErrorIdMap.put(codc.Bar_Code__c,codc.Bar_Code__c);
                    continue;
                }
                            }
                            // String str = '管理编码中有数字,请与管理员确认是否错误。';
                            // ConsumableorderdetailsRecordserror.add(new ConsumableorderdetailsInfo(codc,str));
                            // ErrorIdMap.put(codc.Bar_Code__c,codc.Bar_Code__c);
                            // continue;
                            // gzw DB202305352696 入库管理编码验证程序调整 end
                }
                if( CheckBarcodeResult.containsKey( codc.Bar_Code__c    )){
                    GrList.add(codc.Bar_Code__c);
@@ -3296,7 +3765,7 @@
                Inventory_Order_Sheet.Order_ProType__c        = userPro_Type;
                insert Inventory_Order_Sheet;
                inventory_Order_id = Inventory_Order_Sheet.id;
                List<Consumable_order__c> consumable_order_Inv = [SELECT Name FROM Consumable_order__c WHERE id =:Inventory_Order_Sheet.id];
                //List<Consumable_order__c> consumable_order_Inv = [SELECT Name FROM Consumable_order__c WHERE id =:Inventory_Order_Sheet.id]; //Commented By Li Jun 20230616
                // WYIN-BLZE48盘点丢失产品增加入库方式 update by vivek 2020-03-05 end
                List<Consumable_order_details2__c>   codcList    =   new List<Consumable_order_details2__c>();
@@ -3312,7 +3781,11 @@
                    }
                    if(codi.esd.Return_reason__c==null||codi.esd.Return_reason__c==''){
                        codi.esd.Return_reason__c.addError('请补充返品原因');
                        if(isLwc){
                            returnError = '请补充返品原因';
                        }else {
                            codi.esd.Return_reason__c.addError('请补充返品原因');
                        }
                        return null;
                    }
@@ -3321,7 +3794,11 @@
                        String key = '' + codi.esd.Consumable_ZS_order__c + codi.esd.Bar_Code__c;
                        Integer deliverycnt = BarcodeCntMap.get(key);
                        if(codi.esd.Rrturn_count__c > deliverycnt){
                            codi.esd.Rrturn_count__c.addError('超出出库数量');
                            if(isLwc){
                                returnError = '超出出库数量';
                            }else {
                                codi.esd.Rrturn_count__c.addError('超出出库数量');
                            }
                            return null;
                        }  
                    }
@@ -3506,6 +3983,7 @@
                        codcList.add(   codi.esd    );
                    }
                }
                //明细2不存在的对应的到货订单明细 2017-07-05
                Integer i = 1;
                //for(ConsumableorderdetailsInfo ass : consumableInventoryUse){
@@ -3519,7 +3997,12 @@
                    // }
                    if(ass.ReturnReason==null || ass.ReturnReason==''){
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'请补充返品原因'));
                        //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                        if(isLwc){
                            returnError = '请补充返品原因';
                        }else {
                            ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'请补充返品原因'));
                        }
                        return null;
                    }
@@ -3619,26 +4102,43 @@
                    // WYIN-BPE3T4 虚拟盘点单 update by vivek 2020-05-11 start
                    // return ToReturnGoodsPage();
                    if(hasLoseGoods){
                        urlType = 'ToInventoryGoodsPage';
                        return ToInventoryGoodsPage();
                        // return null;
                    }else{
                        urlType = 'ToReturnGoodsPage';
                        return ToReturnGoodsPage();
                        // return null;
                    }
                    // WYIN-BPE3T4 虚拟盘点单 update by vivek 2020-05-11 start
                }
                else{
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'没有需要登录的返品'));
                    //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                    if(isLwc){
                        returnError = '没有需要登录的返品';
                    }else {
                        ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'没有需要登录的返品'));
                    }
                    return null;
                }
            }else{
                ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'没有需要登录的返品'));
                //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
                if(isLwc){
                    returnError = '没有需要登录的返品';
                }else {
                    ApexPages.addmessage(new ApexPages.message(ApexPages.severity.ERROR,'没有需要登录的返品'));
                }
                return null;
            }
        }catch(Exception e){
            Database.rollback(sp);
            ApexPages.addMessages(e);
            //LWC:Lwcflag和报错提醒 update by Link 2023-04-27
            if(isLwc){
                returnError = e.getLineNumber()+'---'+e.getMessage();
            }else {
                ApexPages.addMessages(e);
            }
            return null;
        }
    }
@@ -3714,7 +4214,7 @@
        return ref;
    }
    class ConsumableorderdetailsInfo implements Comparable {
    public class ConsumableorderdetailsInfo implements Comparable {
        public Consumable_order_details2__c esd { get; set; }
        public Product2__c Prod { get; set; }
        public String ProductName { get; set; }
@@ -3732,6 +4232,11 @@
        public Decimal arrivedCount { get; set; }
        public String ReportProductExpirationDate {get;set;}
        public ConsumableorderdetailsInfo(){
        }
        public ConsumableorderdetailsInfo(Consumable_order_details2__c e,string str) {
            esd                = e;
            Prod               = e.Consumable_Product__r;