Browse Source

1

AddValidOverTime
506583276@qq.com 1 year ago
parent
commit
d3af990dc6
  1. 86
      BBWY.Client/APIServices/QiKu/PackTaskOverTimeDetailService.cs
  2. 37
      BBWY.Client/APIServices/QiKu/PackTaskService.cs
  3. 4
      BBWY.Client/BBWYAppSettings.json
  4. 21
      BBWY.Client/Models/APIModel/Response/PackTask/SearchWaitFallWareResponse.cs
  5. 18
      BBWY.Client/Models/Enums.cs
  6. 11
      BBWY.Client/Models/PackTask/ShopTotal.cs
  7. 2
      BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs
  8. 71
      BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs
  9. 76
      BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs
  10. 14
      BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs
  11. 73
      BBWY.Client/Views/FallWare/WaitFallWareControl.xaml
  12. 2
      BBWY.Client/Views/FallWare/WareFallWareListControl.xaml
  13. 4
      BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml
  14. 10
      BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml
  15. 28
      BBWY.Client/Views/TaskOverTime/SubmitOverTimeMarkMsgWindow.xaml.cs

86
BBWY.Client/APIServices/QiKu/PackTaskOverTimeDetailService.cs

@ -0,0 +1,86 @@
using BBWY.Client.Models;
using BBWY.Client.Models.APIModel;
using BBWY.Common.Http;
using BBWY.Common.Models;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text;
namespace BBWY.Client.APIServices.QiKu
{
public class PackTaskOverTimeDetailService : BaseApiService, IDenpendency
{
public PackTaskOverTimeDetailService(RestApiService restApiService, GlobalContext globalContext) : base(restApiService, globalContext)
{
}
public ApiResponse<SearchTaskListResponse> SearchTaskList(string skuId = null, string taskId = null
, string spuId = null, string orderSn = null,
TaskState? TaskState = null,
int pageIndex = 1,
int pageSize = 10
)
{
return SendRequest<SearchTaskListResponse>(globalContext.QKApiHost, "api/PackTask/SearchTaskList", new
{
orderSn,
spuId,
skuId,
taskId,
TaskState,
pageIndex,
pageSize,
ShopId = globalContext.User.Shop.ShopId.ToString(),
}, null, HttpMethod.Post);
}
/// <summary>
/// 查询超时任务列表
/// </summary>
/// <param name="taskId"></param>
/// <returns></returns>
public ApiResponse<SearchOverTimeTaskResponse> SearchOverTimeTaskList(string ShopId, DateTime? StartTime, DateTime? EndTime, OverTimeTaskState? overTimeTaskState, OverTimeTaskType? OverTimeType, int? PageIndex, int? PageSize = 20)
{
return SendRequest<SearchOverTimeTaskResponse>(globalContext.QKApiHost, $"api/PackTaskOverTimeDetail/SearchOverTimeTaskList", new
{
ShopId,
StartTime,
EndTime,
OverTimeType= OverTimeType==0?null: OverTimeType,
PageIndex,
PageSize,
OverTimeTaskState= (overTimeTaskState == OverTimeTaskState.) ? null : overTimeTaskState,
}, null, HttpMethod.Post);
}
// <summary>
/// 任务超时提交备注(解释超时原因)
/// </summary>
/// <param name="submitOverTimeMarkMsgRequest"></param>
/// <returns></returns>
public ApiResponse<object> SubmitOverTimeMarkMsg(TaskMessageType TaskType, long OverTimeTaskId, OverTimeType OverTimeType, string OverTimeRemarkMsg)
{
return SendRequest<object>(globalContext.QKApiHost, "api/PackTaskOverTimeDetail/SubmitOverTimeMarkMsg", new
{
TaskType,
OverTimeTaskId,
OverTimeType,
OverTimeRemarkMsg,
UserName=globalContext.User.Name,
}, null, HttpMethod.Post);
}
}
}

37
BBWY.Client/APIServices/QiKu/PackTaskService.cs

@ -332,34 +332,17 @@ namespace BBWY.Client.APIServices
return SendRequest<object>("http://bbwyb.qiyue666.com", $"api/purchaseorder/batchmanualsign", new { wayBillNoList }, null, HttpMethod.Post); return SendRequest<object>("http://bbwyb.qiyue666.com", $"api/purchaseorder/batchmanualsign", new { wayBillNoList }, null, HttpMethod.Post);
} }
/// <summary>
/// 查询超时任务列表
/// </summary>
/// <param name="taskId"></param>
/// <returns></returns>
public ApiResponse<SearchOverTimeTaskResponse> SearchOverTimeTaskList(string ShopId, DateTime? StartTime, DateTime? EndTime, OverTimeTaskState overTimeTaskState, OverTimeTaskType? OverTimeTaskType, int? PageIndex, int? PageSize = 20)
{
return SendRequest<SearchOverTimeTaskResponse>(globalContext.QKApiHost, $"api/PackTask/SearchOverTimeTaskList", new
{
ShopId,
StartTime,
EndTime,
OverTimeTaskType,
PageIndex,
PageSize,
overTimeTaskState
}, null, HttpMethod.Post);
}
public ApiResponse<object> SubmitOverTimeMarkMsg(OverTimeTaskType OverTimeTaskType, long Id, string MarkMsg) //public ApiResponse<object> SubmitOverTimeMarkMsg(OverTimeTaskType OverTimeTaskType, long Id, string MarkMsg)
{ //{
return SendRequest<object>(globalContext.QKApiHost, $"api/PackTask/SubmitOverTimeMarkMsg", new // return SendRequest<object>(globalContext.QKApiHost, $"api/PackTask/SubmitOverTimeMarkMsg", new
{ // {
OverTimeTaskType, // OverTimeTaskType,
Id, // Id,
MarkMsg, // MarkMsg,
}, null, HttpMethod.Post); // }, null, HttpMethod.Post);
} //}
public ApiResponse<object> SendToSetSkuConfigure(long taskId) public ApiResponse<object> SendToSetSkuConfigure(long taskId)
{ {

4
BBWY.Client/BBWYAppSettings.json

@ -4,6 +4,6 @@
"MDSApiHost": "http://mdsapi.qiyue666.com", "MDSApiHost": "http://mdsapi.qiyue666.com",
"JOSApiHost": "", "JOSApiHost": "",
"1688ApiHost": "", "1688ApiHost": "",
//"QKApiHost": "http://localhost:8080" "QKApiHost": "http://localhost:8080"
"QKApiHost": "http://qiku.qiyue666.com" // "QKApiHost": "http://qiku.qiyue666.com"
} }

