diff --git a/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs b/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs index 68227dc9..84931863 100644 --- a/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs +++ b/Src/Dlhis.Basic/BusinessShift/Services/Implements/BusinessPlaceShiftService.cs @@ -116,8 +116,8 @@ public class BusinessPlaceShiftService : IBusinessPlaceShiftService } else { - var entity = await _dbContext.Queryable().FirstAsync(x => x.Id == request.Id); - entity.ThrowIfNull("餐次不存在"); + var entity = await _dbContext.Queryable().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}]"); } } diff --git a/Src/Dlhis.Basic/BusinessShift/TimePeriodExtensions.cs b/Src/Dlhis.Basic/BusinessShift/TimePeriodExtensions.cs new file mode 100644 index 00000000..15d4c69d --- /dev/null +++ b/Src/Dlhis.Basic/BusinessShift/TimePeriodExtensions.cs @@ -0,0 +1,73 @@ +using Kurisu.Core.CustomClass; + +namespace Dlhis.Basic.BusinessShift; + + +/// +/// 临时的扩展类 todo: 嵌入框架 +/// +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; + } +} diff --git a/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs b/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs index e6173c9f..14e5a309 100644 --- a/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs +++ b/Src/Dlhis.Entity/Basic/Entity/BasicTypeEntity.cs @@ -12,13 +12,13 @@ public class BasicTypeEntity : SugarBaseEntity /// /// 类型 /// - [SugarColumn(ColumnDescription = "类型")] + [SugarColumn(ColumnDescription = "类型", UniqueGroupNameList = new[] { "idx_BasicType_type_code" })] public string Type { get; set; } /// /// 编码 /// - [SugarColumn(ColumnDescription = "编码")] + [SugarColumn(ColumnDescription = "编码", UniqueGroupNameList = new[] { "idx_BasicType_type_code" })] public string Code { get; set; } ///