fix 索引,判断重复问题

This commit is contained in:
2024-02-23 18:57:02 +08:00
parent d1dde626ef
commit ae8b48a782
3 changed files with 78 additions and 5 deletions

View File

@@ -116,8 +116,8 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService
}
else
{
var entity = await _dbContext.Queryable<BusinessShiftEntity>().FirstAsync(x => x.Id == request.Id);
entity.ThrowIfNull("餐次不存在");
var entity = await _dbContext.Queryable<BusinessShiftMealRelationshipEntity>().FirstAsync(x => x.Id == request.Id);
entity.ThrowIfNull("餐次段不存在");
request.Adapt(entity);
await _dbContext.UpdateAsync(entity);
@@ -210,7 +210,7 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService
foreach (var period in periods)
{
period.IsDuplicate(request.TimePeriod).ThrowIfTrue($"存在时间段重合[{period.Start}-{period.End}]");
period.IsDuplicate1(request.TimePeriod).ThrowIfTrue($"存在时间段重合[{period.Start}-{period.End}]");
}
}

View File

@@ -0,0 +1,73 @@
using Kurisu.Core.CustomClass;
namespace Dlhis.Basic.BusinessShift;
/// <summary>
/// 临时的扩展类 todo: 嵌入框架
/// </summary>
public static class TimePeriodExtensions
{
public static bool IsDuplicate1(this TimePeriod current, TimePeriod period)
{
return !Check();
bool Check()
{
if (current.IsCrossDay())
{
if (period.IsCrossDay())
{
return true;
}
else
{
return period.Start > current.End && period.End < current.Start;
}
}
else
{
if (period.IsCrossDay())
{
return period.Start > current.End && period.End < current.Start;
}
else
{
return period.Start > current.End || period.End < current.Start;
}
}
}
}
public static bool IsPresent1(this TimePeriod period, DateTime dateTime)
{
DateTime start;
DateTime end;
if (period.IsCrossDay())
{
var currentStart = DateTime.Today.Add(period.Start.Value.ToTimeSpan());
var endOfDay = DateTime.Today.AddHours(23).AddMinutes(59).AddSeconds(59);
if (dateTime >= currentStart && dateTime <= endOfDay)
{
start = DateTime.Today.Add(period.Start.Value.ToTimeSpan());
end = DateTime.Today.AddDays(1).Add(period.End.Value.ToTimeSpan());
}
else
{
//第二天
start = DateTime.Today.AddDays(-1).Add(period.Start.Value.ToTimeSpan());
end = DateTime.Today.Add(period.End.Value.ToTimeSpan());
}
}
else
{
start = DateTime.Today.Add(period.Start.Value.ToTimeSpan());
end = DateTime.Today.Add(period.End.Value.ToTimeSpan());
}
return dateTime >= start && dateTime <= end;
}
}

View File

@@ -12,13 +12,13 @@ public class BasicTypeEntity : SugarBaseEntity
/// <summary>
/// 类型
/// </summary>
[SugarColumn(ColumnDescription = "类型")]
[SugarColumn(ColumnDescription = "类型", UniqueGroupNameList = new[] { "idx_BasicType_type_code" })]
public string Type { get; set; }
/// <summary>
/// 编码
/// </summary>
[SugarColumn(ColumnDescription = "编码")]
[SugarColumn(ColumnDescription = "编码", UniqueGroupNameList = new[] { "idx_BasicType_type_code" })]
public string Code { get; set; }
/// <summary>