21
BBWY.Client/Models/APIModel/Response/PackTask/SearchWaitFallWareResponse.cs

@ -78,6 +78,11 @@ namespace BBWY.Client.Models.APIModel
/// 提交采购单过期时间 /// 提交采购单过期时间
/// </summary> /// </summary>
public DateTime? SetPurchaseOrderOverTime { get; set; } public DateTime? SetPurchaseOrderOverTime { get; set; }
public DateTime? SetWaybillNoOverTime { get; set; }
/// <summary>
/// 贴单超时时间备注
/// </summary>
public string SetWaybillNoOverTimeMsg { get; set; }
} }
public class WaitFallWareModel:NotifyObject public class WaitFallWareModel:NotifyObject
@ -154,6 +159,22 @@ namespace BBWY.Client.Models.APIModel
public bool IsFallWareOverTime { get => isFallWareOverTime; set { Set(ref isFallWareOverTime, value); } } public bool IsFallWareOverTime { get => isFallWareOverTime; set { Set(ref isFallWareOverTime, value); } }
/// <summary>
/// 贴单过期时间
/// </summary>
public DateTime? SetWaybillNoOverTime { get; set; }
/// <summary>
/// 贴单超时时间备注
/// </summary>
public string SetWaybillNoOverTimeMsg { get; set; }
private string setWaybillNoRemainTime;
public string SetWaybillNoRemainTime { get => setWaybillNoRemainTime; set { Set(ref setWaybillNoRemainTime, value); } }
private bool isSetWaybillNoOverTime;
public bool IsSetWaybillNoOverTime { get => isSetWaybillNoOverTime; set { Set(ref isSetWaybillNoOverTime, value); } }
} }
public class BoxConfigureData public class BoxConfigureData
{ {

18
BBWY.Client/Models/Enums.cs

@ -519,9 +519,25 @@
= 2,//已到货 = 2,//已到货
= 3, = 3,
= 4, = 4,
= 8, = 8,
= 11, = 11,
=13, =13,
= 15,
}
/// <summary>
/// 超时任务类型 (待验收 = 2, 待包装 = 3,待封箱 = 4,待设置采购单 = 8,待转运 = 11,待排单 = 13,待贴单 = 15)
/// </summary>
public enum OverTimeType
{
= 0,
= 2,
= 3,
= 4,
= 8,
= 11,
= 13,
= 15,
} }
/// <summary> /// <summary>

11
BBWY.Client/Models/PackTask/ShopTotal.cs

