出库操作调整序列号
This commit is contained in:
@@ -3538,6 +3538,13 @@
|
||||
<param name="isTransaction"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.SerialNumberService.OutStockTypeConvert(WMS.Web.Domain.Values.OutStockType)">
|
||||
<summary>
|
||||
出库单类型转化序列号记录类型
|
||||
</summary>
|
||||
<param name="type"></param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:WMS.Web.Domain.Services.SerialNumberService.SerialNumberOperate(System.Collections.Generic.List{WMS.Web.Domain.Entitys.SerialNumberOperate},System.Boolean)">
|
||||
<summary>
|
||||
序列号操作记录日志
|
||||
@@ -3941,6 +3948,31 @@
|
||||
改箱
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.SerialNumberOperateType.Sal_Out">
|
||||
<summary>
|
||||
销售出库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.SerialNumberOperateType.Miscellaneous_Out">
|
||||
<summary>
|
||||
其他出库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.SerialNumberOperateType.Stkdirecttransfers_Out">
|
||||
<summary>
|
||||
直接调拨出库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.SerialNumberOperateType.StktransferInst_Out">
|
||||
<summary>
|
||||
分步式出库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="F:WMS.Web.Domain.Values.SerialNumberOperateType.Assembled_Out">
|
||||
<summary>
|
||||
组装拆卸出库
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:WMS.Web.Domain.Values.ShelfMethod">
|
||||
<summary>
|
||||
非采购上架方式
|
||||
|
||||
@@ -30,10 +30,11 @@ namespace WMS.Web.Domain.Services
|
||||
private readonly IOutStockTaskRepositories _outStockTaskRepositories;
|
||||
private readonly IOutStockTaskService _outStockTaskService;
|
||||
private readonly IErpService _erpService;
|
||||
private readonly ISerialNumberService _serialNumberService;
|
||||
public OutStockService(IMapper mapper, ILoginService loginService,
|
||||
IBasicsRepositories transactionRepositories,
|
||||
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories,
|
||||
IOutStockTaskService outStockTaskService, IErpService erpService)
|
||||
IOutStockTaskService outStockTaskService, IErpService erpService, ISerialNumberService serialNumberService)
|
||||
{
|
||||
_mapper = mapper;
|
||||
_loginService = loginService;
|
||||
@@ -42,6 +43,7 @@ namespace WMS.Web.Domain.Services
|
||||
_outStockTaskRepositories = outStockTaskRepositories;
|
||||
_outStockTaskService = outStockTaskService;
|
||||
_erpService = erpService;
|
||||
_serialNumberService = serialNumberService;
|
||||
}
|
||||
/// <summary>
|
||||
/// 出库单
|
||||
@@ -88,6 +90,8 @@ namespace WMS.Web.Domain.Services
|
||||
if (entity == null) isRollback = true;
|
||||
outStockTask = await _outStockTaskRepositories.Edit(outStockTask, false);
|
||||
if (outStockTask == null) isRollback = true;
|
||||
var res_change = await _serialNumberService.OutStock(entity, loginInfo, false);
|
||||
if (!res_change.IsSuccess) isRollback = true;
|
||||
//提交事务
|
||||
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
|
||||
if (!isSuccess)
|
||||
|
||||
@@ -25,15 +25,17 @@ namespace WMS.Web.Domain.Services
|
||||
public readonly IBasicsRepositories _transactionRepositories;
|
||||
public readonly IBoxRepositories _boxRepositories;
|
||||
private readonly ISingleDataService _singleDataService;
|
||||
private readonly IErpService _erpService;
|
||||
public SerialNumberService(ISerialNumberOperateRepositories serialNumberOperateRepositories,
|
||||
ISerialNumbersRepositories serialNumbersRepositories, IBasicsRepositories transactionRepositories,
|
||||
IBoxRepositories boxRepositories, ISingleDataService singleDataService)
|
||||
IBoxRepositories boxRepositories, ISingleDataService singleDataService, IErpService erpService)
|
||||
{
|
||||
_serialNumberOperateRepositories = serialNumberOperateRepositories;
|
||||
_serialNumbersRepositories = serialNumbersRepositories;
|
||||
_transactionRepositories = transactionRepositories;
|
||||
_boxRepositories = boxRepositories;
|
||||
_singleDataService = singleDataService;
|
||||
_erpService = erpService;
|
||||
}
|
||||
/// <summary>
|
||||
/// 改箱
|
||||
@@ -167,10 +169,90 @@ namespace WMS.Web.Domain.Services
|
||||
/// <param name="loginInfo"></param>
|
||||
/// <param name="isTransaction"></param>
|
||||
/// <returns></returns>
|
||||
public Task<Result> OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true)
|
||||
public async Task<Result> OutStock(OutStock outStock, LoginInDto loginInfo, bool isTransaction = true)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
//获取序列号信息
|
||||
var serialNumbers = outStock.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.OutStock(outStock.BillNo);
|
||||
|
||||
//记录序列号操作日志
|
||||
SerialNumberOperate op = new SerialNumberOperate()
|
||||
{
|
||||
MaterialId = entity.MaterialId,
|
||||
SerialNumber = entity.SerialNumber,
|
||||
OrgId = box.OrgId,
|
||||
SupplierId = box.SupplierId,
|
||||
OperateTime = DateTime.Now,
|
||||
OperateType = OutStockTypeConvert(outStock.Type),
|
||||
OperateUser = userName,
|
||||
Remark = "来源单号:" + outStock.SourceBillNo + "\r\n" + "出库单号:" + outStock.BillNo
|
||||
};
|
||||
if (outStock.Type == OutStockType.Sal)
|
||||
{
|
||||
var detail = outStock.Details.FirstOrDefault(f => f.MaterialId == entity.MaterialId);
|
||||
var res_c = await _erpService.BillQueryForCustomer();
|
||||
var customer = res_c.Data.FirstOrDefault(f => f.Id == outStock.ReceiptCustomerId);
|
||||
op.Remark += "\r\n" + "销售订单号:" + detail.SaleBillNo;
|
||||
op.Remark += "\r\n" + "客户:" + customer?.Name;
|
||||
}
|
||||
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();
|
||||
}
|
||||
/// <summary>
|
||||
/// 出库单类型转化序列号记录类型
|
||||
/// </summary>
|
||||
/// <param name="type"></param>
|
||||
/// <returns></returns>
|
||||
private SerialNumberOperateType OutStockTypeConvert(OutStockType type)
|
||||
{
|
||||
switch (type)
|
||||
{
|
||||
case OutStockType.Sal:
|
||||
return SerialNumberOperateType.Sal_Out;
|
||||
case OutStockType.Assembled:
|
||||
return SerialNumberOperateType.Assembled_Out;
|
||||
case OutStockType.Miscellaneous:
|
||||
return SerialNumberOperateType.Miscellaneous_Out;
|
||||
case OutStockType.Stkdirecttransfers:
|
||||
return SerialNumberOperateType.Stkdirecttransfers_Out;
|
||||
case OutStockType.StktransferInst:
|
||||
return SerialNumberOperateType.StktransferInst_Out;
|
||||
default:
|
||||
return SerialNumberOperateType.StktransferInst_Out;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 序列号操作记录日志
|
||||
/// </summary>
|
||||
|
||||
@@ -33,5 +33,30 @@ namespace WMS.Web.Domain.Values
|
||||
/// </summary>
|
||||
[EnumRemark("改箱")]
|
||||
ChangeBox = 4,
|
||||
/// <summary>
|
||||
/// 销售出库
|
||||
/// </summary>
|
||||
[EnumRemark("销售出库")]
|
||||
Sal_Out = 5,
|
||||
/// <summary>
|
||||
/// 其他出库
|
||||
/// </summary>
|
||||
[EnumRemark("其他出库")]
|
||||
Miscellaneous_Out = 6,
|
||||
/// <summary>
|
||||
/// 直接调拨出库
|
||||
/// </summary>
|
||||
[EnumRemark("直接调拨出库")]
|
||||
Stkdirecttransfers_Out = 7,
|
||||
/// <summary>
|
||||
/// 分步式出库
|
||||
/// </summary>
|
||||
[EnumRemark("分步式出库")]
|
||||
StktransferInst_Out = 8,
|
||||
/// <summary>
|
||||
/// 组装拆卸出库
|
||||
/// </summary>
|
||||
[EnumRemark("组装拆卸出库")]
|
||||
Assembled_Out = 9,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user