diff --git a/BBWY.Client/APIServices/BatchPurchaseService.cs b/BBWY.Client/APIServices/BatchPurchaseService.cs index b1978a7c..e3ff0f0f 100644 --- a/BBWY.Client/APIServices/BatchPurchaseService.cs +++ b/BBWY.Client/APIServices/BatchPurchaseService.cs @@ -168,6 +168,36 @@ namespace BBWY.Client.APIServices }, null, HttpMethod.Post); } + /// + /// 修改打包状态 + /// + /// + /// + /// + public ApiResponse UpdatePackMoney(string orderId, decimal PackMoney) + { + return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/UpdatePackMoney", new + { + orderId, + PackMoney + }, null, HttpMethod.Post); + } + + /// + /// 修改采购单状态 + /// + /// + /// + /// + public ApiResponse UpdatePurchaseOrderState(string orderId, PurchaseOrderState PurchaseOrderState) + { + return SendRequest(globalContext.BBYWApiHost, "api/BatchPurchase/UpdatePurchaseOrderState", new + { + orderId, + PurchaseOrderState + }, null, HttpMethod.Post); + } + } diff --git a/BBWY.Client/APIServices/PackTaskService.cs b/BBWY.Client/APIServices/PackTaskService.cs index 0706efb2..66c9b75c 100644 --- a/BBWY.Client/APIServices/PackTaskService.cs +++ b/BBWY.Client/APIServices/PackTaskService.cs @@ -136,13 +136,13 @@ namespace BBWY.Client.APIServices , null, HttpMethod.Post); } - public ApiResponse UpdateTaskStatus(long id, int taskStatus) + public ApiResponse UpdateTaskStatus(long id, int taskStatus,string orderId) { return SendRequest(globalContext.QKApiHost, "api/PackTask/UpdatePackTaskStatus", new { id, - taskStatus - + taskStatus, + orderId } , null, HttpMethod.Post); } @@ -305,6 +305,10 @@ namespace BBWY.Client.APIServices public decimal? ConsumableFees { get; set; } public decimal? DiscountPrice { get; set; } + + public string OrderId { get; set; } + + public string SkuId { get; set; } } public class PersonTaskModel diff --git a/BBWY.Client/Models/APIModel/Request/CreateTaskRequest.cs b/BBWY.Client/Models/APIModel/Request/CreateTaskRequest.cs index 8a9b8902..04c0c50a 100644 --- a/BBWY.Client/Models/APIModel/Request/CreateTaskRequest.cs +++ b/BBWY.Client/Models/APIModel/Request/CreateTaskRequest.cs @@ -102,5 +102,7 @@ namespace BBWY.Client.Models.APIModel.Request public int? CertificatePosition { get; set; } public Worry IsWorry { get; set; } + public string OrderId { get; set; } + public Platform Platform { get; set; } } } diff --git a/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs index 62019c13..c2278421 100644 --- a/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs +++ b/BBWY.Client/Models/APIModel/Response/BatchPurchase/PurchaseOrderV2Response.cs @@ -173,7 +173,13 @@ namespace BBWY.Client.Models /// public PurchaseOrderMode PurchaseOrderMode { get; set; } + /// + /// 打包状态(待发布 = 0, 打包中 = 1, 已完成 = 2) + /// + public PackState PackState { get; set; } + public IList ItemList { get; set; } } + } diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/PackTaskResultResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/PackTaskResultResponse.cs index 9bd05317..c0a9842d 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/PackTaskResultResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/PackTaskResultResponse.cs @@ -168,8 +168,8 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask /// /// 品牌 /// - public string Brand { get; set; } - + public string Brand { get; set; } + public string OrderId { get; set; } } //public class FeesItemTypeDTO :NotifyObject diff --git a/BBWY.Client/Models/BatchPurchase/BatchPublishTask.cs b/BBWY.Client/Models/BatchPurchase/BatchPublishTask.cs new file mode 100644 index 00000000..5c098e61 --- /dev/null +++ b/BBWY.Client/Models/BatchPurchase/BatchPublishTask.cs @@ -0,0 +1,554 @@ +using BBWY.Client.APIServices; +using BBWY.Client.Models.PackTask; +using BBWY.Client.ViewModels; +using BBWY.Client.Views.PackTask; +using BBWY.Common.Models; +using GalaSoft.MvvmLight.Command; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Input; + +namespace BBWY.Client.Models +{ + //public class ComboxItem + //{ + // public int { get; set; } + //} + public class BatchPublishTask : NotifyObject + { + + #region 属性 + + private ObservableCollection positionTypeList = new ObservableCollection { + new ComboBoxItem{IsSelected = false,Content = "本地仓"}, new ComboBoxItem{IsSelected = false,Content = "齐越仓"}, new ComboBoxItem{IsSelected = false,Content = "京东仓"} + + }; + public ObservableCollection PositionTypeList { get => positionTypeList; set { Set(ref positionTypeList, value); } } + private ObservableCollection packTypeList = new ObservableCollection { + new ComboBoxItem{ Content="单件",IsSelected=false }, new ComboBoxItem{ Content="多件",IsSelected=false } + }; + public ObservableCollection PackTypeList { get => packTypeList; set { Set(ref packTypeList, value); } } + + private ObservableCollection basicPackList = new ObservableCollection { + new ComboBoxItem{ Content="快递袋",IsSelected=false }, new ComboBoxItem{ Content="纸箱",IsSelected=false }, new ComboBoxItem{ Content="麻袋",IsSelected=false } + }; + public ObservableCollection BasicPackList { get => basicPackList; set { Set(ref basicPackList, value); } } + private ObservableCollection isNeedBarCodeList = new ObservableCollection { + new ComboBoxItem{IsSelected = false,Content = "需要"}, new ComboBoxItem{IsSelected = false,Content = "不需要"}}; + public ObservableCollection IsNeedBarCodeList { get => isNeedBarCodeList; set { Set(ref isNeedBarCodeList, value); } } + + private ObservableCollection certificatePositionList = new ObservableCollection { + new ComboBoxItem{ Content="无",IsSelected=false }, new ComboBoxItem{ Content="外部包装",IsSelected=false }, new ComboBoxItem{ Content="产品包装",IsSelected=false } + }; + public ObservableCollection CertificatePositionList { get => certificatePositionList; set { Set(ref certificatePositionList, value); } } + private ObservableCollection availabilityList = new ObservableCollection { + new ComboBoxItem{ Content="已到货",IsSelected=false }, new ComboBoxItem{ Content="部分到货",IsSelected=false }, new ComboBoxItem{ Content="未到货",IsSelected=false } + }; + public ObservableCollection AvailabilityList { get => availabilityList; set { Set(ref availabilityList, value); } } + + private int skuCount; + /// + /// Sku任务数 + /// + public int SkuCount { get => skuCount; set { Set(ref skuCount, value); } } + + private string skuId; + /// + /// Sku + /// + public string SkuId { get => skuId; set { Set(ref skuId, value); } } + + private string logo; + /// + /// 店铺Sku图链接 + /// + public string Logo { get => logo; set { Set(ref logo, value); } } + + private string skuName; + /// + /// 采购Sku名称 + /// + public string SkuName { get => skuName; set { Set(ref skuName, value); } } + + private string brand; + /// + /// 品牌 + /// + public string Brand { get => brand; set { Set(ref brand, value); } } + + + private string productNo; + /// + /// 货号 + /// + public string ProductNo { get => productNo; set { Set(ref productNo, value); } } + + private string brandName; + /// + /// 品名(手写上传) + /// + public string BrandName { get => brandName; set { Set(ref brandName, value); } } + + + private int goodsNumber; + /// + /// 配件数 + /// + public int GoodsNumber { get => goodsNumber; set { Set(ref goodsNumber, value); } } + private Worry isWorry; + /// + /// 是否加急 + /// + public Worry IsWorry { get => isWorry; set { Set(ref isWorry, value); } } + + private TaskState availability; + /// + /// 到货情况(待收货=0,部分收货=1,已到货=2) + /// + public TaskState Availability { get => availability; set { Set(ref availability, value); } } + + private PackType packType; + /// + /// 打包类型(单件=0,多件=1) + /// + public PackType PackType { get => packType; set { Set(ref packType, value); } } + + private BasicPack basicPack; + /// + /// 基础包装(快递袋=0,纸箱=1,麻袋=2) + /// + public BasicPack BasicPack { get => basicPack; set { Set(ref basicPack, value); } } + + private PositionType positionType; + /// + /// 落仓(本地仓=0,齐越仓=1,京东仓=2) + /// + public PositionType PositionType { get => positionType; set { Set(ref positionType, value); } } + + private string skuTitle; + /// + /// sku配件商品名称 + /// + public string SkuTitle { get => skuTitle; set { Set(ref skuTitle, value); } } + + private Need isNeedBarCode; + /// + /// 是否需要合格证 + /// + public Need IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } } + + + private Need isNeedCertificateModel; + /// + /// 是否需要条形码 + /// + public Need IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } } + + + private BarCodeModel barCodeModel; + /// + /// 条形码 + /// + public BarCodeModel BarCodeModel { get => barCodeModel; set { Set(ref barCodeModel, value); } } + + + private bool isSetBarCode; + /// + /// 设置显示(条形码) + /// + public bool IsSetBarCode + { + get => isSetBarCode; + set + { + + Set(ref isSetBarCode, value); + IsNeedBarCode = IsSetBarCode ? Need.不需要 : Need.需要; + } + } + + private bool isSetCertificate; + /// + /// 设置显示(合格证) + /// + public bool IsSetCertificate + { + get => isSetCertificate; set + { + + Set(ref isSetCertificate, value); + IsNeedCertificateModel = IsSetCertificate ? Need.不需要 : Need.需要; + } + } + private string setSpuCerStatus; + + public string SetSpuCerStatus { get => setSpuCerStatus; set { Set(ref setSpuCerStatus, value); } } + private bool isSetSpuCertificate = true; + + + /// + /// 设置spu显示(合格证) + /// + public bool IsSetSpuCertificate + { + get => isSetSpuCertificate; set + { + + Set(ref isSetSpuCertificate, value); + SetSpuCerStatus = IsSetSpuCertificate ? "设置spu模板" : "修改spu模板"; + } + } + + + private string saveTask; + + /// + /// 设置显示(合格证) + /// + public string SaveTask { get => saveTask; set { Set(ref saveTask, value); } } + + + private string spuId; + /// + /// 合格证 + /// + public string SpuId { get => spuId; set { Set(ref spuId, value); } } + + private CertificateModel spuCertificateModel; + /// + /// spu合格证 + /// + public CertificateModel SpuCertificateModel { get => spuCertificateModel; set { Set(ref spuCertificateModel, value); } } + + + + private CertificateModel certificateModel; + /// + /// 合格证 + /// + public CertificateModel CertificateModel { get => certificateModel; set { Set(ref certificateModel, value); } } + + /// + /// 合格证位置(外部包装=0,产品包装=1) + /// + private CertificatePosition certificatePosition; + /// + /// 合格证位置(外部包装=0,产品包装=1) + /// + public CertificatePosition CertificatePosition { get => certificatePosition; set { Set(ref certificatePosition, value); } } + + /// + /// 注意事项(对接备注) + /// + private string markMessage; + /// + /// 注意事项(对接备注) + /// + public string MarkMessage { get => markMessage; set { Set(ref markMessage, value); } } + + + private ObservableCollection increateList; + /// + /// 增量耗材查询关键字 + /// + public ObservableCollection IncreateList { get => increateList; set { Set(ref increateList, value); } } + #endregion + string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" }; + public PackTaskService packTaskService; + public ProductService productService; + public BatchPublishTask() + { + IncreateList = new ObservableCollection(); + foreach (var item in increates) + { + IncreateList.Add(new IncreateModel + { + IncreateName = item, + IsSelected = false + }); + } + SetBarCodeCommand = new RelayCommand(SetBarCode); + SetCertificateCommand = new RelayCommand(SetCertificate); + LookBarCommand = new RelayCommand(LookBar); + LookCerCommand = new RelayCommand(LookCer); + + } + #region 方法 + public ICommand SetBarCodeCommand { get; set; } + public ICommand SetCertificateCommand { get; set; } + public ICommand LookBarCommand { get; set; } + public ICommand LookCerCommand { get; set; } + + + private void SetBarCode() + { + if (string.IsNullOrEmpty(SkuId)) + { + return; + } + if (BarCodeModel == null) + { + BarCodeModel = new BarCodeModel(); + BarCodeModel.ProductNo = ProductNo; + BarCodeModel.Brand = Brand; + BarCodeModel.SkuId = SkuId; + BarCodeModel.SkuName = SkuName; + } + if (!string.IsNullOrEmpty(BrandName)) + BarCodeModel.BrandName = BrandName; + + + SetBarCodeWindow setBarCodeWindow = new SetBarCodeWindow(); + setBarCodeWindow.LoadData(BarCodeModel, packTaskService); + setBarCodeWindow.SaveResult = b => + { + BarCodeModel = b; + IsSetBarCode = false; + IsNeedBarCode = Need.需要; + }; + setBarCodeWindow.Show(); + } + + /// + /// 设置合格证 + /// + private void SetCertificate() + { + if (string.IsNullOrEmpty(SkuId)) + return; + + SearSpuCer(); + + if (CertificateModel == null) + { + CertificateModel = new CertificateModel(); + CertificateModel.ProductNo = ProductNo; + CertificateModel.Brand = Brand; + CertificateModel.SkuId = SkuId; + + } + if (!string.IsNullOrEmpty(BrandName)) + CertificateModel.BrandName = BrandName; + SetCerWindow setCerWindow = new SetCerWindow(); + setCerWindow.LoadData(certificateModel, packTaskService, spuCertificateModel, IsSetSpuCertificate); + setCerWindow.SaveResult = s => + { + CertificateModel = s; + IsSetCertificate = false; + IsNeedCertificateModel = Need.需要; + }; + setCerWindow.Show(); + } + + + /// + /// 查看合格证 + /// + private void LookCer() + { + LookCerWindow lookCerWindow = new LookCerWindow(CertificateModel); + lookCerWindow.Show(); + } + /// + /// 查看条形码 + /// + private void LookBar() + { + LookBarCodeWindow look = new LookBarCodeWindow(); + look.SetData(BarCodeModel); + look.Show(); + } + + /// + /// 搜索 skuId + /// + public void SearchSku(string skuid) + { + if (string.IsNullOrEmpty(skuid)) + return; + + ApiResponse productApiResponse = null; + var skuResponse = productService.GetProductSkuList(string.Empty, skuid); + if (skuResponse.Success) + { + if (skuResponse.Data.Count == 0) + { + return; + } + Logo = skuResponse.Data[0].Logo.Replace("80x80", "200x200"); + SkuName = skuResponse.Data[0].Title; + + + SpuId = skuResponse.Data[0].ProductId; + + productApiResponse = productService.GetProductList(skuResponse.Data[0].ProductId, string.Empty, string.Empty, 1); + + if (productApiResponse.Success) + { + if (productApiResponse.Data.Count == 0) + { + + return; + } + + ProductNo = productApiResponse.Data.Items[0].ProductItemNum; + Brand = productApiResponse.Data.Items[0].BrandName; + + } + var productSku = packTaskService.GetProductSku(skuid); + if (productSku == null || !productSku.Success) + { + + return; + } + + if (productSku.Data.PackConfig != null) + { + var config = productSku.Data.PackConfig; + SkuTitle = config.SkuGoodsTitle; + GoodsNumber = config.GoodsNumber; + PackType = (PackType)config.PackType; + BasicPack = (BasicPack)config.BasicPack; + Availability = (TaskState)config.Availability; + MarkMessage = config.MarkMessage; + CertificatePosition = config.CertificatePosition == null ? CertificatePosition.无 : (CertificatePosition)config.CertificatePosition.Value; + // Increment1 = config.Increment1; + string[] increateDatas = config.Increment1.Split(','); + + bool isSelected = false; + foreach (var item in increates) + { + isSelected = false; + if (increateDatas.Contains(item)) + { + isSelected = true; + } + App.Current.Dispatcher.Invoke(() => + { + IncreateList.Add(new IncreateModel + { + IncreateName = item, + IsSelected = isSelected + }); + }); + } + + } + + BrandName = productSku.Data.BrandName; + + + CertificateModel = productSku.Data.Certificate; + IsSetCertificate = false; + if (CertificateModel == null) + { + CertificateModel = new CertificateModel(); + IsSetCertificate = true; + + } + CertificateModel.Brand = Brand; + if (!string.IsNullOrEmpty(BrandName)) + CertificateModel.BrandName = BrandName; + CertificateModel.ProductNo = ProductNo; + CertificateModel.SkuId = skuid; + BarCodeModel = productSku.Data.BarCodeModel; + IsSetBarCode = false; + if (BarCodeModel == null) + { + BarCodeModel = new BarCodeModel(); + IsSetBarCode = true; + } + BarCodeModel.Brand = Brand; + if (!string.IsNullOrEmpty(BrandName)) + BarCodeModel.BrandName = BrandName; + BarCodeModel.ProductNo = ProductNo; + BarCodeModel.SkuId = skuid; + BarCodeModel.SkuName = SkuName; + } + else + { + + App.Current.Dispatcher.Invoke(() => MessageBox.Show(skuResponse.Msg, "加载sku")); + return; + } + + } + + public void SearSpuCer() + { + if (string.IsNullOrEmpty(SpuId)) + { + SearchSku(SkuId); + return; + } + SpuId = SpuId.Trim();//去掉空格 避免数据异常 + + + var productSku = packTaskService.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 void InitData() + { + + IncreateList = new ObservableCollection(); + SpuId = string.Empty; + SaveTask = "发布"; + + Logo = string.Empty; + + SkuId = ""; + SkuCount = 0; + SkuName = string.Empty; + ProductNo = string.Empty; + Brand = string.Empty; + BrandName = string.Empty; + this.MarkMessage = ""; + IsSetBarCode = true; + IsSetCertificate = true; + BarCodeModel = null; + CertificateModel = null; + SkuTitle = string.Empty; + GoodsNumber = 0; + foreach (var item in increates) + { + IncreateList.Add(new IncreateModel + { + IncreateName = item, + IsSelected = false + }); + } + //SearchSku(SkuId); + + } + + #endregion + + } +} diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index a0b9eee3..21bb87b7 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -384,4 +384,14 @@ 未结算 = 0, 已结清 = 1 } + + public enum Need + { + 不需要=0, + 需要=1 + } + public enum PackState + { + 待发布 = 0, 打包中 = 1, 已完成 = 2 + } } diff --git a/BBWY.Client/Models/PackTask/ConsumableModel.cs b/BBWY.Client/Models/PackTask/ConsumableModel.cs index 5437d1b1..3125d821 100644 --- a/BBWY.Client/Models/PackTask/ConsumableModel.cs +++ b/BBWY.Client/Models/PackTask/ConsumableModel.cs @@ -4,11 +4,13 @@ using BBWY.Client.ViewModels; using BBWY.Client.Views.PackTask; using BBWY.Common.Models; using GalaSoft.MvvmLight.Command; +using HandyControl.Controls; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Resources; using System.Text; +using System.Windows; using System.Windows.Input; using System.Windows.Media.TextFormatting; @@ -95,6 +97,11 @@ namespace BBWY.Client.Models.PackTask public void DeletedConsumable(ObservableCollection list) { + MessageBoxResult result =System.Windows. MessageBox.Show("是否删除?", "提示", + MessageBoxButton.YesNo, + MessageBoxImage.Warning); + if (result != MessageBoxResult.Yes) return; + var res = consumableService.Deleted(Id); if (res.Success) { diff --git a/BBWY.Client/Models/PackTask/PackTaskModel.cs b/BBWY.Client/Models/PackTask/PackTaskModel.cs index f5406aa9..9a2f2a89 100644 --- a/BBWY.Client/Models/PackTask/PackTaskModel.cs +++ b/BBWY.Client/Models/PackTask/PackTaskModel.cs @@ -108,12 +108,14 @@ namespace BBWY.Client.Models var serviceViewModel = viewModelLocator.PackServiceList; serviceViewModel.TaskCount = SkuCount; serviceViewModel.TaskId = TaskId; + serviceViewModel.OrderId= OrderId; + serviceViewModel.SkuId =SkuId ; serviceViewModel.LoadPackDatas(); serviceViewModel.SetAllFees = new Action>((feesItem, packUsers) => { FeesItemResponse = feesItem; PackUser = string.Join("\r\n", packUsers); - + FeesItemResponse.DiscountAllFees = feesItem.disCount * feesItem.AllFees; IsShowFees = feesItem.AllFees > 0 ? true : false; }); service.Show(); @@ -208,9 +210,12 @@ namespace BBWY.Client.Models } ///修改完成 - var model = packTaskService.UpdateTaskStatus(taskId, 1); + var model = packTaskService.UpdateTaskStatus(taskId, 1,""); if (model != null && model.Success) { + //var res = batchPurchaseService.UpdatePurchaseOrderState(id, Models.PurchaseOrderState.已完成 ); + + this.TaskStatus = TaskStateType.已完成; new TipsWindow("修改成功").Show(); } @@ -497,6 +502,8 @@ namespace BBWY.Client.Models public FeesItemResponse FeesItemResponse { get => feesItemResponse; set { Set(ref feesItemResponse, value); } } public IList ItemList { get; set; } + + public string OrderId { get; set; } } public class SkuMessage : NotifyObject diff --git a/BBWY.Client/ViewModels/BaseVM.cs b/BBWY.Client/ViewModels/BaseVM.cs index 28a6ae70..c4a8b336 100644 --- a/BBWY.Client/ViewModels/BaseVM.cs +++ b/BBWY.Client/ViewModels/BaseVM.cs @@ -22,11 +22,11 @@ namespace BBWY.Client.ViewModels LoadCommand = new RelayCommand(Load); UnloadCommand = new RelayCommand(Unload); - CopyTextCommand = new RelayCommand(s => + CopyTextCommand = new RelayCommand(s => { try { - Clipboard.SetText(s); + Clipboard.SetText(s.ToString()); } catch (Exception ex) { diff --git a/BBWY.Client/ViewModels/BatchPurchase/BatchPublishTaskViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPublishTaskViewModel.cs new file mode 100644 index 00000000..a197321b --- /dev/null +++ b/BBWY.Client/ViewModels/BatchPurchase/BatchPublishTaskViewModel.cs @@ -0,0 +1,172 @@ +using BBWY.Client.APIServices; +using BBWY.Client.Models; +using BBWY.Client.Views.PackTask; +using BBWY.Common.Models; +using GalaSoft.MvvmLight.Command; +using System; +using System.Collections.Generic; +using System.Collections.ObjectModel; +using System.Net.Mail; +using System.Text; +using System.Threading.Tasks; +using System.Windows.Input; +using System.Linq; +using System.Windows; +using GalaSoft.MvvmLight.Messaging; + +namespace BBWY.Client.ViewModels +{ + public class BatchPublishTaskViewModel : BaseVM, IDenpendency + { + + PackTaskService packTaskService; + ProductService productService; + private bool isLoading = false; + public bool IsLoading { get => isLoading; set { Set(ref isLoading, value); } } + + private ObservableCollection batchPublishTasks; + public ObservableCollection BatchPublishTasks { get => batchPublishTasks; set { Set(ref batchPublishTasks, value); } } + // public ObservableCollection BatchPublishTasks; + public ICommand OpenSkuDetailCommand { get; set; } + public ICommand CreateTaskCommand { get; set; } + public BatchPublishTaskViewModel(PackTaskService packTaskService, ProductService productService, GlobalContext globalContext) + { + BatchPublishTasks = new ObservableCollection(); + this.packTaskService = packTaskService; + this.productService = productService; + CreateTaskCommand = new RelayCommand(CreateTask); + OpenSkuDetailCommand = new RelayCommand(OpenSkuDetail); + this.globalContext = globalContext; + + + + + } + private void OpenSkuDetail(object param) + { + var paramList = (object[])param; + // var orderId = paramList[0].ToString(); + var skuId = paramList[0].ToString(); + + + var url = $"https://item.jd.com/{skuId}.html"; + try + { + System.Diagnostics.Process.Start("explorer.exe", url); + } + catch (Exception ex) + { + Clipboard.SetText(url); + MessageBox.Show($"{ex.Message}\r\n调用浏览器失败,网页链接已复制到剪切板,请手动打开浏览器访问", "提示"); + } + + } + + + GlobalContext globalContext; + private void CreateTask(object obj) + { + foreach (var task in BatchPublishTasks) + { + string increateStr = ""; + var increates = task.IncreateList.Where(i => i.IsSelected).Select(i => i.IncreateName); + if (increates != null && increates.Count() > 0) + { + increateStr = string.Join(",", increates); + } + var createTaskModel = new Models.APIModel.Request.CreateTaskRequest + { + ProductNo = task.ProductNo, + Logo = task.Logo, + SkuName = task.SkuName, + BrandName = task.BrandName, + Availability = (int)task.Availability, + BasicPack = (int)task.BasicPack, + SkuId = task.SkuId, + CreateTime = DateTime.Now, + Increment1 = increateStr, + CertificatePosition = (int)task.CertificatePosition, + PackType = (int)task.PackType, + MarkMessage = task.MarkMessage, + PositionType = (int)task.PositionType, + GoodsNumber = task.GoodsNumber, + SkuGoodsTitle = task.SkuTitle, + SkuCount = task.SkuCount, + UserId = globalContext.User.Id.ToString(), + ShopId = PurchaserId, + IsWorry = task.IsWorry, + OrderId = orderId, + Platform =platform + }; + if (task.IsNeedBarCode == Need.需要) + { + if (task.BarCodeModel == null || task.BarCodeModel.Id <= 0) + { + new TipsWindow("请设置条形码模板").Show(); + return; + } + createTaskModel.BarCodeId = task.BarCodeModel.Id; + } + if (task.IsNeedCertificateModel == Need.需要) + { + if (task.CertificateModel == null || task.CertificateModel.Id <= 0) + { + new TipsWindow("请设置合格证模板").Show(); + return; + } + createTaskModel.CertificateId = task.CertificateModel.Id;// + } + ApiResponse res = null; + res = packTaskService.CreateTask(createTaskModel); + + if (!res.Success) + { + new TipsWindow(res.Msg); + return; + } + } + //var win = obj as System.Windows.Window; + + Messenger.Default.Send(true, "CloseBatchPublishTaskWindow"); + //win.Close(); + if (PublishTask != null) PublishTask(); + + } + + + + public Action PublishTask { get; set; } + + + Platform platform; string orderId; string PurchaserId; + public void AddSkus(Platform platform, string orderId, string PurchaserId, List purchaseOrderSkus) + { + BatchPublishTasks = new ObservableCollection(); + this.platform = platform; this.orderId = orderId; + this.PurchaserId = PurchaserId; + BatchPublishTask model = null; + IsLoading = true; + foreach (var item in purchaseOrderSkus) + { + model = new BatchPublishTask(); + model.productService = productService; + model.packTaskService = packTaskService; + model.SkuId = item.SkuId; + model.SkuCount = item.Quantity.Value; + model.Logo = item.Logo.Replace("80x80", "200x200"); + model.SpuId = item.ProductId; + model.SkuName = item.SkuTitle; + model.SearchSku(item.SkuId); + App.Current.Dispatcher.Invoke(() => + { + BatchPublishTasks.Add(model); + }); + + } + + IsLoading = false; + } + + + } +} diff --git a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs index 44f707a2..d025c1e2 100644 --- a/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs +++ b/BBWY.Client/ViewModels/BatchPurchase/BatchPurchaseOrderListViewModel.cs @@ -1,5 +1,6 @@ using BBWY.Client.APIServices; using BBWY.Client.Models; +using BBWY.Client.ViewModels; using BBWY.Client.Views.BatchPurchase; using BBWY.Common.Extensions; using BBWY.Common.Models; @@ -11,6 +12,7 @@ using System.Collections.ObjectModel; using System.Linq; using System.Threading.Tasks; using System.Windows; +using System.Windows.Data; using System.Windows.Input; namespace BBWY.Client.ViewModels @@ -44,6 +46,8 @@ namespace BBWY.Client.ViewModels public ICommand CancelPurchaseOrderCommand { get; set; } + public ICommand CreateQTTaskCommand { get; set; } + public DateTime StartDate { get => startDate; set { Set(ref startDate, value); } } public DateTime EndDate { get => endDate; set { Set(ref endDate, value); } } public string SearchPurchaseOrderId { get => searchPurchaseOrderId; set { Set(ref searchPurchaseOrderId, value); } } @@ -72,6 +76,8 @@ namespace BBWY.Client.ViewModels PayPurchaseOrderCommand = new RelayCommand(PayPurchaseOrder); CancelPurchaseOrderCommand = new RelayCommand(CancelPurchaseOrder); + + CreateQTTaskCommand = new RelayCommand(CreateQTTask); PageSize = 10; this.globalContext = globalContext; EndDate = DateTime.Now.Date; @@ -80,8 +86,42 @@ namespace BBWY.Client.ViewModels InitQueryPurchaseOrder(); } + private void CreateQTTask(object obj) + { + var parameters = (object[])obj; + var PurchasePlatform = (Platform)parameters[0];//采购平台 + var id = parameters[1].ToString();//订单id + var itemList = (List)parameters[2];//skuid 数量 + var PurchaserId = (string)parameters[3];//采购商id + + + ViewModelLocator viewModelLocator = new ViewModelLocator(); + BatchPublishTaskViewModel batch = viewModelLocator.BatchPublishTask; + + + + batch.PublishTask = () => { + //修改状态 + var res = batchPurchaseService.UpdatePurchaseOrderState(id, Models.PurchaseOrderState.待打包); + if (res.Success) + { + Task.Factory.StartNew(() => QueryPurchaseOrder(PageIndex)); + } + + }; + batch.AddSkus(PurchasePlatform, id, PurchaserId, itemList); + BatchPublishTaskWindow window = new BatchPublishTaskWindow(); + window.Show(); + + + + + + + } + private void CancelPurchaseOrder(object obj) { MessageBoxResult result = MessageBox.Show("确定取消订单?", "提示", @@ -104,6 +144,8 @@ namespace BBWY.Client.ViewModels } if (res.Data != null) MessageBox.Show(res.Data.Msg); + else + MessageBox.Show(res.Msg); } private void PayPurchaseOrder(object obj) @@ -125,6 +167,9 @@ namespace BBWY.Client.ViewModels } if (res.Data != null) MessageBox.Show(res.Data.Msg); + else + MessageBox.Show(res.Msg); + } diff --git a/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs b/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs index 70f9d939..cfdd3f44 100644 --- a/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/CreatePackTaskViewModel.cs @@ -222,18 +222,18 @@ namespace BBWY.Client.ViewModels.PackTask /// public PositionType PositionType { get => positionType; set { Set(ref positionType, value); } } - private string isNeedBarCode; + private Need isNeedBarCode; /// /// 是否需要合格证 /// - public string IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } } + public Need IsNeedBarCode { get => isNeedBarCode; set { Set(ref isNeedBarCode, value); } } - private string isNeedCertificateModel; + private Need isNeedCertificateModel; /// /// 是否需要条形码 /// - public string IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } } + public Need IsNeedCertificateModel { get => isNeedCertificateModel; set { Set(ref isNeedCertificateModel, value); } } @@ -255,7 +255,7 @@ namespace BBWY.Client.ViewModels.PackTask { Set(ref isSetBarCode, value); - IsNeedBarCode = IsSetBarCode ? "不需要" : "需要"; + IsNeedBarCode = IsSetBarCode ? Need.不需要 : Need.需要; } } @@ -269,7 +269,7 @@ namespace BBWY.Client.ViewModels.PackTask { Set(ref isSetCertificate, value); - IsNeedCertificateModel = IsSetCertificate ? "不需要" : "需要"; + IsNeedCertificateModel = IsSetCertificate ? Need.不需要 : Need.需要; } } private string setSpuCerStatus; @@ -302,7 +302,7 @@ namespace BBWY.Client.ViewModels.PackTask private string spuId; /// - /// 合格证 + /// spu /// public string SpuId { get => spuId; set { Set(ref spuId, value); } } @@ -338,41 +338,10 @@ namespace BBWY.Client.ViewModels.PackTask /// public string MarkMessage { get => markMessage; set { Set(ref markMessage, value); } } - /// - /// 服务收费 (单个任务id 消耗的总费用) - /// - private decimal feesMoney; - /// - /// 服务收费 (单个任务id 消耗的总费用) - /// - public decimal FeesMoney { get => feesMoney; set { Set(ref feesMoney, value); } } - /// - /// 打包员 - /// - private string packUser; - /// - /// 打包员 - /// - public string PackUser { get => packUser; set { Set(ref packUser, value); } } - private string printName; - /// - /// 选中的打印机名称 - /// - public string PrintName { get => printName; set { Set(ref printName, value); } } - private List printNames; - /// - /// 选中的打印机名称 - /// - public List PrintNames { get => printNames; set { Set(ref printNames, value); } } - private int printNums; - /// - /// 打印数 - /// - public int PrintNums { get => printNums; set { Set(ref printNums, value); } } private readonly PackTaskService packTaskService; @@ -402,13 +371,13 @@ namespace BBWY.Client.ViewModels.PackTask string[] increates = new string[] { "气泡纸", "气泡袋", "POP袋", "折纸箱", "气泡纸封边", "彩盒", "剪胶", "剪彩带", "快递袋", "收纳盒", "纸箱子", "装纸箱", "封边", "胶带", "折彩盒" }; public void InitData(PackTaskModel model = null) { - + IncreateList = new ObservableCollection(); SpuId = string.Empty; if (model == null) { - + SaveTask = "发布"; TaskId = 0; Logo = string.Empty; @@ -458,8 +427,8 @@ namespace BBWY.Client.ViewModels.PackTask PositionType = model.PositionType; PackType = model.PackType; BasicPack = model.BasicPack; - IsNeedBarCode = model.BarCodeModel != null ? "需要" : "不需要"; - IsNeedCertificateModel = model.CertificateModel != null ? "需要" : "不需要"; + IsNeedBarCode = model.BarCodeModel == null ? Need.不需要 : Need.需要; + IsNeedCertificateModel = model.CertificateModel == null ? Need.不需要 : Need.需要; CertificatePosition = model.CertificatePosition; TaskId = model.TaskId; string[] increateDatas = model.Increment1.Split(','); @@ -472,7 +441,8 @@ namespace BBWY.Client.ViewModels.PackTask { isSelected = true; } - App.Current.Dispatcher.Invoke(() => { + App.Current.Dispatcher.Invoke(() => + { IncreateList.Add(new IncreateModel { IncreateName = item, @@ -501,7 +471,7 @@ namespace BBWY.Client.ViewModels.PackTask IsSetCertificate = true; //数据库获取增量耗材数据 - + IncreateList = new ObservableCollection(); foreach (var item in increates) { @@ -535,7 +505,7 @@ namespace BBWY.Client.ViewModels.PackTask LookBarCommand = new RelayCommand(LookBar); LookCerCommand = new RelayCommand(LookCer); - PrintNames = new List(); + delayTrigger = new DelayTrigger(500); delayTrigger.OnExecute = OnSearchIncreateKeyWordChanged; BarLabelCheck(BarcodeLabelModel.精简模板);//默认精简模式 @@ -562,7 +532,7 @@ namespace BBWY.Client.ViewModels.PackTask ProductNo = SpuCertificateModel.ProductNo, Shader = SpuCertificateModel.Shader, ProductShop = SpuCertificateModel.ProductShop, - ApplyAge = SpuCertificateModel.ApplyAge, + ApplyAge = SpuCertificateModel.ApplyAge, }; } @@ -576,7 +546,8 @@ namespace BBWY.Client.ViewModels.PackTask SpuCertificateModel.Brand = Brand; SpuCertificateModel.SkuId = SkuId; } - SpuCertificateModel.BrandName = BrandName; + if (!string.IsNullOrEmpty(BrandName)) + SpuCertificateModel.BrandName = BrandName; setSpuCerWindow = new SetSpuCerWindow(); setSpuCerWindow.Show(); } @@ -606,7 +577,7 @@ namespace BBWY.Client.ViewModels.PackTask Shader = SpuCertificateModel.Shader, SkuId = SpuCertificateModel.SkuId, ApplyAge = SpuCertificateModel.ApplyAge, - + }); @@ -709,31 +680,7 @@ namespace BBWY.Client.ViewModels.PackTask //throw new NotImplementedException(); } - /// - /// 设置合格证 - /// - private void SetCertificate() - { - if (string.IsNullOrEmpty(SearchSkuId)) - { - new TipsWindow("请先查询skuId").Show(); - return; - } - SearSpuCer(); - - if (CertificateModel == null) - { - CertificateModel = new CertificateModel(); - CertificateModel.ProductNo = ProductNo; - CertificateModel.Brand = Brand; - CertificateModel.SkuId = SkuId; - } - CertificateModel.BrandName = BrandName; - setCerWindow = new SetCerWindow(); - setCerWindow.Show(); - //throw new NotImplementedException(); - } /// /// 保存合格证 /// @@ -768,18 +715,20 @@ namespace BBWY.Client.ViewModels.PackTask IsSetCertificate = false; return; } - IsNeedCertificateModel = "需要"; + IsNeedCertificateModel = Need.需要; CertificateModel.Id = resData.Data; IsSetCertificate = false; setCerWindow.Close(); } SetBarCodeWindow setBarCodeWindow = null; SetCerWindow setCerWindow = null; SetSpuCerWindow setSpuCerWindow = null; + + public BarcodeLabelModel LabelModel = BarcodeLabelModel.精简模板; + private void SetBarCode() { - if (string.IsNullOrEmpty(SearchSkuId)) + if (string.IsNullOrEmpty(SkuId)) { - new TipsWindow("请先查询skuId").Show(); return; } if (BarCodeModel == null) @@ -789,15 +738,54 @@ namespace BBWY.Client.ViewModels.PackTask BarCodeModel.Brand = Brand; BarCodeModel.SkuId = SkuId; BarCodeModel.SkuName = SkuName; - } - BarCodeModel.BrandName = BrandName; - setBarCodeWindow = new SetBarCodeWindow(); + if (!string.IsNullOrEmpty(BrandName)) + BarCodeModel.BrandName = BrandName; + + SetBarCodeWindow setBarCodeWindow = new SetBarCodeWindow(); + setBarCodeWindow.LoadData(BarCodeModel, packTaskService); + setBarCodeWindow.SaveResult = b => + { + BarCodeModel = b; + IsSetBarCode = false; + IsNeedBarCode = Need.需要; + }; setBarCodeWindow.Show(); } - public BarcodeLabelModel LabelModel = BarcodeLabelModel.精简模板; + /// + /// 设置合格证 + /// + private void SetCertificate() + { + if (string.IsNullOrEmpty(SkuId)) + return; + + SearSpuCer(); + + if (CertificateModel == null) + { + CertificateModel = new CertificateModel(); + CertificateModel.ProductNo = ProductNo; + CertificateModel.Brand = Brand; + CertificateModel.SkuId = SkuId; + + } + if (!string.IsNullOrEmpty(BrandName)) + CertificateModel.BrandName = BrandName; + SetCerWindow setCerWindow = new SetCerWindow(); + setCerWindow.LoadData(certificateModel, packTaskService, spuCertificateModel, IsSetSpuCertificate); + setCerWindow.SaveResult = s => + { + CertificateModel = s; + IsSetCertificate = false; + IsNeedCertificateModel = Need.需要; + }; + setCerWindow.Show(); + } + + private void SaveBarCode() { @@ -815,12 +803,12 @@ namespace BBWY.Client.ViewModels.PackTask //保存到服务器中 返回id var resData = packTaskService.SaveBarCode(new BarCodeRequest { - Brand = Brand, - BrandName = BrandName, - ProductNo = ProductNo, - SkuId = SkuId, - SkuName = SkuName, - LabelModel = LabelModel + Brand = BarCodeModel. Brand, + BrandName = BarCodeModel.BrandName, + ProductNo = BarCodeModel.ProductNo, + SkuId = BarCodeModel.SkuId, + SkuName = BarCodeModel.SkuName, + LabelModel = BarCodeModel.LabelModel }); if (resData == null || !resData.Success) @@ -830,7 +818,7 @@ namespace BBWY.Client.ViewModels.PackTask } BarCodeModel.Id = resData.Data; - IsNeedBarCode = "需要"; + IsNeedBarCode = Need.需要; IsSetBarCode = false; setBarCodeWindow.Close(); } @@ -876,7 +864,7 @@ namespace BBWY.Client.ViewModels.PackTask Increment2 = (int)Increment2, CertificatePosition = (int)CertificatePosition, PackType = (int)PackType, - MarkMessage = markMessage, + MarkMessage = MarkMessage, PositionType = (int)PositionType, GoodsNumber = GoodsNumber, SkuGoodsTitle = SkuTitle, @@ -885,7 +873,7 @@ namespace BBWY.Client.ViewModels.PackTask ShopId = globalContext.User.Shop.ShopId.ToString(), IsWorry = IsWorry }; - if (IsNeedBarCode == "需要") + if (IsNeedBarCode == Need.需要) { if (BarCodeModel == null || BarCodeModel.Id <= 0) { @@ -894,7 +882,7 @@ namespace BBWY.Client.ViewModels.PackTask } createTaskModel.BarCodeId = BarCodeModel.Id; } - if (IsNeedCertificateModel == "需要") + if (IsNeedCertificateModel == Need.需要) { if (CertificateModel == null || CertificateModel.Id <= 0) { @@ -970,16 +958,16 @@ namespace BBWY.Client.ViewModels.PackTask return; } - if (productSku.Data.PackConfig!=null) + if (productSku.Data.PackConfig != null) { var config = productSku.Data.PackConfig; SkuTitle = config.SkuGoodsTitle; GoodsNumber = config.GoodsNumber; PackType = (PackType)config.PackType; - BasicPack=(BasicPack)config.BasicPack; - Availability =(TaskState)config.Availability; + BasicPack = (BasicPack)config.BasicPack; + Availability = (TaskState)config.Availability; MarkMessage = config.MarkMessage; - CertificatePosition = config.CertificatePosition==null? CertificatePosition .无: (CertificatePosition)config.CertificatePosition.Value; + CertificatePosition = config.CertificatePosition == null ? CertificatePosition.无 : (CertificatePosition)config.CertificatePosition.Value; // Increment1 = config.Increment1; string[] increateDatas = config.Increment1.Split(','); @@ -991,12 +979,13 @@ namespace BBWY.Client.ViewModels.PackTask { isSelected = true; } - App.Current.Dispatcher.Invoke(() => { - IncreateList.Add(new IncreateModel + App.Current.Dispatcher.Invoke(() => { - IncreateName = item, - IsSelected = isSelected - }); + IncreateList.Add(new IncreateModel + { + IncreateName = item, + IsSelected = isSelected + }); }); } @@ -1014,7 +1003,9 @@ namespace BBWY.Client.ViewModels.PackTask } CertificateModel.Brand = Brand; - CertificateModel.BrandName = BrandName; + if (!string.IsNullOrEmpty(BrandName)) + + CertificateModel.BrandName = BrandName; CertificateModel.ProductNo = ProductNo; CertificateModel.SkuId = SkuId; BarCodeModel = productSku.Data.BarCodeModel; @@ -1025,8 +1016,10 @@ namespace BBWY.Client.ViewModels.PackTask IsSetBarCode = true; } BarCodeModel.Brand = Brand; - BarCodeModel.BrandName = BrandName; + if (!string.IsNullOrEmpty(BrandName)) + BarCodeModel.BrandName = BrandName; BarCodeModel.ProductNo = ProductNo; + BarCodeModel.SkuId = SkuId; BarCodeModel.SkuName = SkuName; } @@ -1065,7 +1058,8 @@ namespace BBWY.Client.ViewModels.PackTask SpuCertificateModel = new CertificateModel(); IsSetSpuCertificate = true; SpuCertificateModel.Brand = Brand; - SpuCertificateModel.BrandName = BrandName; + if (!string.IsNullOrEmpty(BrandName)) + SpuCertificateModel.BrandName = BrandName; SpuCertificateModel.ProductNo = ProductNo; SpuCertificateModel.SpuId = SpuId; diff --git a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs index 0a614643..44df899e 100644 --- a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs @@ -44,7 +44,7 @@ namespace BBWY.Client.ViewModels.PackTask readonly PackTaskService packTaskService; readonly ConsumableService consumableService; readonly PackDetailService packDetailService; - + readonly BatchPurchaseService batchPurchaseService; private ObservableCollection increateList = new ObservableCollection(); public ObservableCollection IncreateList { get => increateList; set { Set(ref increateList, value); } } // @@ -75,7 +75,7 @@ namespace BBWY.Client.ViewModels.PackTask /// public List LoadList = new List(); - public PackServiceViewModel(PackTaskService packTaskService, ConsumableService consumableService, PackServiceService packServiceService, PackDetailService packDetailService)//, long taskId + public PackServiceViewModel(PackTaskService packTaskService, ConsumableService consumableService, PackServiceService packServiceService, PackDetailService packDetailService, BatchPurchaseService batchPurchaseService)//, long taskId { //TaskId = taskId; this.consumableService = consumableService; @@ -159,6 +159,7 @@ namespace BBWY.Client.ViewModels.PackTask AddConsumableCommand = new RelayCommand(AddConsumable); UpLoadPackCommand = new RelayCommand(UpLoadPack); SetAllCountCommand = new RelayCommand(SetAllCount); + this.batchPurchaseService = batchPurchaseService; @@ -284,7 +285,8 @@ namespace BBWY.Client.ViewModels.PackTask private int taskCount; public int TaskCount { get => taskCount; set { Set(ref taskCount, value); } } // - + public string OrderId { get; set; } + public string SkuId { get; set; } /// /// 上传数据 (判断是否超量) 统一上传 /// @@ -328,7 +330,7 @@ namespace BBWY.Client.ViewModels.PackTask decimal AllFees = 0; decimal price = 0; - decimal IncreateFees = 0,PackFees=0,ConsumableFees=0,DiscountPrice=0; + decimal IncreateFees = 0, PackFees = 0, ConsumableFees = 0, DiscountPrice = 0; foreach (var item in IncreateList)//增值服务上传 { if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0) @@ -528,13 +530,14 @@ namespace BBWY.Client.ViewModels.PackTask } uploadService.AddPackServices = addDatas; uploadService.DeletedPackServices = del; - - uploadService.AllFees = Convert.ToDecimal((AllFees).ToString("0.00")); ; + uploadService.SkuId = SkuId; + uploadService.OrderId= OrderId; + uploadService.AllFees = Convert.ToDecimal(AllFees.ToString("0.00")); uploadService.SingleFees = singleFees; uploadService.IncreaseFees = Convert.ToDecimal((IncreateFees).ToString("0.00")); uploadService.PackFees = Convert.ToDecimal((PackFees).ToString("0.00")); uploadService.ConsumableFees = Convert.ToDecimal((ConsumableFees).ToString("0.00")); - uploadService. DiscountPrice = Convert.ToDecimal( (AllFees * upDisCount).ToString("0.00")); + uploadService.DiscountPrice = Convert.ToDecimal((AllFees * upDisCount).ToString("0.00")); var res = packDetailService.UploadService(uploadService); if (res != null && res.Success) { @@ -550,7 +553,6 @@ namespace BBWY.Client.ViewModels.PackTask SetAllFees(feesItem, packUsers); win.Close(); } - } /// /// 更新 打包员 和费用数据 diff --git a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs index bd8d3054..35909122 100644 --- a/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackTaskTotalViewModel.cs @@ -72,16 +72,16 @@ namespace BBWY.Client.ViewModels.PackTask public ICommand BatchCheckedCommand { get; set; } - public ICommand CopyTextCommand { get; set; } + public PackTaskTotalViewModel(PackTaskService packTaskService) { this.packTaskService = packTaskService; - EndDate = DateTime.Now; - StartDate = DateTime.Now.Date; SearchTaskTotalCommand = new RelayCommand(SearchTaskTotal); + StartDate = DateTime.Now; + EndDate = DateTime.Now; SetSearchDateCommand = new RelayCommand(d => { @@ -97,19 +97,6 @@ namespace BBWY.Client.ViewModels.PackTask }); BatchCheckedCommand = new RelayCommand(BatchCheck); - CopyTextCommand = new RelayCommand((obj) => - { - try - { - Clipboard.SetText(obj.ToString()); - } - catch (Exception ex) - { - Console.ForegroundColor = ConsoleColor.Red; - Console.WriteLine(ex); - Console.ResetColor(); - } - }); BatchSettleCommand = new RelayCommand(BatchSettle); SettleCommand = new RelayCommand(SettleTask); ExportCommand = new RelayCommand(Export); diff --git a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs index 3b87a1b8..343b6380 100644 --- a/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/WareHouseListViewModel.cs @@ -146,7 +146,7 @@ namespace BBWY.Client.ViewModels.PackTask private readonly WorkProcessService workProcessService; private readonly PackTaskService packTaskService; private readonly IncreateServiceService increateServiceService; - public WareHouseListViewModel(PackTaskService packTaskService, ConsumableService consumableService, WorkProcessService workProcessService, IncreateServiceService increateServiceService, ProductService productService) + public WareHouseListViewModel(PackTaskService packTaskService, ConsumableService consumableService, WorkProcessService workProcessService, IncreateServiceService increateServiceService, ProductService productService, BatchPurchaseService batchPurchaseService) { this.packTaskService = packTaskService; this.consumableService = consumableService; @@ -181,13 +181,14 @@ namespace BBWY.Client.ViewModels.PackTask StartTime = DateTime.Now.Date; EndTime = DateTime.Now.Date; IsLoading = false; - + SetTaskStatusCommand = new RelayCommand(SetTaskStatus); //加载数据 SetTaskState(Models.TaskState.全部); this.workProcessService = workProcessService; this.increateServiceService = increateServiceService; this.productService = productService; + this.batchPurchaseService = batchPurchaseService; } @@ -199,6 +200,7 @@ namespace BBWY.Client.ViewModels.PackTask #region 事件绑定 + public ICommand SetTaskStatusCommand { get; set; } /// /// 打开图片链接 /// @@ -229,6 +231,21 @@ namespace BBWY.Client.ViewModels.PackTask public ICommand TaskPageIndexChangedCommand { get; set; } + BatchPurchaseService batchPurchaseService; + public void SetTaskStatus(object obj ) + { + var objList = (object[])obj; + + long taskId = (long)objList[0]; + + string orderId=(string)objList[1]; + ///修改完成 + var model = packTaskService.UpdateTaskStatus(taskId, 1,orderId); + if (model != null && model.Success&&!string.IsNullOrEmpty(orderId)) + SearchTaskList(); + + } + public void SetTaskState(TaskState? taskState) { IsWorry = null; @@ -306,7 +323,10 @@ namespace BBWY.Client.ViewModels.PackTask SkuTitle = item.SkuGoodsTitle, TaskId = item.TaskId, TaskStatus = (TaskStateType)item.TaskStatus, - EndTime = item.CreateTime + EndTime = item.CreateTime, + OrderId= item.OrderId, + SkuId = item.SkuId, + }; diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs index 5aad40e1..d14db460 100644 --- a/BBWY.Client/ViewModels/ViewModelLocator.cs +++ b/BBWY.Client/ViewModels/ViewModelLocator.cs @@ -277,5 +277,14 @@ namespace BBWY.Client.ViewModels return s.ServiceProvider.GetRequiredService(); } } + + public BatchPublishTaskViewModel BatchPublishTask + { + get + { + using var s = sp.CreateScope(); + return s.ServiceProvider.GetRequiredService(); + } + } } } diff --git a/BBWY.Client/Views/BatchPurchase/BatchPublishTaskWindow.xaml b/BBWY.Client/Views/BatchPurchase/BatchPublishTaskWindow.xaml new file mode 100644 index 00000000..cd19b6c0 --- /dev/null +++ b/BBWY.Client/Views/BatchPurchase/BatchPublishTaskWindow.xaml @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +