84 lines
3.6 KiB
C#
84 lines
3.6 KiB
C#
using JNPF.Common.Core.Manager;
|
|
using JNPF.Common.Dtos.VisualDev;
|
|
using JNPF.Systems.Interfaces.System;
|
|
using JNPF.VisualDev;
|
|
using JNPF.VisualDev.Interfaces;
|
|
using SqlSugar;
|
|
using Tnb.BasicData.Entities;
|
|
using Tnb.WarehouseMgr.Entities;
|
|
using Tnb.WarehouseMgr.Entities.Consts;
|
|
using Tnb.WarehouseMgr.Interfaces;
|
|
namespace Tnb.WarehouseMgr
|
|
{
|
|
|
|
/// <summary>
|
|
/// 异常取消
|
|
/// </summary>
|
|
[OverideVisualDev(ModuleConsts.MODULE_WMSEXCEPTIONCANCELPDA_ID)]
|
|
public class WmsPDAExceptionCancelService : BaseWareHouseService, IPdaStroage
|
|
{
|
|
private readonly ISqlSugarClient _db;
|
|
private readonly IRunService _runService;
|
|
private readonly IVisualDevService _visualDevService;
|
|
private readonly IWareHouseService _wareHouseService;
|
|
private readonly IBillRullService _billRullService;
|
|
private readonly IUserManager _userManager;
|
|
public WmsPDAExceptionCancelService(
|
|
ISqlSugarRepository<WmsCarryH> repository,
|
|
IRunService runService,
|
|
IVisualDevService visualDevService,
|
|
IWareHouseService wareHouseService,
|
|
IUserManager userManager,
|
|
IBillRullService billRullService)
|
|
{
|
|
_db = repository.AsSugarClient();
|
|
_runService = runService;
|
|
_visualDevService = visualDevService;
|
|
_wareHouseService = wareHouseService;
|
|
_userManager = userManager;
|
|
_billRullService = billRullService;
|
|
OverideFuncs.CreateAsync = ExceptionCancel;
|
|
}
|
|
|
|
private async Task<dynamic> ExceptionCancel(VisualDevModelDataCrInput input)
|
|
{
|
|
|
|
try
|
|
{
|
|
await _db.Ado.BeginTranAsync();
|
|
if (input.data.ContainsKey(nameof(WmsDistaskH.bill_code)))
|
|
{
|
|
//更新任务执行状态 已取消
|
|
_ = await _db.Updateable<WmsDistaskH>().SetColumns(it => new WmsDistaskH { status = WmsWareHouseConst.TASK_BILL_STATUS_CANCEL_ID }).Where(it => it.bill_code == input.data[nameof(WmsDistaskH.bill_code)].ToString()).ExecuteCommandAsync();
|
|
|
|
}
|
|
if (input.data.ContainsKey(nameof(WmsDistaskH.pretask_id)))
|
|
{
|
|
//预任务取消
|
|
_ = await _db.Updateable<WmsPretaskH>().SetColumns(it => new WmsPretaskH { status = WmsWareHouseConst.PRETASK_BILL_STATUS_CANCEL_ID }).Where(it => it.id == input.data[nameof(WmsDistaskH.pretask_id)].ToString()).ExecuteCommandAsync();
|
|
|
|
}
|
|
if (input.data.ContainsKey(nameof(WmsDistaskH.carry_id)))
|
|
{
|
|
//载具解锁
|
|
_ = await _db.Updateable<WmsCarryH>().SetColumns(it => new WmsCarryH { is_lock = 0 }).Where(it => it.id == input.data[nameof(WmsDistaskH.carry_id)].ToString()).ExecuteCommandAsync();
|
|
}
|
|
if (input.data.ContainsKey(nameof(WmsDistaskH.startlocation_id)) && input.data.ContainsKey(nameof(WmsDistaskH.endlocation_id)))
|
|
{
|
|
//所有库位解锁
|
|
string?[] ids = new[] { input.data[nameof(WmsDistaskH.startlocation_id)]?.ToString(), input.data[nameof(WmsDistaskH.endlocation_id)]?.ToString() };
|
|
_ = await _db.Updateable<BasLocation>().SetColumns(it => new BasLocation { is_lock = 0 }).Where(it => ids.Contains(it.id)).ExecuteCommandAsync();
|
|
}
|
|
await _db.Ado.CommitTranAsync();
|
|
}
|
|
catch (Exception)
|
|
{
|
|
await _db.Ado.RollbackTranAsync();
|
|
throw;
|
|
}
|
|
return Task.FromResult(true);
|
|
}
|
|
}
|
|
|
|
}
|