|
|
@ -14,7 +14,7 @@ namespace BBWYB.Server.Business |
|
|
|
{ |
|
|
|
calculateExpirationTimeAlgorithmDictionary = new Dictionary<Enums.TimeLimitTaskType, Func<DateTime, DateTime>>() |
|
|
|
{ |
|
|
|
{ Enums.TimeLimitTaskType.采购任务, CalculateExpirationTimeFor8WorkHour }, |
|
|
|
{ Enums.TimeLimitTaskType.采购任务, CalculateExpirationTimeFor5WorkHour }, |
|
|
|
{ Enums.TimeLimitTaskType.合格证拟定任务, CalculateExpirationTimeFor8WorkHour }, |
|
|
|
{ Enums.TimeLimitTaskType.待核算任务, CalculateExpirationTimeFor8WorkHour }, |
|
|
|
{ Enums.TimeLimitTaskType.待议价任务, CalculateExpirationTimeFor8WorkHour }, |
|
|
@ -171,6 +171,54 @@ namespace BBWYB.Server.Business |
|
|
|
return startTime.Date.AddDays(addDay).AddHours(addHour).AddSeconds(addSeconds); |
|
|
|
} |
|
|
|
|
|
|
|
private DateTime CalculateExpirationTimeFor5WorkHour(DateTime startTime) |
|
|
|
{ |
|
|
|
int addDay = 0, addHour = 0, addSeconds = 0; |
|
|
|
//先确定是否为周日
|
|
|
|
if (startTime.DayOfWeek == DayOfWeek.Sunday) |
|
|
|
{ |
|
|
|
addDay = 1; |
|
|
|
addHour = 14; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
if (startTime.Hour < 9) |
|
|
|
addHour = 14; |
|
|
|
else if (startTime.Hour >= 9 && startTime.Hour < 12) |
|
|
|
{ |
|
|
|
addHour = 13; |
|
|
|
var to12senconds = Convert.ToInt32((startTime.Date.AddHours(12) - startTime).TotalSeconds); |
|
|
|
addSeconds = 18000 - to12senconds; |
|
|
|
} |
|
|
|
else if (startTime.Hour >= 12 && startTime.Hour < 13) |
|
|
|
{ |
|
|
|
addHour = 18; |
|
|
|
} |
|
|
|
else if (startTime.Hour >= 13 && startTime.Hour < 18) |
|
|
|
{ |
|
|
|
if (startTime.Hour == 13 && startTime.Minute <= 5) |
|
|
|
{ |
|
|
|
//从16点开始小于5分钟以内,以当天18点结束
|
|
|
|
addHour = 18; |
|
|
|
} |
|
|
|
else |
|
|
|
{ |
|
|
|
addDay = CalculateAddDay(startTime.DayOfWeek); |
|
|
|
addHour = 9; |
|
|
|
var to18senconds = Convert.ToInt32((startTime.Date.AddHours(18) - startTime).TotalSeconds); |
|
|
|
addSeconds = 18000 - to18senconds; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (startTime.Hour >= 18) |
|
|
|
{ |
|
|
|
//下一个工作日的18点结束
|
|
|
|
addDay = CalculateAddDay(startTime.DayOfWeek); |
|
|
|
addHour = 14; |
|
|
|
} |
|
|
|
} |
|
|
|
return startTime.Date.AddDays(addDay).AddHours(addHour).AddSeconds(addSeconds); |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
/// 计算剩余任务时间(秒)
|
|
|
|
/// </summary>
|
|
|
|