pan
2025-11-26 7e4e747ae508578c15fc93a40a9cb0de289706bd
ÏîÄ¿´úÂë/WMSÎÞ²Ö´¢°æ/WIDESEA_WMSServer/WIDESEA_BasicService/DailySequenceService.cs
@@ -10,6 +10,7 @@
using System.Threading.Tasks;
using WIDESEA_Core.BaseRepository;
using WIDESEA_Core.BaseServices;
using WIDESEA_Core.Seed;
using WIDESEA_IBasicService;
using WIDESEA_Model.Models;
using WIDESEA_Model.Models.Basic;
@@ -193,28 +194,43 @@
        private async Task UpdateSequenceInDatabase(DateTime date, string sequenceKey, int value)
        {
            var sequence = await Repository.Db.Queryable<DT_DailySequence>()
                .Where(x => x.SequenceDate == date && x.SequenceKey == sequenceKey)
                .FirstAsync();
            if (sequence != null)
            try
            {
                sequence.CurrentValue = value;
                await Repository.Db.Updateable(sequence).ExecuteCommandAsync();
            }
            else
            {
                // å¦‚果数据库记录不存在,则创建
                sequence = new DT_DailySequence
                using SqlSugarClient sugarClient = new SqlSugarClient(new ConnectionConfig
                {
                    SequenceDate = date,
                    SequenceKey = sequenceKey,
                    CurrentValue = value,
                    IsAutoCloseConnection = true,
                    DbType = DbType.SqlServer,
                    ConnectionString = DBContext.ConnectionString
                });
                var result = await sugarClient.Updateable<DT_DailySequence>()
                    .SetColumns(it => new DT_DailySequence()
                    {
                        CurrentValue = value,
                    })
                    .Where(it => it.SequenceDate == date && it.SequenceKey == sequenceKey)
                    .ExecuteCommandAsync();
                };
                await Repository.Db.Insertable(sequence).ExecuteCommandAsync();
                if (result == 0)
                {
                    // å¦‚果没有更新到记录,可能是首次使用,插入新记录
                    var newSequence = new DT_DailySequence
                    {
                        SequenceKey = sequenceKey,
                        SequenceDate = date,
                        CurrentValue = value,
                        Creater="admin",
                        CreateDate=DateTime.Now,
                    };
                    await sugarClient.Insertable(newSequence).ExecuteCommandAsync();
                }
            }
            catch (Exception ex)
            {
                // è®°å½•日志并重新抛出异常
                Console.WriteLine($"更新序列失败: {ex.Message}");
                throw;
            }
        }
        public async Task CleanOldSequencesAsync(int keepDays = 30)