admin
3 天以前 a01a9cff8bdf5ba57daf1b43bbb2415cb21063b9
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
@@ -186,7 +192,7 @@
        public List<AdventBoxInfoDto> GetEmergencyWarning(string skuNo, string skuName, string lotNo, string palletNo, string status, string inspectMark, string inspectStatus)
        {
            string str = @" select d.WareHouseName,d.WareHouseNo,e.RoadwayName,e.RoadwayNo,f.AreaName,f.AreaNo,c.LocatNo,a.PalletNo,
                             a.SkuNo,a.SkuName,SUM(a.Qty) as Qty,a.Standard,a.LotNo,a.SupplierLot,a.ProductionTime,a.Status
                             a.SkuNo,a.SkuName,SUM(a.Qty) as Qty,a.Standard,a.LotNo,a.SupplierLot,a.ProductionTime,a.Status,c.ExpirationTime
                             from DataBoxInfo a
                             left join SysMaterials b on a.SkuNo = b.SkuNo 
                             left join DataStockDetail c on a.StockDetailId = c.Id
@@ -230,7 +236,7 @@
                str += " and a.InspectStatus = @inspectstatus";
            }
            //排序
            str += @" group by d.WareHouseName,d.WareHouseNo,e.RoadwayName,e.RoadwayNo,f.AreaName,f.AreaNo,c.LocatNo,a.PalletNo,a.SkuNo,a.SkuName,a.Standard,a.LotNo,a.SupplierLot,a.ProductionTime,a.Status order by a.SkuNo,a.LotNo ";
            str += @" group by d.WareHouseName,d.WareHouseNo,e.RoadwayName,e.RoadwayNo,f.AreaName,f.AreaNo,c.LocatNo,a.PalletNo,a.SkuNo,a.SkuName,a.Standard,a.LotNo,a.SupplierLot,a.ProductionTime,a.Status,c.ExpirationTime order by a.SkuNo,a.LotNo ";
            List<AdventBoxInfoDto> stockList = Db.Ado.SqlQuery<AdventBoxInfoDto>(str, new
            {
                skuno = skuNo, //物料号
@@ -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
    }
}