出库操作调整序列号
This commit is contained in:
@@ -3538,6 +3538,13 @@
|
|||||||
<param name="isTransaction"></param>
|
<param name="isTransaction"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</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)">
|
<member name="M:WMS.Web.Domain.Services.SerialNumberService.SerialNumberOperate(System.Collections.Generic.List{WMS.Web.Domain.Entitys.SerialNumberOperate},System.Boolean)">
|
||||||
<summary>
|
<summary>
|
||||||
序列号操作记录日志
|
序列号操作记录日志
|
||||||
@@ -3941,6 +3948,31 @@
|
|||||||
改箱
|
改箱
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</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">
|
<member name="T:WMS.Web.Domain.Values.ShelfMethod">
|
||||||
<summary>
|
<summary>
|
||||||
非采购上架方式
|
非采购上架方式
|
||||||
|
|||||||
@@ -30,10 +30,11 @@ namespace WMS.Web.Domain.Services
|
|||||||
private readonly IOutStockTaskRepositories _outStockTaskRepositories;
|
private readonly IOutStockTaskRepositories _outStockTaskRepositories;
|
||||||
private readonly IOutStockTaskService _outStockTaskService;
|
private readonly IOutStockTaskService _outStockTaskService;
|
||||||
private readonly IErpService _erpService;
|
private readonly IErpService _erpService;
|
||||||
|
private readonly ISerialNumberService _serialNumberService;
|
||||||
public OutStockService(IMapper mapper, ILoginService loginService,
|
public OutStockService(IMapper mapper, ILoginService loginService,
|
||||||
IBasicsRepositories transactionRepositories,
|
IBasicsRepositories transactionRepositories,
|
||||||
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories,
|
IOutStockRepositories outStockRepositories, IOutStockTaskRepositories outStockTaskRepositories,
|
||||||
IOutStockTaskService outStockTaskService, IErpService erpService)
|
IOutStockTaskService outStockTaskService, IErpService erpService, ISerialNumberService serialNumberService)
|
||||||
{
|
{
|
||||||
_mapper = mapper;
|
_mapper = mapper;
|
||||||
_loginService = loginService;
|
_loginService = loginService;
|
||||||
@@ -42,6 +43,7 @@ namespace WMS.Web.Domain.Services
|
|||||||
_outStockTaskRepositories = outStockTaskRepositories;
|
_outStockTaskRepositories = outStockTaskRepositories;
|
||||||
_outStockTaskService = outStockTaskService;
|
_outStockTaskService = outStockTaskService;
|
||||||
_erpService = erpService;
|
_erpService = erpService;
|
||||||
|
_serialNumberService = serialNumberService;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 出库单
|
/// 出库单
|
||||||
@@ -88,6 +90,8 @@ namespace WMS.Web.Domain.Services
|
|||||||
if (entity == null) isRollback = true;
|
if (entity == null) isRollback = true;
|
||||||
outStockTask = await _outStockTaskRepositories.Edit(outStockTask, false);
|
outStockTask = await _outStockTaskRepositories.Edit(outStockTask, false);
|
||||||
if (outStockTask == null) isRollback = true;
|
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);
|
isSuccess = _transactionRepositories.CommitTransaction(isRollback, _transaction);
|
||||||
if (!isSuccess)
|
if (!isSuccess)
|
||||||
|
|||||||
@@ -25,15 +25,17 @@ namespace WMS.Web.Domain.Services
|
|||||||
public readonly IBasicsRepositories _transactionRepositories;
|
public readonly IBasicsRepositories _transactionRepositories;
|
||||||
public readonly IBoxRepositories _boxRepositories;
|
public readonly IBoxRepositories _boxRepositories;
|
||||||
private readonly ISingleDataService _singleDataService;
|
private readonly ISingleDataService _singleDataService;
|
||||||
|
private readonly IErpService _erpService;
|
||||||
public SerialNumberService(ISerialNumberOperateRepositories serialNumberOperateRepositories,
|
public SerialNumberService(ISerialNumberOperateRepositories serialNumberOperateRepositories,
|
||||||
ISerialNumbersRepositories serialNumbersRepositories, IBasicsRepositories transactionRepositories,
|
ISerialNumbersRepositories serialNumbersRepositories, IBasicsRepositories transactionRepositories,
|
||||||
IBoxRepositories boxRepositories, ISingleDataService singleDataService)
|
IBoxRepositories boxRepositories, ISingleDataService singleDataService, IErpService erpService)
|
||||||
{
|
{
|
||||||
_serialNumberOperateRepositories = serialNumberOperateRepositories;
|
_serialNumberOperateRepositories = serialNumberOperateRepositories;
|
||||||
_serialNumbersRepositories = serialNumbersRepositories;
|
_serialNumbersRepositories = serialNumbersRepositories;
|
||||||
_transactionRepositories = transactionRepositories;
|
_transactionRepositories = transactionRepositories;
|
||||||
_boxRepositories = boxRepositories;
|
_boxRepositories = boxRepositories;
|
||||||
_singleDataService = singleDataService;
|
_singleDataService = singleDataService;
|
||||||
|
_erpService = erpService;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 改箱
|
/// 改箱
|
||||||
@@ -167,10 +169,90 @@ namespace WMS.Web.Domain.Services
|
|||||||
/// <param name="loginInfo"></param>
|
/// <param name="loginInfo"></param>
|
||||||
/// <param name="isTransaction"></param>
|
/// <param name="isTransaction"></param>
|
||||||
/// <returns></returns>
|
/// <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>
|
||||||
/// 序列号操作记录日志
|
/// 序列号操作记录日志
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -33,5 +33,30 @@ namespace WMS.Web.Domain.Values
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
[EnumRemark("改箱")]
|
[EnumRemark("改箱")]
|
||||||
ChangeBox = 4,
|
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