Browse Source

1

AddValidOverTime
506583276@qq.com 2 years ago
parent
commit
739d83a6a2
  1. 195
      BBWY.Client/Helpers/PackTaskTimerHelper.cs
  2. 218
      BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs
  3. 121
      BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs

195
BBWY.Client/Helpers/PackTaskTimerHelper.cs

@ -20,63 +20,27 @@ namespace BBWY.Client.Helpers
return false;
}
/*
8
1
8
5
2
24
*/
/// <summary>
/// 待验收:8个工作时
/// </summary>
const int wait_inspection_task_time = 8;
/// <summary>
/// 待排单:1个工作时
/// </summary>
const int wait_schedule_task_time = 1;
/// <summary>
/// 待包装:8个工作时
/// </summary>
const int wait_package_task_time = 8;
/// <summary>
/// 待封箱:5个工作时
/// </summary>
const int wait_sealbox_task_time = 5;
/// <summary>
/// 待贴单:2个工作时
/// </summary>
const int wait_stickynote_task_time = 2;
/// <summary>
/// 总时长:24个工作时
/// </summary>
const int all_task_time = 24;
/// <summary>
/// 计算有效开始时间
/// 计算有效超时时间
/// </summary>
/// <param name="startTime"></param>
/// <returns></returns>
public static DateTime AccountEffectiveStartTime(DateTime startTime)
public static DateTime AccountEffectiveOverTime(DateTime overTime)
{
var userStartTime = startTime;//有效开始时间
var userStartTime = overTime;//有效开始时间
if (startTime.Hour < 9)
if (overTime.Hour < 9)
{
userStartTime = startTime.Date.AddHours(9);//未到9店 按9点计时
userStartTime = overTime.Date.AddHours(9);//未到9店 按9点计时
}
if (startTime.Hour >= 18)//从隔天9点开始计时
if (overTime.Hour >= 18)//从隔天9点开始计时
{
userStartTime = startTime.Date.AddHours(18);//超过18点 按次日9点计时
userStartTime = overTime.Date.AddHours(18);//超过18点 按次日9点计时
}
if (startTime.Hour == 12)
if (overTime.Hour == 12)
{
userStartTime = startTime.Date.AddHours(13);//中午未到13点 按13点计时
userStartTime = overTime.Date.AddHours(13);//中午未到13点 按13点计时
}
if (userStartTime.DayOfWeek == DayOfWeek.Sunday)
@ -88,25 +52,25 @@ namespace BBWY.Client.Helpers
}
/// <summary>
/// 计算有效完成时间
/// 计算有效当前时间
/// </summary>
/// <param name="endTime">完成时间</param>
/// <returns></returns>
public static DateTime AccountEffectiveCompletedTime(DateTime endTime)
public static DateTime AccountEffectiveNowTime(DateTime nowTime)
{
var userEndTime = endTime;//有效开始时间
var userEndTime = nowTime;//有效开始时间
if (endTime.Hour < 9)
if (nowTime.Hour < 9)
{
userEndTime = endTime.Date.AddDays(-1).AddHours(18);//未到9店 按前一天 18点完成
userEndTime = nowTime.Date.AddDays(-1).AddHours(18);//未到9店 按前一天 18点完成
}
if (endTime.Hour >= 18)
if (nowTime.Hour >= 18)
{
userEndTime = endTime.Date.AddHours(18);//超过18点 按18点完成
userEndTime = nowTime.Date.AddHours(18);//超过18点 按18点完成
}
if (endTime.Hour == 12)
if (nowTime.Hour == 12)
{
userEndTime = endTime.Date.AddHours(12);//中午未到13点 按12点计时
userEndTime = nowTime.Date.AddHours(12);//中午未到13点 按12点计时
}
if (userEndTime.DayOfWeek == DayOfWeek.Sunday)
@ -118,150 +82,68 @@ namespace BBWY.Client.Helpers
//public static DateTime AccountOverTime(DateTime startTime, OverTimeType overTimeType)
//{
// double userTime = 0;
// switch (overTimeType)
// {
// case OverTimeType.待验收:
// userTime = wait_inspection_task_time;
// break;
// case OverTimeType.待包装:
// userTime = wait_package_task_time;
// break;
// case OverTimeType.待封箱:
// userTime = wait_sealbox_task_time;
// break;
// case OverTimeType.待贴单:
// userTime = wait_stickynote_task_time;
// break;
// case OverTimeType.待排单:
// userTime = wait_schedule_task_time;
// break;
// default:
// break;
// }
// var userStartTime = AccountEffectiveStartTime(startTime);
// return AccountOverTime(userStartTime, userTime);
//}
/// <summary>
/// 计算任务超时截止时间
/// 计算有效剩余时长
/// </summary>
/// <param name="userStartTime">有效任务开始时间</param>
/// <param name="useTime">有效时长</param>
/// <param name="startTime">开始时间</param>
/// <param name="completedTime">完成时间</param>
/// <returns></returns>
public static DateTime AccountOverTime(DateTime userStartTime, double useTime)
public static TimeSpan AccountEffectiveRemainDuration(DateTime nowTime, DateTime overTime)
{
var overTime = userStartTime.AddHours(useTime);//17点 5
if (userStartTime.Hour <= 12 && overTime.Hour > 12)//中午休息时间
{
overTime = overTime.AddHours(1);
}
if (overTime.Hour >= 18)
{
overTime = overTime.Date.AddDays(1).AddHours(9).Add((overTime - overTime.Date.AddHours(18)));
}
if (overTime.DayOfWeek == DayOfWeek.Sunday)
{
overTime = overTime.Date.AddDays(1);//周日算周一
}
return overTime;
var effectiveNowTime = AccountEffectiveNowTime(nowTime);
var effectiveOverTime = AccountEffectiveOverTime(overTime);
}
/// <summary>
/// 释放挂起任务 增加超时时长
/// </summary>
/// <param name="userStartTime">有效任务开始时间</param>
/// <param name="useTime">有效挂起时长</param>
/// <returns></returns>
public static DateTime AccountOverTime(DateTime userStartTime, TimeSpan useTime)
{
var overTime = userStartTime.Add(useTime);//17点 5
if (userStartTime.Hour <= 12 && overTime.Hour > 12)//中午休息时间
if (effectiveNowTime < effectiveOverTime)
{
overTime = overTime.AddHours(1);
}
return AccountEffectiveDuration(effectiveNowTime , effectiveOverTime);
if (overTime.Hour >= 18)
{
overTime = overTime.Date.AddDays(1).AddHours(9).Add((overTime - overTime.Date.AddHours(18)));
}
return -AccountEffectiveDuration( effectiveOverTime, effectiveNowTime);
if (overTime.DayOfWeek == DayOfWeek.Sunday)
{
overTime = overTime.Date.AddDays(1);//周日算周一
}
return overTime;
}
/// <summary>
/// 有效任务时长()
/// </summary>
/// <param name="startTime"></param>
/// <param name="CompletedTime"></param>
/// /// <param name="EffectiveAbortTaskDuration"> 有效挂起时长</param>
/// <returns></returns>
public static TimeSpan AccountEffectiveTaskDuration(DateTime startTime, DateTime CompletedTime, TimeSpan? EffectiveAbortTaskDuration)
{
//计算超时天数 如果时间里包含周日 则扣一天 1天按8小时计算
return AccountEffectiveDuration(startTime, CompletedTime).Add(EffectiveAbortTaskDuration ?? TimeSpan.FromHours(0));
}
}
/// <summary>
/// 计算有效时长(超时时长 任务耗时)
/// 计算有效时长(任务耗时)
/// </summary>
/// <param name="startTime">开始时间</param>
/// <param name="completedTime">完成时间</param>
/// <returns></returns>
public static TimeSpan AccountEffectiveDuration(DateTime startTime, DateTime completedTime)
public static TimeSpan AccountEffectiveDuration(DateTime effectiveStartTime, DateTime effectiveCompletedTime)
{
var effectiveStartTime = AccountEffectiveStartTime(startTime);
var effectiveCompletedTime = AccountEffectiveCompletedTime(completedTime);
var timespan = effectiveCompletedTime - effectiveStartTime;
int effectiveDays = timespan.Days - CountSundays(effectiveStartTime, effectiveCompletedTime);//有效相隔天数
var hoursTimeSpan = timespan.Add(TimeSpan.FromDays(-effectiveDays));//计算小时差
var hoursTimeSpan = timespan.Add(TimeSpan.FromDays(-CountSundays(effectiveStartTime, effectiveCompletedTime)));//计算小时差
//1. 开始时间 12点 结束时间 10点
if (effectiveStartTime.Millisecond > effectiveCompletedTime.Millisecond)
if (effectiveStartTime.TimeOfDay > effectiveCompletedTime.TimeOfDay)
{
if (effectiveStartTime.Hour <= 12)//-16小时
return hoursTimeSpan.Add(TimeSpan.FromHours(-16)).Add(TimeSpan.FromDays(effectiveDays));
return hoursTimeSpan.Add(TimeSpan.FromHours(-16));
else
{
if (effectiveCompletedTime.Hour <= 12)
return hoursTimeSpan.Add(TimeSpan.FromHours(-15)).Add(TimeSpan.FromDays(effectiveDays ));
return hoursTimeSpan.Add(TimeSpan.FromHours(-15));
else
return hoursTimeSpan.Add(TimeSpan.FromHours(-16)).Add(TimeSpan.FromDays(effectiveDays));
return hoursTimeSpan.Add(TimeSpan.FromHours(-16));
}
}
@ -269,14 +151,13 @@ namespace BBWY.Client.Helpers
{
if (effectiveCompletedTime.Hour > 12)
if (effectiveStartTime.Hour <= 12)
return hoursTimeSpan.Add(TimeSpan.FromHours(-1)).Add(TimeSpan.FromDays(effectiveDays));
return hoursTimeSpan.Add(TimeSpan.FromHours(-1));
return hoursTimeSpan.Add(TimeSpan.FromDays(effectiveDays));
return hoursTimeSpan;
}
}
/// <summary>
/// 判断两个日期之间有多少个星期日
/// </summary>

