| | |
| | | using System.Linq; |
| | | using System.Linq.Expressions; |
| | | using System.Text; |
| | | using System.Threading.Tasks; |
| | | using Model.ModelDto.BllSoDto; |
| | | using Model.ModelVm.BllSoVm; |
| | | using SqlSugar; |
| | | using WMS.BLL.LogServer; |
| | | using WMS.DAL; |
| | |
| | | } |
| | | |
| | | //查询出库分配表信息 |
| | | public List<ExportAllotDto> GetExportAllotList(string no, string waveNo, string palletNo, string skuNo, string skuName, string lotNo, string status, string boxNo, int page, int limit, out int count) |
| | | public async Task<List<ExportAllotDto>> GetExportAllotList(GetExportAllotVm model, RefAsync<int> count) |
| | | { |
| | | try |
| | | { |
| | | var strList = new List<int>(); |
| | | var strList = new List<int>(); |
| | | |
| | | if (!string.IsNullOrWhiteSpace(boxNo)) |
| | | if (!string.IsNullOrWhiteSpace(model.BoxNo)) |
| | | { |
| | | var detailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo.Contains(model.BoxNo.Trim())).Select(m => m.ExportAllotId).Distinct().ToList(); |
| | | strList = detailList; |
| | | } |
| | | Expression<Func<BllExportAllot, bool>> item = Expressionable.Create<BllExportAllot>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.SoNo), it => it.SONo.Contains(model.SoNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.WaveNo), it => it.WaveNo.Contains(model.WaveNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.PalletNo), it => it.PalletNo.Contains(model.PalletNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.SkuNo), it => it.SkuNo.Contains(model.SkuNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.SkuName), it => it.SkuName.Contains(model.SkuName.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.LotNo), it => it.LotNo.Contains(model.LotNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.Status), it => it.Status == model.Status) |
| | | .AndIF(!string.IsNullOrWhiteSpace(model.BoxNo), m => strList.Contains(m.Id)) |
| | | .ToExpression();//注意 这一句 不能少 |
| | | var total = 0; |
| | | var data = await GetAllWhereAsync(item) |
| | | .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id) |
| | | .Select((a, b, c, d) => new ExportAllotDto() |
| | | { |
| | | var detailList = Db.Queryable<BllCompleteDetail>().Where(m => m.IsDel == "0" && m.BoxNo.Contains(boxNo.Trim())).Select(m => m.ExportAllotId).Distinct().ToList(); |
| | | strList = detailList; |
| | | } |
| | | Expression<Func<BllExportAllot, bool>> item = Expressionable.Create<BllExportAllot>() |
| | | .AndIF(!string.IsNullOrWhiteSpace(no), it => it.SONo.Contains(no.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(waveNo), it => it.WaveNo.Contains(waveNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(palletNo), it => it.PalletNo.Contains(palletNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(skuNo), it => it.SkuNo.Contains(skuNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(skuName), it => it.SkuName.Contains(skuName.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(lotNo), it => it.LotNo.Contains(lotNo.Trim())) |
| | | .AndIF(!string.IsNullOrWhiteSpace(status), it => it.Status == status) |
| | | .AndIF(!string.IsNullOrWhiteSpace(boxNo), m => strList.Contains(m.Id)) |
| | | .ToExpression();//注意 这一句 不能少 |
| | | var total = 0; |
| | | var data = GetAllWhereAsync(item) |
| | | .LeftJoin<SysLogisticsInfo>((a, b) => a.LogisticsId == b.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c) => a.CreateUser == c.Id) |
| | | .LeftJoin<SysUserInfor>((a, b, c, d) => a.CreateUser == d.Id) |
| | | .Select((a, b, c, d) => new ExportAllotDto() |
| | | { |
| | | Id = a.Id, |
| | | SONo = a.SONo, |
| | | WaveNo = a.WaveNo, |
| | | SODetailNo = a.SODetailNo, |
| | | StockId = a.StockId, |
| | | TaskNo = a.TaskNo, |
| | | Id = a.Id, |
| | | SONo = a.SONo, |
| | | WaveNo = a.WaveNo, |
| | | SODetailNo = a.SODetailNo, |
| | | StockId = a.StockId, |
| | | TaskNo = a.TaskNo, |
| | | |
| | | LotNo = a.LotNo, |
| | | LotText = a.LotText, |
| | | SupplierLot = a.SupplierLot, |
| | | SkuNo = a.SkuNo, |
| | | SkuName = a.SkuName, |
| | | Standard = a.Standard, |
| | | PalletNo = a.PalletNo, |
| | | IsBale = a.IsBale, |
| | | IsBelt = a.IsBelt, |
| | | Qty = a.Qty, |
| | | CompleteQty = a.CompleteQty, |
| | | Status = a.Status, |
| | | LogisticsId = a.LogisticsId, |
| | | LogisticsName = b.CarrierName, |
| | | IsAdvance = a.IsAdvance, |
| | | OutMode = a.OutMode, |
| | | LoadingAddre=a.LoadingAddre, |
| | | UnstackingMode=a.UnstackingMode, |
| | | LotNo = a.LotNo, |
| | | LotText = a.LotText, |
| | | SupplierLot = a.SupplierLot, |
| | | SkuNo = a.SkuNo, |
| | | SkuName = a.SkuName, |
| | | Standard = a.Standard, |
| | | PalletNo = a.PalletNo, |
| | | IsBale = a.IsBale, |
| | | IsBelt = a.IsBelt, |
| | | Qty = a.Qty, |
| | | CompleteQty = a.CompleteQty, |
| | | Status = a.Status, |
| | | LogisticsId = a.LogisticsId, |
| | | LogisticsName = b.CarrierName, |
| | | IsAdvance = a.IsAdvance, |
| | | OutMode = a.OutMode, |
| | | LoadingAddre = a.LoadingAddre, |
| | | UnstackingMode = a.UnstackingMode, |
| | | |
| | | CreateUserName = c.RealName, |
| | | UpdateUserName = d.RealName, |
| | | CreateTime = a.CreateTime, |
| | | UpdateTime = a.UpdateTime |
| | | }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.Status).OrderBy(a => a.SkuNo).ToOffsetPage(page, limit, ref total); |
| | | count = total; |
| | | return data; |
| | | } |
| | | catch (Exception e) |
| | | { |
| | | throw new Exception(e.Message); |
| | | } |
| | | CreateUserName = c.RealName, |
| | | UpdateUserName = d.RealName, |
| | | CreateTime = a.CreateTime, |
| | | UpdateTime = a.UpdateTime |
| | | }).OrderByDescending(a => a.CreateTime).OrderBy(a => a.Status).OrderBy(a => a.SkuNo) |
| | | .ToPageListAsync(model.Page, model.Limit, count); |
| | | count = total; |
| | | return data; |
| | | } |
| | | |
| | | //撤销分配(删除) |