using JNPF.VisualDev; using SqlSugar; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Consts; namespace Tnb.WarehouseMgr { [OverideVisualDev(ModuleConsts.MODULE_WMSDISTASK_ID)] public class WmsDistaskService : TaskManagerDelBase { private readonly ISqlSugarClient _db; public WmsDistaskService(ISqlSugarRepository repository):base(repository.AsSugarClient()) { _db = repository.AsSugarClient(); OverideFuncs.DeleteAsync = Delete; } private async Task Delete(string id) { try { await _db.Ado.BeginTranAsync(); WmsDistaskH disTask = await _db.Queryable().SingleAsync(it => it.id == id); if (disTask != null) { WmsPretaskH preTask = await _db.Queryable().SingleAsync(it => it.id == disTask.pretask_id); if (preTask != null) { preTask.status = WmsWareHouseConst.PRETASK_BILL_STATUS_DXF_ID; _ = await _db.Updateable(preTask).UpdateColumns(it => it.status).ExecuteCommandAsync(); } _ = await _db.Deleteable().Where(it => it.distask_id == id).ExecuteCommandAsync(); _ = await _db.Deleteable(disTask).ExecuteCommandAsync(); } await _db.Ado.CommitTranAsync(); } catch (Exception) { await _db.Ado.RollbackTranAsync(); throw; } } } }