218
BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs

@ -40,7 +40,7 @@ namespace BBWY.Client.ViewModels.PackTask
public partial class TaskListViewModel : BaseVM, IDenpendency//注入服务
{
private QualityTaskExceptionState? qualityTaskExceptionState= Models.QualityTaskExceptionState.;
private QualityTaskExceptionState? qualityTaskExceptionState = Models.QualityTaskExceptionState.;
/// <summary>
/// 任务状态
/// </summary>
@ -309,7 +309,7 @@ namespace BBWY.Client.ViewModels.PackTask
/// </summary>
public string QualityTaskCount { get => qualityTaskCount; set { Set(ref qualityTaskCount, value); } }
private PackagingTaskExceptionState? packagingTaskExceptionState;
@ -881,7 +881,7 @@ namespace BBWY.Client.ViewModels.PackTask
public void SearchTaskList()
{
IsStartThread = false;
IsLoading = true;
@ -890,7 +890,7 @@ namespace BBWY.Client.ViewModels.PackTask
Task.Factory.StartNew(() =>
{
try
@ -898,8 +898,8 @@ namespace BBWY.Client.ViewModels.PackTask
if (TaskState == Models.TaskState.)
{
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据
var datas = qualityTaskService.SearchQualityTaskList( skuId:SearchSkuId,taskId: SearchTaskId,spuId: SearchSpuId, orderSn: SearchOrderSn, QualityTaskExceptionState: this.QualityTaskExceptionState, shopId: globalContext.User.Shop.ShopId.ToString(),
pageIndex: PageIndex,pageSize: PageSize);
var datas = qualityTaskService.SearchQualityTaskList(skuId: SearchSkuId, taskId: SearchTaskId, spuId: SearchSpuId, orderSn: SearchOrderSn, QualityTaskExceptionState: this.QualityTaskExceptionState, shopId: globalContext.User.Shop.ShopId.ToString(),
pageIndex: PageIndex, pageSize: PageSize);
@ -963,11 +963,14 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in packtasks)
{
TimeSpan datetime;
if (item.SendToSetSkuConfigureTime != null)
datetime = item.QualityCompletionOverTime.Value.Subtract(item.SendToSetSkuConfigureTime.Value);
else
datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now);
//TimeSpan datetime;
//if (item.SendToSetSkuConfigureTime != null)
// datetime = item.QualityCompletionOverTime.Value.Subtract(item.SendToSetSkuConfigureTime.Value);
//else
// datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
{
@ -1004,8 +1007,8 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in packtasks)
{
TimeSpan datetime;
datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
//TimeSpan datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
{
@ -1064,11 +1067,12 @@ namespace BBWY.Client.ViewModels.PackTask
{
}
}
else if (TaskState == Models.TaskState.) {
else if (TaskState == Models.TaskState.)
{
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据
var datas = packagingTaskService.SearchPackagingTaskList(skuId: SearchSkuId, taskId: SearchTaskId, spuId: SearchSpuId, orderSn: SearchOrderSn, PackagingTaskExceptionState: this.PackagingTaskExceptionState, shopId: globalContext.User.Shop.ShopId.ToString(),
pageIndex: PageIndex, pageSize: PageSize);
if (datas != null && datas.Data != null && datas.Success)
{
@ -1122,47 +1126,74 @@ namespace BBWY.Client.ViewModels.PackTask
}
if (TaskState == Models.TaskState.)
var packCompletedTasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.PackCompletionOverTime != null && p.TaskAbortTime == null).ToList();
if (packCompletedTasks.Count() > 0)
{
var packCompletedTasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.PackCompletionOverTime != null).ToList();
if (packCompletedTasks.Count() > 0)
{
packOverTimeThread = new Thread(() =>
packOverTimeThread = new Thread(() =>
{
Thread.Sleep(1000);
IsStartThread = true;
while (IsStartThread)
{
IsStartThread = true;
while (IsStartThread)
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
App.Current.Dispatcher.BeginInvoke(new Action(() =>
foreach (var item in packCompletedTasks)
{
foreach (var item in packCompletedTasks)
{
var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
if (datetime.TotalMilliseconds > 0)
{
item.IsPackOverTime = false;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
}
else
{
item.IsPackOverTime = true;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
}
//var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsPackOverTime = false;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
}
else
{
item.IsPackOverTime = true;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
}
}));
Thread.Sleep(1000);
}
});
//任务倒计时数据
packOverTimeThread.IsBackground = true;
packOverTimeThread.Start();
}
}));
Thread.Sleep(1000);
}
});
//任务倒计时数据
packOverTimeThread.IsBackground = true;
packOverTimeThread.Start();
}
}
//任务状态为待打包
var packtasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.TaskAbortTime != null).ToList();
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in packtasks)
{
//TimeSpan datetime = item.PackCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value);
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
{
item.IsPackOverTime = false;
}
else
{
item.IsPackOverTime = true;
}
}
}));
@ -1278,96 +1309,6 @@ namespace BBWY.Client.ViewModels.PackTask
}
//任务状态为待验收
if (TaskState == Models.TaskState.)
{
var packtasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.QualityCompletionOverTime != null).ToList();
if (packtasks.Count() > 0)
{
//if (qualityOverTimeThread!=null)
//{
// qualityOverTimeThread.Abort();
//}
qualityOverTimeThread = new Thread(() =>
{
IsStartThread = true;
while (IsStartThread)
{
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in packtasks)
{
TimeSpan datetime;
if (item.SendToSetSkuConfigureTime != null)
datetime = item.QualityCompletionOverTime.Value.Subtract(item.SendToSetSkuConfigureTime.Value);
else
datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
item.IsQualityOverTime = false;
else
item.IsQualityOverTime = true;
}
}));
Thread.Sleep(1000);
}
});
//任务倒计时数据
qualityOverTimeThread.IsBackground = true;
qualityOverTimeThread.Start();
}
}
//任务状态为待打包
if (TaskState == Models.TaskState.)
{
var packCompletedTasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.PackCompletionOverTime != null).ToList();
if (packCompletedTasks.Count() > 0)
{
packOverTimeThread = new Thread(() =>
{
IsStartThread = true;
while (IsStartThread)
{
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in packCompletedTasks)
{
var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
if (datetime.TotalMilliseconds > 0)
{
item.IsPackOverTime = false;
item.PackRemainTime = $"{datetime.Days}天{datetime.Hours}小时{datetime.Minutes}分";
}
else
{
item.IsPackOverTime = true;
item.PackRemainTime = $"{-datetime.Days}天{-datetime.Hours}小时{-datetime.Minutes}分";
}
}
}));
Thread.Sleep(1000);
}
});
//任务倒计时数据
packOverTimeThread.IsBackground = true;
packOverTimeThread.Start();
}
}
if (TaskState == Models.TaskState.)
{
var packCompletedTasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.ScheduleOverTime != null).ToList();
@ -1387,7 +1328,9 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in packCompletedTasks)
{
var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now);
//var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsScheduleOverTime = false;
@ -1758,7 +1701,8 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in sealboxTasks)
{
var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
// var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsWaitTransportOverTime = false;

121
BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs

@ -2097,7 +2097,8 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in sealboxTasks)
{
var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
// var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.TransportOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsWaitTransportOverTime = false;
@ -2217,7 +2218,9 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in sealboxTasks)
{
var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now);
//var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsSealBoxOverTime = false;
@ -2395,11 +2398,8 @@ namespace BBWY.Client.ViewModels.PackTask
// item.IsQualityOverTime = true;
//}
TimeSpan datetime;
if (item.QualityCompletionOverTime.Value > DateTime.Now)
datetime = PackTaskTimerHelper.AccountEffectiveDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
else
datetime = -PackTaskTimerHelper.AccountEffectiveDuration( item.QualityCompletionOverTime.Value, DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
{
@ -2436,8 +2436,9 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in packtasks)
{
TimeSpan datetime;
datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value);
//datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
{
@ -2562,6 +2563,7 @@ namespace BBWY.Client.ViewModels.PackTask
packOverTimeThread = new Thread(() =>
{
Thread.Sleep(1000);
IsStartThread = true;
while (IsStartThread)
{
@ -2569,7 +2571,9 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in packCompletedTasks)
{
var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
//var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.PackCompletionOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsPackOverTime = false;
@ -2605,8 +2609,9 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in packtasks)
{
TimeSpan datetime;
datetime = item.PackCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
//TimeSpan datetime = item.PackCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value);
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
{
@ -2732,94 +2737,6 @@ namespace BBWY.Client.ViewModels.PackTask
}));
}
if (TaskState == Models.TaskState.)
{
qualityOverTimeThread = new Thread(() =>
{
var packtasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.QualityCompletionOverTime != null).ToList();
if (packtasks.Count() > 0)
{
IsStartThread = true;
while (IsStartThread)
{
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in packtasks)
{
TimeSpan datetime;
if (item.SendToSetSkuConfigureTime != null)
datetime = item.QualityCompletionOverTime.Value.Subtract(item.SendToSetSkuConfigureTime.Value);
else
datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0)
{
item.IsQualityOverTime = false;
}
else
{
item.IsQualityOverTime = true;
}
}
}));
Thread.Sleep(1000);
}
}
});
//任务倒计时数据
qualityOverTimeThread.IsBackground = true;
qualityOverTimeThread.Start();
//任务状态为待验收
}
if (TaskState == Models.TaskState.)
{
var packCompletedTasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.PackCompletionOverTime != null).ToList();
if (packCompletedTasks.Count() > 0)
{
packOverTimeThread = new Thread(() =>
{
IsStartThread = true;
while (IsStartThread)
{
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in packCompletedTasks)
{
var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
if (datetime.TotalMilliseconds > 0)
{
item.IsPackOverTime = false;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
}
else
{
item.IsPackOverTime = true;
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
}
}
}));
Thread.Sleep(1000);
}
});
//任务倒计时数据
packOverTimeThread.IsBackground = true;
packOverTimeThread.Start();
}
}
if (TaskState == Models.TaskState.)
{
@ -2828,6 +2745,7 @@ namespace BBWY.Client.ViewModels.PackTask
{
scheduleOverTimeThread = new Thread(() =>
{
Thread.Sleep(1000);
IsStartThread = true;
while (IsStartThread)
{
@ -2835,7 +2753,8 @@ namespace BBWY.Client.ViewModels.PackTask
{
foreach (var item in packCompletedTasks)
{
var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now);
//var datetime = item.ScheduleOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.ScheduleOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsScheduleOverTime = false;

Loading…
Cancel
Save