using Quartz; using SqlSugar; using SqlSugar.Extensions; using WIDESEA_Common.StockEnum; using WIDESEA_Model.Models; using WIDESEA_Model.Models.Basic; namespace WIDESEA_WMSServer.Jobs { [DisallowConcurrentExecution] public class InventoryLockJob : IJob { private readonly ILogger _logger; private readonly ISqlSugarClient _db; public InventoryLockJob(ILogger logger, ISqlSugarClient db ) { _logger = logger; _db = db; } public Task Execute(IJobExecutionContext context) { // 第一步:更新ValidDate的原生SQL(SQL Server) // string updateSql = @" //UPDATE s //SET s.ValidDate = DATEADD(DAY, m.ValidityDays, s.CreateDate) //FROM Dt_StockInfoDetail s //INNER JOIN Dt_MaterialExpirationDate m ON SUBSTRING(s.MaterielCode, 1, 6) = m.MaterialCode //WHERE s.ValidDate IS NULL"; // int updateValidDateResult = _db.Ado.ExecuteCommand(updateSql); // 第二步:更新过期状态的原生SQL string updateStatusSql = @" UPDATE Dt_StockInfoDetail SET Status = 98 WHERE ValidDate IS NOT NULL AND ValidDate < GETDATE()"; int updateStatusResult = _db.Ado.ExecuteCommand(updateStatusSql); return Task.CompletedTask; } } }