fix 索引,判断重复问题
This commit is contained in:
@@ -116,8 +116,8 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
var entity = await _dbContext.Queryable<BusinessShiftEntity>().FirstAsync(x => x.Id == request.Id);
|
var entity = await _dbContext.Queryable<BusinessShiftMealRelationshipEntity>().FirstAsync(x => x.Id == request.Id);
|
||||||
entity.ThrowIfNull("餐次不存在");
|
entity.ThrowIfNull("餐次段不存在");
|
||||||
|
|
||||||
request.Adapt(entity);
|
request.Adapt(entity);
|
||||||
await _dbContext.UpdateAsync(entity);
|
await _dbContext.UpdateAsync(entity);
|
||||||
@@ -210,7 +210,7 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService
|
|||||||
|
|
||||||
foreach (var period in periods)
|
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>
|
||||||
/// 类型
|
/// 类型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "类型")]
|
[SugarColumn(ColumnDescription = "类型", UniqueGroupNameList = new[] { "idx_BasicType_type_code" })]
|
||||||
public string Type { get; set; }
|
public string Type { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 编码
|
/// 编码
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[SugarColumn(ColumnDescription = "编码")]
|
[SugarColumn(ColumnDescription = "编码", UniqueGroupNameList = new[] { "idx_BasicType_type_code" })]
|
||||||
public string Code { get; set; }
|
public string Code { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
Reference in New Issue
Block a user