using System; using System.Collections.Generic; using System.Text; using SqlSugar; using WMS.DAL; using WMS.Entity.Context; using WMS.Entity.DataEntity; using WMS.IBLL.IDataServer; namespace WMS.BLL.DataServer { public class DataBoxInfoServer: DbHelper,IDataBoxInfoServer { private static readonly SqlSugarScope Db = DataContext.Db; public DataBoxInfoServer():base(Db) { } #region 导出箱码明细 /// /// 导出箱码明细 /// /// id /// 物料号 /// 物料名称 /// 托盘号 /// 批次号 /// 箱码 /// 箱支状态 /// 检验标记 /// 零箱标记 /// 质量状态 /// public List GetDataBoxInfoDaoChu(string id, string skuNo, string skuName, string palletNo, string lotNo, string boxNo, string status, string inspectMark, string bitBoxMark, string inspectStatus) { string str = "select PalletNo,PalletNo2,PalletNo3,BoxNo,BoxNo2,BoxNo3,Status,LotNo,Qty,FullQty,SkuNo,SkuName,LotText,ProductionTime,InspectMark,BitBoxMark,InspectStatus,InspectTime from DataBoxInfo Where IsDel = @isdel"; //判断id是否为空 if (!string.IsNullOrEmpty(id)) { str += " and StockDetailId = @id"; } //判断物料号是否为空 if (!string.IsNullOrEmpty(skuNo)) { str += " and SkuNo like @skuno"; } //判断物料名称是否为空 if (!string.IsNullOrEmpty(skuName)) { str += " and SkuName like @skuname"; } //判断托盘号是否为空 if (!string.IsNullOrEmpty(palletNo)) { str += " and PalletNo like @palletno"; } //判断批次是否为空 if (!string.IsNullOrEmpty(lotNo)) { str += " and LotNo like @lotno"; } //判断箱码是否为空 if (!string.IsNullOrEmpty(boxNo)) { str += " and BoxNo like @boxno"; } //判断箱支状态是否为空 if (!string.IsNullOrEmpty(status)) { str += " and Status = @status"; } //判断检验标记是否为空 if (!string.IsNullOrEmpty(inspectMark)) { str += " and InspectMark = @inspectmark"; } //判断零箱标记是否为空 if (!string.IsNullOrEmpty(bitBoxMark)) { str += " and BitBoxMark = @bitboxmark"; } //判断质量状态是否为空 if (!string.IsNullOrEmpty(inspectStatus)) { str += " and InspectStatus = @inspectstatus"; } //排序 str += " order by LotNo,PalletNo,SkuNo"; List boxInfor = Db.Ado.SqlQuery(str, new { isdel = "0", //是否删除 id, //id skuno = "%" + skuNo + "%", //物料号 skuname = "%" + skuName + "%", //物料名称 palletno = "%" + palletNo + "%", //托盘 lotno = "%" + lotNo + "%", //批次号 boxno = "%" + boxNo + "%", //箱码 status, //箱支状态 inspectmark = inspectMark, //检验标记 bitboxmark = bitBoxMark, //零箱标记 inspectstatus = inspectStatus //质量状态 }); List box = new List(); foreach (var b1 in boxInfor) { //判断box是否为空 if (box.Count <= 0) { //无数据获取第一条 box.Add(b1); continue; } int i = 0; foreach (var b2 in box) { if (b2.BoxNo == b1.BoxNo) { b2.Qty += b1.Qty; break; } i += 1; } if (i == box.Count) { box.Add(b1); continue; } } foreach (var item in box) { //物料编码,加上单引号是防止导出到excel自动把前面的0给去掉 if (!string.IsNullOrEmpty(item.SkuNo) && item.SkuNo.Substring(0, 1) == "0") { item.SkuNo = $"'{item.SkuNo}"; } //箱码,加上单引号是防止导出到excel纯数字太长 if (!string.IsNullOrEmpty(item.BoxNo)) { item.BoxNo = $"'{item.BoxNo}"; } //抽检标记 switch (item.InspectMark) { case "0": item.InspectMark = "否"; break; case "1": item.InspectMark = "是"; break; default: break; } //零箱标记 switch (item.BitBoxMark) { case "0": item.BitBoxMark = "否"; break; case "1": item.BitBoxMark = "是"; break; default: break; } //质检状态 switch (item.InspectStatus) { case "0": item.InspectStatus = "待检验"; break; case "1": item.InspectStatus = "检验合格"; break; case "2": item.InspectStatus = "不合格"; break; case "4": item.InspectStatus = "放置期"; break; default: break; } } return box; } #endregion } }