生产退料开发等
This commit is contained in:
@@ -49,7 +49,7 @@ namespace Tnb.WarehouseMgr
|
||||
[ServiceModule(BizTypeId)]
|
||||
public class WmsMaterialTransferService : BaseWareHouseService
|
||||
{
|
||||
private const string BizTypeId = "34354738929685";
|
||||
private const string BizTypeId = WmsWareHouseConst.BIZTYPE_WMSMATERIALTRANSFER_ID;
|
||||
private readonly ISqlSugarClient _db;
|
||||
private readonly IRunService _runService;
|
||||
private readonly IVisualDevService _visualDevService;
|
||||
@@ -57,6 +57,7 @@ namespace Tnb.WarehouseMgr
|
||||
private readonly IBillRullService _billRullService;
|
||||
private readonly IUserManager _userManager;
|
||||
private readonly IWmsCarryBindService _wmsCarryBindService;
|
||||
private readonly IWmsCarryUnbindService _wmsCarryUnbindService;
|
||||
|
||||
public static SemaphoreSlim s_taskDistributeToZCC = new(1);
|
||||
|
||||
@@ -67,7 +68,8 @@ namespace Tnb.WarehouseMgr
|
||||
IWareHouseService wareHouseService,
|
||||
IUserManager userManager,
|
||||
IBillRullService billRullService,
|
||||
IEventPublisher eventPublisher,
|
||||
IEventPublisher eventPublisher,
|
||||
IWmsCarryUnbindService wmsCarryUnbindService,
|
||||
IWmsCarryBindService wmsCarryBindService)
|
||||
{
|
||||
_db = repository.AsSugarClient();
|
||||
@@ -77,6 +79,7 @@ namespace Tnb.WarehouseMgr
|
||||
_userManager = userManager;
|
||||
_billRullService = billRullService;
|
||||
_wmsCarryBindService = wmsCarryBindService;
|
||||
_wmsCarryUnbindService = wmsCarryUnbindService;
|
||||
|
||||
OverideFuncs.GetListAsync = GetList;
|
||||
}
|
||||
@@ -565,33 +568,45 @@ namespace Tnb.WarehouseMgr
|
||||
{
|
||||
throw new ArgumentNullException(nameof(input));
|
||||
}
|
||||
List<WmsCarryCode> wmsCarryCodes = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == input.carryIds[0]).ToListAsync();
|
||||
if (wmsCarryCodes.Count == 0)
|
||||
|
||||
try
|
||||
{
|
||||
Logger.LogWarning($"【ModifyAsync】载具{input.carryIds[0]}没有绑定物料条码");
|
||||
return;
|
||||
List<WmsCarryCode> wmsCarryCodes = await _db.Queryable<WmsCarryCode>().Where(r => r.carry_id == input.carryIds[0]).ToListAsync();
|
||||
if (wmsCarryCodes.Count == 0)
|
||||
{
|
||||
Logger.LogWarning($"【WmsMaterialTransferService ModifyAsync】载具{input.carryIds[0]}没有绑定物料条码");
|
||||
return;
|
||||
}
|
||||
await _db.Ado.BeginTranAsync();
|
||||
// 更新已转数量
|
||||
bool isOk = await _db.Updateable<WmsMaterialTransferD>().SetColumns(it => new WmsMaterialTransferD { yzqty = it.yzqty + wmsCarryCodes.Sum(r => r.codeqty) })
|
||||
.Where(it => it.id == input.source_id).ExecuteCommandHasChangeAsync();
|
||||
|
||||
// 如果所有明细已完成 更新主表状态为完成
|
||||
WmsMaterialTransferD wmsMaterialTransferd = await _db.Queryable<WmsMaterialTransferD>().Where(r => r.id == input.source_id).SingleAsync();
|
||||
List<WmsMaterialTransferD> wmsMaterialTransferDs = _db.Queryable<WmsMaterialTransferD>()
|
||||
.Where(a => a.bill_id == wmsMaterialTransferd.bill_id && a.yzqty < a.qty).ToList();
|
||||
bool isOk2 = true;
|
||||
if (wmsMaterialTransferDs.Count == 0)
|
||||
{
|
||||
isOk2 = await _db.Updateable<WmsMaterialTransfer>().SetColumns(it => new WmsMaterialTransfer { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID })
|
||||
.Where(it => it.id == wmsMaterialTransferd.bill_id).ExecuteCommandHasChangeAsync();
|
||||
}
|
||||
|
||||
// require_code是任务单
|
||||
//string mo_task_code = input.require_code;
|
||||
|
||||
if (!isOk || !isOk2)
|
||||
{
|
||||
throw Oops.Oh(ErrorCode.COM1001);
|
||||
}
|
||||
await _db.Ado.CommitTranAsync();
|
||||
}
|
||||
// 更新已转数量
|
||||
bool isOk = await _db.Updateable<WmsMaterialTransferD>().SetColumns(it => new WmsMaterialTransferD { yzqty = it.yzqty + wmsCarryCodes.Sum(r => r.codeqty)})
|
||||
.Where(it => it.id == input.source_id).ExecuteCommandHasChangeAsync();
|
||||
|
||||
// 如果所有明细已完成 更新主表状态为完成
|
||||
WmsMaterialTransferD wmsMaterialTransferd = await _db.Queryable<WmsMaterialTransferD>().Where(r => r.id == input.source_id).SingleAsync();
|
||||
List<WmsMaterialTransferD> wmsMaterialTransferDs = _db.Queryable<WmsMaterialTransferD>()
|
||||
.Where(a => a.bill_id == wmsMaterialTransferd.bill_id && a.yzqty < a.qty).ToList();
|
||||
bool isOk2 = true;
|
||||
if (wmsMaterialTransferDs.Count == 0)
|
||||
catch(Exception ex)
|
||||
{
|
||||
isOk2 = await _db.Updateable<WmsMaterialTransfer>().SetColumns(it => new WmsMaterialTransfer { status = WmsWareHouseConst.BILLSTATUS_COMPLETE_ID })
|
||||
.Where(it => it.id == wmsMaterialTransferd.bill_id).ExecuteCommandHasChangeAsync();
|
||||
}
|
||||
|
||||
// require_code是任务单
|
||||
//string mo_task_code = input.require_code;
|
||||
|
||||
if (!isOk || !isOk2)
|
||||
{
|
||||
throw Oops.Oh(ErrorCode.COM1001);
|
||||
Logger.LogError("【WmsPrdReturnService ModifyAsync】" + ex.Message);
|
||||
Logger.LogError("【WmsPrdReturnService ModifyAsync】" + ex.StackTrace);
|
||||
await _db.Ado.RollbackTranAsync();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -999,7 +1014,7 @@ namespace Tnb.WarehouseMgr
|
||||
CarryBindInput carryBindInput = new();
|
||||
carryBindInput.carry_id = wmsCarryH.id;
|
||||
carryBindInput.carry_code = wmsCarryH.carry_code;
|
||||
var resCarryUnbind = await _wmsCarryBindService.CarryUnbind(carryBindInput);
|
||||
var resCarryUnbind = await _wmsCarryUnbindService.CarryUnbind(carryBindInput);
|
||||
if (resCarryUnbind.code != JNPF.Common.Enums.HttpStatusCode.OK)
|
||||
{
|
||||
throw new AppFriendlyException($"解除绑定料箱到料架失败 载具 {input.carry_code}", 500);
|
||||
@@ -1021,7 +1036,7 @@ namespace Tnb.WarehouseMgr
|
||||
}
|
||||
}
|
||||
|
||||
Logger.LogWarning($"【RackEmptyInstock】开始生成预任务");
|
||||
Logger.LogWarning($"【RackInstock】开始生成预任务");
|
||||
CommonCreatePretaskInput commonCreatePretaskInput = new();
|
||||
commonCreatePretaskInput.startlocation_id = startlocation.id;
|
||||
commonCreatePretaskInput.endlocation_id = endlocation.id;
|
||||
@@ -1080,7 +1095,7 @@ namespace Tnb.WarehouseMgr
|
||||
|
||||
await _db.Ado.BeginTranAsync();
|
||||
|
||||
Logger.LogWarning($"【RackEmptyInstock】开始生成预任务");
|
||||
Logger.LogWarning($"【RackInstock】开始生成预任务");
|
||||
CommonCreatePretaskInput commonCreatePretaskInput = new();
|
||||
commonCreatePretaskInput.startlocation_id = startlocation.id;
|
||||
commonCreatePretaskInput.endlocation_id = endlocation.id;
|
||||
@@ -1095,7 +1110,7 @@ namespace Tnb.WarehouseMgr
|
||||
Logger.LogInformation($"【RackInstock】生成预任务失败 载具 {input.carry_code}");
|
||||
throw new AppFriendlyException($"生成预任务失败 载具 {input.carry_code}", 500);
|
||||
}
|
||||
Logger.LogWarning($"【RackEmptyInstock】生成预任务成功");
|
||||
Logger.LogWarning($"【RackInstock】生成预任务成功");
|
||||
await _db.Ado.CommitTranAsync();
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user