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<ErpJob> _logger;
|
private readonly ISqlSugarClient _db;
|
public InventoryLockJob(ILogger<ErpJob> 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;
|
}
|
}
|
}
|