入库单序列号记录

This commit is contained in:
18942506660
2023-11-13 14:14:19 +08:00
parent af4c2e59a7
commit 2aa66d8d64
4 changed files with 155 additions and 0 deletions

View File

@@ -252,6 +252,29 @@ namespace WMS.Web.Domain.Services
return SerialNumberOperateType.StktransferInst_Out;
}
}
/// <summary>
/// 出库单类型转化序列号记录类型
/// </summary>
/// <param name="type"></param>
/// <returns></returns>
private SerialNumberOperateType InStockTypeConvert(InstockType type)
{
switch (type)
{
case InstockType.Purchase:
return SerialNumberOperateType.Purchase_In;
case InstockType.Assembled:
return SerialNumberOperateType.Assembled_In;
case InstockType.Miscellaneous:
return SerialNumberOperateType.Miscellaneous_In;
case InstockType.Stkdirecttransfers:
return SerialNumberOperateType.Stkdirecttransfers_In;
case InstockType.StktransferInst:
return SerialNumberOperateType.StktransferInst_In;
default:
return SerialNumberOperateType.StktransferInst_In;
}
}
/// <summary>
/// 序列号操作记录日志
@@ -265,5 +288,66 @@ namespace WMS.Web.Domain.Services
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess();
}
/// <summary>
/// 入库
/// </summary>
/// <param name="inStock"></param>
/// <param name="loginInfo"></param>
/// <param name="isTransaction"></param>
/// <returns></returns>
public async Task<Result> InStock(InStock inStock, 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;
bool isSuccess = true;
List<SerialNumberOperate> sList = new List<SerialNumberOperate>();
foreach (var entity in entityList)
{
var box = boxList.FirstOrDefault(f => f.Id == entity.BoxId);
//修改序列号和箱绑定关系
entity.InStock(inStock.BillNo);
//记录序列号操作日志
SerialNumberOperate op = new SerialNumberOperate()
{
MaterialId = entity.MaterialId,
SerialNumber = entity.SerialNumber,
OrgId = box.OrgId,
SupplierId = box.SupplierId,
OperateTime = DateTime.Now,
OperateType = InStockTypeConvert(inStock.Type),
OperateUser = userName,
Remark = "来源单号:" + inStock.Details.First().SourceBillNo
+ "\r\n" + "入库单号:" + inStock.BillNo
+ "\r\n" + "仓位号:" + ""
};
sList.Add(op);
}
isSuccess = await _serialNumbersRepositories.EditEntityList(entityList, false);
//序列号操作记录
var res = await this.SerialNumberOperate(sList, false);
//提交事务
if (isTransaction)
{
if (!isSuccess) isRollback = true;
if (!res.Success) isRollback = true;
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
if (!isSuccess)
return Result.ReFailure(ResultCodes.DateWriteError);
}
if (!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError);
if (!res.Success) return Result.ReFailure(ResultCodes.DateWriteError);
return Result.ReSuccess();
}
}
}