using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using JNPF.VisualDev; using SqlSugar; using Tnb.WarehouseMgr.Entities; using Tnb.WarehouseMgr.Entities.Consts; using Tnb.WarehouseMgr.Entities.Entity; namespace Tnb.WarehouseMgr { [OverideVisualDev(ModuleConsts.MODULE_WMSDISTASK_ID)] public class WmsDistaskService : BaseWareHouseService { private readonly ISqlSugarClient _db; public WmsDistaskService(ISqlSugarRepository repository) { _db = repository.AsSugarClient(); OverideFuncs.DeleteAsync = Delete; } private async Task Delete(string id) { try { await _db.Ado.BeginTranAsync(); var disTask = await _db.Queryable().SingleAsync(it => it.id == id); if (disTask != null) { var 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(disTask).ExecuteCommandAsync(); } await _db.Ado.CommitTranAsync(); } catch (Exception) { await _db.Ado.RollbackTranAsync(); throw; } } } }