From 5b3c92b1dce61941c0e7b960dec65cebc6dc3d4d Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Sun, 23 Jul 2023 17:56:51 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E6=8F=90=E7=A4=BA=E5=90=88?= =?UTF-8?q?=E6=A0=BC=E8=AF=81=20=E9=85=8D=E7=BD=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../APIServices/QiKu/ConsumableService.cs | 16 +- .../APIServices/QiKu/PackTaskService.cs | 19 +- .../APIServices/QiKu/ProcessService.cs | 5 +- .../APIModel/Request/ConsumableRequest.cs | 2 + .../APIModel/Request/SetPackDetailRequest.cs | 6 + .../Response/PackTask/FeesItemResponse.cs | 54 +- .../PackTask/GetConsumableTypeResponse.cs | 4 +- .../PackTask/GetPackDetailResponse.cs | 6 + .../PackTask/SearchTaskListResponse.cs | 14 + .../Process/GetProcessTypeResponse.cs | 30 +- BBWY.Client/Models/Enums.cs | 9 + .../Models/PackTask/ConsumableModel.cs | 41 +- BBWY.Client/Models/PackTask/PackItemModel.cs | 9 +- BBWY.Client/Models/PackTask/PackTaskModel.cs | 57 ++- .../PackTask/ConsumableViewModel.cs | 32 +- .../PackTask/PackDetailViewModel.cs | 470 ++++++++++-------- .../ViewModels/PackTask/TaskListViewModel.cs | 62 +-- .../PackTask/UpdatePurchaseTaskViewModel.cs | 89 +--- .../PackTask/WareHouseListViewModel.cs | 51 +- .../Views/FallWare/SetJDWareBoxWindow.xaml.cs | 8 +- BBWY.Client/Views/Order/OrderList.xaml | 2 +- BBWY.Client/Views/PackTask/Consumable.xaml | 32 +- .../Views/PackTask/EditConsumable.xaml | 6 +- .../Views/PackTask/FeesExcelControl.xaml.cs | 38 +- .../Views/PackTask/FeesExcelV2Control.xaml | 138 +++++ .../Views/PackTask/FeesExcelV2Control.xaml.cs | 355 +++++++++++++ .../Views/PackTask/MinFeesExcelV2Control.xaml | 10 + .../PackTask/MinFeesExcelV2Control.xaml.cs | 347 +++++++++++++ .../Views/PackTask/PackDetailWindow.xaml | 85 ++-- .../Views/PackTask/PackDetailWindow.xaml.cs | 11 +- .../Views/PackTask/PrintPackTaskDetail.xaml | 69 +++ .../PackTask/PrintPackTaskDetail.xaml.cs | 81 +++ BBWY.Client/Views/PackTask/ServiceWindow.xaml | 2 +- .../PackTask/UpdatePurchaseTaskWindow.xaml | 8 +- .../Views/PackTask/WaitPackageControl.xaml | 30 +- .../Views/PackTask/WaitPackageControl.xaml.cs | 33 ++ .../Views/PackTask/WareHouseListControl.xaml | 20 +- .../PackTask/WareHouseListControl.xaml.cs | 34 ++ .../Views/QualityTask/WaitQualityControl.xaml | 188 +++---- .../QualityTask/WaitQualityControl.xaml.cs | 34 ++ 40 files changed, 1934 insertions(+), 573 deletions(-) create mode 100644 BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml create mode 100644 BBWY.Client/Views/PackTask/FeesExcelV2Control.xaml.cs create mode 100644 BBWY.Client/Views/PackTask/MinFeesExcelV2Control.xaml create mode 100644 BBWY.Client/Views/PackTask/MinFeesExcelV2Control.xaml.cs create mode 100644 BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml create mode 100644 BBWY.Client/Views/PackTask/PrintPackTaskDetail.xaml.cs diff --git a/BBWY.Client/APIServices/QiKu/ConsumableService.cs b/BBWY.Client/APIServices/QiKu/ConsumableService.cs index fe32e568..1a12e525 100644 --- a/BBWY.Client/APIServices/QiKu/ConsumableService.cs +++ b/BBWY.Client/APIServices/QiKu/ConsumableService.cs @@ -41,12 +41,8 @@ namespace BBWY.Client.APIServices public ApiResponse Deleted(long id) { - return SendRequest(globalContext.QKApiHost, "api/Consumable/Deleted", - new - { - id = id - } - , null, HttpMethod.Get); + return SendRequest(globalContext.QKApiHost, $"api/Consumable/Deleted?id={id}", + null, null, HttpMethod.Get); } public ApiResponse Search(ConsumableSearchRequest consumable) @@ -72,5 +68,13 @@ namespace BBWY.Client.APIServices null , null, HttpMethod.Get); } + + + public ApiResponse DeletedConsumableType(long consumableTypeId) + { + return SendRequest(globalContext.QKApiHost, $"api/Consumable/DeletedConsumableType?consumableTypeId={consumableTypeId}", + null + , null, HttpMethod.Post); + } } } diff --git a/BBWY.Client/APIServices/QiKu/PackTaskService.cs b/BBWY.Client/APIServices/QiKu/PackTaskService.cs index 5d293b82..8cf6aba5 100644 --- a/BBWY.Client/APIServices/QiKu/PackTaskService.cs +++ b/BBWY.Client/APIServices/QiKu/PackTaskService.cs @@ -321,9 +321,9 @@ namespace BBWY.Client.APIServices }, null, HttpMethod.Post); } - public ApiResponse SubmitOverTimeMarkMsg(OverTimeTaskType OverTimeTaskType, long Id, string MarkMsg) + public ApiResponse SubmitOverTimeMarkMsg(OverTimeTaskType OverTimeTaskType, long Id, string MarkMsg) { - return SendRequest(globalContext.QKApiHost, $"api/PackTask/SubmitOverTimeMarkMsg", new + return SendRequest(globalContext.QKApiHost, $"api/PackTask/SubmitOverTimeMarkMsg", new { OverTimeTaskType, Id, @@ -331,7 +331,20 @@ namespace BBWY.Client.APIServices }, null, HttpMethod.Post); } - + //public ApiResponse QikuPublishOrderSkuPackConfigState(string orderId, string skuId, PackConfigState packConfigState) + //{ + // return SendRequest("http://bbwyb.qiyue666.com", $"Api/Order/QikuPublishOrderSkuPackConfigState", new + // { + // orderId, + // skuId, + // packConfigState, + // }, null, HttpMethod.Post); + //} + + public ApiResponse SendToSetSkuConfigure(long taskId) + { + return SendRequest(globalContext.QKApiHost, $"api/PackTask/SendToSetSkuConfigure?taskid={taskId}",null, null, HttpMethod.Post); + } } diff --git a/BBWY.Client/APIServices/QiKu/ProcessService.cs b/BBWY.Client/APIServices/QiKu/ProcessService.cs index e4cc0137..1b2da984 100644 --- a/BBWY.Client/APIServices/QiKu/ProcessService.cs +++ b/BBWY.Client/APIServices/QiKu/ProcessService.cs @@ -22,13 +22,14 @@ namespace BBWY.Client.APIServices.QiKu } - public ApiResponse GetDiscountFactory(string ProcessTypeName, int TaskCount) + public ApiResponse GetDiscountFactory(string ProcessTypeName, int TaskCount,long? ProcessComboId=null) { return SendRequest(globalContext.QKApiHost, "api/Process/GetDiscountFactory", new { ProcessTypeName, - TaskCount + TaskCount, + ProcessComboId } , null, HttpMethod.Post); } diff --git a/BBWY.Client/Models/APIModel/Request/ConsumableRequest.cs b/BBWY.Client/Models/APIModel/Request/ConsumableRequest.cs index 718a3ade..920e47ef 100644 --- a/BBWY.Client/Models/APIModel/Request/ConsumableRequest.cs +++ b/BBWY.Client/Models/APIModel/Request/ConsumableRequest.cs @@ -15,6 +15,8 @@ namespace BBWY.Client.Models.APIModel.Request public class ConsumableSearchRequest { + + public long? ConsumableTypeId { get; set; } /// /// 名称 /// diff --git a/BBWY.Client/Models/APIModel/Request/SetPackDetailRequest.cs b/BBWY.Client/Models/APIModel/Request/SetPackDetailRequest.cs index cce72b10..ffc62455 100644 --- a/BBWY.Client/Models/APIModel/Request/SetPackDetailRequest.cs +++ b/BBWY.Client/Models/APIModel/Request/SetPackDetailRequest.cs @@ -13,6 +13,12 @@ namespace BBWY.Client.Models public long TaskId { get; set; } #region 工序收费 + + public string ProductResistantName { get; set; } + /// + /// 打包工序类型(0=推荐工序,1=自定义工序) + /// + public PackProcessType PackProcessType { get; set; } /// /// 套餐id /// diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs index bfd16785..b74a8b83 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs @@ -10,22 +10,25 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask /// public class FeesItemResponse : NotifyObject { - private List serviceList = new List(); + private List serviceList = new List(); public List ServiceList { get => serviceList; set { Set(ref serviceList, value); } } public decimal disCount; public decimal DisCount { get => disCount; set { Set(ref disCount, value); } } - public decimal AllFees { get=> allFees; set { Set(ref allFees, value); - - } } + public decimal AllFees { get => allFees; set { Set(ref allFees, value); } } private decimal allFees; private decimal discountAllFees; public decimal DiscountAllFees { get => discountAllFees; set { Set(ref discountAllFees, value); } } - public decimal SingleFees { get => singleFees; set { Set(ref singleFees, value); - - } } + public decimal SingleFees + { + get => singleFees; set + { + Set(ref singleFees, value); + + } + } private decimal singleFees; public decimal DiscountSingleFees { get => discountSingleFees; set { Set(ref discountSingleFees, value); } } @@ -36,8 +39,6 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask private decimal taskId; - - /// /// 耗材费用价格 /// @@ -62,14 +63,14 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask public decimal PackFees { get; set; } /// - /// 增值费用小计 + /// 增值费用小计(待移除) /// public decimal IncreateFees { get; set; } /// - /// 增值服务数据 + /// 增值服务数据(待移除) /// - public List IncreateList { get; set; } + public List IncreateList { get; set; } /// /// 耗材服务数据 @@ -78,38 +79,55 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask /// - /// 打包服务 + /// 打包服务(待移除) /// public List PackItemList { get; set; } /// - /// 增量配件数 + /// 增量配件数(待移除) /// public int? IncrementPartCount { get; set; } /// - /// 增量配件任务数 + /// 增量配件任务数(待移除) /// public int? IncrementPartTaskCount { get; set; } /// - /// 增量配件单价 + /// 增量配件单价(待移除) /// public decimal? IncrementPartPrice { get; set; } /// - /// 基础包装费 + /// 基础包装费(待移除) /// public decimal? BasicProcessPrice { get; set; } /// - /// 基础包装数 + /// 基础包装数(待移除) /// public int? BasicProcessCount { get; set; } + /// + /// 工序类型名称 + /// + public string ProcessTypeName { get; set; } + /// + /// 工序套餐名称 + /// + public string ProcessComboName { get; set; } + + /// + /// 工序套餐单价 + /// + public decimal ProcessComboPrice { get; set; } + /// + /// 工序套餐任务量 + /// + public int ProcessComboTaskCount { get; set; } } public class PackItemResponse diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/GetConsumableTypeResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/GetConsumableTypeResponse.cs index edadae7b..7a31baad 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/GetConsumableTypeResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/GetConsumableTypeResponse.cs @@ -12,8 +12,8 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask public string ConsumableTypeName { get => consumableTypeName; set { Set(ref consumableTypeName, value); } } - private long consumableTypeId; + private long? consumableTypeId; - public long ConsumableTypeId { get => consumableTypeId; set { Set(ref consumableTypeId, value); } } + public long? ConsumableTypeId { get => consumableTypeId; set { Set(ref consumableTypeId, value); } } } } diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/GetPackDetailResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/GetPackDetailResponse.cs index 18eb2658..fdc49def 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/GetPackDetailResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/GetPackDetailResponse.cs @@ -25,6 +25,12 @@ namespace BBWY.Client.Models public FeesMode? FeesMode { get; set; } public decimal? DiscountFactor { get; set; } public string SuggestPackUserName { get; set; } + + public string ProductResistantName { get; set; } + /// + /// 打包工序类型(0=推荐工序,1=自定义工序) + /// + public PackProcessType PackProcessType { get; set; } } public class PackUserResponse : PackUserModelRequest diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/SearchTaskListResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/SearchTaskListResponse.cs index e6a6ec24..9d2a3140 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/SearchTaskListResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/SearchTaskListResponse.cs @@ -205,6 +205,20 @@ namespace BBWY.Client.Models.APIModel /// 排单超时时间 /// public DateTime? ScheduleOverTime { get; set; } + + /// + /// 打包工序类型(0=推荐工序,1=自定义工序) NULL 金额不为0则为旧版本结算 + /// + public PackProcessType? PackProcessType { get; set; } + + /// + /// + /// + public string ShopId { get; set; } + /// + /// 发送信息不全时间 + /// + public DateTime? SendToSetSkuConfigureTime { get; set; } } public class ExpressOrderResponse { diff --git a/BBWY.Client/Models/APIModel/Response/Process/GetProcessTypeResponse.cs b/BBWY.Client/Models/APIModel/Response/Process/GetProcessTypeResponse.cs index 44caa3d4..f5f3bc0a 100644 --- a/BBWY.Client/Models/APIModel/Response/Process/GetProcessTypeResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/Process/GetProcessTypeResponse.cs @@ -13,10 +13,28 @@ namespace BBWY.Client.Models /// 所有的耗材类型 /// public List ConsumableTypeList { get; set; } + + public List ProductResistantList { get; set; } + } + public class ProductResistantResponse : NotifyObject + { + + + + + private string productResistantName; + /// + /// 名称 + /// + public string ProductResistantName { get => productResistantName; set { Set(ref productResistantName, value); } } // + /// + /// 套餐列表 + /// + public ObservableCollection ProcessComboList { get; set; } } - public class ProcessTypeResponse + public class ProcessTypeResponse : NotifyObject { /// /// 工序单价 @@ -32,8 +50,14 @@ namespace BBWY.Client.Models public ObservableCollection ProcessComboList { get; set; } } - public class ProcessComboResponse + public class ProcessComboResponse : NotifyObject { + + private decimal processComboNamePrice; + /// + /// 套餐费用 + /// + public decimal ProcessComboNamePrice { get => processComboNamePrice; set { Set(ref processComboNamePrice, value); } } // /// /// 套餐id /// @@ -48,7 +72,7 @@ namespace BBWY.Client.Models public ObservableCollection ConsumableTypeList { get; set; } } - public class ConsumableTypeResponse + public class ConsumableTypeResponse : NotifyObject { /// /// 耗材类型名称 diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index c109b777..1398e4e4 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -544,5 +544,14 @@ { 推荐工序 = 0, 自定义工序 = 1 } + /// + /// 打包配置状态( 待配置 = 0,已配置 = 1, 需修改=2) + /// + public enum PackConfigState + { + 待配置 = 0, + 已配置 = 1, + 需修改 = 2 + } } diff --git a/BBWY.Client/Models/PackTask/ConsumableModel.cs b/BBWY.Client/Models/PackTask/ConsumableModel.cs index db3d9f9e..cc2bc6c9 100644 --- a/BBWY.Client/Models/PackTask/ConsumableModel.cs +++ b/BBWY.Client/Models/PackTask/ConsumableModel.cs @@ -43,6 +43,8 @@ namespace BBWY.Client.Models.PackTask public ICommand DeletedConsumableCommand { get; set; } public ICommand SaveConsumableCommand { get; set; } public ICommand AddConsumableTypeCommand { get; set; } + public ICommand DeletedConsumableTypeCommand { get; set; } + public Action ReflashDatas { get; set; } public ConsumableModel(ConsumableService consumableService) @@ -52,24 +54,49 @@ namespace BBWY.Client.Models.PackTask DeletedConsumableCommand = new RelayCommand>(DeletedConsumable); SaveConsumableCommand = new RelayCommand(SaveConsumable); - if (consumableService!=null) + if (consumableService != null) + { + GetConsumableTypeList(); + } + AddConsumableTypeCommand = new RelayCommand(AddConsumableType); + DeletedConsumableTypeCommand = new RelayCommand(DeletedConsumableType); + } + + private void DeletedConsumableType() + { + MessageBoxResult result = System.Windows.MessageBox.Show($"是否移除耗材类别:{ConsumableTypeName}?", "提示", + MessageBoxButton.YesNo, + MessageBoxImage.Warning); + if (result != MessageBoxResult.Yes) return; + + var res = consumableService.DeletedConsumableType(ConsumableTypeId.Value); + if (!res.Success) + { + System.Windows.MessageBox.Show(res.Msg); + return; + } + if (res.Success) { GetConsumableTypeList(); } - AddConsumableTypeCommand= new RelayCommand(AddConsumableType); } private void AddConsumableType() { - var res = consumableService.AddConsumableType(AddConsumableTypeName); + var res = consumableService.AddConsumableType(AddConsumableTypeName); + if (!res.Success) + { + System.Windows.MessageBox.Show(res.Msg); + return; + } if (res.Success) { GetConsumableTypeList(); } } - private long consumableTypeId; - public long ConsumableTypeId + private long? consumableTypeId; + public long? ConsumableTypeId { get => consumableTypeId; set { Set(ref consumableTypeId, value); } } @@ -100,7 +127,7 @@ namespace BBWY.Client.Models.PackTask Weigth = Weigth, Width = Width, ConsumableTypeId = ConsumableTypeId, - + }); } @@ -182,7 +209,7 @@ namespace BBWY.Client.Models.PackTask Width = this.Width, Price = this.Price, ConsumableTypeList = this.ConsumableTypeList, - ConsumableTypeName=this.ConsumableTypeName, + ConsumableTypeName = this.ConsumableTypeName, ConsumableTypeId = this.ConsumableTypeId, }); diff --git a/BBWY.Client/Models/PackTask/PackItemModel.cs b/BBWY.Client/Models/PackTask/PackItemModel.cs index 4bbdce2c..49b64298 100644 --- a/BBWY.Client/Models/PackTask/PackItemModel.cs +++ b/BBWY.Client/Models/PackTask/PackItemModel.cs @@ -122,9 +122,12 @@ namespace BBWY.Client.Models.PackTask } ConsumableItemList = AllConsumableTypeList.SingleOrDefault(a => a.ConsumableTypeName == ConsumableType)?.ConsumableList; - - + if (ConsumableItemList == null || ConsumableItemList.Count <= 0 ) + { + return; + } + ConsumableItem = ConsumableItemList.FirstOrDefault()?.ConsumableName; } @@ -150,7 +153,7 @@ namespace BBWY.Client.Models.PackTask void OnConsumableItemChanged(string consumableItem) { - if (ConsumableItemList == null || ConsumableItemList.Count <= 0 || consumableItem == null) + if (ConsumableItemList == null || ConsumableItemList.Count <= 0 || consumableItem .IsNullOrEmpty()) { return; } diff --git a/BBWY.Client/Models/PackTask/PackTaskModel.cs b/BBWY.Client/Models/PackTask/PackTaskModel.cs index cc0b685d..00884eed 100644 --- a/BBWY.Client/Models/PackTask/PackTaskModel.cs +++ b/BBWY.Client/Models/PackTask/PackTaskModel.cs @@ -44,23 +44,33 @@ namespace BBWY.Client.Models private void UpdateTask() { - - if (!this.SkuPurchaseSchemeId.IsNullOrEmpty())//B端有采购方案 + try { - UpdatePurchaseTaskWindow updatePurchaseWindow = new UpdatePurchaseTaskWindow(this,ReflashTask); - updatePurchaseWindow.ShowDialog(); - return; - } + if (!this.SkuPurchaseSchemeId.IsNullOrEmpty())//B端有采购方案 + { + UpdatePurchaseTaskWindow updatePurchaseWindow = new UpdatePurchaseTaskWindow(this, ReflashTask); + updatePurchaseWindow.ShowDialog(); + return; + } - if (!OrderId.IsNullOrEmpty()&& SkuPurchaseSchemeId.IsNullOrEmpty())//B端无采购方案 ,手动添加合格证 - { - PublishTaskWindow publishB = new PublishTaskWindow(ReflashTask, this,SaveType.B端); - publishB.ShowDialog(); - return; + if (!OrderId.IsNullOrEmpty() && SkuPurchaseSchemeId.IsNullOrEmpty())//B端无采购方案 ,手动添加合格证 + { + + + PublishTaskWindow publishB = new PublishTaskWindow(ReflashTask, this, SaveType.B端); + publishB.ShowDialog(); + return; + } + + PublishTaskWindow publish = new PublishTaskWindow(ReflashTask, this, SaveType.C端); + publish.ShowDialog(); } + catch (Exception) + { - PublishTaskWindow publish = new PublishTaskWindow(ReflashTask, this, SaveType.C端); - publish.ShowDialog(); + + } + } @@ -86,9 +96,15 @@ namespace BBWY.Client.Models private void SetService() { + if (this.PackProcessType==null&&this.FeesMoney>0) + { + ServiceWindow window = new ServiceWindow(this, ReflashTask); + window.ShowDialog(); + return;//旧版本 + } PackDetailWindow service = new PackDetailWindow(this, ReflashTask); - service.Show(); + service.ShowDialog(); } /// @@ -459,6 +475,19 @@ namespace BBWY.Client.Models /// public DateTime? ScheduleOverTime { get; set; } + private PackProcessType? packProcessType; + /// + /// 打包工序类型(0=推荐工序,1=自定义工序) NULL 金额不为0则为旧版本结算 + /// + public PackProcessType? PackProcessType { get => packProcessType; set { Set(ref packProcessType, value); } } + + + public string ShopId { get; set; } + + /// + /// 发送信息不全时间 + /// + public DateTime? SendToSetSkuConfigureTime { get; set; } } public class SkuMessage : NotifyObject diff --git a/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs b/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs index 7f54e59f..7e760144 100644 --- a/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/ConsumableViewModel.cs @@ -1,4 +1,5 @@ using BBWY.Client.APIServices; +using BBWY.Client.Models.APIModel.Response.PackTask; using BBWY.Client.Models.PackTask; using BBWY.Client.Views.PackTask; using BBWY.Common.Models; @@ -18,8 +19,18 @@ namespace BBWY.Client.ViewModels.PackTask { public class ConsumableViewModel : BaseVM, IDenpendency { + private string consumableTypeName; + public string ConsumableTypeName + { get => consumableTypeName; set { Set(ref consumableTypeName, value); } } + private long? consumableTypeId; + public long? ConsumableTypeId + { get => consumableTypeId; set { Set(ref consumableTypeId, value); } } + + public ObservableCollection consumableTypeList = new ObservableCollection() + { - + }; + public ObservableCollection ConsumableTypeList { get => consumableTypeList; set { Set(ref consumableTypeList, value); } } private bool isOpenAdd = true; public bool IsOpenAdd { get => isOpenAdd; set { Set(ref isOpenAdd, value); } } @@ -69,10 +80,23 @@ namespace BBWY.Client.ViewModels.PackTask LoadIndex(p.PageIndex); }); SearchConsumable(); - + GetConsumableTypeList(); } - + void GetConsumableTypeList() + { + ConsumableTypeList = new ObservableCollection(); + var res = consumableService.GetConsumableTypeList(); + if (res.Success && res.Data != null) + { + ConsumableTypeList.Add(new GetConsumableTypeResponse { ConsumableTypeId = null, ConsumableTypeName = "全部" }); + foreach (var item in res.Data) + { + ConsumableTypeList.Add(item); + } + + } + } private void LoadIndex(int pageIndex) { @@ -91,6 +115,8 @@ namespace BBWY.Client.ViewModels.PackTask Name = searchName, PageIndex = PageIndex, PageSize = PageSize, + ConsumableTypeId = ConsumableTypeId, + }); if (res.Success) { diff --git a/BBWY.Client/ViewModels/PackTask/PackDetailViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackDetailViewModel.cs index 3e41dfab..a4986502 100644 --- a/BBWY.Client/ViewModels/PackTask/PackDetailViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackDetailViewModel.cs @@ -87,9 +87,6 @@ namespace BBWY.Client.ViewModels.PackTask } } - - - private decimal packFees; /// /// 打包原价 @@ -119,22 +116,32 @@ namespace BBWY.Client.ViewModels.PackTask get => processTaskCount; set { Set(ref processTaskCount, value); - OnProcessTypeChanged(SelectProcessType, 1); + if (PackProcessType == PackProcessType.推荐工序&& SelectProcessComboIdV2>0&& ProcessTaskCount>0) + + TotalPackFeesDetail(null, ProcessTaskCount, SelectProcessComboIdV2); + if (PackProcessType == PackProcessType.自定义工序&& !SelectProcessType.IsNullOrEmpty()&& ProcessTaskCount>0) + TotalPackFeesDetail(SelectProcessType, ProcessTaskCount, null); } } - void OnProcessTaskCountChanged() - { - PackFees = decimal.Parse((ProcessTaskCount * ProcessPrice).ToString("0.00")); ; - PackDiscountFees = decimal.Parse((PackFees * DiscountFactory).ToString("0.00")); - } + //void OnProcessTaskCountChanged() + //{ + // PackFees = decimal.Parse((ProcessTaskCount * ProcessPrice).ToString("0.00")); ; + // PackDiscountFees = decimal.Parse((PackFees * DiscountFactory).ToString("0.00")); + //} - private List processComboList; + private ObservableCollection processComboList; /// /// 套餐类型列表 /// - public List ProcessComboList { get => processComboList; set { Set(ref processComboList, value); } } + public ObservableCollection ProcessComboList { get => processComboList; set { Set(ref processComboList, value); } } + + private ObservableCollection processComboListV2; + /// + /// 套餐类型列表 + /// + public ObservableCollection ProcessComboListV2 { get => processComboListV2; set { Set(ref processComboListV2, value); } } @@ -151,63 +158,206 @@ namespace BBWY.Client.ViewModels.PackTask OnProcessComboChanged(SelectProcessComboId); } } + + + private long selectProcessComboIdV2; + /// + /// 选中套餐类型(推荐工序) + /// + public long SelectProcessComboIdV2 + { + get => selectProcessComboIdV2; set + { + Set(ref selectProcessComboIdV2, value); + + OnProcessComboChanged(SelectProcessComboIdV2); + } + } + + + + + public bool isConsumableTypeListEnable; public bool IsConsumableTypeListEnable { get => isConsumableTypeListEnable; set { Set(ref isConsumableTypeListEnable, value); } } - private void OnProcessComboChanged(long SelectProcessComboId) + private void OnProcessComboChanged(long SelectProcessComboId, int type = 1) { if (SelectProcessComboId <= 0) { return; } - - var selectProcessComboData = ProcessTypeResponseList.SingleOrDefault(p => p.ProcessTypeName == SelectProcessType).ProcessComboList. - SingleOrDefault(p => p.ProcessComboId == SelectProcessComboId); - App.Current.Dispatcher.Invoke(new Action(() => - { - ConsumableServiceList.Clear(); - })); - IsConsumableTypeListEnable = false; - if (SelectProcessType == "定制") + if (PackProcessType == PackProcessType.推荐工序) { - IsConsumableTypeListEnable = true; + if (ProcessComboListV2 == null || ProcessComboListV2.Count <= 0) + { + return; + } + + if (!DirectionalSingleFees.IsNullOrEmpty()) + DirectionalSingleFees = string.Empty;// + + var selectProcessComboData = ProcessComboListV2. + SingleOrDefault(p => p.ProcessComboId == SelectProcessComboId); + App.Current.Dispatcher.Invoke(new Action(() => + { + ConsumableServiceList.Clear(); + })); + IsConsumableTypeListEnable = false; + ProcessPrice = selectProcessComboData.ProcessComboNamePrice; - ConsumableServiceList = new ObservableCollection(); + ConsumableFees = 0; + AllFees = ConsumableFees + PackDiscountFees; + if (selectProcessComboData != null && selectProcessComboData.ConsumableTypeList != null && selectProcessComboData.ConsumableTypeList.Count > 0)//自动添加列表 + { + + foreach (var item in selectProcessComboData.ConsumableTypeList) + { + App.Current.Dispatcher.Invoke(new Action(() => + { + + ConsumableServiceList.Add(new PackItemModel + { + ConsumableTypeList = new ObservableCollection { item.ConsumableTypeName }, + ConsumableType = item.ConsumableTypeName, + ConsumableItemList = item.ConsumableList, + //ConsumableItem = item.ConsumableList.FirstOrDefault()?.ConsumableName, + //ConsumablePrice = item.ConsumableList.FirstOrDefault().ConsumablePrice, + TaskCount = ProcessTaskCount, + TotalConsumableFees = ToTalConsumableFees, + }); ; + })); + } + + } + //关联工序类型名 + + var discountRes = processService.GetDiscountFactory(SelectProcessType, ProcessTaskCount, SelectProcessComboIdV2); + if (!discountRes.Success) + { + System.Windows.MessageBox.Show(discountRes.Msg); + return; + } + + if (discountRes.Success && discountRes.Data != null) + { + DiscountFactory = discountRes.Data.DiscountFactory; + if (FeesMode == FeesMode.定向收费 && CustomProcessSinglePrice != null) + { + PackFees = decimal.Parse((ProcessTaskCount * CustomProcessSinglePrice.Value).ToString("0.00")); + } + else + { + FeesMode = discountRes.Data.FeesMode; + PackFees = decimal.Parse((ProcessTaskCount * ProcessPrice).ToString("0.00")); + } + + PackDiscountFees = decimal.Parse((PackFees * DiscountFactory).ToString("0.00")); + AllFees = ConsumableFees + PackDiscountFees; + } + } - ConsumableFees = 0; - AllFees = ConsumableFees + PackDiscountFees; - if (selectProcessComboData != null && selectProcessComboData.ConsumableTypeList != null && selectProcessComboData.ConsumableTypeList.Count > 0)//自动添加列表 + if (PackProcessType == PackProcessType.自定义工序) { + var selectProcessComboData = ProcessComboList. + SingleOrDefault(p => p.ProcessComboId == SelectProcessComboId); + - foreach (var item in selectProcessComboData.ConsumableTypeList) + App.Current.Dispatcher.Invoke(new Action(() => { - App.Current.Dispatcher.Invoke(new Action(() => - { + ConsumableServiceList.Clear(); + })); + IsConsumableTypeListEnable = false; + if (SelectProcessType == "定制") + { + IsConsumableTypeListEnable = true; + + ConsumableServiceList = new ObservableCollection(); + - ConsumableServiceList.Add(new PackItemModel + } + else + { + if (!DirectionalSingleFees.IsNullOrEmpty()) + DirectionalSingleFees = string.Empty; + } + ConsumableFees = 0; + AllFees = ConsumableFees + PackDiscountFees; + if (selectProcessComboData != null && selectProcessComboData.ConsumableTypeList != null && selectProcessComboData.ConsumableTypeList.Count > 0)//自动添加列表 + { + + foreach (var item in selectProcessComboData.ConsumableTypeList) + { + App.Current.Dispatcher.Invoke(new Action(() => { - ConsumableTypeList = new ObservableCollection { item.ConsumableTypeName }, - ConsumableType = item.ConsumableTypeName, - ConsumableItemList = item.ConsumableList, - //ConsumableItem = item.ConsumableList.FirstOrDefault()?.ConsumableName, - //ConsumablePrice = item.ConsumableList.FirstOrDefault().ConsumablePrice, - TaskCount = ProcessTaskCount, - TotalConsumableFees = ToTalConsumableFees, - }); ; - })); + + ConsumableServiceList.Add(new PackItemModel + { + ConsumableTypeList = new ObservableCollection { item.ConsumableTypeName }, + ConsumableType = item.ConsumableTypeName, + ConsumableItemList = item.ConsumableList, + //ConsumableItem = item.ConsumableList.FirstOrDefault()?.ConsumableName, + //ConsumablePrice = item.ConsumableList.FirstOrDefault().ConsumablePrice, + TaskCount = ProcessTaskCount, + TotalConsumableFees = ToTalConsumableFees, + }); ; + })); + } + } + } + + if (PackProcessType == PackProcessType.推荐工序 && SelectProcessComboIdV2 > 0 && ProcessTaskCount > 0) + TotalPackFeesDetail(null, ProcessTaskCount, SelectProcessComboIdV2); + if (PackProcessType == PackProcessType.自定义工序 && !SelectProcessType.IsNullOrEmpty() && ProcessTaskCount > 0) + TotalPackFeesDetail(SelectProcessType, ProcessTaskCount, null); + + } + private void TotalPackFeesDetail(string processType, int taskCount, long? processComboId) + { + + + var discountRes = processService.GetDiscountFactory(processType, taskCount, processComboId); + if (!discountRes.Success) + { + System.Windows.MessageBox.Show(discountRes.Msg); + return; } + if (discountRes.Success && discountRes.Data != null) + { + DiscountFactory = discountRes.Data.DiscountFactory; + if (FeesMode == FeesMode.定向收费 && CustomProcessSinglePrice != null) + { + PackFees = decimal.Parse((taskCount * CustomProcessSinglePrice.Value).ToString("0.00")); + } + else + { + FeesMode = discountRes.Data.FeesMode; + PackFees = decimal.Parse((taskCount * ProcessPrice).ToString("0.00")); + } + + + + PackDiscountFees = decimal.Parse((PackFees * DiscountFactory).ToString("0.00")); + AllFees = ConsumableFees + PackDiscountFees; + } + //统计打包费用 + } - private List processTypeList; + + + private List processTypeList; /// /// 工序类型列表 /// - public List ProcessTypeList { get => processTypeList; set { Set(ref processTypeList, value); } } + public List ProcessTypeList { get => processTypeList; set { Set(ref processTypeList, value); } } + + private string selectProcessType; @@ -222,46 +372,61 @@ namespace BBWY.Client.ViewModels.PackTask OnProcessTypeChanged(SelectProcessType); } } - private void OnProcessTypeChanged(string SelectProcessType, int isTaskCount = 0) + private void OnProcessTypeChanged(string SelectProcessType) { - if (isTaskCount == 0) + + if (SelectProcessType.IsNullOrEmpty()) return; + + var processTypeData = ProcessTypeList.SingleOrDefault(p => p.ProcessTypeName == SelectProcessType); + App.Current.Dispatcher.Invoke(new Action(() => { - if (ProcessTypeResponseList == null || ProcessTypeResponseList.Count <= 0 || SelectProcessType == null) return; - var processTypeData = ProcessTypeResponseList.SingleOrDefault(p => p.ProcessTypeName == SelectProcessType); - App.Current.Dispatcher.Invoke(new Action(() => - { - ProcessPrice = processTypeData.ProcessTypePrice; - ProcessComboList = processTypeData.ProcessComboList.Select(p => new ProcessComboModel { ProcessComboId = p.ProcessComboId, ProcessComboName = p.ProcessComboName }).ToList(); - })); + ProcessPrice = processTypeData.ProcessTypePrice; + ProcessComboList = processTypeData.ProcessComboList; + })); + if (ProcessComboList != null || ProcessComboList.Count() > 0) + { + SelectProcessComboId = ProcessComboList.FirstOrDefault().ProcessComboId; } - var discountRes = processService.GetDiscountFactory(SelectProcessType, ProcessTaskCount); - if (!discountRes.Success) + + } + + private string selectProductResistant; + /// + /// 选中易碎等级 + /// + public string SelectProductResistant + { + get => selectProductResistant; set { - System.Windows.MessageBox.Show(discountRes.Msg); + Set(ref selectProductResistant, value); + OnProductResistantChanged(SelectProductResistant); + } + } + private void OnProductResistantChanged(string SelectProductResistant, int isTaskCount = 0) + { + if (SelectProductResistant.IsNullOrEmpty()) + { + return; } - if (discountRes.Success && discountRes.Data != null) + if (isTaskCount == 0)//获取绑定的耗材列表 { - DiscountFactory = discountRes.Data.DiscountFactory; - if (FeesMode == FeesMode.定向收费 && CustomProcessSinglePrice != null) + if (ProductResistantList == null || ProductResistantList.Count <= 0 || SelectProductResistant == null) return; + var processTypeData = ProductResistantList.SingleOrDefault(p => p.ProductResistantName == SelectProductResistant); + App.Current.Dispatcher.Invoke(new Action(() => { - PackFees = decimal.Parse((ProcessTaskCount * CustomProcessSinglePrice.Value).ToString("0.00")); - } - else + //ProcessPrice = processTypeData.ProcessTypePrice; + ProcessComboListV2 = processTypeData.ProcessComboList; + })); + if (ProcessComboListV2 != null || ProcessComboListV2.Count() > 0) { - FeesMode = discountRes.Data.FeesMode; - PackFees = decimal.Parse((ProcessTaskCount * ProcessPrice).ToString("0.00")); + SelectProcessComboIdV2 = ProcessComboListV2.FirstOrDefault().ProcessComboId; } - - - PackDiscountFees = decimal.Parse((PackFees * DiscountFactory).ToString("0.00")); - AllFees = ConsumableFees + PackDiscountFees; } - //统计打包费用 } private string suggestPackUserName; @@ -339,11 +504,6 @@ namespace BBWY.Client.ViewModels.PackTask /// public ICommand AddPackUserCommand { get; set; } - public ICommand AddPackServiceCommand { get; set; } - - public ICommand AddBasicPackServiceCommand { get; set; } - - public ICommand AddIncreateServiceCommand { get; set; } public ICommand AddConsumableCommand { get; set; } @@ -391,18 +551,9 @@ namespace BBWY.Client.ViewModels.PackTask /// /// 折扣 /// - public string Discount { get => discount; set { Set(ref discount, value); } } // - - - public ObservableCollection IncreateServiceList { get; set; } = new ObservableCollection(); + public string Discount { get => discount; set { Set(ref discount, value); } } public ObservableCollection MemberList { get; set; } = new ObservableCollection(); public ObservableCollection ConsumableList { get; set; } = new ObservableCollection(); - public ObservableCollection PackServiceList { get; set; } = new ObservableCollection(); - - /// - /// 基础包装服务项目列表 - /// - public ObservableCollection BasicPackServiceList { get; set; } = new ObservableCollection(); @@ -461,22 +612,20 @@ namespace BBWY.Client.ViewModels.PackTask } - public PackDetailViewModel(PackTaskService packTaskService, PackDetailService packDetailService, ProcessService processService)//, long taskId + public PackDetailViewModel(PackTaskService packTaskService, PackDetailService packDetailService, ProcessService processService)//, long taskId { this.processService = processService; this.packTaskService = packTaskService; this.packDetailService = packDetailService; - AddIncreateServiceCommand = new RelayCommand(AddIncreateService); - AddPackServiceCommand = new RelayCommand(AddPackService); - AddBasicPackServiceCommand = new RelayCommand(AddBasicPackService); - AddConsumableCommand = new RelayCommand(AddConsumable); - UpLoadPackCommand = new RelayCommand(UpLoadPack); + PackUserModelList = new ObservableCollection(); + AddConsumableCommand = new RelayCommand(AddConsumable); + UpLoadPackCommand = new RelayCommand(UpLoadPack); SetAllCountCommand = new RelayCommand(SetAllCount); SetCustomProcessPriceCommand = new RelayCommand(SetCustomProcessPrice); AddPackUserCommand = new RelayCommand(AddPackUser); - PackUserModelList = new ObservableCollection(); + } private void AddPackUser() @@ -504,7 +653,7 @@ namespace BBWY.Client.ViewModels.PackTask { if (CustomProcessSinglePrice == null) { - OnProcessTypeChanged(SelectProcessType, 1); + TotalPackFeesDetail(null, ProcessTaskCount, SelectProcessComboIdV2); return; } if (SelectProcessType != "定制") @@ -513,13 +662,17 @@ namespace BBWY.Client.ViewModels.PackTask SelectProcessComboId = ProcessComboList.FirstOrDefault().ProcessComboId; } FeesMode = FeesMode.定向收费; + + ProcessPrice = CustomProcessSinglePrice.Value; PackFees = decimal.Parse((ProcessTaskCount * CustomProcessSinglePrice.Value).ToString("0.00")); ; PackDiscountFees = decimal.Parse((PackFees * DiscountFactory).ToString("0.00")); AllFees = ConsumableFees + PackDiscountFees; } - private List ProcessTypeResponseList { get; set; } + + private List productResistantList; + public List ProductResistantList { get => productResistantList; set { Set(ref productResistantList, value); } } /// /// 加载任务数据 /// @@ -563,11 +716,12 @@ namespace BBWY.Client.ViewModels.PackTask ProcessTaskCount = TaskCount; if (res.Success && res.Data != null) { - ProcessTypeResponseList = res.Data.ProcessTypeList; + ConsumableTypeList = res.Data.ConsumableTypeList; App.Current.Dispatcher.Invoke(() => { - ProcessTypeList = ProcessTypeResponseList.Select(p => p.ProcessTypeName).Distinct().ToList(); + ProcessTypeList = res.Data.ProcessTypeList; + ProductResistantList = res.Data.ProductResistantList; }); } @@ -585,12 +739,27 @@ namespace BBWY.Client.ViewModels.PackTask { var resData = packDetailRes.Data; + PackProcessType = resData.PackProcessType; + + switch (PackProcessType) + { + case PackProcessType.推荐工序: + SelectProductResistant = resData.ProductResistantName; + SelectProcessComboIdV2 = resData.ProcessComboId; + break; + case PackProcessType.自定义工序: + SelectProcessType = resData.ProcessTypeName; + SelectProcessComboId = resData.ProcessComboId; + break; + default: + break; + } SuggestPackUserName = resData.SuggestPackUserName; - SelectProcessType = resData.ProcessTypeName; - SelectProcessComboId = resData.ProcessComboId; + + TaskCount = resData.ProcessTaskCount; DirectionalSingleFees = resData.DirectionalSingleFees?.ToString(); - if (resData.DirectionalSingleFees>0) + if (resData.DirectionalSingleFees > 0) { SetCustomProcessPrice(); } @@ -726,66 +895,6 @@ namespace BBWY.Client.ViewModels.PackTask public string SkuId { get; set; } - - private List IsOverCount(ObservableCollection packItemModels, bool needUserId = true) - { - - - List disItems = new List(); - - foreach (var packItem in packItemModels)//增值服务上传 - { - var item = new PackItemModel - { - ItemCount = packItem.ItemCount, - SelectId = packItem.SelectId, - SelectUserId = packItem.SelectUserId, - ItemName = packItem.ItemName, - MemberName = packItem.MemberName - }; - if (needUserId) - if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0) - { - System.Windows.MessageBox.Show($"数据输入有误"); - return null; - } - else - if (item.SelectId <= 0 || item.ItemCount <= 0) - { - System.Windows.MessageBox.Show($"数据输入有误"); - return null; - } - - if (item.ItemCount > TaskCount) - { - System.Windows.MessageBox.Show($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}"); - return null; - } - - - - if (disItems.Select(a => a.SelectId).Contains(item.SelectId))//相同服务 存在累加 - { - - var data = disItems.SingleOrDefault(a => a.SelectId == item.SelectId); - - if (data != null) data.ItemCount += item.ItemCount; - - if (data.ItemCount > TaskCount)//累积超出任务量 - { - System.Windows.MessageBox.Show($"{item.ItemName}:{data.ItemCount}超出任务量{TaskCount}"); - return null; - } - - continue; - } - disItems.Add(item); - } - - - - return disItems; - } /// /// 计费模式 /// @@ -834,9 +943,9 @@ namespace BBWY.Client.ViewModels.PackTask } foreach (var item in ConsumableServiceList) { - if (item.TaskCount > ProcessTaskCount) + if (item.TaskCount != ProcessTaskCount) { - System.Windows.MessageBox.Show($"耗材分类:{item.ConsumableType}下,任务量:{item.TaskCount} 不能超过工序任务总量:{ProcessTaskCount}."); + System.Windows.MessageBox.Show($"耗材分类:{item.ConsumableType}下,任务量:{item.TaskCount} 不等于工序任务总量:{ProcessTaskCount}."); return; } } @@ -862,10 +971,14 @@ namespace BBWY.Client.ViewModels.PackTask PackDiscountPrice = PackDiscountFees, PackPrice = PackFees, ProcessComboCount = ProcessTaskCount, - ProcessComboId = SelectProcessComboId, - ProcessTypeName = SelectProcessType + ProcessComboId = PackProcessType == PackProcessType.推荐工序 ? SelectProcessComboIdV2 : SelectProcessComboId, + ProcessTypeName = SelectProcessType, + PackProcessType = PackProcessType, + ProductResistantName = SelectProductResistant, }; + + var res = packDetailService.SetPackDetail(setPackDetailRequest); if (res == null) @@ -892,47 +1005,12 @@ namespace BBWY.Client.ViewModels.PackTask /// public Action ReflashWindow { get; set; } - private void AddPackService() - { - App.Current.Dispatcher.Invoke(new Action(() => - { - IncrementProcessList.Add(new PackItemModel() - { - ItemCount = TaskCount, - MemberList = MemberList, - PackServiceList = PackServiceList, - }); - })); - } - private void AddBasicPackService() - { - App.Current.Dispatcher.Invoke(new Action(() => - { - BasicPackProcessList.Add(new PackItemModel() - { - ItemCount = TaskCount, - MemberList = MemberList, - PackServiceList = BasicPackServiceList, - }); - })); - } - private void AddIncreateService() - { - App.Current.Dispatcher.Invoke(new Action(() => - { - IncreateList.Add(new PackItemModel() - { - ItemCount = TaskCount, - IncreateServiceList = IncreateServiceList, - MemberList = MemberList, - }); - })); - } + private void AddConsumable() { @@ -955,7 +1033,7 @@ namespace BBWY.Client.ViewModels.PackTask TaskCount = ProcessTaskCount, ConsumableTypeList = consumableTypeList, AllConsumableTypeList = ConsumableTypeList, - TotalConsumableFees=ToTalConsumableFees + TotalConsumableFees = ToTalConsumableFees }); diff --git a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs b/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs index 13a9a0f9..87d4241f 100644 --- a/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/TaskListViewModel.cs @@ -239,7 +239,7 @@ namespace BBWY.Client.ViewModels.PackTask - public TaskListViewModel(PackTaskService packTaskService, GlobalContext globalContext, SealBoxService sealBoxService) + public TaskListViewModel(PackTaskService packTaskService, GlobalContext globalContext, SealBoxService sealBoxService) { this.globalContext = globalContext; @@ -289,7 +289,7 @@ namespace BBWY.Client.ViewModels.PackTask var paramList = (object[])param; var id = (long)paramList[0]; var markMsg = paramList[1].ToString(); - SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow = new SubmitOverTimeMarkMsgWindow(OverTimeTaskType.待落仓, id, markMsg, packTaskService, ReflashTask) ; + SubmitOverTimeMarkMsgWindow submitOverTimeMarkMsgWindow = new SubmitOverTimeMarkMsgWindow(OverTimeTaskType.待落仓, id, markMsg, packTaskService, ReflashTask); submitOverTimeMarkMsgWindow.ShowDialog(); } @@ -307,15 +307,15 @@ namespace BBWY.Client.ViewModels.PackTask ProductTitle = fallware.ProductTitle, PurchaseOrder = fallware.PurchaseOrder, WaybillNo = fallware.WaybillNo - + }; //if (fallware.WareType== WareType.京仓) //{ - //SetJDWareBoxWindow window = new SetJDWareBoxWindow(model,sealBoxService,fallware.WareType.Value,ReflashTask); - //window.Show(); - var w = new SetJDWareBoxWindow2(model, sealBoxService, fallware.WareType.Value, ReflashTask,fallware.TransportOverTime); - w.ShowDialog(); + //SetJDWareBoxWindow window = new SetJDWareBoxWindow(model,sealBoxService,fallware.WareType.Value,ReflashTask); + //window.Show(); + var w = new SetJDWareBoxWindow2(model, sealBoxService, fallware.WareType.Value, ReflashTask, fallware.TransportOverTime); + w.ShowDialog(); //} //if (fallware.WareType == WareType.云仓) //{ @@ -389,11 +389,11 @@ namespace BBWY.Client.ViewModels.PackTask private void DeletedTask(object obj) { var packTaskmodel = (PackTaskModel)obj; - if (!packTaskmodel.OrderId.IsNullOrEmpty()) - { - System.Windows.MessageBox.Show($"暂不支持删除采购组的任务,如要删除,请到采购列表取消订单:{packTaskmodel.OrderId}"); - return; - } + //if (!packTaskmodel.OrderId.IsNullOrEmpty()) + //{ + // System.Windows.MessageBox.Show($"暂不支持删除采购组的任务,如要删除,请到采购列表取消订单:{packTaskmodel.OrderId}"); + // return; + //} MessageBoxResult result = MessageBox.Show("确定取消任务?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Warning); @@ -527,7 +527,7 @@ namespace BBWY.Client.ViewModels.PackTask try { if (SearchTaskId != null && !string.IsNullOrEmpty(SearchTaskId.Trim())) - taskId= Convert.ToInt64(SearchTaskId); + taskId = Convert.ToInt64(SearchTaskId); } catch { @@ -545,7 +545,7 @@ namespace BBWY.Client.ViewModels.PackTask try { PackTaskList = new ObservableCollection();//初始化数据 - var datas = packTaskService.SearchTaskList(SearchSkuId, SearchTaskId,SearchSpuId,SearchOrderSn, this.TaskState, + var datas = packTaskService.SearchTaskList(SearchSkuId, SearchTaskId, SearchSpuId, SearchOrderSn, this.TaskState, PageIndex, PageSize); if (datas != null && datas.Data != null && datas.Success) { @@ -568,7 +568,7 @@ namespace BBWY.Client.ViewModels.PackTask GoodsNo = item.ProductItemNum, Logo= item.Logo, SkuName = item.SkuName, SkuId = item.SkuId, - + } }, ShowMarkMessage = item.ShowMarkMessage, @@ -588,7 +588,9 @@ namespace BBWY.Client.ViewModels.PackTask ShopName = item.ShopName, SkuPurchaseSchemeId = item.SkuPurchaseSchemeId, ScheduleOverTimeMarkMsg = item.ScheduleOverTimeMarkMsg, - ScheduleOverTime = item.ScheduleOverTime + ScheduleOverTime = item.ScheduleOverTime, + PackProcessType = item.PackProcessType, + SendToSetSkuConfigureTime = item.SendToSetSkuConfigureTime, }; if (!item.OrderId.IsNullOrEmpty() && !item.SkuId.IsNullOrEmpty())//加载物流信息 @@ -596,7 +598,8 @@ namespace BBWY.Client.ViewModels.PackTask var expressData = packTaskService.GetPurchaseExpressOrderList(item.OrderId, item.SkuId); if (expressData != null && expressData.Success && expressData.Data != null) { - expressData.Data.ForEach(e => { + expressData.Data.ForEach(e => + { e.ExpressState = ExpressOrderHelper.GetExpressStateName(e.ExpressState); }); data.ExpressOrderList = expressData.Data; @@ -661,19 +664,18 @@ namespace BBWY.Client.ViewModels.PackTask { foreach (var item in packtasks) { - var 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); + item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); if (datetime.TotalMilliseconds > 0) - { item.IsQualityOverTime = false; - //item.QualityRemainTime = $"{datetime.Days}天{datetime.Hours}小时{datetime.Minutes}分{datetime.Seconds}秒"; - item.QualityRemainTime = $"{datetime.Days}天{datetime.Hours}小时{datetime.Minutes}分"; - } else - { item.IsQualityOverTime = true; - //item.QualityRemainTime = $"{-datetime.Days}天{-datetime.Hours}小时{-datetime.Minutes}分{-datetime.Seconds}秒"; - item.QualityRemainTime = $"{-datetime.Days}天{-datetime.Hours}小时{-datetime.Minutes}分"; - } + + } })); @@ -803,7 +805,7 @@ namespace BBWY.Client.ViewModels.PackTask if (SealBoxConfigureType == SealBoxConfigureType.待配置) { SealBoxWaitConfigureList = new ObservableCollection(); - ApiResponse sealBoxWaitRes = sealBoxService.GetSealBoxWaitConfigureList(SearchSkuId, SearchTaskId, PageSize, PageIndex,SearchSpuId); + ApiResponse sealBoxWaitRes = sealBoxService.GetSealBoxWaitConfigureList(SearchSkuId, SearchTaskId, PageSize, PageIndex, SearchSpuId); if (sealBoxWaitRes == null) { @@ -939,9 +941,9 @@ namespace BBWY.Client.ViewModels.PackTask })); } - + var fallWareTasks = FallWareWaitConfigureList.Where(p => p.SetPurchaseOrderOverTime != null).ToList(); - if (fallWareTasks.Count() > 0 && TaskState == Models.TaskState.待落仓&& SealBoxConfigureType == SealBoxConfigureType.待配置) + if (fallWareTasks.Count() > 0 && TaskState == Models.TaskState.待落仓 && SealBoxConfigureType == SealBoxConfigureType.待配置) { //if (packOverTimeThread!=null) //{ @@ -1104,7 +1106,7 @@ namespace BBWY.Client.ViewModels.PackTask public void ShowCertificateWindow() { } - + #endregion private void OpenSkuDetail(object param) { diff --git a/BBWY.Client/ViewModels/PackTask/UpdatePurchaseTaskViewModel.cs b/BBWY.Client/ViewModels/PackTask/UpdatePurchaseTaskViewModel.cs index b03fc3e8..305ab8bb 100644 --- a/BBWY.Client/ViewModels/PackTask/UpdatePurchaseTaskViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/UpdatePurchaseTaskViewModel.cs @@ -66,14 +66,14 @@ namespace BBWY.Client.ViewModels.PackTask private ObservableCollection certificatePositionList = new ObservableCollection { - "无","外部包装","产品包装" + "无需合格证","外部包装","产品包装" }; public ObservableCollection CertificatePositionList { get => certificatePositionList; set { Set(ref certificatePositionList, value); } } - private ObservableCollection availabilityList = new ObservableCollection { - "已到货","部分到货","未到货" - }; - public ObservableCollection AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } } + //private ObservableCollection availabilityList = new ObservableCollection { + // "已到货","部分到货","未到货" + // }; + //public ObservableCollection AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } } private int skuCount; /// @@ -631,39 +631,6 @@ namespace BBWY.Client.ViewModels.PackTask //加载配置文件 } - //public void SearSpuCer() - //{ - // if (string.IsNullOrEmpty(SpuId)) - // { - // SearchSku(SkuId); - // return; - // } - // SpuId = SpuId.Trim();//去掉空格 避免数据异常 - - - // var productSku = packPurchaseTaskService.GetSpuCer(SpuId); - // if (productSku == null || !productSku.Success) - // { - // IsSetSpuCertificate = true; - - // return; - // } - // SpuCertificateModel = productSku.Data; - // IsSetSpuCertificate = false; - // if (SpuCertificateModel == null) - // { - // SpuCertificateModel = new CertificateModel(); - // IsSetSpuCertificate = true; - // SpuCertificateModel.Brand = Brand; - // SpuCertificateModel.BrandName = BrandName; - // SpuCertificateModel.ProductNo = ProductNo; - // SpuCertificateModel.SpuId = SpuId; - - // } - - - //} - public Action ReflashWindow { get; set; } public void InitData() { @@ -679,15 +646,11 @@ namespace BBWY.Client.ViewModels.PackTask BarCodeModel = null; OriginShopName = ""; - // Availability = (TaskState.)config.Availability; MarkMessage = ""; CertificatePosition = CertificatePosition.产品包装; - // Increment1 = config.Increment1; IsNeedBarCode = Need.需要; IsNeedCertificateModel = Need.不需要; - - bool isSelected; IncreateList = new ObservableCollection(); foreach (var item in increates) @@ -738,57 +701,57 @@ namespace BBWY.Client.ViewModels.PackTask SkuName = SkuName, OrderId = OrderId, BrandName = BrandName, - Availability = (int)Availability, BasicPack = (int)BasicPack, SkuId = SkuId, Increment1 = increateStr, - CertificatePosition = (int)CertificatePosition, PackType = (int)PackType, - MarkMessage = MarkMessage, PositionType = (int)PositionType, GoodsNumber = GoodsNumber, SkuGoodsTitle = SkuTitle, SkuCount = SkuCount, NeedBar = IsNeedBarCode == Need.需要, - NeedCer = IsNeedCertificateModel == Need.需要, SkuPurchaseSchemeId = SkuPurchaseSchemeId, Brand = Brand, PurchaseSkuSpecs = PurchaseSkuList.Select(p => new PurchaseSkuSpec { IsNeedCer = p.IsNeedCer, PurchaseSkuId = p.PurchaseSkuId, - }).ToArray() - - //IsWorry = IsWorry + }).ToArray(), + }; if (IsNeedBarCode == Need.需要) { if (BarCodeModel == null || IsSetBarCode || BarCodeModel.Id <= 0) { MessageBox.Show("请设置条形码模板"); - //new TipsWindow("请设置条形码模板").Show(); return; } createTaskModel.BarCodeId = BarCodeModel.Id; } - if (IsNeedCertificateModel == Need.需要) - { - - if (purchaseSkuList.Any(p => p.IsNeedCer && p.CerDTO == null)) - { - MessageBox.Show("有未设置的合格证,请设置完所有的合格证再保存"); - return; - } - var cerList = purchaseSkuList.Where(p => p.IsNeedCer).Select(p => p.CerDTO).Select(c => c.Id).Where(c => c > 0).ToList(); - if (purchaseSkuList.Count() <= 0 || cerList.Count <= 0) + if (CertificatePosition!= CertificatePosition.无需合格证)//需要合格证 + { + if (PurchaseSkuList != null && PurchaseSkuList.Count > 0 && purchaseSkuList.Any(p => p.IsNeedCer)) { - MessageBox.Show("请设置合格证模板"); - return; + if (purchaseSkuList.Any(p => p.IsNeedCer && p.CerDTO == null)) + { + MessageBox.Show("有未设置的合格证,请设置完所有的合格证再保存"); + return; + } + var cerList = purchaseSkuList.Where(p => p.IsNeedCer).Select(p => p.CerDTO).Select(c => c.Id).Where(c => c > 0).ToList(); + if (purchaseSkuList.Count() <= 0 || cerList.Count <= 0) + { + MessageBox.Show("请设置合格证模板"); + return; + } + createTaskModel.CerId = string.Join(",", cerList);// } - createTaskModel.CerId = string.Join(",", cerList);// + } + + + ApiResponse res = null; res = packPurchaseTaskService.UpdatePurchaseTask(createTaskModel); diff --git a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs index e7cde988..490028cf 100644 --- a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs @@ -119,14 +119,14 @@ namespace BBWY.Client.ViewModels.PackTask { SearchWayBillNo = null; } - + } /// /// 查询物流 /// - private string selectTaskId= "任务ID"; + private string selectTaskId = "任务ID"; public string SelectTaskId { get => selectTaskId; @@ -175,7 +175,7 @@ namespace BBWY.Client.ViewModels.PackTask { SearchSkuId = null; } - + } @@ -406,7 +406,7 @@ namespace BBWY.Client.ViewModels.PackTask /// public string ArrivedCount { get => arrivedCount; set { Set(ref arrivedCount, value); } } - + @@ -570,11 +570,31 @@ namespace BBWY.Client.ViewModels.PackTask LookLSOrderConfigureCommand = new RelayCommand(LookLSOrderConfigure); SubmitOverTimeMarkMsgCommand = new RelayCommand(SubmitOverTimeMarkMsg); - + SendToSetSkuConfigureCommand = new RelayCommand(SendToSetSkuConfigure); SelectSku = "SKU"; SelectExpress = "物流单号"; } + private void SendToSetSkuConfigure(PackTaskModel model) + { + if (model.SendToSetSkuConfigureTime!=null) + { + System.Windows.MessageBox.Show($"已提醒配置,提醒时间:{model.SendToSetSkuConfigureTime},请耐心等待"); + return; + } + + + var res = packTaskService.SendToSetSkuConfigure(model.TaskId); + if (!res.Success) + { + System.Windows.MessageBox.Show(res.Msg); + } + if (res.Success) + { + SearchTaskList(); + } + } + private void SubmitOverTimeMarkMsg(object param) { @@ -924,6 +944,10 @@ namespace BBWY.Client.ViewModels.PackTask #region 事件绑定 + /// + /// 推送sku配置状态 + /// + public ICommand SendToSetSkuConfigureCommand { get; set; } /// /// 提交超时原因 /// @@ -1345,7 +1369,7 @@ namespace BBWY.Client.ViewModels.PackTask else if (TaskState == Models.TaskState.待封箱) Task.Factory.StartNew(() => { - + if (SealBoxConfigureType == SealBoxConfigureType.已配置) { @@ -1516,7 +1540,10 @@ namespace BBWY.Client.ViewModels.PackTask ShowMarkMessage = item.ShowMarkMessage, SkuPurchaseSchemeId = item.SkuPurchaseSchemeId, ScheduleOverTimeMarkMsg = item.ScheduleOverTimeMarkMsg, - ScheduleOverTime = item.ScheduleOverTime + ScheduleOverTime = item.ScheduleOverTime, + PackProcessType = item.PackProcessType, + ShopId = item.ShopId, + SendToSetSkuConfigureTime= item.SendToSetSkuConfigureTime, }; @@ -1557,7 +1584,7 @@ namespace BBWY.Client.ViewModels.PackTask if (item.FeesItemResponse != null) { data.FeesItemResponse = item.FeesItemResponse; - data.FeesMoney = item.FeesItemResponse.SingleFees; + data.FeesMoney = item.FeesItemResponse.AllFees; data.FeesItemResponse.DiscountAllFees = item.FeesItemResponse.AllFees * item.FeesItemResponse.disCount; @@ -1597,7 +1624,11 @@ namespace BBWY.Client.ViewModels.PackTask { foreach (var item in packtasks) { - var 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); item.QualityRemainTime = OverTimeHelper.GetTimeString(datetime); if (datetime.TotalMilliseconds > 0) { @@ -1632,7 +1663,7 @@ namespace BBWY.Client.ViewModels.PackTask var packCompletedTasks = PackTaskList.Where(p => p.TaskState == Models.TaskState.待打包 && p.PackCompletionOverTime != null).ToList(); if (packCompletedTasks.Count() > 0) { - + packOverTimeThread = new Thread(() => { IsStartThread = true; diff --git a/BBWY.Client/Views/FallWare/SetJDWareBoxWindow.xaml.cs b/BBWY.Client/Views/FallWare/SetJDWareBoxWindow.xaml.cs index 7104a0e7..7f072968 100644 --- a/BBWY.Client/Views/FallWare/SetJDWareBoxWindow.xaml.cs +++ b/BBWY.Client/Views/FallWare/SetJDWareBoxWindow.xaml.cs @@ -32,9 +32,10 @@ namespace BBWY.Client.Views.FallWare { public SetJDWareBoxWindow(JDWareBoxModel model) { - JDWareBoxModel = model; + InitializeComponent(); - PurchaseOrderImage= MyPrintHelper.GetBarcodeImageV2(model.PurchaseOrder, 420, 50); + JDWareBoxModel = model; + PurchaseOrderImage = MyPrintHelper.GetBarcodeImageV2(model.PurchaseOrder, 420, 50); PrewOrderImage = MyPrintHelper.GetBarcodeImageV2(model.PrewOrder, 350, 50); this.DataContext =this; this.Dispatcher.Invoke(() => { @@ -86,8 +87,9 @@ namespace BBWY.Client.Views.FallWare printDialog.PrintTicket.PageMediaSize = new PageMediaSize(pageWidth, pageHeight); this.Height = pageHeight + 39;//833 this.Width = pageWidth;//1123 - this.FontSize = 30; + this.FontSize = 30; box_margin.Margin = new Thickness(50, 50, 50, 50); + //box_margin.Margin = new Thickness(10); this.jd_box.Arrange(new Rect(new Point(0, 0), new Size(pageWidth, pageHeight))); for (int i = 1; i <= JDWareBoxModel.BoxCount; i++) { diff --git a/BBWY.Client/Views/Order/OrderList.xaml b/BBWY.Client/Views/Order/OrderList.xaml index 5ba2ce63..95287ad2 100644 --- a/BBWY.Client/Views/Order/OrderList.xaml +++ b/BBWY.Client/Views/Order/OrderList.xaml @@ -135,7 +135,7 @@ - diff --git a/BBWY.Client/Views/PackTask/Consumable.xaml b/BBWY.Client/Views/PackTask/Consumable.xaml index 53197c21..845710f9 100644 --- a/BBWY.Client/Views/PackTask/Consumable.xaml +++ b/BBWY.Client/Views/PackTask/Consumable.xaml @@ -41,7 +41,7 @@ - + @@ -51,13 +51,26 @@ - - - -