From 739d83a6a256d9b39bec6522256a9185c99ef19d Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Fri, 1 Dec 2023 09:09:28 +0800 Subject: [PATCH] 1 --- BBWY.Client/Helpers/PackTaskTimerHelper.cs | 195 +++------------- .../ViewModels/PackTask/TaskListViewModel.cs | 218 +++++++----------- .../PackTask/WareHouseListViewModel.cs | 121 ++-------- 3 files changed, 139 insertions(+), 395 deletions(-) diff --git a/BBWY.Client/Helpers/PackTaskTimerHelper.cs b/BBWY.Client/Helpers/PackTaskTimerHelper.cs index feacb6f9..dba5f870 100644 --- a/BBWY.Client/Helpers/PackTaskTimerHelper.cs +++ b/BBWY.Client/Helpers/PackTaskTimerHelper.cs @@ -20,63 +20,27 @@ namespace BBWY.Client.Helpers return false; } - /* - 中转仓各工序时效限制: - 待验收:8个工作时 - 待排单:1个工作时 - 待包装:8个工作时 - 待封箱:5个工作时 - 待贴单:2个工作时 - 总时长:24个工作时 - */ - - /// - /// 待验收:8个工作时 - /// - const int wait_inspection_task_time = 8; - /// - /// 待排单:1个工作时 - /// - const int wait_schedule_task_time = 1; - /// - /// 待包装:8个工作时 - /// - const int wait_package_task_time = 8; /// - /// 待封箱:5个工作时 - /// - const int wait_sealbox_task_time = 5; - /// - /// 待贴单:2个工作时 - /// - const int wait_stickynote_task_time = 2; - /// - /// 总时长:24个工作时 - /// - const int all_task_time = 24; - - - /// - /// 计算有效开始时间 + /// 计算有效超时时间 /// /// /// - 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 } /// - /// 计算有效完成时间 + /// 计算有效当前时间 /// /// 完成时间 /// - 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); - - //} - - - - /// - /// 计算任务超时截止时间 + /// 计算有效剩余时长 /// - /// 有效任务开始时间 - /// 有效时长 + /// 开始时间 + /// 完成时间 /// - 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); - } - - /// - /// 释放挂起任务 增加超时时长 - /// - /// 有效任务开始时间 - /// 有效挂起时长 - /// - 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; - } - /// - /// 有效任务时长() - /// - /// - /// - /// /// 有效挂起时长 - /// - public static TimeSpan AccountEffectiveTaskDuration(DateTime startTime, DateTime CompletedTime, TimeSpan? EffectiveAbortTaskDuration) - { - //计算超时天数 如果时间里包含周日 则扣一天 1天按8小时计算 - return AccountEffectiveDuration(startTime, CompletedTime).Add(EffectiveAbortTaskDuration ?? TimeSpan.FromHours(0)); - } + } /// - /// 计算有效时长(超时时长 任务耗时) + /// 计算有效时长(任务耗时) /// /// 开始时间 /// 完成时间 /// - 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; } } - /// /// 判断两个日期之间有多少个星期日 /// diff --git a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs b/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs index 9aba16e5..6f9b520e 100644 --- a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs +++ b/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.待验收; /// /// 任务状态 /// @@ -309,7 +309,7 @@ namespace BBWY.Client.ViewModels.PackTask /// 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();//初始化数据 - 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();//初始化数据 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; diff --git a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs index d5030e58..5d8ea8ab 100644 --- a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs +++ b/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;