From beb1377c6dca1bfec4b28b6d5aa783613517356a Mon Sep 17 00:00:00 2001 From: 18942506660 <18942506660@A18942506660> Date: Fri, 27 Oct 2023 09:51:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E7=AE=B1=E6=93=8D=E4=BD=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ChangeBoxRecordController.cs | 2 +- .../Controllers/MoveBoxRecordController.cs | 4 +- .../MoveBoxRecordQueryInfoResponse.cs | 32 ++++++++++++++ .../MoveBoxRecordQueryRequest.cs | 20 +++++++++ .../MoveBoxRecord/SaveMoveBoxRecordRequest.cs | 39 +++++++++++++++++ src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs | 15 +++++++ .../IService/IChangeMoveBoxService.cs | 7 +++- .../Services/ChangeMoveBoxService.cs | 42 +++++++++++++++++-- .../MoveBoxRecordRepositories.cs | 36 ++++++++++++++-- 9 files changed, 187 insertions(+), 10 deletions(-) create mode 100644 src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs diff --git a/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs b/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs index 186905b3..33962ac3 100644 --- a/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs +++ b/src/WMS.Web.Api/Controllers/ChangeBoxRecordController.cs @@ -64,7 +64,7 @@ namespace WMS.Web.Api.Controllers if (loginInfo == null || loginInfo.UserInfo == null) return Result.ReFailure(ResultCodes.Token_Invalid_Error); - return await _changeMoveBoxService.Save(dto, loginInfo); + return await _changeMoveBoxService.ChangeBoxSave(dto, loginInfo); } } } diff --git a/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs b/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs index 99061246..c254395b 100644 --- a/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs +++ b/src/WMS.Web.Api/Controllers/MoveBoxRecordController.cs @@ -56,13 +56,13 @@ namespace WMS.Web.Api.Controllers /// [HttpPost] [Route("Save")] - public async Task Save(SaveChangeBoxRecordRequest dto) + public async Task Save(SaveMoveBoxRecordRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return Result.ReFailure(ResultCodes.Token_Invalid_Error); - return await _changeMoveBoxService.Save(dto, loginInfo); + return await _changeMoveBoxService.MoveBoxSave(dto, loginInfo); } } } diff --git a/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryInfoResponse.cs b/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryInfoResponse.cs index 053666e8..11d12e88 100644 --- a/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryInfoResponse.cs +++ b/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryInfoResponse.cs @@ -6,5 +6,37 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord { public class MoveBoxRecordQueryInfoResponse { + /// + /// 物料规格型号 + /// + public string Specifications { get; set; } + /// + /// 箱号 + /// + public string Box { get; set; } + /// + /// 原仓位 + /// + public string SrcSubStock { get; set; } + /// + /// 目标仓位 + /// + public string DestSubStock { get; set; } + /// + /// 数量 + /// + public decimal Qty { get; set; } + /// + /// 类型:整箱移货上级,整箱移货下级 + /// + public string Type { get; set; } + /// + /// 操作人 + /// + public string Creator { get; set; } + /// + /// 操作时间 + /// + public DateTime CreateTime { get; set; } = DateTime.Now; } } diff --git a/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs b/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs index 39d74f7c..97f31a73 100644 --- a/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs +++ b/src/WMS.Web.Core/Dto/MoveBoxRecord/MoveBoxRecordQueryRequest.cs @@ -9,5 +9,25 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord /// public class MoveBoxRecordQueryRequest : PaginationBaseRequestDto { + /// + /// 类型:1- 整箱移货上级,2-整箱移货下级 + /// + public int? Type { get; set; } = null; + /// + /// 箱号 + /// + public string Box { get; set; } + /// + /// 操作人 + /// + public string Creator { get; set; } + /// + /// 操作时间开始 + /// + public DateTime? CreateBeginDate { get; set; } = null; + /// + /// 操作时间结束 + /// + public DateTime? CreateEndDate { get; set; } = null; } } diff --git a/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs new file mode 100644 index 00000000..55ea7fd2 --- /dev/null +++ b/src/WMS.Web.Core/Dto/MoveBoxRecord/SaveMoveBoxRecordRequest.cs @@ -0,0 +1,39 @@ +using System; +using System.Collections.Generic; +using System.ComponentModel.DataAnnotations; +using System.Text; + +namespace WMS.Web.Core.Dto.MoveBoxRecord +{ + /// + /// 移箱保存 + /// + public class SaveMoveBoxRecordRequest + { + /// + /// 箱号ID + /// + [Required(ErrorMessage = "箱号不能为空")] + public int BoxId { get; set; } + /// + /// 原仓位ID + /// + [Required(ErrorMessage = "原仓位不能为空")] + public int SrcSubStockId { get; set; } + /// + /// 目标仓位ID + /// + [Required(ErrorMessage = "目标仓位不能为空")] + public int DestSubStockId { get; set; } + /// + /// 数量 + /// + [Required(ErrorMessage = "数量不能为空")] + public decimal Qty { get; set; } + /// + /// 类型:1-整箱移货上级,2-整箱移货下级 + /// + [Required(ErrorMessage = "类型不能为空")] + public int Type { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs index 46ee276d..8599c3b4 100644 --- a/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs +++ b/src/WMS.Web.Domain/Entitys/MoveBoxRecord.cs @@ -36,6 +36,11 @@ namespace WMS.Web.Domain.Entitys [Column("DestSubStockId")] public int DestSubStockId { get; set; } /// + /// 数量 + /// + [Column("Qty")] + public decimal Qty { get; set; } + /// /// 类型:1-整箱移货上级,2-整箱移货下级 /// [Column("Type")] @@ -50,5 +55,15 @@ namespace WMS.Web.Domain.Entitys /// [Column("CreateTime")] public DateTime CreateTime { get; set; } = DateTime.Now; + + /// + /// 创建 + /// + /// + public void Create(int creatorId) + { + this.CreatorId = creatorId; + this.CreateTime = DateTime.Now; + } } } diff --git a/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs index 0c8770b8..68fb92ea 100644 --- a/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/IService/IChangeMoveBoxService.cs @@ -5,6 +5,7 @@ using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto.ChangeBoxRecord; using WMS.Web.Core.Dto.Login; +using WMS.Web.Core.Dto.MoveBoxRecord; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Services; @@ -15,6 +16,10 @@ namespace WMS.Web.Domain.IService /// public interface IChangeMoveBoxService { - Task Save(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo); + //改箱保存 + Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo); + //移箱保存 + Task MoveBoxSave(SaveMoveBoxRecordRequest dto, LoginInDto loginInfo); + } } diff --git a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs index e927a50d..1682f60d 100644 --- a/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs +++ b/src/WMS.Web.Domain/Services/ChangeMoveBoxService.cs @@ -6,6 +6,7 @@ using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto.ChangeBoxRecord; using WMS.Web.Core.Dto.Login; +using WMS.Web.Core.Dto.MoveBoxRecord; using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; @@ -22,16 +23,24 @@ namespace WMS.Web.Domain.Services private readonly ILoginService _loginService; private readonly IChangeBoxRecordRepositories _changeBoxRecordRepositories; public readonly ITransactionRepositories _transactionRepositories; + private readonly IMoveBoxRecordRepositories _moveBoxRecordRepositories; public ChangeMoveBoxService(IMapper mapper, ILoginService loginService, - IChangeBoxRecordRepositories changeBoxRecordRepositories, ITransactionRepositories transactionRepositories) + IChangeBoxRecordRepositories changeBoxRecordRepositories, ITransactionRepositories transactionRepositories, + IMoveBoxRecordRepositories moveBoxRecordRepositories) { _mapper = mapper; _loginService = loginService; _changeBoxRecordRepositories = changeBoxRecordRepositories; _transactionRepositories = transactionRepositories; + _moveBoxRecordRepositories = moveBoxRecordRepositories; } - - public async Task Save(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo) + /// + /// 改箱保存 + /// + /// + /// + /// + public async Task ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo) { var entity = _mapper.Map(dto); entity.Create(loginInfo.UserInfo.StaffId); @@ -45,6 +54,33 @@ namespace WMS.Web.Domain.Services entity = await _changeBoxRecordRepositories.Add(entity, true); if (entity == null) isRollback = true; + //提交事务 + isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); + if (!isSuccess) + return Result.ReFailure(ResultCodes.DateWriteError); + + return Result.ReSuccess(); + } + /// + /// 移箱保存 + /// + /// + /// + /// + public async Task MoveBoxSave(SaveMoveBoxRecordRequest dto, LoginInDto loginInfo) + { + var entity = _mapper.Map(dto); + entity.Create(loginInfo.UserInfo.StaffId); + + //需要填写规格型号 + //需要修改库存 + + IDbContextTransaction _transaction = _transactionRepositories.GetTransaction(); + bool isRollback = false; + bool isSuccess = true; + entity = await _moveBoxRecordRepositories.Add(entity, true); + if (entity == null) isRollback = true; + //提交事务 isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction); if (!isSuccess) diff --git a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs index 12d652a0..64fa9456 100644 --- a/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs +++ b/src/WMS.Web.Repositories/MoveBoxRecordRepositories.cs @@ -1,7 +1,9 @@ using AutoMapper; +using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore.Storage; using System; using System.Collections.Generic; +using System.Linq; using System.Text; using System.Threading.Tasks; using WMS.Web.Core.Dto.MoveBoxRecord; @@ -58,10 +60,38 @@ namespace WMS.Web.Repositories } } - - public Task<(List list, int total)> GetListAsync(MoveBoxRecordQueryRequest dto) + /// + /// 列表 + /// + /// + /// + public async Task<(List list, int total)> GetListAsync(MoveBoxRecordQueryRequest dto) { - throw new NotImplementedException(); + var query = _context.MoveBoxRecord + .OrderByDescending(o => o.Id) + .Where(adv => 1 == 1); + + if (dto.CreateBeginDate != null) + query = query.Where(w => w.CreateTime >= dto.CreateBeginDate); + if (dto.CreateEndDate != null) + query = query.Where(w => w.CreateTime <= dto.CreateEndDate); + //组装 + int total = await query.CountAsync(); + var list = await query.Select(s => new MoveBoxRecordQueryInfoResponse() + { + #region dto组装 + Box = "", + SrcSubStock = "", + Specifications = "", + DestSubStock = "", + Qty = 0, + Type = "", + Creator = "", + CreateTime = s.CreateTime + #endregion + + }).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); + return (list, total); } } }