Wms/WMS.BLL/DataServer/DataBoxInfoServer.cs
@@ -1,12 +1,18 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Linq.Expressions;
using System.Text;
using Model.ModelDto;
using Model.ModelDto.DataDto;
using Model.ModelDto.SysDto;
using SqlSugar;
using Utility.Tools;
using WMS.DAL;
using WMS.Entity.BllAsnEntity;
using WMS.Entity.Context;
using WMS.Entity.DataEntity;
using WMS.Entity.SysEntity;
using WMS.IBLL.IDataServer;
namespace WMS.BLL.DataServer
@@ -417,6 +423,132 @@
        }
        #endregion
        #region#补打标签
        /// <summary>
        /// 补打库存明细箱码
        /// </summary>
        /// <param name="boxNo"></param>
        /// <returns></returns>
        /// <exception cref="Exception"></exception>
        public List<BoxInfoDto> GetBuDaLabelList(string boxNo)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(boxNo))
                {
                    throw new Exception($"箱码不能为空");
                }
                //打印数据集合
                var printList = new List<BoxInfoDto>();
                List<BoxInfoDto> printModelList = new List<BoxInfoDto>();
                var funSet = Db.Queryable<SysFunSetting>().First(m => m.IsDel == "0" && m.FunSetName == "物料码类型" && m.IsEnable == "NO");
                var allotSet = 1;//分配规则设定
                if (funSet != null)
                {
                    switch (funSet.SetValue)
                    {
                        case "One":
                            allotSet = 1;//一维条形码
                            break;
                        case "Two":
                            allotSet = 2;//二维码
                            break;
                        default:
                            allotSet = 1;// 默认:一维条形码、
                            break;
                    }
                }
                #region 单个箱码标签
                var dataList = Db.Queryable<DataBoxInfo>().Where(m => m.IsDel == "0" && m.BoxNo == boxNo).ToList();
                var data = dataList.FirstOrDefault();
                if (data == null)
                {
                    throw new Exception($"未查询到{boxNo}信息");
                }
                //物料信息
                var skuInfo = Db.Queryable<SysMaterials>().First(w => w.IsDel == "0" && w.SkuNo == data.SkuNo);
                if (skuInfo == null)
                {
                    throw new Exception($"未查询到编码为{data.SkuNo}的物料信息");
                }
                //包装信息
                var pack = Db.Queryable<SysPackag>().First(m => m.IsDel == "0" && m.PackagNo == skuInfo.PackagNo);
                if (pack == null)
                {
                    throw new Exception("未查询到当前单据中物料的包装信息");
                }
                var packStr = "";
                if (!string.IsNullOrWhiteSpace(pack.L1Name))
                {
                    packStr += pack.L1Num + "/" + pack.L1Name;
                }
                if (!string.IsNullOrWhiteSpace(pack.L2Name))
                {
                    packStr += "-" + pack.L2Num + "/" + pack.L2Name;
                }
                if (!string.IsNullOrWhiteSpace(pack.L3Name))
                {
                    packStr += "-" + pack.L3Num + "/" + pack.L3Name;
                }
                if (!string.IsNullOrWhiteSpace(pack.L4Name))
                {
                    packStr += "-" + pack.L4Num + "/" + pack.L4Name;
                }
                if (!string.IsNullOrWhiteSpace(pack.L5Name))
                {
                    packStr += "-" + pack.L5Num + "/" + pack.L5Name;
                }
                // 物料条码信息赋值
                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 = packStr;                // 包装规格
                model.ExpirationTime = data.ExpirationTime;                  // 有效期至
                model.StoreTime = null;                     // 储存期至
                model.ProductionTime = data.ProductionTime;//生产日期
                model.Qty = dataList.Sum(m => m.Qty);// 数量
                model.BoxNo = data.BoxNo;                 // 箱号
                model.ImgStr = allotSet == 1 ? BarcodeHelper.GetCodeBarBase64(model.BoxNo, 160, 40, false) : BarcodeHelper.GetQrCodeBase64(model.BoxNo, 85, 85);
                // 添加到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
                return printModelList;
            }
            catch (Exception e)
            {
                throw new Exception(e.Message);
            }
        }
        #endregion
        #region 废代码 仅供参考
        ////获取分组后的箱码明细
@@ -480,5 +612,6 @@
        //}
        #endregion
    }
}