移箱操作

This commit is contained in:
18942506660
2023-10-27 09:51:28 +08:00
parent 541d31770c
commit beb1377c6d
9 changed files with 187 additions and 10 deletions

View File

@@ -64,7 +64,7 @@ namespace WMS.Web.Api.Controllers
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error); return Result.ReFailure(ResultCodes.Token_Invalid_Error);
return await _changeMoveBoxService.Save(dto, loginInfo); return await _changeMoveBoxService.ChangeBoxSave(dto, loginInfo);
} }
} }
} }

View File

@@ -56,13 +56,13 @@ namespace WMS.Web.Api.Controllers
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[Route("Save")] [Route("Save")]
public async Task<Result> Save(SaveChangeBoxRecordRequest dto) public async Task<Result> Save(SaveMoveBoxRecordRequest dto)
{ {
var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]);
if (loginInfo == null || loginInfo.UserInfo == null) if (loginInfo == null || loginInfo.UserInfo == null)
return Result.ReFailure(ResultCodes.Token_Invalid_Error); return Result.ReFailure(ResultCodes.Token_Invalid_Error);
return await _changeMoveBoxService.Save(dto, loginInfo); return await _changeMoveBoxService.MoveBoxSave(dto, loginInfo);
} }
} }
} }

View File

@@ -6,5 +6,37 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord
{ {
public class MoveBoxRecordQueryInfoResponse public class MoveBoxRecordQueryInfoResponse
{ {
/// <summary>
/// 物料规格型号
/// </summary>
public string Specifications { get; set; }
/// <summary>
/// 箱号
/// </summary>
public string Box { get; set; }
/// <summary>
/// 原仓位
/// </summary>
public string SrcSubStock { get; set; }
/// <summary>
/// 目标仓位
/// </summary>
public string DestSubStock { get; set; }
/// <summary>
/// 数量
/// </summary>
public decimal Qty { get; set; }
/// <summary>
/// 类型:整箱移货上级,整箱移货下级
/// </summary>
public string Type { get; set; }
/// <summary>
/// 操作人
/// </summary>
public string Creator { get; set; }
/// <summary>
/// 操作时间
/// </summary>
public DateTime CreateTime { get; set; } = DateTime.Now;
} }
} }

View File

@@ -9,5 +9,25 @@ namespace WMS.Web.Core.Dto.MoveBoxRecord
/// </summary> /// </summary>
public class MoveBoxRecordQueryRequest : PaginationBaseRequestDto public class MoveBoxRecordQueryRequest : PaginationBaseRequestDto
{ {
/// <summary>
/// 类型1- 整箱移货上级2-整箱移货下级
/// </summary>
public int? Type { get; set; } = null;
/// <summary>
/// 箱号
/// </summary>
public string Box { get; set; }
/// <summary>
/// 操作人
/// </summary>
public string Creator { get; set; }
/// <summary>
/// 操作时间开始
/// </summary>
public DateTime? CreateBeginDate { get; set; } = null;
/// <summary>
/// 操作时间结束
/// </summary>
public DateTime? CreateEndDate { get; set; } = null;
} }
} }

View File

@@ -0,0 +1,39 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;
namespace WMS.Web.Core.Dto.MoveBoxRecord
{
/// <summary>
/// 移箱保存
/// </summary>
public class SaveMoveBoxRecordRequest
{
/// <summary>
/// 箱号ID
/// </summary>
[Required(ErrorMessage = "箱号不能为空")]
public int BoxId { get; set; }
/// <summary>
/// 原仓位ID
/// </summary>
[Required(ErrorMessage = "原仓位不能为空")]
public int SrcSubStockId { get; set; }
/// <summary>
/// 目标仓位ID
/// </summary>
[Required(ErrorMessage = "目标仓位不能为空")]
public int DestSubStockId { get; set; }
/// <summary>
/// 数量
/// </summary>
[Required(ErrorMessage = "数量不能为空")]
public decimal Qty { get; set; }
/// <summary>
/// 类型1-整箱移货上级2-整箱移货下级
/// </summary>
[Required(ErrorMessage = "类型不能为空")]
public int Type { get; set; }
}
}

View File

@@ -36,6 +36,11 @@ namespace WMS.Web.Domain.Entitys
[Column("DestSubStockId")] [Column("DestSubStockId")]
public int DestSubStockId { get; set; } public int DestSubStockId { get; set; }
/// <summary> /// <summary>
/// 数量
/// </summary>
[Column("Qty")]
public decimal Qty { get; set; }
/// <summary>
/// 类型1-整箱移货上级2-整箱移货下级 /// 类型1-整箱移货上级2-整箱移货下级
/// </summary> /// </summary>
[Column("Type")] [Column("Type")]
@@ -50,5 +55,15 @@ namespace WMS.Web.Domain.Entitys
/// </summary> /// </summary>
[Column("CreateTime")] [Column("CreateTime")]
public DateTime CreateTime { get; set; } = DateTime.Now; public DateTime CreateTime { get; set; } = DateTime.Now;
/// <summary>
/// 创建
/// </summary>
/// <param name="creatorId"></param>
public void Create(int creatorId)
{
this.CreatorId = creatorId;
this.CreateTime = DateTime.Now;
}
} }
} }

