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; 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> /// <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> /// </summary>
/// <param name="startTime"></param> /// <param name="startTime"></param>
/// <returns></returns> /// <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) if (userStartTime.DayOfWeek == DayOfWeek.Sunday)
@ -88,25 +52,25 @@ namespace BBWY.Client.Helpers
} }
/// <summary> /// <summary>
/// 计算有效完成时间 /// 计算有效当前时间
/// </summary> /// </summary>
/// <param name="endTime">完成时间</param> /// <param name="endTime">完成时间</param>
/// <returns></returns> /// <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) 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>
/// 计算任务超时截止时间 /// 计算有效剩余时长
/// </summary> /// </summary>
/// <param name="userStartTime">有效任务开始时间</param> /// <param name="startTime">开始时间</param>
/// <param name="useTime">有效时长</param> /// <param name="completedTime">完成时间</param>
/// <returns></returns> /// <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) var effectiveNowTime = AccountEffectiveNowTime(nowTime);
{
overTime = overTime.Date.AddDays(1);//周日算周一
}
return overTime;
var effectiveOverTime = AccountEffectiveOverTime(overTime);
}
if (effectiveNowTime < effectiveOverTime)
/// <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)//中午休息时间
{ {
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>
/// 计算有效时长(超时时长 任务耗时) /// 计算有效时长(任务耗时)
/// </summary> /// </summary>
/// <param name="startTime">开始时间</param> /// <param name="startTime">开始时间</param>
/// <param name="completedTime">完成时间</param> /// <param name="completedTime">完成时间</param>
/// <returns></returns> /// <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; 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点 //1. 开始时间 12点 结束时间 10点
if (effectiveStartTime.Millisecond > effectiveCompletedTime.Millisecond) if (effectiveStartTime.TimeOfDay > effectiveCompletedTime.TimeOfDay)
{ {
if (effectiveStartTime.Hour <= 12)//-16小时 if (effectiveStartTime.Hour <= 12)//-16小时
return hoursTimeSpan.Add(TimeSpan.FromHours(-16)).Add(TimeSpan.FromDays(effectiveDays)); return hoursTimeSpan.Add(TimeSpan.FromHours(-16));
else else
{ {
if (effectiveCompletedTime.Hour <= 12) if (effectiveCompletedTime.Hour <= 12)
return hoursTimeSpan.Add(TimeSpan.FromHours(-15)).Add(TimeSpan.FromDays(effectiveDays )); return hoursTimeSpan.Add(TimeSpan.FromHours(-15));
else 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 (effectiveCompletedTime.Hour > 12)
if (effectiveStartTime.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>
/// 判断两个日期之间有多少个星期日 /// 判断两个日期之间有多少个星期日
/// </summary> /// </summary>

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

@ -40,7 +40,7 @@ namespace BBWY.Client.ViewModels.PackTask
public partial class TaskListViewModel : BaseVM, IDenpendency//注入服务 public partial class TaskListViewModel : BaseVM, IDenpendency//注入服务
{ {
private QualityTaskExceptionState? qualityTaskExceptionState= Models.QualityTaskExceptionState.; private QualityTaskExceptionState? qualityTaskExceptionState = Models.QualityTaskExceptionState.;
/// <summary> /// <summary>
/// 任务状态 /// 任务状态
/// </summary> /// </summary>
@ -309,7 +309,7 @@ namespace BBWY.Client.ViewModels.PackTask
/// </summary> /// </summary>
public string QualityTaskCount { get => qualityTaskCount; set { Set(ref qualityTaskCount, value); } } public string QualityTaskCount { get => qualityTaskCount; set { Set(ref qualityTaskCount, value); } }
private PackagingTaskExceptionState? packagingTaskExceptionState; private PackagingTaskExceptionState? packagingTaskExceptionState;
@ -881,7 +881,7 @@ namespace BBWY.Client.ViewModels.PackTask
public void SearchTaskList() public void SearchTaskList()
{ {
IsStartThread = false; IsStartThread = false;
IsLoading = true; IsLoading = true;
@ -890,7 +890,7 @@ namespace BBWY.Client.ViewModels.PackTask
Task.Factory.StartNew(() => Task.Factory.StartNew(() =>
{ {
try try
@ -898,8 +898,8 @@ namespace BBWY.Client.ViewModels.PackTask
if (TaskState == Models.TaskState.) if (TaskState == Models.TaskState.)
{ {
PackTaskList = new ObservableCollection<PackTaskModel>();//初始化数据 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(), 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); pageIndex: PageIndex, pageSize: PageSize);
@ -963,11 +963,14 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in packtasks) foreach (var item in packtasks)
{ {
TimeSpan datetime; //TimeSpan datetime;
if (item.SendToSetSkuConfigureTime != null) //if (item.SendToSetSkuConfigureTime != null)
datetime = item.QualityCompletionOverTime.Value.Subtract(item.SendToSetSkuConfigureTime.Value); // datetime = item.QualityCompletionOverTime.Value.Subtract(item.SendToSetSkuConfigureTime.Value);
else //else
datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now); // datetime = item.QualityCompletionOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds > 0)
{ {
@ -1004,8 +1007,8 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in packtasks) foreach (var item in packtasks)
{ {
TimeSpan datetime; //TimeSpan datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
datetime = item.QualityCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.QualityCompletionOverTime.Value);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) 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>();//初始化数据 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(), 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); pageIndex: PageIndex, pageSize: PageSize);
if (datas != null && datas.Data != null && datas.Success) 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; App.Current.Dispatcher.BeginInvoke(new Action(() =>
while (IsStartThread)
{ {
App.Current.Dispatcher.BeginInvoke(new Action(() => foreach (var item in packCompletedTasks)
{ {
foreach (var item in packCompletedTasks) //var datetime = item.PackCompletionOverTime.Value.Subtract(DateTime.Now);
{
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);
}
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; Thread.Sleep(1000);
packOverTimeThread.Start(); }
});
//任务倒计时数据
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.) if (TaskState == Models.TaskState.)
{ {
var packCompletedTasks = PackTaskList.Where(p => p.TaskState == Models.TaskState. && p.ScheduleOverTime != null).ToList(); 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) 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) if (datetime.TotalMilliseconds > 0)
{ {
item.IsScheduleOverTime = false; item.IsScheduleOverTime = false;
@ -1758,7 +1701,8 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in sealboxTasks) 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) if (datetime.TotalMilliseconds > 0)
{ {
item.IsWaitTransportOverTime = false; item.IsWaitTransportOverTime = false;

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

@ -2097,7 +2097,8 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in sealboxTasks) 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) if (datetime.TotalMilliseconds > 0)
{ {
item.IsWaitTransportOverTime = false; item.IsWaitTransportOverTime = false;
@ -2217,7 +2218,9 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in sealboxTasks) 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) if (datetime.TotalMilliseconds > 0)
{ {
item.IsSealBoxOverTime = false; item.IsSealBoxOverTime = false;
@ -2395,11 +2398,8 @@ namespace BBWY.Client.ViewModels.PackTask
// item.IsQualityOverTime = true; // item.IsQualityOverTime = true;
//} //}
TimeSpan datetime; TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
if (item.QualityCompletionOverTime.Value > DateTime.Now)
datetime = PackTaskTimerHelper.AccountEffectiveDuration(DateTime.Now, item.QualityCompletionOverTime.Value);
else
datetime = -PackTaskTimerHelper.AccountEffectiveDuration( item.QualityCompletionOverTime.Value, DateTime.Now);
item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds > 0)
{ {
@ -2436,8 +2436,9 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in packtasks) 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); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds > 0)
{ {
@ -2562,6 +2563,7 @@ namespace BBWY.Client.ViewModels.PackTask
packOverTimeThread = new Thread(() => packOverTimeThread = new Thread(() =>
{ {
Thread.Sleep(1000);
IsStartThread = true; IsStartThread = true;
while (IsStartThread) while (IsStartThread)
{ {
@ -2569,7 +2571,9 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in packCompletedTasks) 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) if (datetime.TotalMilliseconds > 0)
{ {
item.IsPackOverTime = false; item.IsPackOverTime = false;
@ -2605,8 +2609,9 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in packtasks) foreach (var item in packtasks)
{ {
TimeSpan datetime; //TimeSpan datetime = item.PackCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
datetime = item.PackCompletionOverTime.Value.Subtract(item.TaskAbortTime.Value);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(item.TaskAbortTime.Value, item.PackCompletionOverTime.Value);
item.PackRemainTime = OverTimeHelper.GetTimeString(datetime); item.PackRemainTime = OverTimeHelper.GetTimeString(datetime);
if (datetime.TotalMilliseconds > 0) 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.) if (TaskState == Models.TaskState.)
{ {
@ -2828,6 +2745,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
scheduleOverTimeThread = new Thread(() => scheduleOverTimeThread = new Thread(() =>
{ {
Thread.Sleep(1000);
IsStartThread = true; IsStartThread = true;
while (IsStartThread) while (IsStartThread)
{ {
@ -2835,7 +2753,8 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in packCompletedTasks) 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) if (datetime.TotalMilliseconds > 0)
{ {
item.IsScheduleOverTime = false; item.IsScheduleOverTime = false;

Loading…
Cancel
Save