diff --git a/src/WMS.Web.Api/Controllers/InStockController.cs b/src/WMS.Web.Api/Controllers/InStockController.cs index 937a76aa..9002e218 100644 --- a/src/WMS.Web.Api/Controllers/InStockController.cs +++ b/src/WMS.Web.Api/Controllers/InStockController.cs @@ -139,11 +139,11 @@ namespace WMS.Web.Api.Controllers /// [HttpGet] [Route("GetTaskByBox/{boxBillNo}")] - public async Task> GetTaskByBox([FromRoute] string boxBillNo) + public async Task> GetTaskByBox([FromRoute] string boxBillNo) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) - return Result.ReFailure(ResultCodes.Token_Invalid_Error); + return Result.ReFailure(ResultCodes.Token_Invalid_Error); return await _inStockService.GetInfoByBox(boxBillNo); } diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 84844a6d..4aa5fdf0 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -1225,6 +1225,81 @@ 状态 + + + 扫箱-对应的任务单信息和箱的信息 + + + + + 来源单号 + + + + + 箱ID + + + + + 单据ID(等同-入库任务单ID) + + + + + 明细 + + + + + 箱明细和任务单明细结合 + + + + + 供应商Id + + + + + 组织ID + + + + + 物料ID + + + + + 物料名称 + + + + + 物料编码 + + + + + 物料规格型号 + + + + + 应入数量 + + + + + 收货数量 + + + + + 箱对应物料的数量 + + 采购订单物料明细和箱物料明细-对比请求对象 diff --git a/src/WMS.Web.Core/Dto/InStockTask/BoxInStockTaskDto.cs b/src/WMS.Web.Core/Dto/InStockTask/BoxInStockTaskDto.cs new file mode 100644 index 00000000..02173d2b --- /dev/null +++ b/src/WMS.Web.Core/Dto/InStockTask/BoxInStockTaskDto.cs @@ -0,0 +1,81 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.InStockTask +{ + /// + /// 扫箱-对应的任务单信息和箱的信息 + /// + public class BoxInStockTaskDto + { + /// + /// 来源单号 + /// + public string SourceBillNo { get; set; } + + /// + /// 箱ID + /// + public int BoxId { get; set; } + + /// + /// 单据ID(等同-入库任务单ID) + /// + public int TaskId { get; set; } + + + /// + /// 明细 + /// + public List Details { get; set; } = new List(); + } + + /// + /// 箱明细和任务单明细结合 + /// + public class BoxDetailsInStockTaskDto + { + /// + /// 供应商Id + /// + public int SupplierId { get; set; } + /// + /// 组织ID + /// + public int OrgId { get; set; } + + /// + /// 物料ID + /// + public int MaterialId { get; set; } + + /// + /// 物料名称 + /// + public string MaterialName { get; set; } + /// + /// 物料编码 + /// + public string MaterialNumber { get; set; } + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + + /// + /// 应入数量 + /// + public decimal AccruedQty { get; set; } + + /// + /// 收货数量 + /// + public decimal ReceiveQty { get; set; } + + /// + /// 箱对应物料的数量 + /// + public decimal BoxMaterialQty { get; set; } + } +} diff --git a/src/WMS.Web.Domain/IService/IInStockService.cs b/src/WMS.Web.Domain/IService/IInStockService.cs index 5a7124fc..54d52eeb 100644 --- a/src/WMS.Web.Domain/IService/IInStockService.cs +++ b/src/WMS.Web.Domain/IService/IInStockService.cs @@ -54,7 +54,7 @@ namespace WMS.Web.Domain.IService /// /// /// - Task> GetInfoByBox(string boxBillNo); + Task> GetInfoByBox(string boxBillNo); /// /// 修改-入库任务信息 diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 307ef6c8..174f37fa 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -137,7 +137,7 @@ namespace WMS.Web.Domain.Services /// /// /// - public async Task> GetInfoByBox(string boxBillNo) + public async Task> GetInfoByBox(string boxBillNo) { //1.获取物料集合 var materials_result = await _erpService.BillQueryForMaterial(); @@ -148,36 +148,42 @@ namespace WMS.Web.Domain.Services //1.先判断:箱号已经绑定了入库任务单中;备注:业务说法就是箱是否收货了 var tast = await _inStockTaskRepositories.GetBy(boxBillNo); if (tast == null) - return Result.ReFailure(ResultCodes.Box_NoBind_Task_Data); + return Result.ReFailure(ResultCodes.Box_NoBind_Task_Data); //2.找到箱对应的物料信息 var box = await _boxRepositories.GetByNo(boxBillNo); if (box == null) - return Result.ReFailure(ResultCodes.BoxNoData); + return Result.ReFailure(ResultCodes.BoxNoData); //2.1判断箱是否上架过了 var isExist = await _inStockRepositories.IsExistBy(box.Id); if(isExist) - return Result.ReFailure(ResultCodes.BoxIsTrueShelf); + return Result.ReFailure(ResultCodes.BoxIsTrueShelf); //3.组装返回数据 - var result = _mapper.Map(tast); + var result = new BoxInStockTaskDto(); + result.SourceBillNo = tast.SourceBillNo; + result.TaskId = tast.Id; result.BoxId = box.Id; - foreach (var item in tast.Details) + foreach (var item in box.Details) { - //3.1判断当前物料是否相同 - var current_box_det = box.Details.Where(x => x.MaterialId == item.MaterialId).FirstOrDefault(); - if (current_box_det==null) - continue; + var current_task_Det= tast.Details.Where(x => x.MaterialId == item.MaterialId && x.AccruedQty>x.ReceiveQty).FirstOrDefault(); //3.2映射返回明细对象 - var task_detail = _mapper.Map(item); - task_detail.BoxMaterialQty = current_box_det.Qty; - task_detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, task_detail.MaterialId); - task_detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, task_detail.MaterialId); - task_detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, task_detail.MaterialId); - result.Details.Add(task_detail); + var box_task_detail = new BoxDetailsInStockTaskDto(); + box_task_detail.SupplierId = current_task_Det == null ? 0 : current_task_Det.SupplierId; + box_task_detail.OrgId = current_task_Det == null ? 0 : current_task_Det.OrgId; + box_task_detail.ReceiveQty = current_task_Det == null ? 0 : current_task_Det.ReceiveQty; + box_task_detail.AccruedQty = current_task_Det == null ? 0 : current_task_Det.AccruedQty; + + + box_task_detail.MaterialId = item.MaterialId; + box_task_detail.BoxMaterialQty = item.Qty; + box_task_detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, item.MaterialId); + box_task_detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, item.MaterialId); + box_task_detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, item.MaterialId); + result.Details.Add(box_task_detail); } - return Result.ReSuccess(result); + return Result.ReSuccess(result); } ///