View File

@@ -5,6 +5,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto.ChangeBoxRecord; using WMS.Web.Core.Dto.ChangeBoxRecord;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Dto.MoveBoxRecord;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Services; using WMS.Web.Domain.Services;
@@ -15,6 +16,10 @@ namespace WMS.Web.Domain.IService
/// </summary> /// </summary>
public interface IChangeMoveBoxService public interface IChangeMoveBoxService
{ {
Task<Result> Save(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo); //改箱保存
Task<Result> ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo);
//移箱保存
Task<Result> MoveBoxSave(SaveMoveBoxRecordRequest dto, LoginInDto loginInfo);
} }
} }

View File

@@ -6,6 +6,7 @@ using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto.ChangeBoxRecord; using WMS.Web.Core.Dto.ChangeBoxRecord;
using WMS.Web.Core.Dto.Login; using WMS.Web.Core.Dto.Login;
using WMS.Web.Core.Dto.MoveBoxRecord;
using WMS.Web.Core.Internal.Results; using WMS.Web.Core.Internal.Results;
using WMS.Web.Domain.Entitys; using WMS.Web.Domain.Entitys;
using WMS.Web.Domain.Infrastructure; using WMS.Web.Domain.Infrastructure;
@@ -22,16 +23,24 @@ namespace WMS.Web.Domain.Services
private readonly ILoginService _loginService; private readonly ILoginService _loginService;
private readonly IChangeBoxRecordRepositories _changeBoxRecordRepositories; private readonly IChangeBoxRecordRepositories _changeBoxRecordRepositories;
public readonly ITransactionRepositories _transactionRepositories; public readonly ITransactionRepositories _transactionRepositories;
private readonly IMoveBoxRecordRepositories _moveBoxRecordRepositories;
public ChangeMoveBoxService(IMapper mapper, ILoginService loginService, public ChangeMoveBoxService(IMapper mapper, ILoginService loginService,
IChangeBoxRecordRepositories changeBoxRecordRepositories, ITransactionRepositories transactionRepositories) IChangeBoxRecordRepositories changeBoxRecordRepositories, ITransactionRepositories transactionRepositories,
IMoveBoxRecordRepositories moveBoxRecordRepositories)
{ {
_mapper = mapper; _mapper = mapper;
_loginService = loginService; _loginService = loginService;
_changeBoxRecordRepositories = changeBoxRecordRepositories; _changeBoxRecordRepositories = changeBoxRecordRepositories;
_transactionRepositories = transactionRepositories; _transactionRepositories = transactionRepositories;
_moveBoxRecordRepositories = moveBoxRecordRepositories;
} }
/// <summary>
public async Task<Result> Save(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo) /// 改箱保存
/// </summary>
/// <param name="dto"></param>
/// <param name="loginInfo"></param>
/// <returns></returns>
public async Task<Result> ChangeBoxSave(SaveChangeBoxRecordRequest dto, LoginInDto loginInfo)
{ {
var entity = _mapper.Map<ChangeBoxRecord>(dto); var entity = _mapper.Map<ChangeBoxRecord>(dto);
entity.Create(loginInfo.UserInfo.StaffId); entity.Create(loginInfo.UserInfo.StaffId);
@@ -45,6 +54,33 @@ namespace WMS.Web.Domain.Services
entity = await _changeBoxRecordRepositories.Add(entity, true); entity = await _changeBoxRecordRepositories.Add(entity, true);
if (entity == null) isRollback = true; if (entity == null) isRollback = true;
//提交事务
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess();
}
/// <summary>
/// 移箱保存
/// </summary>
/// <param name="dto"></param>
/// <param name="loginInfo"></param>
/// <returns></returns>
public async Task<Result> MoveBoxSave(SaveMoveBoxRecordRequest dto, LoginInDto loginInfo)
{
var entity = _mapper.Map<MoveBoxRecord>(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); isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess) if (!isSuccess)

View File

@@ -1,7 +1,9 @@
using AutoMapper; using AutoMapper;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
using System.Threading.Tasks; using System.Threading.Tasks;
using WMS.Web.Core.Dto.MoveBoxRecord; using WMS.Web.Core.Dto.MoveBoxRecord;
@@ -58,10 +60,38 @@ namespace WMS.Web.Repositories
} }
} }
/// <summary>
public Task<(List<MoveBoxRecordQueryInfoResponse> list, int total)> GetListAsync(MoveBoxRecordQueryRequest dto) /// 列表
/// </summary>
/// <param name="dto"></param>
/// <returns></returns>
public async Task<(List<MoveBoxRecordQueryInfoResponse> 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);
} }
} }
} }