yuyou_x
2024-02-05 eb7405f413c3102533b5640cbdc6b1d33772207e
Wms/WMS.BLL/BllAsnServer/BllBoxInfoServer.cs
@@ -415,7 +415,7 @@
                    .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.SupplierLot)
                    .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime >= Convert.ToDateTime(model.ProductionTime))
                    .AndIF(!string.IsNullOrWhiteSpace(model.ProductionTime), it => it.ProductionTime <= Convert.ToDateTime(model.ProductionTime).AddDays(1))
                    .And(it => it.IsDel == "0")
                    .And(it => it.IsDel == "0" && it.Origin == "WMS生成")
                    .ToExpression();
                
                var total = 0;
@@ -529,7 +529,7 @@
        }
        //获取标签信息(生成标签)
        public List<BoxInfoDto> AddLabelBoxReturn(int imId, string isReset, decimal arriveQty, string productionTime, string expirationTime, string storeTime, int userId)
        public List<BllBoxInfo> AddLabelBox(int imId, string isReset, decimal arriveQty, string productionTime, string expirationTime, string storeTime, int userId)
        {
            try
            { 
@@ -586,40 +586,14 @@
                var bNum = 0;//箱物品数量
                var zNum = 0;//支物品数量
                var packLevel = 0;
                var isGo = true;
                if (pack.L5Num.HasValue)
                {
                    if (pack.L5Name != "托")
                    {
                        isGo = false;
                        packLevel = 5;
                        bNum = Convert.ToInt32(pack.L5Num);
                    }
                }
                if (pack.L4Num.HasValue && isGo)
                {
                    if (pack.L4Name != "托")
                    {
                        isGo = false;
                        packLevel = 4;
                        bNum = Convert.ToInt32(pack.L4Num);
                    }
                }
                if (pack.L3Num.HasValue && isGo)
                {
                    if (pack.L4Name != "托")
                    {
                        isGo = false;
                        packLevel = 3;
                        bNum = Convert.ToInt32(pack.L3Num);
                    }
                }
                if (pack.L2Num.HasValue)
                {
                    packLevel = 2;
                    bNum = Convert.ToInt32(pack.L2Num);
                    if (pack.L2Name != "托")
                    {
                        packLevel = 2;
                        bNum = Convert.ToInt32(pack.L2Num);
                    }
                }
                if (pack.L1Num.HasValue)
                {
@@ -633,11 +607,14 @@
                if (packLevel <= 1)//包装等级小于1,按照1级标签打印
                {
                    packLevel = 1;
                    throw new Exception("包装信息有误,小于一级");
                }
                #endregion
                var modelList = new List<BllBoxInfo>();
                var addLotNo = "";
                if (packLevel == 1)
                {
                    #region 一级包装
@@ -716,9 +693,10 @@
                        }
                    }
                    addLotNo = maxLotNoStr;
                    #endregion
                    for (int i = 1; i <= labelNum; i++)
                    {
@@ -744,12 +722,12 @@
                        //获取箱码
                        if (maxBoxCode == "")
                        {
                            var str = maxLotNoStr + "000001"; //批号+ 流水  2302010001000001
                            var str = "B"+maxLotNoStr + "000001"; //批号+ 流水  2302010001000001
                            maxBoxCode = str;
                        }
                        else
                        {
                            maxBoxCode = maxBoxCode.Substring(0, 10) + (int.Parse(maxBoxCode.Substring(10, 6)) + 1).ToString().PadLeft(6, '0');
                            maxBoxCode = maxBoxCode.Substring(0, 11) + (int.Parse(maxBoxCode.Substring(11, 6)) + 1).ToString().PadLeft(6, '0');
                        } 
                        
                        // 将条码保存到原料条码表
@@ -862,21 +840,41 @@
                        }
                    }
                    addLotNo = maxCodestr2;
                    #endregion
                    for (int i = 1; i <= labelNum2; i++)//箱码标签
                    {
                        //获取箱码
                        if (maxboxcode2 == "")
                        //箱内数量
                        decimal boxQty = 0;
                        if (i == labelNum2)
                        {
                            maxboxcode2 = maxCodestr2 + "000001"; // 箱号     批号+第几箱
                            // 最后一个条码
                            var s = bNum * (i - 1);
                            if (bNum > qty2 - s)
                            {
                                boxQty = qty2 - s;// 数量
                            }
                            else
                            {
                                boxQty = bNum;// 数量
                            }
                        }
                        else
                        {
                            maxboxcode2 = maxboxcode2.Substring(0, 10) + (int.Parse(maxboxcode2.Substring(10, 6)) + 1).ToString().PadLeft(6, '0');
                            boxQty = bNum;                                                         // 数量
                        }
                        //获取箱码
                        if (maxboxcode2 == "")
                        {
                            maxboxcode2 = "B"+maxCodestr2 + "000001"; // 箱号     批号+第几箱
                        }
                        else
                        {
                            maxboxcode2 = maxboxcode2.Substring(0, 11) + (int.Parse(maxboxcode2.Substring(11, 6)) + 1).ToString().PadLeft(6, '0');
                        }
                        //获取箱内支标签数量
                        if (i == labelNum2)
@@ -888,6 +886,12 @@
                                if (isGo2)
                                {
                                    break;
                                }
                                var s = bNum * (i - 1);
                                var s2 = zNum * (j - 1);
                                if (zNum >= qty2 - s - s2)
                                {
                                    isGo2 = true;
                                }
                                sl++;
                            }
@@ -910,12 +914,15 @@
                            
                            if (maxboxcode3 == "")
                            {
                                maxboxcode3 = maxCodestr2 + "0001"; // 支号     批号+第几箱
                                maxboxcode3 = "Z"+maxCodestr2 + "0001"; // 支号     批号+第几箱
                            }
                            else
                            {
                                maxboxcode3 = maxboxcode3.Substring(0, 28) + (int.Parse(maxboxcode3.Substring(28, 4)) + 1).ToString().PadLeft(4, '0');
                                maxboxcode3 = maxboxcode3.Substring(0, 11) + (int.Parse(maxboxcode3.Substring(11, 4)) + 1).ToString().PadLeft(4, '0');
                            }
                            var ssss = d.ToString("0");
                            var sss = int.Parse(ssss);
                            // 将条码保存到原料条码表
                            var labelModel = new BllBoxInfo()
@@ -924,7 +931,7 @@
                                ASNDetailNo = asnList.Id,
                                BoxNo = maxboxcode2,
                                BoxNo3 = maxboxcode3,
                                Qty = int.Parse(d.ToString()),
                                Qty = sss,
                                FullQty = bNum,
                                Status = "0",
                                SkuNo = asnList.SkuNo,
@@ -934,7 +941,7 @@
                                PackageStandard = packStr,
                                SupplierLot = asnList.SupplierLot,
                                InspectMark = "0",
                                BitBoxMark = bNum > d ? "1" : "0",
                                BitBoxMark = bNum > boxQty ? "1" : "0",
                                InspectStatus = "0",
                                ProductionTime = DateTime.Parse(productionTime),
@@ -955,11 +962,24 @@
                    #endregion
                }
                //return labelModel;
                if (string.IsNullOrWhiteSpace(asnList.LotNo))
                {
                    asnList.LotNo = addLotNo;
                    Db.Updateable(asnList).ExecuteCommand();
                }
                else
                {
                    if (!asnList.LotNo.Contains(addLotNo))
                    {
                        asnList.LotNo += ";" + addLotNo;
                        Db.Updateable(asnList).ExecuteCommand();
                    }
                }
                return modelList;
                throw new NotImplementedException();
                //throw new NotImplementedException();
            }
            catch (Exception e)
            {
@@ -967,6 +987,571 @@
            }
        }
        // 补打标签
        public List<BoxInfoDto> GetBuDaLabelList(string boxNo, string endBoxNo, string boxNo2, string endBoxNo2, string type, int userId)
        {
            try
            {
                //打印数据集合
                var printList = new List<BoxInfoDto>();
                List<BoxInfoDto> printModelList = new List<BoxInfoDto>();
                //List<WmsLabelPrintLog> printlog = new List<WmsLabelPrintLog>();
                //标签表数据信息
                var list = Db.Queryable<BllBoxInfo>().Where(m => m.IsDel == "0" && m.Origin == "WMS生成").ToList();
                #region MyRegion
                switch (type)
                {
                    case "1":
                        if (string.IsNullOrWhiteSpace(endBoxNo))
                        {
                            #region 单个箱码标签
                            if (string.IsNullOrWhiteSpace(boxNo))
                            {
                                throw new Exception($"起始箱码不能为空");
                            }
                            var dataList = list.Where(m => m.BoxNo == boxNo);
                            var data = list.FirstOrDefault(m => m.BoxNo == boxNo);
                            if (data == null)
                            {
                                throw new Exception($"未查询到{boxNo}信息");
                            }
                            // 物料条码信息赋值
                            BoxInfoDto model = new BoxInfoDto();
                            model.SkuNo = data.SkuNo;
                            model.SkuName = data.SkuName;
                            model.LotNo = data.LotNo;                      //批次
                            model.SupplierLot = data.SupplierLot;                        // 原厂批号
                            model.Standard = data.Standard;                              // 规格/型号
                            model.PackageStandard = data.PackageStandard;                // 包装规格
                            model.ExpirationTime = data.ExpirationTime;                  // 有效期至
                            model.StoreTime = data.StoreTime;                     // 储存期至
                            model.Qty = dataList.Sum(m=>m.Qty);// 数量
                            model.BoxNo = data.BoxNo;                 // 箱号
                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo,160, 40,false);
                            // 添加到list集合
                            printModelList.Add(model);
                            //添加打印记录
                            //WmsLabelPrintLog log = new WmsLabelPrintLog();
                            //log.BoxCode = data.LabelStream;
                            //log.CreateTime = DateTime.Now;
                            //log.Demo = Demo;
                            //log.Isdel = 0;
                            //log.CreateUser = userId;
                            //printlog.Add(log);
                            #endregion
                        }
                        else
                        {
                            #region 多个箱码标签  开始-结束
                            if (string.IsNullOrWhiteSpace(boxNo))
                            {
                                throw new Exception("起始箱码不能为空");
                            }
                            var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'";
                            var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
                            var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList();
                            if (data3.Count == 0)
                            {
                                throw new Exception($"未查询到{boxNo}-{endBoxNo}中信息");
                            }
                            var i = 0;
                            foreach (var item in data3)
                            {
                                var data1 = data2.Where(m => m.BoxNo == item);
                                var data = data2.FirstOrDefault(m => m.BoxNo == item);
                                if (data == null)
                                {
                                    throw new Exception($"未查询到{item}信息");
                                }
                                // 物料条码信息赋值
                                BoxInfoDto model = new BoxInfoDto();
                                model.SkuNo = data.SkuNo;
                                model.SkuName = data.SkuName;
                                model.LotNo = data.LotNo;                      //批次
                                model.SupplierLot = data.SupplierLot;                        // 原厂批号
                                model.Standard = data.Standard;                              // 规格/型号
                                model.PackageStandard = data.PackageStandard;                // 包装规格
                                model.ExpirationTime = data.ExpirationTime;                  // 有效期至
                                model.StoreTime = data.StoreTime;                     // 储存期至
                                model.Qty = data1.Sum(m => m.Qty);// 数量
                                model.BoxNo = data.BoxNo;                 // 箱号
                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
                                // 添加到list集合
                                printModelList.Add(model);
                                i++;
                                ////添加打印记录
                                //WmsLabelPrintLog log = new WmsLabelPrintLog();
                                //log.BoxCode = data.LabelStream;
                                //log.CreateTime = DateTime.Now;
                                //log.Demo = Demo;
                                //log.Isdel = 0;
                                //log.CreateUser = userId;
                                //printlog.Add(log);
                                if (i >= 100)
                                {
                                    break;
                                }
                            }
                            #endregion
                        }
                        break;
                    case "2":
                        if (string.IsNullOrWhiteSpace(endBoxNo2))
                        {
                            #region 单个支码标签
                            if (string.IsNullOrWhiteSpace(boxNo2))
                            {
                                throw new Exception($"起始支码不能为空");
                            }
                            var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2);
                            if (data == null)
                            {
                                throw new Exception($"未查询到{boxNo2}信息");
                            }
                            // 物料条码信息赋值
                            BoxInfoDto model = new BoxInfoDto();
                            model.SkuNo = data.SkuNo;
                            model.SkuName = data.SkuName;
                            model.LotNo = data.LotNo;                      //批次
                            model.SupplierLot = data.SupplierLot;                        // 原厂批号
                            model.Standard = data.Standard;                              // 规格/型号
                            model.PackageStandard = data.PackageStandard;                // 包装规格
                            model.ExpirationTime = data.ExpirationTime;                  // 有效期至
                            model.StoreTime = data.StoreTime;                     // 储存期至
                            model.Qty = data.Qty;// 数量
                            model.BoxNo = data.BoxNo3;                 // 支号
                            model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
                            // 添加到list集合
                            printModelList.Add(model);
                            ////添加打印记录
                            //WmsLabelPrintLog log = new WmsLabelPrintLog();
                            //log.BoxCode = data.BoxCode1;
                            //log.CreateTime = DateTime.Now;
                            //log.Demo = Demo;
                            //log.Isdel = 0;
                            //log.CreateUser = userId;
                            //printlog.Add(log);
                            #endregion
                        }
                        else
                        {
                            #region 多个支码标签  开始-结束
                            if (string.IsNullOrWhiteSpace(boxNo2))
                            {
                                throw new Exception("起始支码不能为空");
                            }
                            var sql = $@"select * from BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'";
                            var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
                            if (data2.Count == 0)
                            {
                                throw new Exception($"未查询到{boxNo2}-{endBoxNo2}中信息");
                            }
                            var i = 0;
                            foreach (var data in data2)
                            {
                                // 物料条码信息赋值
                                BoxInfoDto model = new BoxInfoDto();
                                model.SkuNo = data.SkuNo;
                                model.SkuName = data.SkuName;
                                model.LotNo = data.LotNo;                      //批次
                                model.SupplierLot = data.SupplierLot;                        // 原厂批号
                                model.Standard = data.Standard;                              // 规格/型号
                                model.PackageStandard = data.PackageStandard;                // 包装规格
                                model.ExpirationTime = data.ExpirationTime;                  // 有效期至
                                model.StoreTime = data.StoreTime;                     // 储存期至
                                model.Qty = data.Qty;// 数量
                                model.BoxNo = data.BoxNo3;                 // 箱号
                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
                                // 添加到list集合
                                printModelList.Add(model);
                                i++;
                                ////添加打印记录
                                //WmsLabelPrintLog log = new WmsLabelPrintLog();
                                //log.BoxCode = data.BoxCode1;
                                //log.CreateTime = DateTime.Now;
                                //log.Demo = Demo;
                                //log.Isdel = 0;
                                //log.CreateUser = userId;
                                //printlog.Add(log);
                                if (i >= 100)
                                {
                                    break;
                                }
                            }
                            #endregion
                        }
                        break;
                    case "3":
                        if (string.IsNullOrWhiteSpace(endBoxNo))
                        {
                            if (string.IsNullOrWhiteSpace(boxNo))
                            {
                                throw new Exception("起始箱码不能为空");
                            }
                            #region 箱码和箱码内的支码
                            if (!string.IsNullOrWhiteSpace(boxNo2))
                            {
                                if (string.IsNullOrWhiteSpace(endBoxNo2)) //单个支码和箱码
                                {
                                    #region 单个支码和箱码
                                    var dataList = list.Where(m => m.BoxNo == boxNo);
                                    var data = list.FirstOrDefault(m => m.BoxNo3 == boxNo2);
                                    if (data == null)
                                    {
                                        throw new Exception($"未查询到{boxNo2}信息");
                                    }
                                    if (data.BoxNo != boxNo)//判断箱码是否相同
                                    {
                                        throw new Exception($"当前支码不是箱码内");
                                    }
                                    // 物料条码信息赋值 箱码
                                    BoxInfoDto model1 = new BoxInfoDto();
                                    model1.SkuNo = data.SkuNo;
                                    model1.SkuName = data.SkuName;
                                    model1.LotNo = data.LotNo;                      //批次
                                    model1.SupplierLot = data.SupplierLot;                        // 原厂批号
                                    model1.Standard = data.Standard;                              // 规格/型号
                                    model1.PackageStandard = data.PackageStandard;                // 包装规格
                                    model1.ExpirationTime = data.ExpirationTime;                  // 有效期至
                                    model1.StoreTime = data.StoreTime;                     // 储存期至
                                    model1.Qty = dataList.Sum(m=>m.Qty);// 数量
                                    model1.BoxNo = data.BoxNo;                 // 箱号
                                    model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
                                    // 添加到list集合
                                    printModelList.Add(model1);
                                    // 物料条码信息赋值  支码
                                    BoxInfoDto model = new BoxInfoDto();
                                    model.SkuNo = data.SkuNo;
                                    model.SkuName = data.SkuName;
                                    model.LotNo = data.LotNo;                      //批次
                                    model.SupplierLot = data.SupplierLot;                        // 原厂批号
                                    model.Standard = data.Standard;                              // 规格/型号
                                    model.PackageStandard = data.PackageStandard;                // 包装规格
                                    model.ExpirationTime = data.ExpirationTime;                  // 有效期至
                                    model.StoreTime = data.StoreTime;                     // 储存期至
                                    model.Qty = data.Qty;// 数量
                                    model.BoxNo = data.BoxNo3;                 // 支号
                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
                                    // 添加到list集合
                                    printModelList.Add(model);
                                    ////添加打印记录
                                    //WmsLabelPrintLog log = new WmsLabelPrintLog();
                                    //log.BoxCode = data.BoxCode1;
                                    //log.CreateTime = DateTime.Now;
                                    //log.Demo = Demo;
                                    //log.Isdel = 0;
                                    //log.CreateUser = userId;
                                    //printlog.Add(log);
                                    #endregion
                                }
                                else//一箱内某几个支码
                                {
                                    #region 单个箱码和多个支码
                                    var sql = $@"select * from  BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo3 >='{boxNo2}' and BoxNo3 <= '{endBoxNo2}'";
                                    var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
                                    if (data2.Count == 0)
                                    {
                                        throw new Exception($"未查询到{boxNo2}-{endBoxNo2}中信息");
                                    }
                                    if (data2.Count(m => m.BoxNo != boxNo) > 0)
                                    {
                                        throw new Exception($"{boxNo2}-{endBoxNo2}中信息有不属于{boxNo}箱码内的");
                                    }
                                    var data = list.Where(m => m.BoxNo == boxNo);
                                    var boxData = data2.FirstOrDefault();
                                    // 物料条码信息赋值
                                    BoxInfoDto model = new BoxInfoDto();
                                    model.SkuNo = boxData.SkuNo;
                                    model.SkuName = boxData.SkuName;
                                    model.LotNo = boxData.LotNo;                      //批次
                                    model.SupplierLot = boxData.SupplierLot;                        // 原厂批号
                                    model.Standard = boxData.Standard;                              // 规格/型号
                                    model.PackageStandard = boxData.PackageStandard;                // 包装规格
                                    model.ExpirationTime = boxData.ExpirationTime;                  // 有效期至
                                    model.StoreTime = boxData.StoreTime;                     // 储存期至
                                    model.Qty = data.Sum(m => m.Qty);     // 数量
                                    model.BoxNo = boxData.BoxNo;                 // 支号
                                    model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
                                    // 添加到list集合
                                    printModelList.Add(model);
                                    var i = 0;
                                    foreach (var item in data2)
                                    {
                                        // 物料条码信息赋值
                                        BoxInfoDto model1 = new BoxInfoDto();
                                        model1.SkuNo = item.SkuNo;
                                        model1.SkuName = item.SkuName;
                                        model1.LotNo = item.LotNo;                      //批次
                                        model1.SupplierLot = item.SupplierLot;                        // 原厂批号
                                        model1.Standard = item.Standard;                              // 规格/型号
                                        model1.PackageStandard = item.PackageStandard;                // 包装规格
                                        model1.ExpirationTime = item.ExpirationTime;                  // 有效期至
                                        model1.StoreTime = item.StoreTime;                     // 储存期至
                                        model1.Qty = item.Qty;// 数量
                                        model1.BoxNo = item.BoxNo3;                 // 支号
                                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
                                        // 添加到list集合
                                        printModelList.Add(model);
                                        i++;
                                        ////添加打印记录
                                        //WmsLabelPrintLog log = new WmsLabelPrintLog();
                                        //log.BoxCode = item.BoxCode1;
                                        //log.CreateTime = DateTime.Now;
                                        //log.Demo = Demo;
                                        //log.Isdel = 0;
                                        //log.CreateUser = userId;
                                        //printlog.Add(log);
                                        if (i >= 100)
                                        {
                                            break;
                                        }
                                    }
                                    #endregion
                                }
                            }
                            else //整箱支码和一个箱码
                            {
                                #region 整箱支码和一个箱码
                                var data = list.Where(m => m.BoxNo == boxNo).ToList();
                                var boxData = data.FirstOrDefault();
                                if (boxData == null)
                                {
                                    throw new Exception($"未查询到{boxNo}箱码信息");
                                }
                                // 物料条码信息赋值
                                BoxInfoDto model = new BoxInfoDto();
                                model.SkuNo = boxData.SkuNo;
                                model.SkuName = boxData.SkuName;
                                model.LotNo = boxData.LotNo;                      //批次
                                model.SupplierLot = boxData.SupplierLot;                        // 原厂批号
                                model.Standard = boxData.Standard;                              // 规格/型号
                                model.PackageStandard = boxData.PackageStandard;                // 包装规格
                                model.ExpirationTime = boxData.ExpirationTime;                  // 有效期至
                                model.StoreTime = boxData.StoreTime;                     // 储存期至
                                model.Qty = data.Sum(m => m.Qty);     // 数量
                                model.BoxNo = boxData.BoxNo;                 // 支号
                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
                                // 添加到list集合
                                printModelList.Add(model);
                                if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //判断是否有支码
                                {
                                    var i = 0;
                                    foreach (var item in data)
                                    {
                                        // 物料条码信息赋值
                                        BoxInfoDto model1 = new BoxInfoDto();
                                        model1.SkuNo = item.SkuNo;
                                        model1.SkuName = item.SkuName;
                                        model1.LotNo = item.LotNo;                      //批次
                                        model1.SupplierLot = item.SupplierLot;                        // 原厂批号
                                        model1.Standard = item.Standard;                              // 规格/型号
                                        model1.PackageStandard = item.PackageStandard;                // 包装规格
                                        model1.ExpirationTime = item.ExpirationTime;                  // 有效期至
                                        model1.StoreTime = item.StoreTime;                     // 储存期至
                                        model1.Qty = item.Qty;     // 数量
                                        model1.BoxNo = item.BoxNo3;                 // 支号
                                        model1.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
                                        // 添加到list集合
                                        printModelList.Add(model1);
                                        i++;
                                        ////添加打印记录
                                        //WmsLabelPrintLog log = new WmsLabelPrintLog();
                                        //log.BoxCode = item.BoxCode1;
                                        //log.CreateTime = DateTime.Now;
                                        //log.Demo = Demo;
                                        //log.Isdel = 0;
                                        //log.CreateUser = userId;
                                        //printlog.Add(log);
                                        if (i >= 100)
                                        {
                                            break;
                                        }
                                    }
                                }
                                else
                                {
                                    throw new Exception("当前箱内没有支码");
                                }
                                #endregion
                            }
                            #endregion
                        }
                        else
                        {
                            if (string.IsNullOrWhiteSpace(boxNo))
                            {
                                throw new Exception("起始箱码不能为空");
                            }
                            #region 多个箱码和内支码
                            var sql = $@"select * from  BllBoxInfo where IsDel = '0' and Origin = 'WMS生成' and BoxNo >='{boxNo}' and BoxNo <= '{endBoxNo}'";
                            var data2 = Db.Ado.SqlQuery<BllBoxInfo>(sql);
                            var data3 = data2.GroupBy(m => m.BoxNo).Select(m => m.Key).OrderBy(m => m).ToList();
                            if (data3.Count == 0)
                            {
                                throw new Exception($"未查询到{boxNo}-{endBoxNo}中信息");
                            }
                            var i = 0;
                            var j = 0;
                            foreach (var demo in data3)
                            {
                                var data = list.Where(m => m.BoxNo == demo).ToList();
                                var boxData = data.FirstOrDefault();
                                if (boxData == null)
                                {
                                    throw new Exception($"未查询到{demo}箱码信息");
                                }
                                // 物料条码信息赋值
                                BoxInfoDto model = new BoxInfoDto();
                                model.SkuNo = boxData.SkuNo;
                                model.SkuName = boxData.SkuName;
                                model.LotNo = boxData.LotNo;                      //批次
                                model.SupplierLot = boxData.SupplierLot;                        // 原厂批号
                                model.Standard = boxData.Standard;                              // 规格/型号
                                model.PackageStandard = boxData.PackageStandard;                // 包装规格
                                model.ExpirationTime = boxData.ExpirationTime;                  // 有效期至
                                model.StoreTime = boxData.StoreTime;                     // 储存期至
                                model.Qty = data.Sum(m => m.Qty);     // 数量
                                model.BoxNo = boxData.BoxNo;                 // 支号
                                model.ImgStr = BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false);
                                // 添加到list集合
                                printModelList.Add(model);
                                j++;
                                if (j >= 100)
                                {
                                    break;
                                }
                                if (data.Count(m => !string.IsNullOrWhiteSpace(m.BoxNo3)) > 0) //判断是否有支码
                                {
                                    foreach (var item in data.OrderBy(m => m.BoxNo3).ToList())
                                    {
                                        // 物料条码信息赋值
                                        BoxInfoDto model1 = new BoxInfoDto();
                                        model1.SkuNo = item.SkuNo;
                                        model1.SkuName = item.SkuName;
                                        model1.LotNo = item.LotNo;                      //批次
                                        model1.SupplierLot = item.SupplierLot;                        // 原厂批号
                                        model1.Standard = item.Standard;                              // 规格/型号
                                        model1.PackageStandard = item.PackageStandard;                // 包装规格
                                        model1.ExpirationTime = item.ExpirationTime;                  // 有效期至
                                        model1.StoreTime = item.StoreTime;                     // 储存期至
                                        model1.Qty = item.Qty;// 数量
                                        model1.BoxNo = item.BoxNo3;                 // 支号
                                        model.ImgStr = BarcodeHelper.GetCodeBarBase64(model1.BoxNo, 160, 40, false);
                                        // 添加到list集合
                                        printModelList.Add(model1);
                                        i++;
                                        ////添加打印记录
                                        //WmsLabelPrintLog log = new WmsLabelPrintLog();
                                        //log.BoxCode = item.BoxCode1;
                                        //log.CreateTime = DateTime.Now;
                                        //log.Demo = Demo;
                                        //log.Isdel = 0;
                                        //log.CreateUser = userId;
                                        //printlog.Add(log);
                                        if (i >= 100)
                                        {
                                            break;
                                        }
                                    }
                                }
                            }
                            #endregion
                        }
                        break;
                    default:
                        throw new Exception("请选择补打类型");
                }
                #endregion
                //dataContext.WmsLabelPrintLog.InsertAllOnSubmit(printlog);
                //    dataContext.SubmitChanges();
                //    return printModel;
                return printModelList;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
    }
}