🍄🟫默认第一个流水号从Min开始,而不是Min+1

This commit is contained in:
KaneLeung 2025-09-29 15:50:10 +08:00
parent c92881a1ef
commit ba0e8e6c5a

View File

@ -80,7 +80,7 @@ public class SysSerialService : IDynamicApiController, ITransient
var entity = input.Adapt<SysSerial>();
entity.Expy = DateTime.Now;
entity.Seq = 1;
entity.Seq = entity.Min - 1;
return await _sysSerialRep.InsertAsync(entity) ? entity.Id : default;
}
@ -99,7 +99,17 @@ public class SysSerialService : IDynamicApiController, ITransient
if (await _sysSerialRep.IsAnyAsync(u => u.Type == input.Type && u.TenantId == _userManager.TenantId && input.Id != seq.Id)) throw Oops.Oh(ErrorCodeEnum.D1006);
var entity = input.Adapt<SysSerial>();
await _sysSerialRep.AsUpdateable(entity).IgnoreColumns(u => new { u.Expy, u.Seq }).ExecuteCommandAsync();
// 原来的数据
var original = await _sysSerialRep.GetFirstAsync(u => u.Id == input.Id);
// 最小值发生变化,并且当最小值比当前流水号大时
var seqChange = false;
if (original.Min != entity.Min && entity.Min - 1 > original.Seq)
{
// 使下个流水号为更新后的最小值
entity.Seq = entity.Min - 1;
seqChange = true;
}
await _sysSerialRep.AsUpdateable(entity).IgnoreColumns(u => new { u.Expy }).IgnoreColumnsIF(seqChange == false, u => new { u.Seq }).ExecuteCommandAsync();
}
/// <summary>
@ -178,7 +188,7 @@ public class SysSerialService : IDynamicApiController, ITransient
return FormatSeqNo(new()
{
Formater = input.Formater,
Seq = input.Seq,
Seq = input.Seq + 1,
Max = input.Max,
}, DateTime.Now);
}
@ -262,7 +272,7 @@ public class SysSerialService : IDynamicApiController, ITransient
if (nowDate.Date != seq.Expy.Date)
{
seq.Expy = nowDate.Date;
seq.Seq = seq.Min;
seq.Seq = seq.Min - 1;
}
break;
@ -270,7 +280,7 @@ public class SysSerialService : IDynamicApiController, ITransient
if (nowDate.Month != seq.Expy.Month || nowDate.Year != seq.Expy.Year)
{
seq.Expy = nowDate.Date;
seq.Seq = seq.Min;
seq.Seq = seq.Min - 1;
}
break;
@ -278,7 +288,7 @@ public class SysSerialService : IDynamicApiController, ITransient
if (nowDate.Year != seq.Expy.Year)
{
seq.Expy = nowDate.Date;
seq.Seq = seq.Min;
seq.Seq = seq.Min - 1;
}
break;