fix 索引,判断重复问题
This commit is contained in:
@@ -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}]");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
73
Src/Dlhis.Basic/BusinessShift/TimePeriodExtensions.cs
Normal file
73
Src/Dlhis.Basic/BusinessShift/TimePeriodExtensions.cs
Normal 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;
|
||||
}
|
||||
}
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user