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);
}
}
}