盘点添加箱信息

This commit is contained in:
18942506660
2024-06-14 14:27:02 +08:00
parent a36338b191
commit d87ae2dbe1
7 changed files with 65 additions and 5 deletions

View File

@@ -26,7 +26,7 @@ namespace WMS.Web.Domain.Entitys
/// <summary>
/// 对应老OPS的箱ID
/// </summary>
public int OpsBoxId { get; set; }
public int OpsBoxId { get; set; } = 0;
/// <summary>
/// 箱编号老OPS生成的箱号
/// </summary>

View File

@@ -12,6 +12,8 @@ namespace WMS.Web.Domain.Infrastructure
/// </summary>
public interface IBoxRepositories
{
//添加箱
Task<Box> Add(Box entity, bool isTransaction = true);
Task<Box> Get(int id);
Task<Box> GetByNo(string billNo);
//根据箱号搜索 用来比对确定是否箱号信息是否存在

View File

@@ -78,8 +78,9 @@ namespace WMS.Web.Domain.Services
//V01.05.00如果扫的内容不是CTN开头则提示"请扫描箱码作为箱号"
if (string.IsNullOrEmpty(d.DestBoxBillNo) || d.DestBoxBillNo.Length <= 3)
return Result.ReFailure(ResultCodes.BoxBillNoError);
if (d.DestBoxBillNo.Substring(0, 3) != "CTN")
return Result.ReFailure(ResultCodes.BoxBillNoError);
//v1.0.6取消限制
//if (d.DestBoxBillNo.Substring(0, 3) != "CTN")
// return Result.ReFailure(ResultCodes.BoxBillNoError);
var res = await CreateBox(d);
if (!res.IsSuccess) return res;

View File

@@ -43,13 +43,14 @@ namespace WMS.Web.Domain.Services
private readonly ISerialNumberService _serialNumberService;
private readonly IServiceScopeFactory _serviceScopeFactory;
private readonly ISerialNumbersRepositories _serialNumberRepositories;
private readonly IBoxRepositories _boxRepositories;
public TakeStockService(IMapper mapper, ILoginService loginService,
IBasicsRepositories transactionRepositories,
ITakeStockRepositories takeStockRepositories, ILoginRepositories loginRepositories,
ISingleDataService singleDataService, IErpService erpService, ILogger<TakeStockService> logger,
IBoxInventoryService boxInventoryService, IErpBasicDataExtendService erpBasicDataExtendService,
ISerialNumberService serialNumberService, IServiceScopeFactory serviceScopeFactory,
ISerialNumbersRepositories serialNumberRepositories)
ISerialNumbersRepositories serialNumberRepositories, IBoxRepositories boxRepositories)
{
_mapper = mapper;
_loginService = loginService;
@@ -64,6 +65,7 @@ namespace WMS.Web.Domain.Services
_serialNumberService = serialNumberService;
_serviceScopeFactory = serviceScopeFactory;
_serialNumberRepositories = serialNumberRepositories;
_boxRepositories = boxRepositories;
}
/// <summary>
/// 保存
@@ -78,6 +80,25 @@ namespace WMS.Web.Domain.Services
if (dto.Count() == 0) return Result.ReSuccess();
if (dto.GroupBy(g => g.BoxId).Count() > 1)
return Result.ReFailure(ResultCodes.TakeStockBoxError);
//v1.0.6 如果箱子不存在则添加箱信息
var dto_f = dto.First();
if (dto_f.BoxId == 0)
{
var dBox = await _boxRepositories.GetByNo(dto_f.BoxBillNo);
if (dBox != null) return Result.ReFailure(ResultCodes.TakeStockBoxIdError);
dBox = new Box()
{
BoxBillNo = dto_f.BoxBillNo,
CompleteCartonTime = DateTime.Now,
CreateUser = loginInfo.UserInfo.Nickname,
CompleteCartonUser = loginInfo.UserInfo.Nickname,
CreateTime = DateTime.Now
};
dBox = await _boxRepositories.Add(dBox);
if(dBox==null)return Result.ReFailure(ResultCodes.DateWriteError);
dto.ForEach(f => f.BoxId = dBox.Id);
}
var serialNumbersBoxInventoryList = await GetSerialNumbersBoxInventory(dto);
List<TakeStock> list = new List<TakeStock>();

View File

@@ -92,6 +92,7 @@ namespace WMS.Web.Domain.Values
public static ValueTuple<int, string> TakeStockErpSubStockError = (610005, "HD或GD仓时子仓库必填");
public static ValueTuple<int, string> TakeStockBoxError = (610004, "一次只能盘一个箱");
public static ValueTuple<int, string> SerialNumbersIsShelf = (610006, "序列号已上架入库");
public static ValueTuple<int, string> TakeStockBoxIdError = (610007, "箱信息错误");
public static ValueTuple<int, string> SubscribeNotificationNoData = (700001, "订阅通知信息不存在");
}