出入库回退序列号记录

This commit is contained in:
18942506660
2023-11-13 14:33:10 +08:00
parent e9afd62bbe
commit 593422e730
3 changed files with 76 additions and 1 deletions

View File

@@ -22,6 +22,9 @@ namespace WMS.Web.Domain.IService
Task<Result> OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true); Task<Result> OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true);
/// 入库 /// 入库
Task<Result> InStock(InStock inStock, LoginInDto loginInfo, bool isTransaction = true); Task<Result> InStock(InStock inStock, LoginInDto loginInfo, bool isTransaction = true);
/// 出入库回退
Task<Result> BackRecord(BackRecord backRecord, LoginInDto loginInfo, bool isTransaction = true);
/// <summary> /// <summary>
/// 序列号操作记录 /// 序列号操作记录
/// </summary> /// </summary>

View File

@@ -347,6 +347,67 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
if (!res.Success) return Result.ReFailure(ResultCodes.DateWriteError); if (!res.Success) return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess();
}
/// <summary>
/// 出入库回退
/// </summary>
/// <param name="backRecord"></param>
/// <param name="loginInfo"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<Result> BackRecord(BackRecord backRecord, LoginInDto loginInfo, bool isTransaction = true)
{
//获取序列号信息
var serialNumbers = new List<string>();// inStock.Details.SelectMany(s => s.SerialNumbers).ToList();
var entityList = await _serialNumbersRepositories.GetEntityList(serialNumbers);
var boxIds = entityList.Select(s => s.BoxId).ToList();
var boxList = await _boxRepositories.GetEntityList(boxIds);
var userName = _singleDataService.GetSingleData(SingleAction.Staffs, loginInfo.UserInfo.CompanyId, loginInfo.UserInfo.StaffId);
IDbContextTransaction _transaction = null;
if (isTransaction)
_transaction = _transactionRepositories.GetTransaction();
bool isRollback = false;
List<SerialNumberOperate> sList = new List<SerialNumberOperate>();
foreach (var entity in entityList)
{
var box = boxList.FirstOrDefault(f => f.Id == entity.BoxId);
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = entity.MaterialId,
SerialNumber = entity.SerialNumber,
OrgId = box.OrgId,
SupplierId = box.SupplierId,
OperateTime = DateTime.Now,
OperateType = backRecord.Type == BackRecordType.InstockOff ?
SerialNumberOperateType.BackRecord_Off : SerialNumberOperateType.BackRecord_On,
OperateUser = userName,
Remark = "单号:" + backRecord.BillNo
+ "\r\n" + "箱号:" + box.BoxBillNo
};
if (backRecord.Type == BackRecordType.OutstockOn)
{
var subStockId = backRecord.Details.FirstOrDefault(w => w.SerialNumbers.Contains(entity.SerialNumber))?.SubStockId ?? 0;
var srcSubStock = _singleDataService.GetSingleData(SingleAction.SubStocks, loginInfo.UserInfo.CompanyId, subStockId);
op.Remark += "\r\n" + "仓位:" + srcSubStock;
}
sList.Add(op);
}
//序列号操作记录
var res = await this.SerialNumberOperate(sList, false);
//提交事务
if (isTransaction)
{
if (!res.Success) isRollback = true;
var isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
}
if (!res.Success) return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess(); return Result.ReSuccess();
} }
} }

View File

@@ -83,5 +83,16 @@ namespace WMS.Web.Domain.Values
/// </summary> /// </summary>
[EnumRemark("组装拆卸入库")] [EnumRemark("组装拆卸入库")]
Assembled_In = 14, Assembled_In = 14,
/// <summary>
/// 入库回退下架
/// </summary>
[EnumRemark("入库回退下架")]
BackRecord_Off = 15,
/// <summary>
/// 出库回退上架
/// </summary>
[EnumRemark("出库回退上架")]
BackRecord_On = 16,
} }
} }