diff --git a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 index 9bd78356..ec1216c7 100644 Binary files a/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 and b/.vs/WMS.Web/DesignTimeBuild/.dtbcache.v2 differ diff --git a/src/WMS.Web.Api/Controllers/BackRecordController.cs b/src/WMS.Web.Api/Controllers/BackRecordController.cs index c4723212..7c86e880 100644 --- a/src/WMS.Web.Api/Controllers/BackRecordController.cs +++ b/src/WMS.Web.Api/Controllers/BackRecordController.cs @@ -110,6 +110,19 @@ namespace WMS.Web.Api.Controllers return Result.ReFailure(ResultCodes.Token_Invalid_Error); return await _backRecordService.BackShelf(dto, BackRecordType.InstockOff, loginInfo); } - + /// + /// 修改备注 + /// + /// + /// + [HttpPost] + [Route("UpdateRemark")] + public async Task UpdateRemark([FromBody] UpdateRemarkRequest 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 _backRecordService.UpdateRemark(dto, loginInfo); + } } } diff --git a/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryResponse.cs b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryResponse.cs index 71b1ee31..ba03b4ee 100644 --- a/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryResponse.cs +++ b/src/WMS.Web.Core/Dto/BackRecord/BackRecordQueryResponse.cs @@ -90,7 +90,11 @@ namespace WMS.Web.Core.Dto /// [Ignore] public string Stock { get; set; } + /// + /// 备注 + /// + public string Remark { get; set; } + - } } diff --git a/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs b/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs index 1175ad42..c4d0648b 100644 --- a/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs +++ b/src/WMS.Web.Core/Dto/BackRecord/SaveBackRecordDetailsRequest.cs @@ -39,5 +39,9 @@ namespace WMS.Web.Core.Dto.BackRecord /// [Required(ErrorMessage = "序列号不能为空")] public List SerialNumbers { get; set; } = new List(); + /// + /// 备注 + /// + public string Remark { get; set; } } } diff --git a/src/WMS.Web.Core/Dto/BackRecord/UpdateRemarkRequest.cs b/src/WMS.Web.Core/Dto/BackRecord/UpdateRemarkRequest.cs new file mode 100644 index 00000000..5690329c --- /dev/null +++ b/src/WMS.Web.Core/Dto/BackRecord/UpdateRemarkRequest.cs @@ -0,0 +1,27 @@ +using Npoi.Mapper.Attributes; +using System; +using System.Collections.Generic; +using System.Text; + +namespace WMS.Web.Core.Dto.BackRecord +{ + /// + /// 修改备注 + /// + public class UpdateRemarkRequest + { + /// + /// ID + /// + public int Id { get; set; } + + /// + /// 明细ID + /// + public int DetailsId { get; set; } + /// + /// 备注 + /// + public string Remark { get; set; } + } +} diff --git a/src/WMS.Web.Domain/Entitys/BackRecord.cs b/src/WMS.Web.Domain/Entitys/BackRecord.cs index bd0e7cdb..8153bf4d 100644 --- a/src/WMS.Web.Domain/Entitys/BackRecord.cs +++ b/src/WMS.Web.Domain/Entitys/BackRecord.cs @@ -1,7 +1,10 @@ -using System; + +using System; using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; +using System.Linq; using System.Text; +using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Values; namespace WMS.Web.Domain.Entitys @@ -10,7 +13,7 @@ namespace WMS.Web.Domain.Entitys /// wms出入库回退记录表 /// [Serializable] - [Table("t_wms_back_record")] + [Table("t_wms_back_record")] public class BackRecord { /// @@ -89,5 +92,18 @@ namespace WMS.Web.Domain.Entitys } this.BillNo = "CR" + idStr; } + /// + /// 修改备注 + /// + /// + /// + /// + public Result UpdateRemark(int detailId, string remark) + { + var detail = this.Details.Where(w => w.Id == detailId).FirstOrDefault(); + if (detail == null) return Result.ReFailure(ResultCodes.NoDateError); + detail.Remark = remark; + return Result.ReSuccess(); + } } } diff --git a/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs b/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs index e21a2678..129cd0d8 100644 --- a/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs +++ b/src/WMS.Web.Domain/Entitys/BackRecordDetails.cs @@ -2,6 +2,7 @@ using System.Collections.Generic; using System.ComponentModel.DataAnnotations.Schema; using System.Text; +using WMS.Web.Core; namespace WMS.Web.Domain.Entitys { @@ -10,12 +11,12 @@ namespace WMS.Web.Domain.Entitys /// [Serializable] [Table("t_wms_back_record_details")] - public class BackRecordDetails + public class BackRecordDetails : EntityBase { /// - /// ID + /// 编号 /// - public int Id { get; set; } + public override int Id { get; set; } /// /// 回退记录表ID /// @@ -39,5 +40,9 @@ namespace WMS.Web.Domain.Entitys /// 序列号集 /// public List SerialNumbers { get; set; } = new List(); + /// + /// 备注 + /// + public string Remark { get; set; } } } diff --git a/src/WMS.Web.Domain/IService/IBackRecordService.cs b/src/WMS.Web.Domain/IService/IBackRecordService.cs index 08a7cbcc..2b441ff7 100644 --- a/src/WMS.Web.Domain/IService/IBackRecordService.cs +++ b/src/WMS.Web.Domain/IService/IBackRecordService.cs @@ -22,5 +22,13 @@ namespace WMS.Web.Domain.IService /// /// Task BackShelf(BackRecordOnOffRequest dto, BackRecordType type, LoginInDto loginInfo); + + /// + /// 修改备注 + /// + /// + /// + /// + Task UpdateRemark(UpdateRemarkRequest dto, LoginInDto loginInfo); } } diff --git a/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs b/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs index 5da5a962..8c1baace 100644 --- a/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs +++ b/src/WMS.Web.Domain/Infrastructure/IBackRecordRepositories.cs @@ -28,5 +28,9 @@ namespace WMS.Web.Domain.Infrastructure /// /// Task Add(BackRecord entity, bool isTransaction = true); + //修改 + Task Edit(BackRecord entity, bool isTransaction = true); + //获取 + Task GetEntity(int id); } } diff --git a/src/WMS.Web.Domain/Services/BackRecordService.cs b/src/WMS.Web.Domain/Services/BackRecordService.cs index 2b9a0ed8..48da40b3 100644 --- a/src/WMS.Web.Domain/Services/BackRecordService.cs +++ b/src/WMS.Web.Domain/Services/BackRecordService.cs @@ -71,7 +71,7 @@ namespace WMS.Web.Domain.Services else _logger.LogInformation($"回退上架:{JsonConvert.SerializeObject(dto)} 操作人:{loginInfo.UserInfo.StaffId + loginInfo.UserInfo.Nickname}"); //回退上下架:不能扫同样的箱,按箱入库时候 - if (dto.Details != null && dto.Details.Count != 0 && dto.Method== (int)InventoryInOutMethod.Box) + if (dto.Details != null && dto.Details.Count != 0 && dto.Method == (int)InventoryInOutMethod.Box) { var mIds = dto.Details.GroupBy(g => g.MaterialNumber).Select(s => s.Key).ToList(); foreach (var m in mIds) @@ -113,11 +113,11 @@ namespace WMS.Web.Domain.Services return boxInventoryResult; //下架:需要解绑收货过的箱子 - if (entity.Type == BackRecordType.InstockOff) + if (entity.Type == BackRecordType.InstockOff) { _logger.LogInformation("入库回退下架:" + entity.BillNo); - var boxIds= entity.Details.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); - var unBindResult= await _inStockTaskBoxService.UnBind(boxIds, isTransaction); + var boxIds = entity.Details.GroupBy(x => x.BoxId).Select(x => x.Key).ToList(); + var unBindResult = await _inStockTaskBoxService.UnBind(boxIds, isTransaction); _logger.LogInformation("入库回退下架-BOXID:" + JsonConvert.SerializeObject(boxIds)); if (!unBindResult.IsSuccess) return unBindResult; @@ -132,5 +132,24 @@ namespace WMS.Web.Domain.Services return Result.ReSuccess(); } + /// + /// 修改备注 + /// + /// + /// + /// + /// + public async Task UpdateRemark(UpdateRemarkRequest dto, LoginInDto loginInfo) + { + var entity = await _backRecordRepositories.GetEntity(dto.Id); + if (entity == null) return Result.ReFailure(ResultCodes.NoDateError); + + var res = entity.UpdateRemark(dto.DetailsId, dto.Remark); + if (!res.IsSuccess) return res; + + entity = await _backRecordRepositories.Edit(entity, true); + if (entity == null) return Result.ReFailure(ResultCodes.DateWriteError); + return Result.ReSuccess(); + } } } diff --git a/src/WMS.Web.Repositories/BackRecordRepositories.cs b/src/WMS.Web.Repositories/BackRecordRepositories.cs index 5735b98f..ba670c78 100644 --- a/src/WMS.Web.Repositories/BackRecordRepositories.cs +++ b/src/WMS.Web.Repositories/BackRecordRepositories.cs @@ -15,6 +15,7 @@ using WMS.Web.Core.Internal.Results; using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.IService.Public; +using WMS.Web.Domain.Mappers; using WMS.Web.Domain.Values.Single; using WMS.Web.Repositories.Configuration; @@ -122,6 +123,7 @@ namespace WMS.Web.Repositories Stock = _singleDataService.GetSingleData(SingleAction.StocksJoinOrgCode, companyId, s.order.StockCode + s.order.OrgCode), SubStock = _singleDataService.GetSingleData(SingleAction.SubStocksJoinOrgCode, companyId, s.order.SubStockCode + s.order.StockCode + s.order.OrgCode), SerialNumbers = (string.Join(",", s.detail.SerialNumbers)).TrimEnd(','), + Remark=s.detail.Remark }).OrderByDescending(x => x.Id).Skip((dto.PageNo - 1) * dto.PageSize).Take(dto.PageSize).ToListAsync(); return (list,total); @@ -171,5 +173,42 @@ namespace WMS.Web.Repositories { return await GetPagedList(dto,companyId); } + + public async Task Edit(BackRecord entity, bool isTransaction = true) + { + IDbContextTransaction _transaction = null; + if (isTransaction) + _transaction = _context.Database.BeginTransaction(); + + try + { + var res = await _context.BackRecord + .Include(s => s.Details) + .FirstOrDefaultAsync(f => f.Id == entity.Id); + if (res == null) return null; + + _mapper.Map(entity, res); + _mapper.ToMapList(entity.Details, res.Details); + await _context.SaveChangesAsync(); + + if (_transaction != null) + _transaction.Commit(); + + return res; + } + catch (Exception ex) + { + if (_transaction != null) + _transaction.Rollback(); + return null; + } + } + + public async Task GetEntity(int id) + { + return await _context.BackRecord.AsNoTracking() + .Include(s => s.Details) + .Where(f => id == f.Id).FirstOrDefaultAsync(); + } } }