diff --git a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs index c132045c..20a1dcff 100644 --- a/src/WMS.Web.Api/Controllers/OutStockTaskController.cs +++ b/src/WMS.Web.Api/Controllers/OutStockTaskController.cs @@ -100,7 +100,7 @@ namespace WMS.Web.Api.Controllers return ResultList.ReFailure(ResultCodes.Token_Invalid_Error); var res = await _repositories.GetOutStockTaskListByNo(billNo); - if (res == null) return ResultList.ReFailure(ResultCodes.OutStockTaskNoData); + if (res == null || res.Count() == 0) return ResultList.ReFailure(ResultCodes.OutStockTaskNoData); return ResultList.ReSuccess(res); } diff --git a/src/WMS.Web.Domain/Services/OutStockService.cs b/src/WMS.Web.Domain/Services/OutStockService.cs index 0775bc3e..865ca810 100644 --- a/src/WMS.Web.Domain/Services/OutStockService.cs +++ b/src/WMS.Web.Domain/Services/OutStockService.cs @@ -60,6 +60,11 @@ namespace WMS.Web.Domain.Services //nos.Add(outStockTask.SourceBillNo); //var res = await _outStockTaskService.Ssyn(nos); //if (!res.IsSuccess) return Result.ReSuccess(); + //上传的物料在任务单里没有找到不能出库 + var ex = dto.Details.Select(s=>s.MaterialId).Except(outStockTask.Details.Select(s=>s.MaterialId)).ToList(); + if (ex.Count() > 0) + return Result.ReFailure(ResultCodes.OutStockMaterialError); + OutStock entity = new OutStock(); entity.Create(loginInfo.UserInfo.StaffId, outStockTask); diff --git a/src/WMS.Web.Domain/Services/SerialNumberService.cs b/src/WMS.Web.Domain/Services/SerialNumberService.cs index 679a3c3d..e555e8e0 100644 --- a/src/WMS.Web.Domain/Services/SerialNumberService.cs +++ b/src/WMS.Web.Domain/Services/SerialNumberService.cs @@ -298,7 +298,7 @@ namespace WMS.Web.Domain.Services public async Task InStock(InStock inStock, LoginInDto loginInfo, bool isTransaction = true) { //获取序列号信息 - var serialNumbers = new List();// inStock.Details.SelectMany(s => s.SerialNumbers).ToList(); + var serialNumbers = inStock.Details.SelectMany(s => s.SerialNumbers).ToList(); var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers); var boxIds = entityList.Select(s => s.BoxId).ToList(); var boxList = await _boxRepositories.GetEntityList(boxIds); diff --git a/src/WMS.Web.Domain/Values/ResultCodes.cs b/src/WMS.Web.Domain/Values/ResultCodes.cs index 04f86b86..7445d565 100644 --- a/src/WMS.Web.Domain/Values/ResultCodes.cs +++ b/src/WMS.Web.Domain/Values/ResultCodes.cs @@ -26,6 +26,7 @@ namespace WMS.Web.Domain.Values public static ValueTuple MergeStatusError = (70000, "所选单据数据不一致,不能合并"); public static ValueTuple OutStockQtyError = (70001, "可出库数量不足"); public static ValueTuple OutStockTaskNoData = (70002, "出库任务数据不存在"); + public static ValueTuple OutStockMaterialError = (70003, "出库物料在任务单中不存在"); public static ValueTuple BoxNoData = (80000, "箱信息不存在"); public static ValueTuple BoxMateriaNoData = (800010, "箱对应物料信息不存在"); diff --git a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs index 801658ef..8c36edcb 100644 --- a/src/WMS.Web.Repositories/OutStockTaskRepositories.cs +++ b/src/WMS.Web.Repositories/OutStockTaskRepositories.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core; +using WMS.Web.Core.Dto.Erp; using WMS.Web.Core.Dto.OutStockTask; using WMS.Web.Core.Help; using WMS.Web.Domain.Entitys; @@ -38,6 +39,7 @@ namespace WMS.Web.Repositories _singleDataService = singleDataService; _loginRepositories = loginRepositories; _erpService = erpService; + _erpBasicDataExtendService = erpBasicDataExtendService; } /// /// 新增 @@ -342,10 +344,13 @@ namespace WMS.Web.Repositories return new GetOutStockTaskByNoResponse(); var materials = materials_result.Data.ToList(); - var list = await _context.OutStockTask.Include(x => x.Details) - .Where(f => f.BillNo.Equals(billNo) && - (f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait)).ToListAsync(); - var response = _mapper.Map(list); + var entity = await _context.OutStockTask.Include(x => x.Details) + .FirstOrDefaultAsync(f => f.BillNo.Equals(billNo) && + (f.Status == OutStockStatus.Part || f.Status == OutStockStatus.Wait)); + + if (entity == null) return new GetOutStockTaskByNoResponse(); + + var response = _mapper.Map(entity); //获取物料信息 显示物料三件套 foreach (var r in response.details) { @@ -357,15 +362,15 @@ namespace WMS.Web.Repositories } /// - /// 根据来源单号搜索 + /// 单号搜索 /// /// /// - public async Task> GetListBySourceBillNo(List sourceBillNos) + public async Task> GetListBySourceBillNo(List billNos) { var entitys = await _context.OutStockTask .Include(s => s.Details) - .Where(w => sourceBillNos.Contains(w.SourceBillNo)) + .Where(w => billNos.Contains(w.BillNo)) .ToListAsync(); return entitys.Clone();