From 1554afbbf5657effca1810b1a5d601d21ed46fe8 Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 29 Dec 2023 10:37:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/SysConfigController.cs | 25 ++++++++++- src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml | 7 +++ src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml | 25 +++++++++++ src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml | 35 +++++++++++++++ .../MoveBoxRecord/SaveMoveBoxRecordRequest.cs | 25 +++++++++++ src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs | 4 ++ .../Entitys/MoveBoxRecordDetails.cs | 43 +++++++++++++++++++ .../IMoveBoxRecordRepositories.cs | 3 ++ .../Services/ChangeMoveBoxService.cs | 7 +++ .../Configuration/RepositoryDbContext.cs | 10 +++++ .../MoveBoxRecordRepositories.cs | 37 +++++++++++++++- 11 files changed, 219 insertions(+), 2 deletions(-) create mode 100644 src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs diff --git a/src/WMS.Web.Api/Controllers/SysConfigController.cs b/src/WMS.Web.Api/Controllers/SysConfigController.cs index 12112e89..c49eee89 100644 --- a/src/WMS.Web.Api/Controllers/SysConfigController.cs +++ b/src/WMS.Web.Api/Controllers/SysConfigController.cs @@ -39,13 +39,14 @@ namespace WMS.Web.Api.Controllers private readonly IMapper _mapper; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; private readonly IOutStockRepositories _outStockRepositories; + private readonly IMoveBoxRecordRepositories _moveBoxRecordRepositories; private readonly ILogger _logger; public SysConfigController(ILoginService loginService, IBasicsRepositories basicsRepositories, IBoxRepositories boxRepositories, IErpService erpService, ISingleDataService singleDataService, ISerialNumbersRepositories serialNumbersRepositories, IBoxInventoryRepositories boxInventoryRepositories, IMapper mapper, IErpBasicDataExtendService erpBasicDataExtendService, IOutStockRepositories outStockRepositories, - ILogger logger) + ILogger logger, IMoveBoxRecordRepositories moveBoxRecordRepositories) { _loginService = loginService; _basicsRepositories = basicsRepositories; @@ -58,6 +59,7 @@ namespace WMS.Web.Api.Controllers _erpBasicDataExtendService = erpBasicDataExtendService; _outStockRepositories = outStockRepositories; _logger = logger; + _moveBoxRecordRepositories = moveBoxRecordRepositories; } /// @@ -395,6 +397,27 @@ namespace WMS.Web.Api.Controllers return Result.ReSuccess(response); } + /// + /// 根据箱号获取箱对应移箱单信息 最新一条 + /// + /// 必填 + /// + [HttpGet] + [Route("GetBox_MoveBoxRecord")] + public async Task> GetBox_MoveBoxRecord([FromQuery] string boxBillNo) + { + var res = await _boxRepositories.GetBox(new List() { boxBillNo }); + if (res.Count() <= 0) + return Result.ReFailure("箱号" + boxBillNo + "不存在", 800000); + var response = res[0]; + var detail = await _moveBoxRecordRepositories.GetDetailsByBoxId(response.Id); + if (detail.Count() == 0) + return Result.ReFailure("箱号" + boxBillNo + "未出库", 800000); + response.Details = detail; + response.TotalQty = detail.Sum(s => s.Qty); + return Result.ReSuccess(response); + } + /// /// 根据序列号或规格型号,物料编码搜索物料信息-PDA /// diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml index e2e539ad..da61c12a 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Api.xml @@ -532,6 +532,13 @@ 必填 + + + 根据箱号获取箱对应移箱单信息 最新一条 + + 必填 + + 根据序列号或规格型号,物料编码搜索物料信息-PDA diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml index 7ea7e2d6..b444af75 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Core.xml @@ -3867,6 +3867,31 @@ 数量 + + + 明细信息 + + + + + 移箱明细 + + + + + 物料Id + + + + + 数量 + + + + + 序列号 + + 操作 Id集合 diff --git a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml index e2b8dc40..009db77d 100644 --- a/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml +++ b/src/WMS.Web.Api/wwwroot/WMS.Web.Domain.xml @@ -1155,6 +1155,11 @@ 操作时间 + + + 明细信息 + + 创建 @@ -1166,6 +1171,36 @@ 生成单据号 + + + 移箱明细信息 + + + + + 主键 订单编号 + + + + + 单据头Id + + + + + 物料Id + + + + + 数量 + + + + + 序列号 + + wms出库单 diff --git a/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs index ea8746af..f2f0d6bd 100644 --- a/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs +++ b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs @@ -26,5 +26,30 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord [Required(ErrorMessage = "数量不能为空")] [Range(0.999999999, 10000000000, ErrorMessage = "数量必须大于等于1")] public decimal Qty { get; set; } + /// + /// 明细信息 + /// + public List Details { get; set; } = new List(); + } + /// + /// 移箱明细 + /// + public class SaveMoveBoxRecordDetailsRequest + { + /// + /// 物料Id + /// + [Required(ErrorMessage = "物料不能为空")] + public int MaterialId { get; set; } + /// + /// 数量 + /// + [Required(ErrorMessage = "数量不能为空")] + [Range(0.999999999, 10000000000, ErrorMessage = "数量必须大于等于1")] + public decimal Qty { get; set; } + /// + /// 序列号 + /// + public List SerialNumbers { get; set; } = new List(); } } diff --git a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs index ab3a7107..92818932 100644 --- a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs @@ -70,6 +70,10 @@ namespace WMS.Web.Domain.Entitys /// [Column("CreateTime")] public DateTime CreateTime { get; set; } = DateTime.Now; + /// + /// 明细信息 + /// + public List Details { get; set; } = new List(); /// /// 创建 diff --git a/src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs b/src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs new file mode 100644 index 00000000..7428c652 --- /dev/null +++ b/src/WMS.Web.Domain/Entitys/MoveBoxRecordDetails.cs @@ -0,0 +1,43 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations.Schema; +using System.Text; +using WMS.Web.Core; + +namespace WMS.Web.Domain.Entitys +{ + /// + /// 移箱明细信息 + /// + [Serializable] + [Table("t_wms_movebox_record_details")] + public class MoveBoxRecordDetails: EntityBase + { + public MoveBoxRecordDetails() { } + /// + /// 主键 订单编号 + /// + [Column("Id")] + public override int Id { get; set; } + /// + /// 单据头Id + /// + [Column("Fid")] + public int Fid { get; set; } + /// + /// 物料Id + /// + [Column("MaterialId")] + public int MaterialId { get; set; } + /// + /// 数量 + /// + [Column("Qty")] + public decimal Qty { get; set; } + /// + /// 序列号 + /// + [Column("SerialNumbers")] + public List SerialNumbers { get; set; } = new List(); + } +} diff --git a/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs index 99d5e83f..1cc02101 100644 --- a/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IMoveBoxRecordRepositories.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.Text; using System.Threading.Tasks; +using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.MoveBoxRecord; using WMS.Web.Domain.Entitys; @@ -15,5 +16,7 @@ namespace WMS.Web.Domain.Infrastructure Task AddRange(List entitys, bool isTransaction = true); // 获取列表 Task<(List list, int total)> GetListAsync(MoveBoxRecordQueryRequest dto, int companyId = 0); + //获取出库单明细 + Task> GetDetailsByBoxId(int boxId); } } diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index 41317f72..0ff4055d 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -260,6 +260,13 @@ namespace WMS.Web.Domain.Services var subStock = await _basbicsRepositories.GetSubUcStockAsync(d.SubStockId, loginInfo.UserInfo.CompanyId); var entity = new MoveBoxRecord(); entity.Create(IsUp == true ? MoveBoxType.Up : MoveBoxType.Down, d.BoxId, d.Qty, subStock?.ErpOrgCode, subStock?.StockCode, d.SubStockId, loginInfo.UserInfo.StaffId); + entity.Details = d.Details.Select(s => new MoveBoxRecordDetails() + { + MaterialId = s.MaterialId, + Qty = s.Qty, + SerialNumbers = s.SerialNumbers + }).ToList(); + entityList.Add(entity); } diff --git a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs index bafa3c12..1350cc1c 100644 --- a/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs +++ b/src/WMS.Web.Repositories/Configuration/RepositoryDbContext.cs @@ -50,6 +50,16 @@ namespace WMS.Web.Repositories.Configuration ent.ToTable("t_wms_movebox_record"); ent.HasKey(x => x.Id); }); + //移箱明细 + builder.Entity(ent => + { + ent.ToTable("t_wms_movebox_record_details"); + ent.HasKey(x => x.Id); + + ent.Property(f => f.SerialNumbers).HasConversion( + v => JsonConvert.SerializeObject(v), + v => JsonConvert.DeserializeObject>(v)); + }); //序列号 builder.Entity(ent => diff --git a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs index b12b46f4..ac0ab27e 100644 --- a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs +++ b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs @@ -7,6 +7,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core; +using WMS.Web.Core.Dto; using WMS.Web.Core.Dto.MoveBoxRecord; using WMS.Web.Core.Help; using WMS.Web.Domain.Entitys; @@ -26,9 +27,12 @@ namespace WMS.Web.Repositories private readonly ISingleDataService _singleDataService; private readonly ILoginRepositories _loginRepositories; private readonly IBasicsRepositories _basicsRepositories; + private readonly IErpService _erpService; + private readonly IErpBasicDataExtendService _erpBasicDataExtendService; public MoveBoxRecordRepositories(RepositoryDbContext context, IMapper mapper, IServiceProvider serviceProvider, - ISingleDataService singleDataService, ILoginRepositories loginRepositories, IBasicsRepositories basicsRepositories) + ISingleDataService singleDataService, ILoginRepositories loginRepositories, IBasicsRepositories basicsRepositories, + IErpService erpService, IErpBasicDataExtendService erpBasicDataExtendService) { _context = context; _mapper = mapper; @@ -36,6 +40,8 @@ namespace WMS.Web.Repositories _singleDataService = singleDataService; _loginRepositories = loginRepositories; _basicsRepositories = basicsRepositories; + _erpBasicDataExtendService = erpBasicDataExtendService; + _erpService = erpService; } /// /// 新增 @@ -103,6 +109,35 @@ namespace WMS.Web.Repositories } } + public async Task> GetDetailsByBoxId(int boxId) + { + var res = await _context.MoveBoxRecord + .Include(s => s.Details) + .Where(f => f.BoxId==boxId) + .OrderByDescending(o => o.Id) + .ToListAsync(); + List details = new List(); + if (res.Count() == 0) return details; + + var materials_result = await _erpService.BillQueryForMaterial(); + if (!materials_result.IsSuccess) + return new List(); + var materials = materials_result.Data.ToList(); + + foreach (var d in res.First().Details) + { + BoxDetailResponse detail = new BoxDetailResponse(); + detail.MaterialName = _erpBasicDataExtendService.GetMaterialName(materials, d.MaterialId); + detail.MaterialNumber = _erpBasicDataExtendService.GetMaterialNumber(materials, d.MaterialId); + detail.Specifications = _erpBasicDataExtendService.GetMaterialSpecifications(materials, d.MaterialId); + detail.SerialNumbers = d.SerialNumbers; + detail.MaterialId = d.MaterialId; + detail.Qty = d.Qty; + details.Add(detail); + } + return details; + } + /// /// 列表 ///