|
@@ -9,11 +9,24 @@ namespace Hotline.Settings.TimeLimits
|
|
|
{
|
|
|
private readonly ITimeLimitRepository _timeLimitRepository;
|
|
|
private readonly IDaySettingRepository _daySettingRepository;
|
|
|
+ private List<CalcTimeSetting> timeSettingList;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
public TimeLimitDomainService(ITimeLimitRepository timeLimitRepository, IDaySettingRepository daySettingRepository)
|
|
|
{
|
|
|
_timeLimitRepository = timeLimitRepository;
|
|
|
_daySettingRepository = daySettingRepository;
|
|
|
+
|
|
|
+
|
|
|
+ //初始化常量
|
|
|
+ timeSettingList = new List<CalcTimeSetting>();
|
|
|
+ CalcTimeSetting setting1 = new CalcTimeSetting() { BugCode = "", BusName = "", TimeType = ETimeType.WorkDay, TimeValue = 5 };
|
|
|
+ timeSettingList.Add(setting1);
|
|
|
+ CalcTimeSetting setting2 = new CalcTimeSetting() { BugCode = "", BusName = "", TimeType = ETimeType.WorkDay, TimeValue = 5 };
|
|
|
+ timeSettingList.Add(setting2);
|
|
|
+ CalcTimeSetting setting3 = new CalcTimeSetting() { BugCode = "", BusName = "", TimeType = ETimeType.WorkDay, TimeValue = 5 };
|
|
|
+ timeSettingList.Add(setting3);
|
|
|
}
|
|
|
|
|
|
public async Task<string> AddAsync(TimeLimit model, CancellationToken cancellationToken)
|
|
@@ -31,7 +44,16 @@ namespace Hotline.Settings.TimeLimits
|
|
|
await _timeLimitRepository.UpdateAsync(model, cancellationToken);
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 计算工作时间分钟数
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="beginTime"></param>
|
|
|
+ /// <param name="endTime"></param>
|
|
|
+ /// <returns></returns>
|
|
|
public int CalcWorkTime(DateTime beginTime,DateTime endTime)
|
|
|
{
|
|
|
//计算时间差
|
|
@@ -77,8 +99,29 @@ namespace Hotline.Settings.TimeLimits
|
|
|
return minutes;
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 计算工作日
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="beginTime"></param>
|
|
|
+ /// <param name="busCode"></param>
|
|
|
+ /// <returns></returns>
|
|
|
+ public TimeResult? CalcEndTime(DateTime beginTime,string busCode)
|
|
|
+ {
|
|
|
+ var setting = timeSettingList.FirstOrDefault(x => x.BugCode == busCode);
|
|
|
+ if (setting!=null)
|
|
|
+ {
|
|
|
+ return CalcEndTime(beginTime, setting.TimeType, setting.TimeValue);
|
|
|
+ }
|
|
|
+ return null;
|
|
|
+ }
|
|
|
|
|
|
-
|
|
|
+ /// <summary>
|
|
|
+ /// 计算工作日
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="beginTime"></param>
|
|
|
+ /// <param name="timeType"></param>
|
|
|
+ /// <param name="timeValue"></param>
|
|
|
+ /// <returns></returns>
|
|
|
public TimeResult CalcEndTime(DateTime beginTime,ETimeType timeType,int timeValue)
|
|
|
{
|
|
|
switch (timeType)
|