pan
2025-12-01 74ab8260224fd69add7b0b7c98ad139b28136334
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
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;
        }
    }
}