admin
4 天以前 bc2abaf0794769f9376369fb9defb17a2233e35f
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
@@ -35,7 +41,7 @@
        /// <param name="inspectStatus">质量状态</param>
        /// <returns></returns>
        public List<DataBoxInfo> GetDataBoxInfo(string id, string skuNo, string skuName, string palletNo, string lotNo, 
            string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus)
            string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus, string WareHouseNo, string AreaNo)
        {
            string str = "select PalletNo,PalletNo2,PalletNo3,BoxNo,BoxNo2,BoxNo3,Status,LotNo,Qty,FullQty,SkuNo,SkuName," +
                "LotText,ProductionTime,ExpirationTime,InspectMark,BitBoxMark,InspectStatus,InspectTime from DataBoxInfo Where IsDel = @isdel";
@@ -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
    }
}