@ -2,18 +2,19 @@
using BBWY.Client.ViewModels; using BBWY.Client.ViewModels;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using System.Text; using System.Text;
namespace BBWY.Client.Models.PackTask namespace BBWY.Client.Models.PackTask
{ {
public class ShopTotal :NotifyObject public class ShopTotal : NotifyObject
{ {
private FeesItemResponse feesItemResponse; private FeesItemResponse feesItemResponse;
public FeesItemResponse FeesItemResponse { get => feesItemResponse; set { Set(ref feesItemResponse, value); } } public FeesItemResponse FeesItemResponse { get => feesItemResponse; set { Set(ref feesItemResponse, value); } }
private long id; private long id;
public long Id { get => id; set { Set(ref id, value); } } public long Id { get => id; set { Set(ref id, value); } }
@ -106,8 +107,12 @@ namespace BBWY.Client.Models.PackTask
// string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材总价,工序类型,工序套餐,工序单价,打包原价,打包折扣系数,打包折扣价,总收费"; // string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材总价,工序类型,工序套餐,工序单价,打包原价,打包折扣系数,打包折扣价,总收费";
public override string ToString() public override string ToString()
{ {
string ConsumableStr = string.Empty;
if (ConsumableList != null && ConsumableList.Count > 0)
ConsumableStr = string.Join(",", ConsumableList.Select(x => $"{x.ItemName} {x.ItemPrice}*{x.ItemCount}"));
return $"{TaskId},{CreateTime?.ToString("MM-dd")},{IsSettle},{DepartmentName},{ShopName}" + return $"{TaskId},{CreateTime?.ToString("MM-dd")},{IsSettle},{DepartmentName},{ShopName}" +
$",{SkuCount},{ArrivalQuantity},{ConsumableFees},{ProcessTypeName},{ProcessComboName},{ProcessComboPrice},{PackFees},{DiscountFactor},{PackDisCountFees},{AllFees}"; $",{SkuCount},{ArrivalQuantity},\"{ConsumableStr}\" ,{ConsumableFees},{ProcessTypeName},{ProcessComboName},{ProcessComboPrice},{PackFees},{DiscountFactor},{PackDisCountFees},{AllFees}";
} }
} }

2
BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs

@ -148,7 +148,7 @@ namespace BBWY.Client.ViewModels.PackTask
if (res.Success) if (res.Success)
{ {
//string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注"; //string title = "任务ID,日期,是否结清,部门,店铺,对接人,sku名称,sku数量,增值服务,打包服务,耗材服务,原价,促销折扣,结算价格,对接备注";
string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材总价,工序类型,工序套餐,工序单价,包装原价,包装折扣系数,包装折扣价,总收费"; string title = "任务ID,日期,是否结清,所属部门,所属店铺,包装数量,收货数量,耗材明细,耗材总价,工序类型,工序套餐,工序单价,包装原价,包装折扣系数,包装折扣价,总收费";
var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList(); var excelList = res.Data.ShopTotals.Select(x => x.ToString()).ToList();
excelList.Insert(0, title); excelList.Insert(0, title);
System.IO.File.WriteAllLines(fileName, excelList, Encoding.UTF8); System.IO.File.WriteAllLines(fileName, excelList, Encoding.UTF8);

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

@ -406,7 +406,7 @@ namespace BBWY.Client.ViewModels.PackTask
public TaskListViewModel(PackTaskService packTaskService, GlobalContext globalContext, SealBoxService sealBoxService, ProductService productService, MarkMessageService markMessageService, PackagingTaskService packagingTaskService, QualityTaskService qualityTaskService) public TaskListViewModel(PackTaskService packTaskService, GlobalContext globalContext, SealBoxService sealBoxService, ProductService productService, MarkMessageService markMessageService, PackagingTaskService packagingTaskService, QualityTaskService qualityTaskService, PackTaskOverTimeDetailService packTaskOverTimeDetailService)
{ {
this.globalContext = globalContext; this.globalContext = globalContext;
this.markMessageService = markMessageService; this.markMessageService = markMessageService;
@ -494,6 +494,7 @@ namespace BBWY.Client.ViewModels.PackTask
else else
PageIndex = 1; PageIndex = 1;
}); });
this.packTaskOverTimeDetailService = packTaskOverTimeDetailService;
} }
MarkMessageService markMessageService; MarkMessageService markMessageService;
@ -684,12 +685,13 @@ namespace BBWY.Client.ViewModels.PackTask
addProductWindow.ShowDialog(); addProductWindow.ShowDialog();
} }
PackTaskOverTimeDetailService packTaskOverTimeDetailService;
private void SubmitOverTimeMarkMsg(object param) private void SubmitOverTimeMarkMsg(object param)
{ {
var paramList = (object[])param; var paramList = (object[])param;
var id = (long)paramList[0]; var id = (long)paramList[0];
var markMsg = paramList[1].ToString(); var markMsg = paramList[1]?.ToString();
SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow = new SubmitOverTimeMarkMsgWindow(OverTimeTaskType., id, markMsg, packTaskService, ReflashTask); SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow = new SubmitOverTimeMarkMsgWindow(packTaskOverTimeDetailService , id, markMsg, TaskMessageType.ID, OverTimeType., ReflashTask);
submitOverTimeMarkMsgWindow.ShowDialog(); submitOverTimeMarkMsgWindow.ShowDialog();
} }
@ -1259,18 +1261,20 @@ namespace BBWY.Client.ViewModels.PackTask
data.SkuTitle = item.SkuGoodsTitle; data.SkuTitle = item.SkuGoodsTitle;
data.AcceptName = item.UserName; data.AcceptName = item.UserName;
if (!item.OrderId.IsNullOrEmpty() && !item.SkuId.IsNullOrEmpty())//加载物流信息 //if (!item.OrderId.IsNullOrEmpty() && !item.SkuId.IsNullOrEmpty())//加载物流信息
{ //{
var expressData = packTaskService.GetPurchaseExpressOrderList(item.OrderId, item.SkuId);
if (expressData != null && expressData.Success && expressData.Data != null)
{ // var expressData = packTaskService.GetPurchaseExpressOrderList(item.OrderId, item.SkuId);
expressData.Data.ForEach(e => // if (expressData != null && expressData.Success && expressData.Data != null)
{ // {
e.ExpressState = ExpressOrderHelper.GetExpressStateName(e.ExpressState); // expressData.Data.ForEach(e =>
}); // {
data.ExpressOrderList = expressData.Data; // e.ExpressState = ExpressOrderHelper.GetExpressStateName(e.ExpressState);
} // });
} // data.ExpressOrderList = expressData.Data;
// }
//}
if (item.BarCodeDTO != null && item.BarCodeDTO.Id > 0) if (item.BarCodeDTO != null && item.BarCodeDTO.Id > 0)
{ {
data.BarCodeModel = item.BarCodeDTO; data.BarCodeModel = item.BarCodeDTO;
@ -1355,8 +1359,39 @@ namespace BBWY.Client.ViewModels.PackTask
} }
} }
Task.Factory.StartNew(() =>
{
foreach (var item in PackTaskList)
{
if (!item.OrderId.IsNullOrEmpty() && !item.SkuId.IsNullOrEmpty())
{
var expressData = packTaskService.GetPurchaseExpressOrderList(item.OrderId, item.SkuId);
if (expressData != null && expressData.Success && expressData.Data != null)
{
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
expressData.Data.ForEach(e =>
{
e.ExpressState = ExpressOrderHelper.GetExpressStateName(e.ExpressState);
});
item.ExpressOrderList = expressData.Data;
}));
}
}
}
});
} }
else else
{ {
@ -1451,7 +1486,8 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in sealboxTasks) foreach (var item in sealboxTasks)
{ {
var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now); TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SealBoxPackOverTime.Value);
//var datetime = item.SealBoxPackOverTime.Value.Subtract(DateTime.Now);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds > 0)
{ {
item.IsSealBoxOverTime = false; item.IsSealBoxOverTime = false;
@ -1538,7 +1574,8 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
foreach (var item in fallWareTasks) foreach (var item in fallWareTasks)
{ {
var datetime = item.SetPurchaseOrderOverTime.Value.Subtract(DateTime.Now); //var datetime = item.SetPurchaseOrderOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetPurchaseOrderOverTime.Value);
if (datetime.TotalMilliseconds > 0) if (datetime.TotalMilliseconds > 0)
{ {
item.IsFallWareOverTime = false; item.IsFallWareOverTime = false;

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

@ -247,7 +247,7 @@ namespace BBWY.Client.ViewModels.PackTask
public ObservableCollection<OverTimeTaskResponse> OverTimeTaskList { get => overTimeTaskList; set { Set(ref overTimeTaskList, value); } } public ObservableCollection<OverTimeTaskResponse> OverTimeTaskList { get => overTimeTaskList; set { Set(ref overTimeTaskList, value); } }
private ObservableCollection<OverTimeTaskType> overTimeTaskTypeList = new ObservableCollection<OverTimeTaskType> { private ObservableCollection<OverTimeTaskType> overTimeTaskTypeList = new ObservableCollection<OverTimeTaskType> {
OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType. OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType., OverTimeTaskType.
}; };
/// <summary> /// <summary>
///超时任务类型 ///超时任务类型
@ -812,7 +812,7 @@ namespace BBWY.Client.ViewModels.PackTask
/// </summary> /// </summary>
public ICommand PrintShelvesCommand { get; set; } public ICommand PrintShelvesCommand { get; set; }
public WareHouseListViewModel(PackTaskService packTaskService, GlobalContext globalContext, SealBoxService sealBoxService, PackUserService packUserService, MarkMessageService markMessageService, QualityTaskService qualityTaskService, PackagingTaskService packagingTaskService, PackTaskAbortService packTaskAbortService) public WareHouseListViewModel(PackTaskService packTaskService, GlobalContext globalContext, SealBoxService sealBoxService, PackUserService packUserService, MarkMessageService markMessageService, QualityTaskService qualityTaskService, PackagingTaskService packagingTaskService, PackTaskAbortService packTaskAbortService, PackTaskOverTimeDetailService packTaskOverTimeDetailService)
{ {
@ -957,6 +957,7 @@ namespace BBWY.Client.ViewModels.PackTask
PrintShelvesCommand = new RelayCommand<PackTaskModel>(PrintShelves); PrintShelvesCommand = new RelayCommand<PackTaskModel>(PrintShelves);
LoadSplitDatas(); LoadSplitDatas();
this.packTaskOverTimeDetailService = packTaskOverTimeDetailService;
} }
private void LoadSplitDatas() private void LoadSplitDatas()
@ -1430,6 +1431,7 @@ namespace BBWY.Client.ViewModels.PackTask
} }
} }
PackTaskOverTimeDetailService packTaskOverTimeDetailService;
private void SubmitOverTimeMarkMsg(object param) private void SubmitOverTimeMarkMsg(object param)
{ {
@ -1438,30 +1440,30 @@ namespace BBWY.Client.ViewModels.PackTask
var markMsg = paramList[1]?.ToString(); var markMsg = paramList[1]?.ToString();
OverTimeTaskType overTimeTaskType = OverTimeTaskType.; OverTimeType overTimeType = OverTimeType.;
TaskMessageType taskMessageType = TaskMessageType.ID;
switch (TaskState.Value) switch (TaskState.Value)
{ {
case Models.TaskState.: case Models.TaskState.:
overTimeTaskType = Models.OverTimeTaskType.; overTimeType = Models.OverTimeType.; taskMessageType = TaskMessageType.ID;
break; break;
case Models.TaskState.: case Models.TaskState.:
overTimeTaskType = Models.OverTimeTaskType.; overTimeType = Models.OverTimeType.; taskMessageType = TaskMessageType.ID;
break; break;
case Models.TaskState.: case Models.TaskState.:
overTimeTaskType = Models.OverTimeTaskType.; overTimeType = Models.OverTimeType.; taskMessageType = TaskMessageType.ID;
break; break;
case Models.TaskState.: case Models.TaskState.:
overTimeTaskType = Models.OverTimeTaskType.; overTimeType = Models.OverTimeType.; taskMessageType = TaskMessageType.ID;
break; break;
case Models.TaskState.: case Models.TaskState.:
overTimeTaskType = Models.OverTimeTaskType.; overTimeType = Models.OverTimeType.; taskMessageType = TaskMessageType.ID;
break; break;
case Models.TaskState.: case Models.TaskState.:
overTimeTaskType = Models.OverTimeTaskType.; overTimeType = Models.OverTimeType.; taskMessageType = TaskMessageType.ID;
break; break;
} }
SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow =new SubmitOverTimeMarkMsgWindow(packTaskOverTimeDetailService, id, markMsg, taskMessageType, overTimeType, ReflashTask);
SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow = new SubmitOverTimeMarkMsgWindow(overTimeTaskType, id, markMsg, packTaskService, ReflashTask);
submitOverTimeMarkMsgWindow.ShowDialog(); submitOverTimeMarkMsgWindow.ShowDialog();
} }
@ -2042,7 +2044,7 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
PageSize = 20; PageSize = 20;
OverTimeTaskList = new ObservableCollection<OverTimeTaskResponse>(); OverTimeTaskList = new ObservableCollection<OverTimeTaskResponse>();
var datas = packTaskService.SearchOverTimeTaskList(null, StartTime, EndTime, OverTimeTaskState, OverTimeTaskType, PageIndex, PageSize); var datas = packTaskOverTimeDetailService.SearchOverTimeTaskList(null, StartTime, EndTime, OverTimeTaskState, OverTimeTaskType, PageIndex, PageSize);
if (datas != null && datas.Data != null && datas.Success) if (datas != null && datas.Data != null && datas.Success)
{ {
var dataModel = datas.Data; var dataModel = datas.Data;
@ -2163,11 +2165,57 @@ namespace BBWY.Client.ViewModels.PackTask
BoxConfigureData = item.BoxConfigureData, BoxConfigureData = item.BoxConfigureData,
ProductCount = item.ProductCount, ProductCount = item.ProductCount,
WareType = item.WareType, WareType = item.WareType,
SetPurchaseOrderOverTime = item.SetPurchaseOrderOverTime SetPurchaseOrderOverTime = item.SetPurchaseOrderOverTime,
SetWaybillNoOverTime=item.SetWaybillNoOverTime,
SetWaybillNoOverTimeMsg=item.SetWaybillNoOverTimeMsg,
}); });
})); }));
} }
if (PositionState== PositionState.)
{
var sealboxTasks = WaitFallWareList.Where(p => p.SetWaybillNoOverTime != null).ToList();
if (sealboxTasks.Count() > 0 && TaskState == Models.TaskState.)
{
fallwareOverTimeThread = new Thread(() =>
{
IsStartThread = true;
Thread.Sleep(1000);
while (IsStartThread)
{
App.Current.Dispatcher.BeginInvoke(new Action(() =>
{
foreach (var item in sealboxTasks)
{
// var datetime = item.TransportOverTime.Value.Subtract(DateTime.Now);
TimeSpan datetime = PackTaskTimerHelper.AccountEffectiveRemainDuration(DateTime.Now, item.SetWaybillNoOverTime.Value);
if (datetime.TotalMilliseconds > 0)
{
item.IsSetWaybillNoOverTime = false;
item.SetWaybillNoRemainTime = OverTimeHelper.GetTimeString(datetime);
}
else
{
item.IsSetWaybillNoOverTime = true;
item.SetWaybillNoRemainTime = OverTimeHelper.GetTimeString(datetime);
}
}
}));
Thread.Sleep(1000);
}
});
//任务倒计时数据
fallwareOverTimeThread.IsBackground = true;
fallwareOverTimeThread.Start();
}
}
} }
else else
{ {
@ -2514,8 +2562,6 @@ namespace BBWY.Client.ViewModels.PackTask
{ {
var data = JsonConvert.DeserializeObject<PackTaskModel>(JsonConvert.SerializeObject(item)); var data = JsonConvert.DeserializeObject<PackTaskModel>(JsonConvert.SerializeObject(item));
data.ItemList = new List<SkuMessage>() { new SkuMessage data.ItemList = new List<SkuMessage>() { new SkuMessage
{ BrandName = item.BrandName, { BrandName = item.BrandName,
Logo= item.Logo, Logo= item.Logo,

14
BBWY.Client/ViewModels/PackerTask/PackerTaskViewModel.cs

@ -408,7 +408,7 @@ namespace BBWY.Client.ViewModels.PackerTask
/// <summary> /// <summary>
/// 构造函数 /// 构造函数
/// </summary> /// </summary>
public PackerTaskViewModel(PackUserService packUserService, PackTaskService packTaskService, MarkMessageService markMessageService, GlobalContext globalContext, QualityTaskService qualityTaskService) public PackerTaskViewModel(PackUserService packUserService, PackTaskService packTaskService, MarkMessageService markMessageService, GlobalContext globalContext, QualityTaskService qualityTaskService, PackTaskOverTimeDetailService packTaskOverTimeDetailService)
{ {
this.packUserService = packUserService; this.packUserService = packUserService;
@ -460,9 +460,7 @@ namespace BBWY.Client.ViewModels.PackerTask
PackagingTaskExceptionCommand = new RelayCommand<long>(PackagingTaskException); PackagingTaskExceptionCommand = new RelayCommand<long>(PackagingTaskException);
this.qualityTaskService = qualityTaskService; this.qualityTaskService = qualityTaskService;
this.packTaskOverTimeDetailService = packTaskOverTimeDetailService;
} }
QualityTaskService qualityTaskService; QualityTaskService qualityTaskService;
private void PackagingTaskException(long taskId) private void PackagingTaskException(long taskId)
@ -791,7 +789,7 @@ namespace BBWY.Client.ViewModels.PackerTask
} }
} }
PackTaskOverTimeDetailService packTaskOverTimeDetailService;
private void SubmitOverTimeMarkMsg(object param) private void SubmitOverTimeMarkMsg(object param)
{ {
@ -799,10 +797,10 @@ namespace BBWY.Client.ViewModels.PackerTask
var id = (long)paramList[0]; var id = (long)paramList[0];
var markMsg = paramList[1]?.ToString(); var markMsg = paramList[1]?.ToString();
var overTimeTaskType = Models.OverTimeTaskType.; var overTimeTaskType = Models.OverTimeType.;
var taskMessageType = TaskMessageType.ID;
SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow = new SubmitOverTimeMarkMsgWindow(overTimeTaskType, id, markMsg, packTaskService, ReflashTask); SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow = new SubmitOverTimeMarkMsgWindow(packTaskOverTimeDetailService, id, markMsg, taskMessageType, overTimeTaskType, ReflashTask);
submitOverTimeMarkMsgWindow.ShowDialog(); submitOverTimeMarkMsgWindow.ShowDialog();
} }
public void ReflashTask()//刷新界面 public void ReflashTask()//刷新界面

73
BBWY.Client/Views/FallWare/WaitFallWareControl.xaml

@ -36,7 +36,7 @@
<ColumnDefinition Width="400"/> <ColumnDefinition Width="400"/>
<ColumnDefinition Width="80"/> <ColumnDefinition Width="80"/>
<ColumnDefinition Width="110"/> <ColumnDefinition Width="110"/>
<ColumnDefinition Width="0"/> <ColumnDefinition Width="{Binding SealBoxConfigureType,Converter={StaticResource objConverter},ConverterParameter=已配置:150:0}"/>
<!--<ColumnDefinition Width="{Binding DataContext.SealBoxConfigureType,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}},Converter={StaticResource objConverter},ConverterParameter=待配置:150:0}"/>--> <!--<ColumnDefinition Width="{Binding DataContext.SealBoxConfigureType,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}},Converter={StaticResource objConverter},ConverterParameter=待配置:150:0}"/>-->
<ColumnDefinition MinWidth="80"/> <ColumnDefinition MinWidth="80"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
@ -118,6 +118,42 @@
<TextBlock VerticalAlignment="Center" Text="对接人:" Margin="16,0,0,0" /> <TextBlock VerticalAlignment="Center" Text="对接人:" Margin="16,0,0,0" />
<TextBlock VerticalAlignment="Center" Text="{Binding AcceptUserNames}" Margin="5,0,0,0" /> <TextBlock VerticalAlignment="Center" Text="{Binding AcceptUserNames}" Margin="5,0,0,0" />
<Grid Grid.Column="3" Margin="50 0 0 0" Visibility="{Binding DataContext.SealBoxConfigureType,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}},Converter={StaticResource objConverter},ConverterParameter=已配置:Visible:Collapsed}">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal"
Visibility="{Binding SetWaybillNoRemainTime,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}"
>
<StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"
Visibility="{Binding IsSetWaybillNoOverTime,Converter={StaticResource objConverter},ConverterParameter=false:Visible:Collapsed}"
>
<TextBlock Text="剩余: " />
<TextBlock Text="{Binding SetWaybillNoRemainTime}"/>
</StackPanel>
<StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"
Visibility="{Binding IsSetWaybillNoOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"
>
<TextBlock Foreground="Red" Text="超时: "/>
<TextBlock Foreground="Red" Text="{Binding SetWaybillNoRemainTime}"/>
</StackPanel>
<c:BButton Margin="0 0 0 0" Content="{Binding SetWaybillNoOverTimeMsg ,Converter={StaticResource objConverter},ConverterParameter=#null:提交备注:修改备注}" Style="{StaticResource LinkButton}"
>
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.SubmitOverTimeMarkMsgCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="SealBoxId"/>
<Binding Path="SetWaybillNoOverTimeMsg"/>
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BButton>
</StackPanel>
</Grid>
</StackPanel> </StackPanel>
<c:BButton Grid.Column="0" Grid.ColumnSpan="5" Background="Transparent" HorizontalAlignment="Stretch" BorderThickness="0" Panel.ZIndex="-1" <c:BButton Grid.Column="0" Grid.ColumnSpan="5" Background="Transparent" HorizontalAlignment="Stretch" BorderThickness="0" Panel.ZIndex="-1"
Command="{Binding DataContext.LoadFallWareSkuDataCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}" Command="{Binding DataContext.LoadFallWareSkuDataCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}"
@ -138,8 +174,8 @@
<ColumnDefinition Width="400"/> <ColumnDefinition Width="400"/>
<ColumnDefinition Width="80"/> <ColumnDefinition Width="80"/>
<ColumnDefinition Width="110"/> <ColumnDefinition Width="110"/>
<ColumnDefinition Width="0"/> <!--<ColumnDefinition Width="{Binding SealBoxConfigureType,Converter={StaticResource objConverter},ConverterParameter=已配置:120:0}"/>-->
<!--<ColumnDefinition Width="{Binding DataContext.SealBoxConfigureType,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}},Converter={StaticResource objConverter},ConverterParameter=待配置:150:0}"/>--> <ColumnDefinition Width="{Binding DataContext.SealBoxConfigureType,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}},Converter={StaticResource objConverter},ConverterParameter=已配置:150:0}"/>
<ColumnDefinition MinWidth="80"/> <ColumnDefinition MinWidth="80"/>
<ColumnDefinition Width="100"/> <ColumnDefinition Width="100"/>
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
@ -315,25 +351,42 @@
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
</Grid> </Grid>
<!--<Grid Grid.Column="3" > <Grid Grid.Column="3" Visibility="{Binding DataContext.SealBoxConfigureType,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}},Converter={StaticResource objConverter},ConverterParameter=已配置:Visible:Collapsed}">
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Center" <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center"
Visibility="{Binding FallWareRemainTime,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Visibility="{Binding SetWaybillNoRemainTime,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}"
> >
<StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" <StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"
Visibility="{Binding IsFallWareOverTime,Converter={StaticResource objConverter},ConverterParameter=false:Visible:Collapsed}" Visibility="{Binding IsSetWaybillNoOverTime,Converter={StaticResource objConverter},ConverterParameter=false:Visible:Collapsed}"
> >
<TextBlock Text="剩余: " /> <TextBlock Text="剩余: " />
<TextBlock Text="{Binding FallWareRemainTime}"/> <TextBlock Text="{Binding SetWaybillNoRemainTime}"/>
</StackPanel> </StackPanel>
<StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center" <StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Center"
Visibility="{Binding IsFallWareOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}" Visibility="{Binding IsSetWaybillNoOverTime,Converter={StaticResource objConverter},ConverterParameter=true:Visible:Collapsed}"
> >
<TextBlock Foreground="Red" Text="超时: "/> <TextBlock Foreground="Red" Text="超时: "/>
<TextBlock Foreground="Red" Text="{Binding FallWareRemainTime}"/> <TextBlock Foreground="Red" Text="{Binding SetWaybillNoRemainTime}"/>
</StackPanel> </StackPanel>
<c:BButton Margin="0 5 0 0" Content="{Binding SetWaybillNoOverTimeMsg ,Converter={StaticResource objConverter},ConverterParameter=#null:提交备注:修改备注}" Style="{StaticResource LinkButton}"
>
<b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown">
<b:InvokeCommandAction Command="{Binding DataContext.SubmitOverTimeMarkMsgCommand,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}}">
<b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="SealBoxId"/>
<Binding Path="SetWaybillNoOverTimeMsg"/>
</MultiBinding>
</b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction>
</b:EventTrigger>
</b:Interaction.Triggers>
</c:BButton>
</StackPanel> </StackPanel>
</Grid>--> </Grid>
<Grid Grid.Column="4" > <Grid Grid.Column="4" >

2
BBWY.Client/Views/FallWare/WareFallWareListControl.xaml

@ -114,7 +114,7 @@
Background="{StaticResource Button.Selected.Background}" BorderThickness="0" Foreground="White"/> Background="{StaticResource Button.Selected.Background}" BorderThickness="0" Foreground="White"/>
</Grid> </Grid>
</Grid> </Grid>
<StackPanel Orientation="Horizontal" Grid.Row="1"> <StackPanel Orientation="Horizontal" Grid.Row="1">
<RadioButton Content="{Binding TaskState,Converter={StaticResource objConverter},ConverterParameter=待落仓:待贴单:待封箱}" Height="35" Width="130" Tag="{Binding FallWareConfiguredCount,Mode=TwoWay}" IsChecked="{Binding SealBoxConfigureType,Converter={StaticResource objConverter},ConverterParameter=已配置:True:False}" <RadioButton Content="{Binding TaskState,Converter={StaticResource objConverter},ConverterParameter=待落仓:待贴单:待封箱}" Height="35" Width="130" Tag="{Binding FallWareConfiguredCount,Mode=TwoWay}" IsChecked="{Binding SealBoxConfigureType,Converter={StaticResource objConverter},ConverterParameter=已配置:True:False}"
Command="{Binding SetSealBoxConfigureTypeCommand}" CommandParameter="{x:Static cmodel:SealBoxConfigureType.已配置}" Command="{Binding SetSealBoxConfigureTypeCommand}" CommandParameter="{x:Static cmodel:SealBoxConfigureType.已配置}"

4
BBWY.Client/Views/PackagingTask/ShopWaitPackingTaskControl.xaml

@ -267,7 +267,7 @@
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
<c:BButton Margin="0 10 0 0" Content="{Binding QualityOverTimeMarkMsg ,Converter={StaticResource objConverter},ConverterParameter=#null:提交备注:修改备注}" Style="{StaticResource LinkButton}" <!--<c:BButton Margin="0 10 0 0" Content="{Binding QualityOverTimeMarkMsg ,Converter={StaticResource objConverter},ConverterParameter=#null:提交备注:修改备注}" Style="{StaticResource LinkButton}"
> >
<b:Interaction.Triggers> <b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown"> <b:EventTrigger EventName="PreviewMouseLeftButtonDown">
@ -281,7 +281,7 @@
</b:InvokeCommandAction> </b:InvokeCommandAction>
</b:EventTrigger> </b:EventTrigger>
</b:Interaction.Triggers> </b:Interaction.Triggers>
</c:BButton> </c:BButton>-->
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>

10
BBWY.Client/Views/PackagingTask/WaitPackingTaskControl.xaml

@ -273,7 +273,7 @@
</StackPanel> </StackPanel>
</StackPanel> </StackPanel>
<c:BButton Margin="0 10 0 0" Content="{Binding QualityOverTimeMarkMsg ,Converter={StaticResource objConverter},ConverterParameter=#null:提交备注:修改备注}" Style="{StaticResource LinkButton}" <c:BButton Margin="0 10 0 0" Content="{Binding PackOverTimeMarkMsg ,Converter={StaticResource objConverter},ConverterParameter=#null:提交备注:修改备注}" Style="{StaticResource LinkButton}"
> >
<b:Interaction.Triggers> <b:Interaction.Triggers>
<b:EventTrigger EventName="PreviewMouseLeftButtonDown"> <b:EventTrigger EventName="PreviewMouseLeftButtonDown">
@ -281,7 +281,7 @@
<b:InvokeCommandAction.CommandParameter> <b:InvokeCommandAction.CommandParameter>
<MultiBinding Converter="{StaticResource mptConverter}"> <MultiBinding Converter="{StaticResource mptConverter}">
<Binding Path="TaskId"/> <Binding Path="TaskId"/>
<Binding Path="QualityOverTimeMarkMsg"/> <Binding Path="PackOverTimeMarkMsg"/>
</MultiBinding> </MultiBinding>
</b:InvokeCommandAction.CommandParameter> </b:InvokeCommandAction.CommandParameter>
</b:InvokeCommandAction> </b:InvokeCommandAction>
@ -557,15 +557,15 @@ Foreground="{StaticResource Text.Color}">
<TextBlock Grid.Row="1" Grid.Column="4" Grid.ColumnSpan="6" <TextBlock Grid.Row="1" Grid.Column="4" Grid.ColumnSpan="6"
Visibility="{Binding QualityOverTimeMarkMsg,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Visibility="{Binding PackOverTimeMarkMsg,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}"
HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5 5 0 5" ScrollViewer.VerticalScrollBarVisibility="Visible" TextWrapping="Wrap" > HorizontalAlignment="Stretch" VerticalAlignment="Top" Margin="5 5 0 5" ScrollViewer.VerticalScrollBarVisibility="Visible" TextWrapping="Wrap" >
<TextBlock.ToolTip> <TextBlock.ToolTip>
<ToolTip Style="{StaticResource OrderCouponToolipStyle}"> <ToolTip Style="{StaticResource OrderCouponToolipStyle}">
<TextBlock Text="{Binding QualityOverTimeMarkMsg}"/> <TextBlock Text="{Binding PackOverTimeMarkMsg}"/>
</ToolTip> </ToolTip>
</TextBlock.ToolTip> </TextBlock.ToolTip>
<Run Text="超时原因:"/> <Run Text="超时原因:"/>
<Run Text="{Binding QualityOverTimeMarkMsg}" Foreground="Red" /> <Run Text="{Binding PackOverTimeMarkMsg}" Foreground="Red" />
</TextBlock> </TextBlock>

28
BBWY.Client/Views/TaskOverTime/SubmitOverTimeMarkMsgWindow.xaml.cs

@ -1,4 +1,5 @@
using BBWY.Client.APIServices; using BBWY.Client.APIServices;
using BBWY.Client.APIServices.QiKu;
using BBWY.Client.Models; using BBWY.Client.Models;
using BBWY.Controls; using BBWY.Controls;
using System; using System;
@ -22,27 +23,32 @@ namespace BBWY.Client.Views.TaskOverTime
/// </summary> /// </summary>
public partial class SubmitOverTimeMarkMsgWindow : BWindow public partial class SubmitOverTimeMarkMsgWindow : BWindow
{ {
public SubmitOverTimeMarkMsgWindow(OverTimeTaskType overTimeTaskType, long id, string msg, PackTaskService packTaskService, Action reflashWindow) public SubmitOverTimeMarkMsgWindow(PackTaskOverTimeDetailService packTaskOverTimeDetailService, long id, string msg, TaskMessageType taskMessageType, OverTimeType overTimeType, Action reflashWindow)
{ {
InitializeComponent(); InitializeComponent();
this.OverTimeTaskType = overTimeTaskType;
this.Id = id; this.Id = id;
MarkMsg = msg; MarkMsg = msg;
this.reflashWindow = reflashWindow; this.reflashWindow = reflashWindow;
this.packTaskService = packTaskService;
this.DataContext = this; this.DataContext = this;
this.packTaskOverTimeDetailService = packTaskOverTimeDetailService;
TaskMessageType = taskMessageType;
OverTimeType = overTimeType;
} }
Action reflashWindow; Action reflashWindow;
PackTaskService packTaskService { get; set; }
/// <summary>
/// 超时任务类型(待验收 = 2,待打包 = 3,待封箱 = 4, 待落仓 = 8,待转运 = 11,)
/// </summary>
public OverTimeTaskType OverTimeTaskType { get; set; }
PackTaskOverTimeDetailService packTaskOverTimeDetailService { get; set; }
/// <summary> /// <summary>
/// 任务id 或者 封箱id /// 超时任务类型
/// </summary> /// </summary>
public long Id { get; set; } public TaskMessageType TaskMessageType { get; set; }
public OverTimeType OverTimeType{ get; set; }
/// <summary>
/// 任务id 或者 封箱id
/// </summary>
public long Id { get; set; }
/// <summary> /// <summary>
/// 备注信息 /// 备注信息
/// </summary> /// </summary>
@ -56,7 +62,7 @@ namespace BBWY.Client.Views.TaskOverTime
return; return;
} }
var res = packTaskService.SubmitOverTimeMarkMsg(OverTimeTaskType, Id, MarkMsg); var res = packTaskOverTimeDetailService.SubmitOverTimeMarkMsg(TaskMessageType, Id, OverTimeType, MarkMsg);
if (res == null) if (res == null)
{ {
MessageBox.Show("网络异常"); MessageBox.Show("网络异常");

Loading…
Cancel
Save