diff --git a/src/WMS.Web.Api/Controllers/InStockController.cs b/src/WMS.Web.Api/Controllers/InStockController.cs index 260f57b4..70bdec6c 100644 --- a/src/WMS.Web.Api/Controllers/InStockController.cs +++ b/src/WMS.Web.Api/Controllers/InStockController.cs @@ -6,6 +6,7 @@ using System.Linq; using System.Threading.Tasks; using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.InStock; +using WMS.Web.Core.Dto.InStockTask; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService; @@ -63,6 +64,22 @@ namespace WMS.Web.Api.Controllers return await _inStockService.Shelf(dto, loginInfo); } + /// + /// 通过箱号获取到入库任务单数据 + /// + /// + /// + [HttpGet] + [Route("GetTaskByBox")] + public async Task> GetTaskByBox([FromQuery] 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 await _inStockService.GetInfoByBox(boxBillNo); + } + /// /// 同步金蝶 /// diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index b1da5d49..b75a579d 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -68,6 +68,13 @@ + + + 通过箱号获取到入库任务单数据 + + + + 同步金蝶 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 1255c0d0..9f2af380 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -525,6 +525,31 @@ 表单所在的子系统内码,字符串类型(非必录) + + + 下推 + + + + + 业务对象表单Id(必录) + + + + + 业务对象表单Id(必录) + + + + + 分录内码集合,逗号分隔(分录下推时必录) 注(按分录下推时,单据内码和编码不需要填,否则按整单下推) + + + + + 目标单据类型内码 + + Erp同步数据时单据头 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index 1f5eea7f..69b9c09e 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1399,6 +1399,13 @@ + + + 获取任务单:根据箱号信息 + + + + 保存-出库单 @@ -2001,6 +2008,13 @@ + + + 获取任务单:根据箱号信息 + + + + 保存-出库单 @@ -2119,6 +2133,13 @@ + + + 下推 + + + + Get方法 diff --git a/src/WMS.Web.Domain/IService/IInStockService.cs b/src/WMS.Web.Domain/IService/IInStockService.cs index ff574fde..9feca57d 100644 --- a/src/WMS.Web.Domain/IService/IInStockService.cs +++ b/src/WMS.Web.Domain/IService/IInStockService.cs @@ -39,6 +39,13 @@ namespace WMS.Web.Domain.IService /// Task Shelf(SaveInStockRequest instock, LoginInDto loginInfo); + /// + /// 获取任务单:根据箱号信息 + /// + /// + /// + Task> GetInfoByBox(string boxBillNo); + /// /// 保存-出库单 /// diff --git a/src/WMS.Web.Domain/Mappers/InStockMapper.cs b/src/WMS.Web.Domain/Mappers/InStockMapper.cs index f7d1f585..e06bde58 100644 --- a/src/WMS.Web.Domain/Mappers/InStockMapper.cs +++ b/src/WMS.Web.Domain/Mappers/InStockMapper.cs @@ -27,6 +27,12 @@ namespace WMS.Web.Domain.Mappers CreateMap() .ForMember(x => x.SourceBillNo, ops => ops.MapFrom(x => x.FBillNo)); + CreateMap() + .ForMember(x => x.Details, ops => ops.Ignore()); + + CreateMap(); + + CreateMap() .ForMember(x => x.SupplierId, ops => ops.MapFrom(x => x.FSupplierId)) .ForMember(x => x.OrgId, ops => ops.MapFrom(x => x.FPurchaseOrgId)) diff --git a/src/WMS.Web.Domain/Services/InStockService.cs b/src/WMS.Web.Domain/Services/InStockService.cs index 162f2b17..8256ae26 100644 --- a/src/WMS.Web.Domain/Services/InStockService.cs +++ b/src/WMS.Web.Domain/Services/InStockService.cs @@ -109,18 +109,36 @@ namespace WMS.Web.Domain.Services return Result.ReSuccess(); } - public async Task> GetInfoByBox(string boxBillNo) + /// + /// 获取任务单:根据箱号信息 + /// + /// + /// + public async Task> GetInfoByBox(string boxBillNo) { //1.先判断:箱号已经绑定了入库任务单中;备注:业务说法就是箱是否收货了 - var isBind= await _inStockTaskRepositories.IsExist(boxBillNo); - if (!isBind) - return Result.ReFailure(ResultCodes.Box_NoBind_Task_Data); + var tast= await _inStockTaskRepositories.GetBy(boxBillNo); + if (tast==null) + return Result.ReFailure(ResultCodes.Box_NoBind_Task_Data); - var boxBillNos=new List(); - boxBillNos.Add(boxBillNo); //2.找到箱对应的物料信息 - var box= await _boxRepositories.GetBox(boxBillNos); - return null; + var box= await _boxRepositories.GetByNo(boxBillNo); + if(box==null) + return Result.ReFailure(ResultCodes.BoxNoData); + + //3.组装返回数据 + var result = _mapper.Map(tast); + foreach (var item in tast.Details) + { + //3.1判断当前物料是否相同 + var isHave = box.Details.Where(x => x.MaterialId == item.MaterialId).Any(); + if (!isHave) + continue; + //3.2映射返回明细对象 + var task_detail = _mapper.Map(item); + result.Details.Add(task_detail); + } + return Result.ReSuccess(result); } ///