From b689b97b9e175326d392f46a57826f00c78ffd0f Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Fri, 26 May 2023 23:36:43 +0800 Subject: [PATCH 1/5] 1 --- .../APIServices/PackPurchaseTaskService.cs | 3 - BBWY.Client/Models/PackTask/PackTaskModel.cs | 4 + .../PackTask/PackServiceViewModel.cs | 10 + .../PackTask/PublishTaskViewModel.cs | 2 +- BBWY.Client/Views/PackTask/ServiceWindow.xaml | 312 +++++++++++++++++- .../Views/QualityTask/QualityWindow.xaml | 4 +- .../Views/TotalPackTask/PrintTaskWindow.xaml | 13 + .../TotalPackTask/PrintTaskWindow.xaml.cs | 25 ++ 8 files changed, 364 insertions(+), 9 deletions(-) create mode 100644 BBWY.Client/Views/TotalPackTask/PrintTaskWindow.xaml create mode 100644 BBWY.Client/Views/TotalPackTask/PrintTaskWindow.xaml.cs diff --git a/BBWY.Client/APIServices/PackPurchaseTaskService.cs b/BBWY.Client/APIServices/PackPurchaseTaskService.cs index dc395cb9..1c7b1f3e 100644 --- a/BBWY.Client/APIServices/PackPurchaseTaskService.cs +++ b/BBWY.Client/APIServices/PackPurchaseTaskService.cs @@ -111,8 +111,5 @@ namespace BBWY.Client.APIServices return SendRequest(globalContext.QKApiHost, $"api/Barcode/SearchBarCodeBySkuId?skuId={skuId}", null, null, HttpMethod.Get); } - - - } } diff --git a/BBWY.Client/Models/PackTask/PackTaskModel.cs b/BBWY.Client/Models/PackTask/PackTaskModel.cs index ff2e2911..ba02fbdc 100644 --- a/BBWY.Client/Models/PackTask/PackTaskModel.cs +++ b/BBWY.Client/Models/PackTask/PackTaskModel.cs @@ -121,6 +121,10 @@ namespace BBWY.Client.Models //加载数据 ViewModelLocator viewModelLocator = new ViewModelLocator(); var serviceViewModel = viewModelLocator.PackServiceList; + + serviceViewModel.PackTaskModel = this; + serviceViewModel.PackTaskList = new System.Collections.ObjectModel.ObservableCollection { this}; + serviceViewModel.TaskCount = SkuCount; serviceViewModel.TaskId = TaskId; serviceViewModel.OrderId= OrderId; diff --git a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs index 44df899e..17eba481 100644 --- a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs @@ -29,6 +29,16 @@ namespace BBWY.Client.ViewModels.PackTask { + private ObservableCollection packTaskList; + /// + /// 动态数据表 + /// + public ObservableCollection PackTaskList { get => packTaskList; set { Set(ref packTaskList, value); } } + + + private PackTaskModel packTaskModel; + + public PackTaskModel PackTaskModel { get => packTaskModel; set { Set(ref packTaskModel, value); } } // public ICommand AddPackServiceCommand { get; set; } diff --git a/BBWY.Client/ViewModels/PackTask/PublishTaskViewModel.cs b/BBWY.Client/ViewModels/PackTask/PublishTaskViewModel.cs index 295452a3..6174e294 100644 --- a/BBWY.Client/ViewModels/PackTask/PublishTaskViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PublishTaskViewModel.cs @@ -609,7 +609,7 @@ namespace BBWY.Client.ViewModels.PackTask return; } SaveTask = "保存"; - Logo = model.ItemList[0].Logo; + Logo = model.ItemList[0].Logo.Replace("80x80","200x200"); SearchSkuId = model.SkuId; SkuId = model.SkuId; SkuCount = model.SkuCount; diff --git a/BBWY.Client/Views/PackTask/ServiceWindow.xaml b/BBWY.Client/Views/PackTask/ServiceWindow.xaml index 18dc36e5..eac79660 100644 --- a/BBWY.Client/Views/PackTask/ServiceWindow.xaml +++ b/BBWY.Client/Views/PackTask/ServiceWindow.xaml @@ -5,7 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BBWY.Client.Views.PackTask" mc:Ignorable="d" - Title="TipsWindow" Height="820" Width="360" + Title="TipsWindow" Height="820" Width="1560" xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" xmlns:ctr="clr-namespace:BBWY.Client.Converters" @@ -20,6 +20,10 @@ RightButtonGroupMargin="0,5,5,0"> + + + + @@ -126,7 +130,7 @@ ItemsSource="{Binding PackList}" MaxHeight="100" ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}" BorderBrush="{StaticResource Border.Brush}" - BorderThickness="1,1,1,0" + BorderThickness="1,1,1,1" Foreground="{StaticResource Text.Color}" ScrollViewer.VerticalScrollBarVisibility="Auto" > @@ -222,16 +226,318 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/QualityTask/QualityWindow.xaml b/BBWY.Client/Views/QualityTask/QualityWindow.xaml index 030267de..c9964776 100644 --- a/BBWY.Client/Views/QualityTask/QualityWindow.xaml +++ b/BBWY.Client/Views/QualityTask/QualityWindow.xaml @@ -112,7 +112,7 @@ - + @@ -260,7 +260,7 @@ - + + + diff --git a/BBWY.Client/Views/TotalPackTask/PrintTaskWindow.xaml.cs b/BBWY.Client/Views/TotalPackTask/PrintTaskWindow.xaml.cs new file mode 100644 index 00000000..eb152485 --- /dev/null +++ b/BBWY.Client/Views/TotalPackTask/PrintTaskWindow.xaml.cs @@ -0,0 +1,25 @@ +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Shapes; + +namespace BBWY.Client.Views.TotalPackTask +{ + /// + /// PrintTaskWindow.xaml 的交互逻辑 + /// + public partial class PrintTaskWindow : Window + { + public PrintTaskWindow() + { + InitializeComponent(); + } + } +} From fa119808140c5fd7ada76a5b0db467e21b6f0eca Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Sun, 28 May 2023 13:31:56 +0800 Subject: [PATCH 2/5] 1 --- BBWY.Client/APIServices/PackTaskService.cs | 2 + BBWY.Client/BBWYAppSettings.json | 2 +- BBWY.Client/Helpers/MyPrintHelper.cs | 30 ++ BBWY.Client/Models/PackTask/BarCodeModel.cs | 6 + .../PackTask/PackServiceViewModel.cs | 128 ++++- .../Views/PackTask/FeesExcelControl.xaml.cs | 2 +- .../Views/PackTask/MinBarcodeControl.xaml | 74 +++ .../Views/PackTask/MinBarcodeControl.xaml.cs | 70 +++ BBWY.Client/Views/PackTask/MinCerControl.xaml | 159 ++++++ .../Views/PackTask/MinCerControl.xaml.cs | 51 ++ BBWY.Client/Views/PackTask/ServiceWindow.xaml | 455 ++++++++++-------- .../Views/PackTask/ServiceWindow.xaml.cs | 138 +++++- 12 files changed, 892 insertions(+), 225 deletions(-) create mode 100644 BBWY.Client/Views/PackTask/MinBarcodeControl.xaml create mode 100644 BBWY.Client/Views/PackTask/MinBarcodeControl.xaml.cs create mode 100644 BBWY.Client/Views/PackTask/MinCerControl.xaml create mode 100644 BBWY.Client/Views/PackTask/MinCerControl.xaml.cs diff --git a/BBWY.Client/APIServices/PackTaskService.cs b/BBWY.Client/APIServices/PackTaskService.cs index fc3b76c0..43d2c788 100644 --- a/BBWY.Client/APIServices/PackTaskService.cs +++ b/BBWY.Client/APIServices/PackTaskService.cs @@ -410,6 +410,8 @@ namespace BBWY.Client.APIServices /// public List DeletedPackServices { get; set; } + public List DelPackServices { get; set; } + //public PersonTaskModel[] PersonTaskModels { get; set; } //public IncreateMemberModel[] IncreateMembers { get; set; } diff --git a/BBWY.Client/BBWYAppSettings.json b/BBWY.Client/BBWYAppSettings.json index 34888905..e1b3dcff 100644 --- a/BBWY.Client/BBWYAppSettings.json +++ b/BBWY.Client/BBWYAppSettings.json @@ -5,5 +5,5 @@ "JOSApiHost": "", "1688ApiHost": "", "QKApiHost": "http://localhost:8080" - // "QKApiHost": "http://qiku.qiyue666.com" + //"QKApiHost": "http://qiku.qiyue666.com" } \ No newline at end of file diff --git a/BBWY.Client/Helpers/MyPrintHelper.cs b/BBWY.Client/Helpers/MyPrintHelper.cs index 45e6e6ff..12515e17 100644 --- a/BBWY.Client/Helpers/MyPrintHelper.cs +++ b/BBWY.Client/Helpers/MyPrintHelper.cs @@ -10,6 +10,7 @@ using System.IO; using System.Linq; using System.Reflection; using System.Text; +using System.Windows.Media.Imaging; using WebSocketSharp; namespace BBWY.Client.Helpers @@ -588,5 +589,34 @@ namespace BBWY.Client.Helpers } + + + + public static BitmapImage GetBarcodeImage(string printStr,int width,int height) + { + Bitmap image = new Bitmap(width, height); + Graphics graphics2 = Graphics.FromImage(image); + Barcode barcode = new Barcode(); + System.Drawing.Image img = barcode.Encode(TYPE.CODE128, printStr, 500, 60); + graphics2.DrawImage(img, 0, 0, width, height); + return bitmapToBitmapImage(image); + } + + static BitmapImage bitmapToBitmapImage(Bitmap bitmap) + { + using (var stream = new MemoryStream()) + { + bitmap.Save(stream, ImageFormat.Png); + stream.Position = 0; + BitmapImage reslut = new BitmapImage(); + reslut.BeginInit(); + reslut.CacheOption = BitmapCacheOption.OnLoad; + reslut.StreamSource = stream; + reslut.EndInit(); + reslut.Freeze(); + return reslut; + } + } + } } diff --git a/BBWY.Client/Models/PackTask/BarCodeModel.cs b/BBWY.Client/Models/PackTask/BarCodeModel.cs index 0c09a043..9131979a 100644 --- a/BBWY.Client/Models/PackTask/BarCodeModel.cs +++ b/BBWY.Client/Models/PackTask/BarCodeModel.cs @@ -1,4 +1,6 @@ using BBWY.Client.Models.PackTask; +using System.Drawing; +using System.Windows.Media.Imaging; namespace BBWY.Client.Models { @@ -61,5 +63,9 @@ namespace BBWY.Client.Models /// 模板标签 /// public BarcodeLabelModel LabelModel { get => labelModel; set { Set(ref labelModel, value); } } + + + + } } diff --git a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs index 17eba481..fd65bdd3 100644 --- a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs @@ -1,6 +1,7 @@ using AutoMapper; using AutoMapper.Internal; using BBWY.Client.APIServices; +using BBWY.Client.Helpers; using BBWY.Client.Models; using BBWY.Client.Models.APIModel.Request; using BBWY.Client.Models.APIModel.Response.PackTask; @@ -9,12 +10,16 @@ using BBWY.Client.Views.PackTask; using BBWY.Common.Models; using GalaSoft.MvvmLight.Command; using Microsoft.Extensions.Logging; +using NPOI.Util; using Org.BouncyCastle.Asn1.Crmf; using System; using System.Collections.Generic; using System.Collections.ObjectModel; using System.Diagnostics; +using System.Drawing.Printing; +using System.IO; using System.Linq; +using System.Reflection; using System.Reflection.Metadata.Ecma335; using System.Runtime.CompilerServices; using System.Text; @@ -22,6 +27,7 @@ using System.Threading.Tasks; using System.Windows.Controls; using System.Windows.Controls.Primitives; using System.Windows.Input; +using System.Windows.Media.Imaging; namespace BBWY.Client.ViewModels.PackTask { @@ -29,6 +35,30 @@ namespace BBWY.Client.ViewModels.PackTask { + + + private BitmapImage barcodeImage; + /// + /// 任务Id条形码 + /// + public BitmapImage BarcodeImage { get => barcodeImage; set { Set(ref barcodeImage, value); } } + + private BitmapImage taskImage; + /// + /// 任务Id条形码 + /// + public BitmapImage TaskImage { get => taskImage; set { Set(ref taskImage, value); } } + + private string printName; + + public string PrintName { get => printName; set { Set(ref printName, value); } } + + private ObservableCollection printList; + /// + /// 打印机列表 + /// + public ObservableCollection PrintList { get => printList; set { Set(ref printList, value); } } + private ObservableCollection packTaskList; /// /// 动态数据表 @@ -51,6 +81,9 @@ namespace BBWY.Client.ViewModels.PackTask public ICommand SetAllCountCommand { get; set; } + + public ICommand PrintCommand { get; set; } + readonly PackTaskService packTaskService; readonly ConsumableService consumableService; readonly PackDetailService packDetailService; @@ -85,6 +118,56 @@ namespace BBWY.Client.ViewModels.PackTask /// public List LoadList = new List(); + + + public void InitPrintList() + { + TaskImage = MyPrintHelper.GetBarcodeImage(TaskId.ToString(),300,60); + + BarcodeImage = MyPrintHelper.GetBarcodeImage(SkuId, 300, 60); + + + PrintList = new ObservableCollection(); + var printingNames = PrinterSettings.InstalledPrinters;//获取本机的打印机数据 + int index = -1; + int selectIndex = 0; + foreach (string name in printingNames) + { + if (name == "Microsoft XPS Document Writer" || name == "Microsoft Print to PDF" || name == "Fax") + { + continue; + } + index++; + if (name.Contains("Deli")) + { + selectIndex = index; + } + PrintList.Add(name); + } + try + { + var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string printNames = Path.Combine(applicationPath, "printName.init"); + if (File.Exists(printNames)) + { + PrintName = File.ReadAllText(printNames); + } + else + { + if (PrintList.Count > 0) + { + PrintName = PrintList[0].ToString(); + } + } + } + catch (Exception) + { + + + } + + } + public PackServiceViewModel(PackTaskService packTaskService, ConsumableService consumableService, PackServiceService packServiceService, PackDetailService packDetailService, BatchPurchaseService batchPurchaseService)//, long taskId { //TaskId = taskId; @@ -162,8 +245,6 @@ namespace BBWY.Client.ViewModels.PackTask } - - AddIncreateServiceCommand = new RelayCommand(AddIncreateService); AddPackServiceCommand = new RelayCommand(AddPackService); AddConsumableCommand = new RelayCommand(AddConsumable); @@ -185,6 +266,16 @@ namespace BBWY.Client.ViewModels.PackTask /// public void LoadPackDatas() { + try + { + InitPrintList(); + } + catch (Exception) + { + + + } + LoadList = new List(); Task task = Task.Factory.StartNew(() => { @@ -257,7 +348,7 @@ namespace BBWY.Client.ViewModels.PackTask } LoadList.AddRange(IncreateList); LoadList.AddRange(PackList); - Discount =res.Data.Discount.ToString(); + Discount = res.Data.Discount.ToString(); } }); @@ -519,11 +610,27 @@ namespace BBWY.Client.ViewModels.PackTask uploadService.PackServiceIds = string.Join(",", PackServiceMembers.Select(a => a.PackServiceId)); uploadService.PackServiceNos = string.Join(",", PackServiceMembers.Select(a => a.PackServiceCount)); - var orgIds = LoadList.Select(p => p.SelectId).ToList(); - var nowIds = PackServiceMembers.Select(p => p.PackServiceId).ToList(); + //var orgIds = LoadList.Select(p => p.SelectId).ToList(); + //var nowIds = PackServiceMembers.Select(p => p.PackServiceId).ToList(); //var add = nowIds.Except(orgIds); - var del = orgIds.Except(nowIds).ToList(); + + foreach (var item in LoadList) + { + if (!PackServiceMembers.Any(p => p.UserId == item.SelectUserId && p.PackServiceId == item.SelectId)) + { + delDatas.Add(new PersonTaskModel + { + + TaskId = taskId, + PackUserId = item.SelectUserId, + ServiceId = item.SelectId + }); + } + } + + + //var del = orgIds.Except(nowIds).ToList(); foreach (var PackServiceMember in PackServiceMembers) { @@ -539,10 +646,13 @@ namespace BBWY.Client.ViewModels.PackTask }); } uploadService.AddPackServices = addDatas; - uploadService.DeletedPackServices = del; + uploadService.DelPackServices = delDatas; + //uploadService.DeletedPackServices = del; + + //uploadService.DeletedPackServices uploadService.SkuId = SkuId; - uploadService.OrderId= OrderId; - uploadService.AllFees = Convert.ToDecimal(AllFees.ToString("0.00")); + 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")); diff --git a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs index bdf2db2d..f1d413b8 100644 --- a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs +++ b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs @@ -137,7 +137,7 @@ namespace BBWY.Client.Views.PackTask [:Header:] - + diff --git a/BBWY.Client/Views/PackTask/MinBarcodeControl.xaml b/BBWY.Client/Views/PackTask/MinBarcodeControl.xaml new file mode 100644 index 00000000..7dc25ac8 --- /dev/null +++ b/BBWY.Client/Views/PackTask/MinBarcodeControl.xaml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BBWY.Client/Views/PackTask/MinBarcodeControl.xaml.cs b/BBWY.Client/Views/PackTask/MinBarcodeControl.xaml.cs new file mode 100644 index 00000000..19029991 --- /dev/null +++ b/BBWY.Client/Views/PackTask/MinBarcodeControl.xaml.cs @@ -0,0 +1,70 @@ +using BBWY.Client.Models; +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace BBWY.Client.Views.PackTask +{ + /// + /// MinBarcodeControl.xaml 的交互逻辑 + /// + public partial class MinBarcodeControl : UserControl + { + public MinBarcodeControl() + { + InitializeComponent(); + } + + /// + /// + /// + public BarCodeModel model + { + get { return (BarCodeModel)GetValue(modelProperty); } + set + { + SetValue(modelProperty, value); + } + } + + + public static readonly DependencyProperty modelProperty = + DependencyProperty.Register("model", typeof(BarCodeModel), typeof(MinBarcodeControl), new PropertyMetadata(ChangedProperty)); + + private static void ChangedProperty(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + + + } + + public BitmapImage BarcodeImage + { + get { return (BitmapImage)GetValue(BarcodeImageProperty); } + set + { + SetValue(BarcodeImageProperty, value); + } + } + + + public static readonly DependencyProperty BarcodeImageProperty = + DependencyProperty.Register("BarcodeImage", typeof(BitmapImage), typeof(MinBarcodeControl), new PropertyMetadata(ChangedProperty1)); + + private static void ChangedProperty1(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + + + } + + + } +} diff --git a/BBWY.Client/Views/PackTask/MinCerControl.xaml b/BBWY.Client/Views/PackTask/MinCerControl.xaml new file mode 100644 index 00000000..ed8f2037 --- /dev/null +++ b/BBWY.Client/Views/PackTask/MinCerControl.xaml @@ -0,0 +1,159 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BBWY.Client/Views/PackTask/MinCerControl.xaml.cs b/BBWY.Client/Views/PackTask/MinCerControl.xaml.cs new file mode 100644 index 00000000..f1ee53e2 --- /dev/null +++ b/BBWY.Client/Views/PackTask/MinCerControl.xaml.cs @@ -0,0 +1,51 @@ +using BBWY.Client.Models; +using System; +using System.Collections.Generic; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace BBWY.Client.Views.PackTask +{ + /// + /// MinCerControl.xaml 的交互逻辑 + /// + public partial class MinCerControl : UserControl + { + public MinCerControl() + { + InitializeComponent(); + } + + /// + /// + /// + public CertificateModel model + { + get { return (CertificateModel)GetValue(modelProperty); } + set + { + SetValue(modelProperty, value); + } + } + public static readonly DependencyProperty modelProperty = + DependencyProperty.Register("model", typeof(CertificateModel), typeof(MinCerControl), new PropertyMetadata(ChangedProperty)); + + private static void ChangedProperty(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + //var control = d as CerControl; + //var data = e.NewValue as CertificateModel; + //if (data != null) + //{ + // control.SetData(data); + //} + } + } +} diff --git a/BBWY.Client/Views/PackTask/ServiceWindow.xaml b/BBWY.Client/Views/PackTask/ServiceWindow.xaml index eac79660..44edf693 100644 --- a/BBWY.Client/Views/PackTask/ServiceWindow.xaml +++ b/BBWY.Client/Views/PackTask/ServiceWindow.xaml @@ -5,7 +5,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BBWY.Client.Views.PackTask" mc:Ignorable="d" - Title="TipsWindow" Height="820" Width="1560" + Title="TipsWindow" Height="844" Width="350" xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" xmlns:ctr="clr-namespace:BBWY.Client.Converters" @@ -227,230 +227,240 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - - - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - - + + - + - - - + + + - - + - - - - - - - - - + + + + + + + + - - - - - - - - - - - - - + + + + + + + + + + + - - - - - + + + + - - - - - - - - - + + + + + + + + + - - + + - - - - - + + + + - - - - - + + + + + - - - - - + + + + - - - - - + + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - + + + + - - + + + + + + + + + + + - + + + + + + + - + + - - + - + + /// 打印 + /// + /// 流文档 + /// 打印机名称 + /// 打印描述 + /// 打印个数 + public static void Print(Visual document, string printer, string description, int copyCount) + { + var localPrintServer = new LocalPrintServer(); + var printQueue = localPrintServer.GetPrintQueue(printer); + if (printQueue.IsInError) + { + throw new Exception("打印机处于错误状态"); + } + + var printDialog = new PrintDialog + { + PrintQueue = printQueue, //打印队列 + PrintTicket = { CopyCount = copyCount } //打印个数 + }; + + //设置纸张大小 + var pageWidth = (int)Math.Ceiling(printDialog.PrintableAreaWidth); //小标签:114 + var pageHeight = (int)Math.Ceiling(printDialog.PrintableAreaHeight); //小标签:227 + printDialog.PrintTicket.PageMediaSize = new PageMediaSize(pageWidth, pageHeight); + + //设置纸张边距 + var paperSize = GetPaperSize(printer); //小标签:118*246 + //var offsetX = (int)Math.Ceiling((paperSize.Width - pageWidth) / 2f); + //var offsetY = (int)Math.Ceiling((paperSize.Height - pageHeight) / 2f); + //document.PagePadding = new Thickness(offsetX, offsetY, offsetX, offsetY); + + //打印 + var paginator = ((IDocumentPaginatorSource)document).DocumentPaginator; + printDialog.PrintDocument(paginator, description); + + var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + string printNames = System.IO.Path.Combine(applicationPath, "printName.init"); + File.WriteAllText(printNames, printer); + + } + + private static object GetPaperSize(string printer) + { + return null; + } + + public interface IDocumentRenderer + { + void Render(FlowDocument doc, object data); + } + + public class CommonDocumentRenderer : IDocumentRenderer + { + public void Render(FlowDocument doc, object data) + { + var model = data as PrintModel; + if (model == null) + { + throw new ArgumentException("data is not PrintModel"); + } + + var type = typeof(PrintModel); + var properties = type.GetProperties(); + foreach (var property in properties) + { + //文本赋值 + if (doc.FindName(property.Name) is TextBlock textBlock) + { + textBlock.Text = property.GetValue(model)?.ToString(); + } + } + } + } + + public class PrintModel + { + /// + /// 批号 + /// + public string BatchNumber { get; set; } + + /// + /// 订单号 + /// + public string OrderNumber { get; set; } + + /// + /// 物料代码 + /// + public string MaterialNumber { get; set; } + } + } } From deb27f9db7376daa141b478a6bfb23c3c9912f72 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Tue, 30 May 2023 12:13:30 +0800 Subject: [PATCH 3/5] 1 --- BBWY.Client/APIServices/PackTaskService.cs | 18 ++++++++++++++---- .../PackTask/PackServiceViewModel.cs | 7 ++++++- BBWY.Client/Views/PackTask/ServiceWindow.xaml | 4 ++-- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/BBWY.Client/APIServices/PackTaskService.cs b/BBWY.Client/APIServices/PackTaskService.cs index 43d2c788..3ee6ced4 100644 --- a/BBWY.Client/APIServices/PackTaskService.cs +++ b/BBWY.Client/APIServices/PackTaskService.cs @@ -172,7 +172,12 @@ namespace BBWY.Client.APIServices - + /// + /// 修改任务状态 + /// + /// + /// + /// public ApiResponse SetPackTaskState(long taskId, PackTaskState packTaskState) { return SendRequest(globalContext.QKApiHost, "api/PackTask/SetPackTaskState", new @@ -200,6 +205,11 @@ namespace BBWY.Client.APIServices , null, HttpMethod.Post); } + + /// + /// 获取打包人员列表 + /// + /// public ApiResponse GetPackMembers() { @@ -213,7 +223,7 @@ namespace BBWY.Client.APIServices /// public ApiResponse GetTaskService(long taskId) { - return SendRequest(globalContext.QKApiHost, "api/PackTask/GetTaskService", new { TaskId = taskId } + return SendRequest(globalContext.QKApiHost, $"api/PackTask/GetTaskService?TaskId={taskId}",null , null, HttpMethod.Get); } /// @@ -297,7 +307,7 @@ namespace BBWY.Client.APIServices } /// - /// 获取封箱列表 + /// 获取待封箱列表 /// /// /// @@ -315,7 +325,7 @@ namespace BBWY.Client.APIServices } /// - /// 获取封箱列表 + /// 完成封箱 /// /// /// diff --git a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs index fd65bdd3..40dbfa9c 100644 --- a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs @@ -35,7 +35,12 @@ namespace BBWY.Client.ViewModels.PackTask { - + private decimal? directionalFees; + /// + /// 定向费用 + /// + public decimal? DirectionalFees { get => directionalFees; set { Set(ref directionalFees, value); } } + private BitmapImage barcodeImage; /// diff --git a/BBWY.Client/Views/PackTask/ServiceWindow.xaml b/BBWY.Client/Views/PackTask/ServiceWindow.xaml index 44edf693..112b771a 100644 --- a/BBWY.Client/Views/PackTask/ServiceWindow.xaml +++ b/BBWY.Client/Views/PackTask/ServiceWindow.xaml @@ -43,8 +43,8 @@ - - + + From f8a3571641ed20ccf1a2a2d13d76c8d901627881 Mon Sep 17 00:00:00 2001 From: "506583276@qq.com" <506583276@qq.com> Date: Thu, 1 Jun 2023 00:06:01 +0800 Subject: [PATCH 4/5] 1 --- BBWY.Client/APIServices/PackDetailService.cs | 8 +- BBWY.Client/APIServices/PackTaskService.cs | 51 +- BBWY.Client/App.xaml | 3 +- BBWY.Client/App.xaml.cs | 2 + .../Response/PackTask/FeesItemResponse.cs | 99 +- .../Response/PackTask/PackServiceResponse.cs | 49 +- BBWY.Client/Models/Enums.cs | 9 +- BBWY.Client/Models/PackTask/PackItemModel.cs | 4 +- BBWY.Client/Models/PackTask/PackTaskModel.cs | 9 +- .../PackTask/PackServiceViewModel.cs | 918 ++++++++++------- BBWY.Client/ViewModels/ViewModelLocator.cs | 7 + .../Views/PackTask/FeesExcelControl.xaml | 222 ++++- .../Views/PackTask/FeesExcelControl.xaml.cs | 402 +++++++- .../Views/PackTask/MinFeesExcelControl.xaml | 11 + .../PackTask/MinFeesExcelControl.xaml.cs | 526 ++++++++++ .../Views/PackTask/PublishTaskWindow.xaml | 2 +- BBWY.Client/Views/PackTask/ServiceWindow.xaml | 921 +++++++++++------- .../Views/PackTask/ServiceWindow.xaml.cs | 9 +- BBWY.Client/Views/PackTask/SetBarCode.xaml.cs | 11 +- .../Views/PackTask/SetCerWindow.xaml.cs | 20 +- BBWY.Client/Views/PackTask/WareHouseList.xaml | 1 + .../Views/PackTask/WareHouseListControl.xaml | 4 +- 22 files changed, 2481 insertions(+), 807 deletions(-) create mode 100644 BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml create mode 100644 BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml.cs diff --git a/BBWY.Client/APIServices/PackDetailService.cs b/BBWY.Client/APIServices/PackDetailService.cs index 2925b2bf..91a25318 100644 --- a/BBWY.Client/APIServices/PackDetailService.cs +++ b/BBWY.Client/APIServices/PackDetailService.cs @@ -14,16 +14,16 @@ namespace BBWY.Client.APIServices { } - public ApiResponse GetTaskService(long TaskId) + public ApiResponse GetPackTaskDetail(long TaskId) { - return SendRequest(globalContext.QKApiHost, $"api/PackDetail/GetTaskService?taskId={TaskId}", + return SendRequest(globalContext.QKApiHost, $"api/PackDetail/GetPackTaskDetail?taskId={TaskId}", null , null, HttpMethod.Get); } - public ApiResponse UploadService(UploadServiceRequest consumable) + public ApiResponse SetPackTaskDetail(PackTaskDetailRequest consumable) { - return SendRequest(globalContext.QKApiHost, "api/PackDetail/UploadService", + return SendRequest(globalContext.QKApiHost, "api/PackDetail/SetPackTaskDetail", consumable , null, HttpMethod.Post); } diff --git a/BBWY.Client/APIServices/PackTaskService.cs b/BBWY.Client/APIServices/PackTaskService.cs index 3ee6ced4..468975aa 100644 --- a/BBWY.Client/APIServices/PackTaskService.cs +++ b/BBWY.Client/APIServices/PackTaskService.cs @@ -360,6 +360,47 @@ namespace BBWY.Client.APIServices public long[] ConsumableIds { get; set; } } + + + public class PackTaskDetailRequest + { /// + /// 任务id + /// + public long TaskId { get; set; } + /// + /// 定向收费 + /// + public decimal? DirectionalFees { get; set; } + + /// + /// 增量配件任务数量 + /// + public int IncrementPartTaskCount { get; set; } + /// + /// 增量配件数量 + /// + public int IncrementPartCount { get; set; } + + + /// + /// 增值服务数据 + /// + public List IncreateList { get; set; } + + /// + /// 耗材服务数据 + /// + public List ConsumableList { get; set; } + + /// + ///工序服务数据 + /// + public List IncrementProcessList { get; set; } + /// + /// 基础包装工序(基础包装工序) + /// + public List BasicPackProcessList { get; set; } + } /// /// 上传服务 /// @@ -456,11 +497,11 @@ namespace BBWY.Client.APIServices /// /// 服务id /// - public long ServiceId { get; set; } + public long? ServiceId { get; set; } /// /// 服务数量 /// - public int ServiceCount { get; set; } + public int? ServiceCount { get; set; } ///// ///// 增值服务ids ///// @@ -506,11 +547,11 @@ namespace BBWY.Client.APIServices /// /// 耗材服务id /// - public long ConsumableId { get; set; } + public long? ConsumableId { get; set; } /// /// 耗材服务数量 /// - public int ConsumableCount { get; set; } + public int? ConsumableCount { get; set; } } @@ -522,7 +563,7 @@ namespace BBWY.Client.APIServices /// /// 增值服务Id /// - public long PackServiceId { get; set; } + public long? PackServiceId { get; set; } /// /// 数量 /// diff --git a/BBWY.Client/App.xaml b/BBWY.Client/App.xaml index 5a21853b..0b5c1eed 100644 --- a/BBWY.Client/App.xaml +++ b/BBWY.Client/App.xaml @@ -8,12 +8,11 @@ ShutdownMode="OnExplicitShutdown"> - + - diff --git a/BBWY.Client/App.xaml.cs b/BBWY.Client/App.xaml.cs index 5014528f..6e76b533 100644 --- a/BBWY.Client/App.xaml.cs +++ b/BBWY.Client/App.xaml.cs @@ -125,6 +125,8 @@ namespace BBWY.Client serviceCollection.AddTransient(); serviceCollection.AddTransient(); serviceCollection.AddTransient(); + + //serviceCollection.AddScoped(); #region 注册拳探SDK相关类 serviceCollection.AddSingleton(); diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs index 56026840..bfd16785 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/FeesItemResponse.cs @@ -34,7 +34,104 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask public decimal TaskId { get => taskId; set { Set(ref taskId, value); } } private decimal taskId; - + + + + + /// + /// 耗材费用价格 + /// + public decimal ConsumableFees { get; set; } + /// + /// 折扣系数 + /// + public decimal? DiscountFoctor { get; set; } + /// + /// 收费方式 + /// + public FeesMode? FeesMode { get; set; } + + /// + /// 定向费用 + /// + public decimal? DirectionalFees { get; set; } + + /// + /// 打包费用小计 + /// + public decimal PackFees { get; set; } + + /// + /// 增值费用小计 + /// + public decimal IncreateFees { get; set; } + + /// + /// 增值服务数据 + /// + public List IncreateList { get; set; } + + /// + /// 耗材服务数据 + /// + public List ConsumableList { get; set; } + + + /// + /// 打包服务 + /// + 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 class PackItemResponse + { + /// + /// 服务项目 + /// + public string ItemName { get; set; } + /// + /// 价格 + /// + public decimal ItemPrice { get; set; } + /// + /// 数量 + /// + public int ItemCount { get; set; } + + /// + /// 增值服务工序 = 0, 基础包装工序 = 1,配件 + /// + public ProcessType ProcessType { get; set; } + } public enum ServiceType diff --git a/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs b/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs index e63ad767..64f726e6 100644 --- a/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs +++ b/BBWY.Client/Models/APIModel/Response/PackTask/PackServiceResponse.cs @@ -1,4 +1,6 @@ -using BBWY.Client.Models.PackTask; +using BBWY.Client.Models.APIModel.Request; +using BBWY.Client.Models.PackTask; +using BBWY.Client.Views.PackTask; using System; using System.Collections.Generic; using System.Text; @@ -7,19 +9,54 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask { public class PackServiceResponse { - public decimal Discount { get; set; } /// /// 增值服务数据 /// public List IncreateList { get; set; } + /// - ///工序服务数据 + /// 耗材服务数据 /// - public List PackList { get; set; } + public List ConsumableServiceList { get; set; } + /// /// 耗材服务数据 /// - public List ConsumableServiceList { get; set; } + public List ConsumableList { get; set; } + + /// + ///工序服务数据 + /// + public List IncrementProcessList { get; set; } + /// + /// 基础包装工序(基础包装工序) + /// + public List BasicPackProcessList { get; set; } + + + /// + /// 增值服务项目列表 + /// + public List IncrementItemList { get; set; } + /// + /// 工序服务项目列表() + /// + public List ProcessItemList { get; set; } + + /// + /// 耗材服务项目列表 + /// + public List ConsumableItemList { get; set; } + + /// + /// 定向收费 + /// + public decimal? DirectionalFees { get; set; } + + /// + /// 增量配件数量 + /// + public int? IncrementPartCount { get; set; } } public class PackServiceDTO @@ -28,6 +65,8 @@ namespace BBWY.Client.Models.APIModel.Response.PackTask public string Name { get; set; } public decimal Price { get; set; } public ServiceType ServiceType { get; set; } + + } public class PackItemModelResponse diff --git a/BBWY.Client/Models/Enums.cs b/BBWY.Client/Models/Enums.cs index ab60c405..b0da91f3 100644 --- a/BBWY.Client/Models/Enums.cs +++ b/BBWY.Client/Models/Enums.cs @@ -444,5 +444,12 @@ { 京仓 = 0, 云仓 = 1, 商家仓 = 2, 聚水潭齐越仓 = 3 } - + public enum FeesMode + { + 多工序 = 0, 仅贴标 = 1, 定向收费 = 2 + } + public enum ProcessType + { + 增值服务工序 = 0, 基础包装工序 = 1/*,其他=2//基础包装 增量配件*/ + } } diff --git a/BBWY.Client/Models/PackTask/PackItemModel.cs b/BBWY.Client/Models/PackTask/PackItemModel.cs index 9e90573e..3ff03ec1 100644 --- a/BBWY.Client/Models/PackTask/PackItemModel.cs +++ b/BBWY.Client/Models/PackTask/PackItemModel.cs @@ -22,11 +22,11 @@ namespace BBWY.Client.Models.PackTask /// public string SelectUserId { get => selectUserId; set { Set(ref selectUserId, value); } } - private long selectId; + private long? selectId; /// /// 选中的Id /// - public long SelectId { get => selectId; set { Set(ref selectId, value); } } + public long? SelectId { get => selectId; set { Set(ref selectId, value); } } private string memberName; public string MemberName { get => memberName; set { Set(ref memberName, value); } } diff --git a/BBWY.Client/Models/PackTask/PackTaskModel.cs b/BBWY.Client/Models/PackTask/PackTaskModel.cs index ba02fbdc..97fb48ed 100644 --- a/BBWY.Client/Models/PackTask/PackTaskModel.cs +++ b/BBWY.Client/Models/PackTask/PackTaskModel.cs @@ -119,7 +119,7 @@ namespace BBWY.Client.Models { ServiceWindow service = new ServiceWindow(); //加载数据 - ViewModelLocator viewModelLocator = new ViewModelLocator(); + ViewModelLocator viewModelLocator = (ViewModelLocator)App.Current.Resources["Locator"]; var serviceViewModel = viewModelLocator.PackServiceList; serviceViewModel.PackTaskModel = this; @@ -129,15 +129,12 @@ namespace BBWY.Client.Models serviceViewModel.TaskId = TaskId; serviceViewModel.OrderId= OrderId; serviceViewModel.SkuId =SkuId ; + serviceViewModel.PackUserName = this.PackUser?.Replace("\r\n",",")?.Replace("\n", ",")?.Replace("\r", ","); serviceViewModel.LoadPackDatas(); - serviceViewModel.SetAllFees = new Action>((feesItem, packUsers) => + serviceViewModel.SetAllFees = new Action(() => { - FeesItemResponse = feesItem; - PackUser = string.Join("\r\n", packUsers); - FeesItemResponse.DiscountAllFees = feesItem.disCount * feesItem.AllFees; - IsShowFees = feesItem.AllFees > 0 ? true : false; if (ReflashTask != null) ReflashTask(); }); diff --git a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs index 40dbfa9c..2064135c 100644 --- a/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs +++ b/BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs @@ -9,6 +9,7 @@ using BBWY.Client.Models.PackTask; using BBWY.Client.Views.PackTask; using BBWY.Common.Models; using GalaSoft.MvvmLight.Command; +using HandyControl.Controls; using Microsoft.Extensions.Logging; using NPOI.Util; using Org.BouncyCastle.Asn1.Crmf; @@ -34,12 +35,38 @@ namespace BBWY.Client.ViewModels.PackTask public class PackServiceViewModel : BaseVM, IDenpendency { + private string packUserName; + /// + /// 打包人 + /// + public string PackUserName { get => packUserName; set { Set(ref packUserName, value); } } + + + private int incrementPartTaskCount; + /// + /// 配件任务数量 + /// + public int IncrementPartTaskCount { get => incrementPartTaskCount; set { Set(ref incrementPartTaskCount, value); } } + + - private decimal? directionalFees; + //public ObservableCollection incrementPartCountList = new ObservableCollection() { + //"0","1","2","3","4件以上" + //}; + + //public ObservableCollection IncrementPartCountList { get => incrementPartCountList; set { Set(ref incrementPartCountList, value); } } + + private int incrementPartCount; + /// + /// 配件数量 + /// + public int IncrementPartCount { get => incrementPartCount; set { Set(ref incrementPartCount, value); } } + + private string directionalFees; /// /// 定向费用 /// - public decimal? DirectionalFees { get => directionalFees; set { Set(ref directionalFees, value); } } + public string DirectionalFees { get => directionalFees; set { Set(ref directionalFees, value); } } private BitmapImage barcodeImage; @@ -78,6 +105,8 @@ namespace BBWY.Client.ViewModels.PackTask public ICommand AddPackServiceCommand { get; set; } + public ICommand AddBasicPackServiceCommand { get; set; } + public ICommand AddIncreateServiceCommand { get; set; } public ICommand AddConsumableCommand { get; set; } @@ -96,14 +125,32 @@ namespace BBWY.Client.ViewModels.PackTask private ObservableCollection increateList = new ObservableCollection(); public ObservableCollection IncreateList { get => increateList; set { Set(ref increateList, value); } } // - private ObservableCollection - packList = new ObservableCollection(); - public ObservableCollection PackList { get => packList; set { Set(ref packList, value); } } // + //private ObservableCollection + // packList = new ObservableCollection(); + //public ObservableCollection PackList { get => packList; set { Set(ref packList, value); } } // private ObservableCollection consumableServiceList = new ObservableCollection(); public ObservableCollection ConsumableServiceList { get => consumableServiceList; set { Set(ref consumableServiceList, value); } } // + + + + private ObservableCollection basicPackProcessList = new ObservableCollection(); + private ObservableCollection incrementProcessList = new ObservableCollection(); + /// + ///增量工序 + /// + public ObservableCollection IncrementProcessList { get => incrementProcessList; set { Set(ref incrementProcessList, value); } } // + /// + /// 基础包装工序 + /// + public ObservableCollection BasicPackProcessList { get => basicPackProcessList; set { Set(ref basicPackProcessList, value); } } + + + + + private string discount = "1"; /// /// 折扣 @@ -116,6 +163,11 @@ namespace BBWY.Client.ViewModels.PackTask public ObservableCollection ConsumableList { get; set; } = new ObservableCollection(); public ObservableCollection PackServiceList { get; set; } = new ObservableCollection(); + /// + /// 基础包装服务项目列表 + /// + public ObservableCollection BasicPackServiceList { get; set; } = new ObservableCollection(); + private readonly PackServiceService packServiceService; /// @@ -127,7 +179,10 @@ namespace BBWY.Client.ViewModels.PackTask public void InitPrintList() { - TaskImage = MyPrintHelper.GetBarcodeImage(TaskId.ToString(),300,60); + + + + TaskImage = MyPrintHelper.GetBarcodeImage(TaskId.ToString(), 300, 60); BarcodeImage = MyPrintHelper.GetBarcodeImage(SkuId, 300, 60); @@ -180,86 +235,15 @@ namespace BBWY.Client.ViewModels.PackTask this.packTaskService = packTaskService; this.packServiceService = packServiceService; this.packDetailService = packDetailService; + this.batchPurchaseService = batchPurchaseService; - - - var packServiceRes = this.packServiceService.SearchAll(); - - - if (packServiceRes.Success) - { - if (packServiceRes.Data != null && packServiceRes.Data.Count() > 0) - { - - foreach (var packService in packServiceRes.Data) - { - if (packService.ServiceType == ServiceType.增值服务) - App.Current.Dispatcher.Invoke(() => - { - IncreateServiceList.Add(packService);//加载增值服务列表 - }); - if (packService.ServiceType == ServiceType.打包服务) - App.Current.Dispatcher.Invoke(() => - { - PackServiceList.Add(packService);//加载工序服务列表 - }); - } - } - } - - - - var res = this.packTaskService.GetPackMembers();//成员表 - if (res.Success) - { - foreach (var item in res.Data) - { - App.Current.Dispatcher.Invoke(() => - { - MemberList.Add(item); - }); - - } - - } - - - - var conRes = this.consumableService.SearchAll(); - if (conRes.Success) - { - foreach (var item in conRes.Data) - { - App.Current.Dispatcher.Invoke(() => - { - - ConsumableList.Add(new ConsumableModel(consumableService) - { - Width = item.Width, - Weigth = item.Weigth, - Remark = item.Remark, - Price = item.Price, - Name = item.Name, - Length = item.Length, - Heigth = item.Heigth, - Id = item.Id - }); - }); - } - - } - AddIncreateServiceCommand = new RelayCommand(AddIncreateService); AddPackServiceCommand = new RelayCommand(AddPackService); + AddBasicPackServiceCommand = new RelayCommand(AddBasicPackService); AddConsumableCommand = new RelayCommand(AddConsumable); UpLoadPackCommand = new RelayCommand(UpLoadPack); SetAllCountCommand = new RelayCommand(SetAllCount); - this.batchPurchaseService = batchPurchaseService; - - - - //加载数据 //LoadPackDatas(); @@ -271,6 +255,7 @@ namespace BBWY.Client.ViewModels.PackTask /// public void LoadPackDatas() { + IncrementPartTaskCount = TaskCount; try { InitPrintList(); @@ -284,9 +269,80 @@ namespace BBWY.Client.ViewModels.PackTask LoadList = new List(); Task task = Task.Factory.StartNew(() => { - var res = this.packDetailService.GetTaskService(TaskId); + var resMember = this.packTaskService.GetPackMembers();//成员表 + if (resMember.Success) + { + MemberList = new ObservableCollection(); + foreach (var item in resMember.Data) + { + App.Current.Dispatcher.Invoke(() => + { + MemberList.Add(item); + }); + } + } + var res = this.packDetailService.GetPackTaskDetail(TaskId); + + + if (res.Success) { + IncrementPartCount = res.Data.IncrementPartCount==null? 0 : res.Data.IncrementPartCount.Value; + + if (res.Data != null && res.Data.IncrementItemList.Count() > 0) + { + IncreateServiceList = new ObservableCollection(); + foreach (var packService in res.Data.IncrementItemList) + { + if (packService.ServiceType == ServiceType.增值服务) + App.Current.Dispatcher.Invoke(() => + { + IncreateServiceList.Add(packService);//加载增值服务列表 + }); + + } + } + + if (res.Data != null && res.Data.ProcessItemList.Count() > 0) + { + PackServiceList = new ObservableCollection(); + BasicPackServiceList = new ObservableCollection(); + foreach (var packService in res.Data.ProcessItemList) + { + if (packService.ServiceType == ServiceType.打包服务) + App.Current.Dispatcher.Invoke(() => + { + PackServiceList.Add(packService);//加载工序服务列表 + BasicPackServiceList.Add(packService); + }); + } + } + + if (res.Data != null && res.Data.ConsumableItemList.Count() > 0) + { + ConsumableList = new ObservableCollection(); + foreach (var item in res.Data.ConsumableItemList) + { + + App.Current.Dispatcher.Invoke(() => + { + + ConsumableList.Add(new ConsumableModel(consumableService) + { + Width = item.Width, + Weigth = item.Weigth, + Remark = item.Remark, + Price = item.Price, + Name = item.Name, + Length = item.Length, + Heigth = item.Heigth, + Id = item.Id + }); + }); + } + } + + if (res.Data.IncreateList != null) { IncreateList = new ObservableCollection(); @@ -310,17 +366,39 @@ namespace BBWY.Client.ViewModels.PackTask } } - if (res.Data.PackList != null) + if (res.Data.ConsumableList != null) { - PackList = new ObservableCollection(); - foreach (var item in res.Data.PackList) + ConsumableServiceList = new ObservableCollection(); + foreach (var item in res.Data.ConsumableList) { App.Current.Dispatcher.Invoke(() => { - PackList.Add(new PackItemModel() + ConsumableServiceList.Add(new PackItemModel() { - PackServiceList = PackServiceList, MemberList = MemberList, + ConsumableList = ConsumableList, + ItemCount = item.ItemCount, + ItemName = item.ItemName, + SelectId = item.SelectId, + + + }); + }); + } + } + + + if (res.Data.IncrementProcessList != null) + { + IncrementProcessList = new ObservableCollection(); + foreach (var item in res.Data.IncrementProcessList) + { + App.Current.Dispatcher.Invoke(() => + { + IncrementProcessList.Add(new PackItemModel() + { + MemberList = MemberList, + PackServiceList = PackServiceList.Copy(), ItemCount = item.ItemCount, ItemName = item.ItemName, SelectId = item.SelectId, @@ -331,31 +409,34 @@ namespace BBWY.Client.ViewModels.PackTask }); } } - if (res.Data.ConsumableServiceList != null) + + if (res.Data.BasicPackProcessList != null) { - ConsumableServiceList = new ObservableCollection(); - foreach (var item in res.Data.ConsumableServiceList) + BasicPackProcessList = new ObservableCollection(); + foreach (var item in res.Data.BasicPackProcessList) { App.Current.Dispatcher.Invoke(() => { - ConsumableServiceList.Add(new PackItemModel() + BasicPackProcessList.Add(new PackItemModel() { MemberList = MemberList, - ConsumableList = ConsumableList, + PackServiceList = PackServiceList.Copy(), ItemCount = item.ItemCount, ItemName = item.ItemName, SelectId = item.SelectId, - + SelectUserId = item.SelectUserId, + MemberName = item.MemberName }); }); } } + + LoadList.AddRange(IncreateList); - LoadList.AddRange(PackList); - Discount = res.Data.Discount.ToString(); + LoadList.AddRange(IncrementProcessList); + DirectionalFees = res.Data.DirectionalFees?.ToString(); } - }); } @@ -393,324 +474,481 @@ namespace BBWY.Client.ViewModels.PackTask public int TaskCount { get => taskCount; set { Set(ref taskCount, value); } } // public string OrderId { get; set; } public string SkuId { get; set; } - /// - /// 上传数据 (判断是否超量) 统一上传 - /// - private void UpLoadPack(object obj) - { - decimal upDisCount = 1; - if (string.IsNullOrEmpty(Discount)) upDisCount = 1; - - decimal.TryParse(Discount, out upDisCount); - if (upDisCount == 0) - { - new TipsWindow("折扣输入有误"); - return; - } - UploadServiceRequest uploadService = new UploadServiceRequest(); - uploadService.Discount = upDisCount; - - List packServiceList = new List(); - - - uploadService.TaskId = TaskId; - List uploadServices = new List(); - // List consumableTasks = new List(); - ///上传 删除的数据 //上传保存数据 //上传总数据 - List addDatas = new List(); - List delDatas = new List(); - - List PersonTaskModels = new List(); + private List IsOverCount(ObservableCollection packItemModels, bool needUserId = true) + { - List allPackServiceTasks = new List(); - List allConsumableTasks = new List(); - FeesItemResponse feesItem = new FeesItemResponse(); ; - List PackServiceMembers = new List(); - //获取打包人员 - List packUsers = new List(); - decimal singleFees = 0; - decimal AllFees = 0; - decimal price = 0; + List disItems = new List(); - decimal IncreateFees = 0, PackFees = 0, ConsumableFees = 0, DiscountPrice = 0; - foreach (var item in IncreateList)//增值服务上传 + foreach (var packItem in packItemModels)//增值服务上传 { - if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0) - { - new TipsWindow($"数据输入有误").Show(); - return; - } - var member = MemberList.SingleOrDefault(m => m.Id == item.SelectUserId); - if (member != null && !packUsers.Contains(member.UserName)) + var item = new PackItemModel { - packUsers.Add(member.UserName); - } + 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) { - new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show(); - return; + System.Windows.MessageBox.Show($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}"); + return null; } - price = IncreateServiceList.First(i => i.Id == item.SelectId).Price; - singleFees += price; - AllFees += item.ItemCount * price; - IncreateFees += item.ItemCount * price; - if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//相同服务 存在累加 + if (disItems.Select(a => a.SelectId).Contains(item.SelectId))//相同服务 存在累加 { - var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId); - if (inMembers != null) - inMembers.PackServiceCount += item.ItemCount; + var data = disItems.SingleOrDefault(a => a.SelectId == item.SelectId); + if (data != null) data.ItemCount += item.ItemCount; - var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId); - var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); - if (data != null) data.PackServiceCount += item.ItemCount; - if (feeItem != null) feeItem.ItemCount += item.ItemCount; - if (data.PackServiceCount > TaskCount)//累积超出任务量 + if (data.ItemCount > TaskCount)//累积超出任务量 { - new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show(); - return; + System.Windows.MessageBox.Show($"{item.ItemName}:{data.ItemCount}超出任务量{TaskCount}"); + return null; } continue; } + disItems.Add(item); + } - PackServiceMembers.Add(new PackServiceMemberModel - { - UserId = item.SelectUserId, - PackServiceCount = item.ItemCount, - PackServiceId = item.SelectId, - Price = price, - ServiceType = ServiceType.增值服务 - }); - feesItem.ServiceList.Add(new ServiceItemResponse - { - ServiceType = ServiceType.增值服务, - ItemCount = item.ItemCount, - ItemName = item.ItemName, - ItemPrice = price - }); + return disItems; + } - } - foreach (var item in PackList)//打包服务 + /// + /// 上传数据 (判断是否超量) 统一上传 + /// + private void UpLoadPack(object obj) + { + decimal? directFees = null; + if (!string.IsNullOrEmpty(DirectionalFees)) { - if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0) + try { - new TipsWindow($"数据输入有误").Show(); - return; + directFees = decimal.Parse(DirectionalFees); } - if (item.ItemCount > TaskCount) + catch (Exception) { - new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show(); - return; - } - var member = MemberList.SingleOrDefault(m => m.Id == item.SelectUserId); - if (member != null && !packUsers.Contains(member.UserName)) - { - packUsers.Add(member.UserName); - } - - price = PackServiceList.First(i => i.Id == item.SelectId).Price; - singleFees += price; - AllFees += item.ItemCount * price; - PackFees += item.ItemCount * price; - if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//存在累加 - { - var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId); - if (inMembers != null) - inMembers.PackServiceCount += item.ItemCount; - - - var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId); - var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); - feeItem.ItemCount += item.ItemCount; - data.PackServiceCount += item.ItemCount; - if (data.PackServiceCount > TaskCount)//累积超出任务量 - { - new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show(); - return; - } - continue; + directFees = null; } - PackServiceMembers.Add(new PackServiceMemberModel - { - UserId = item.SelectUserId, - PackServiceCount = item.ItemCount, - PackServiceId = item.SelectId, - Price = price, - ServiceType = ServiceType.打包服务 - }); - feesItem.ServiceList.Add(new ServiceItemResponse - { - ServiceType = ServiceType.打包服务, - ItemCount = item.ItemCount, - ItemName = item.ItemName, - ItemPrice = price - }); + } - } + PackTaskDetailRequest packTaskDetail = new PackTaskDetailRequest(); + packTaskDetail.DirectionalFees = directFees; + packTaskDetail.IncrementPartCount = IncrementPartCount; + packTaskDetail.IncrementPartTaskCount = IncrementPartTaskCount; + packTaskDetail.TaskId = TaskId; - foreach (var item in ConsumableServiceList) - { - if (item.SelectId <= 0 || item.ItemCount <= 0) - { - new TipsWindow($"数据输入有误").Show(); - return; - } - if (item.ItemCount > TaskCount) - { - new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show(); - return; - } - price = ConsumableList.First(i => i.Id == item.SelectId).Price.Value; - singleFees += price; - AllFees += item.ItemCount * price; - ConsumableFees += item.ItemCount * price; - if (allConsumableTasks.Select(a => a.ConsumableId).Contains(item.SelectId))//存在累加 - { - var data = allConsumableTasks.SingleOrDefault(a => a.ConsumableId == item.SelectId); - var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); - feeItem.ItemCount += item.ItemCount; - data.ConsumableCount += item.ItemCount; - if (data.ConsumableCount > TaskCount)//累积超出任务量 - { - new TipsWindow($"{item.ItemName}:{data.ConsumableCount}超出任务量{TaskCount}").Show(); - return; - } - continue; - } - feesItem.ServiceList.Add(new ServiceItemResponse - { - ServiceType = ServiceType.耗材服务, - ItemCount = item.ItemCount, - ItemName = item.ItemName, - ItemPrice = price - }); - allConsumableTasks.Add(new ConsumableTaskModel - { - ConsumableCount = item.ItemCount, - ConsumableId = item.SelectId - }); - } - uploadService.ConsumableIds = string.Join(",", allConsumableTasks.Select(a => a.ConsumableId)); - uploadService.ConsumableNos = string.Join(",", allConsumableTasks.Select(a => a.ConsumableCount)); - uploadService.WorkProcessIds = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.打包服务).Select(a => a.PackServiceId)); - uploadService.WorkProcessNos = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.打包服务).Select(a => a.PackServiceCount)); - uploadService.IncreateServiceIds = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.增值服务).Select(a => a.PackServiceId)); - uploadService.IncreateServiceNos = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.增值服务).Select(a => a.PackServiceCount)); + decimal IncreateFees = 0, PackFees = 0, ConsumableFees = 0, DiscountPrice = 0; - uploadService.PackServiceIds = string.Join(",", PackServiceMembers.Select(a => a.PackServiceId)); - uploadService.PackServiceNos = string.Join(",", PackServiceMembers.Select(a => a.PackServiceCount)); - //var orgIds = LoadList.Select(p => p.SelectId).ToList(); - //var nowIds = PackServiceMembers.Select(p => p.PackServiceId).ToList(); + var disIncreateList = IsOverCount(IncreateList); + if (disIncreateList == null) return; - //var add = nowIds.Except(orgIds); + var disBasicPackProcessList = IsOverCount(BasicPackProcessList); + if (disBasicPackProcessList == null) return; - foreach (var item in LoadList) + if (disBasicPackProcessList.Select(d => d.SelectId).Distinct().Count() > 2) { - if (!PackServiceMembers.Any(p => p.UserId == item.SelectUserId && p.PackServiceId == item.SelectId)) - { - delDatas.Add(new PersonTaskModel - { + System.Windows.MessageBox.Show("基础包装工序不能超过两道"); + return; + } - TaskId = taskId, - PackUserId = item.SelectUserId, - ServiceId = item.SelectId - }); - } - } + var disIncrementProcessList = IsOverCount(IncrementProcessList); + if (disIncrementProcessList == null) return; + var disConsumableServiceList = IsOverCount(ConsumableServiceList, false); + if (disConsumableServiceList == null) return; - //var del = orgIds.Except(nowIds).ToList(); + packTaskDetail.IncreateList = IncreateList.ToList(); + packTaskDetail.BasicPackProcessList = BasicPackProcessList.ToList(); + packTaskDetail.IncrementProcessList = IncrementProcessList.ToList(); + packTaskDetail.ConsumableList = disConsumableServiceList; - foreach (var PackServiceMember in PackServiceMembers) - { - addDatas.Add(new PersonTaskModel - { - TaskId = taskId, - CreateTime = DateTime.Now, - IsDeleted = false, - ServiceCount = PackServiceMember.PackServiceCount, - PackUserId = PackServiceMember.UserId, - ServiceId = PackServiceMember.PackServiceId, - ServiceType = PackServiceMember.ServiceType - }); - } - uploadService.AddPackServices = addDatas; - uploadService.DelPackServices = delDatas; - //uploadService.DeletedPackServices = del; - - //uploadService.DeletedPackServices - 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")); - var res = packDetailService.UploadService(uploadService); + var res = packDetailService.SetPackTaskDetail(packTaskDetail); if (res != null && res.Success) { // new TipsWindow("上传成功!").Show(); var win = obj as System.Windows.Window; - feesItem.AllFees = AllFees; - feesItem.SingleFees = singleFees; - feesItem.TaskId = TaskId; - feesItem.DisCount = upDisCount; - feesItem.DiscountAllFees = upDisCount * AllFees; - feesItem.DiscountSingleFees = singleFees * upDisCount; if (SetAllFees != null) - SetAllFees(feesItem, packUsers); + SetAllFees(); win.Close(); } } + + + + + //private void UpLoadPack1(object obj) + //{ + // decimal upDisCount = 1; + // if (string.IsNullOrEmpty(Discount)) upDisCount = 1; + + // decimal.TryParse(Discount, out upDisCount); + // if (upDisCount == 0) + // { + // new TipsWindow("折扣输入有误"); + // return; + // } + // UploadServiceRequest uploadService = new UploadServiceRequest(); + // uploadService.Discount = upDisCount; + + // List packServiceList = new List(); + + + + // uploadService.TaskId = TaskId; + // List uploadServices = new List(); + + // // List consumableTasks = new List(); + // ///上传 删除的数据 //上传保存数据 //上传总数据 + // List addDatas = new List(); + // List delDatas = new List(); + + // List PersonTaskModels = new List(); + + + // List allPackServiceTasks = new List(); + // List allConsumableTasks = new List(); + // FeesItemResponse feesItem = new FeesItemResponse(); ; + // List PackServiceMembers = new List(); + // //获取打包人员 + // List packUsers = new List(); + + // decimal singleFees = 0; + // decimal AllFees = 0; + // decimal price = 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) + // { + // new TipsWindow($"数据输入有误").Show(); + // return; + // } + // var member = MemberList.SingleOrDefault(m => m.Id == item.SelectUserId); + // if (member != null && !packUsers.Contains(member.UserName)) + // { + // packUsers.Add(member.UserName); + // } + + // if (item.ItemCount > TaskCount) + // { + // new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show(); + // return; + // } + // price = IncreateServiceList.First(i => i.Id == item.SelectId).Price; + // singleFees += price; + // AllFees += item.ItemCount * price; + // IncreateFees += item.ItemCount * price; + + + + // if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//相同服务 存在累加 + // { + // var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId); + // if (inMembers != null) + // inMembers.PackServiceCount += item.ItemCount; + + + + // var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId); + // var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); + // if (data != null) data.PackServiceCount += item.ItemCount; + // if (feeItem != null) feeItem.ItemCount += item.ItemCount; + // if (data.PackServiceCount > TaskCount)//累积超出任务量 + // { + // new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show(); + // return; + // } + + // continue; + // } + + // PackServiceMembers.Add(new PackServiceMemberModel + // { + // UserId = item.SelectUserId, + // PackServiceCount = item.ItemCount, + // PackServiceId = item.SelectId, + // Price = price, + // ServiceType = ServiceType.增值服务 + // }); + + + // feesItem.ServiceList.Add(new ServiceItemResponse + // { + // ServiceType = ServiceType.增值服务, + // ItemCount = item.ItemCount, + // ItemName = item.ItemName, + // ItemPrice = price + // }); + + // } + + // foreach (var item in IncrementProcessList)//打包服务 + // { + // if (item.SelectId <= 0 || string.IsNullOrEmpty(item.SelectUserId) || item.ItemCount <= 0) + // { + // new TipsWindow($"数据输入有误").Show(); + // return; + // } + // if (item.ItemCount > TaskCount) + // { + // new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show(); + // return; + // } + // var member = MemberList.SingleOrDefault(m => m.Id == item.SelectUserId); + // if (member != null && !packUsers.Contains(member.UserName)) + // { + // packUsers.Add(member.UserName); + // } + + + // price = PackServiceList.First(i => i.Id == item.SelectId).Price; + // singleFees += price; + // AllFees += item.ItemCount * price; + // PackFees += item.ItemCount * price; + // if (PackServiceMembers.Select(a => a.PackServiceId).Contains(item.SelectId))//存在累加 + // { + // var inMembers = PackServiceMembers.SingleOrDefault(a => a.UserId == item.SelectUserId && a.PackServiceId == item.SelectId); + // if (inMembers != null) + // inMembers.PackServiceCount += item.ItemCount; + + + // var data = PackServiceMembers.SingleOrDefault(a => a.PackServiceId == item.SelectId); + // var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); + // feeItem.ItemCount += item.ItemCount; + // data.PackServiceCount += item.ItemCount; + // if (data.PackServiceCount > TaskCount)//累积超出任务量 + // { + // new TipsWindow($"{item.ItemName}:{data.PackServiceCount}超出任务量{TaskCount}").Show(); + // return; + // } + // continue; + // } + // PackServiceMembers.Add(new PackServiceMemberModel + // { + // UserId = item.SelectUserId, + // PackServiceCount = item.ItemCount, + // PackServiceId = item.SelectId, + // Price = price, + // ServiceType = ServiceType.打包服务 + // }); + // feesItem.ServiceList.Add(new ServiceItemResponse + // { + // ServiceType = ServiceType.打包服务, + // ItemCount = item.ItemCount, + // ItemName = item.ItemName, + // ItemPrice = price + // }); + + + + // } + + // foreach (var item in ConsumableServiceList) + // { + // if (item.SelectId <= 0 || item.ItemCount <= 0) + // { + // new TipsWindow($"数据输入有误").Show(); + // return; + // } + // if (item.ItemCount > TaskCount) + // { + // new TipsWindow($"{item.ItemName}:{item.ItemCount}超出任务量{TaskCount}").Show(); + // return; + // } + // price = ConsumableList.First(i => i.Id == item.SelectId).Price.Value; + // singleFees += price; + // AllFees += item.ItemCount * price; + // ConsumableFees += item.ItemCount * price; + // if (allConsumableTasks.Select(a => a.ConsumableId).Contains(item.SelectId))//存在累加 + // { + // var data = allConsumableTasks.SingleOrDefault(a => a.ConsumableId == item.SelectId); + // var feeItem = feesItem.ServiceList.SingleOrDefault(f => f.ItemName == item.ItemName); + // feeItem.ItemCount += item.ItemCount; + // data.ConsumableCount += item.ItemCount; + // if (data.ConsumableCount > TaskCount)//累积超出任务量 + // { + // new TipsWindow($"{item.ItemName}:{data.ConsumableCount}超出任务量{TaskCount}").Show(); + // return; + // } + // continue; + // } + // feesItem.ServiceList.Add(new ServiceItemResponse + // { + // ServiceType = ServiceType.耗材服务, + // ItemCount = item.ItemCount, + // ItemName = item.ItemName, + // ItemPrice = price + // }); + // allConsumableTasks.Add(new ConsumableTaskModel + // { + // ConsumableCount = item.ItemCount, + // ConsumableId = item.SelectId + // }); + // } + // uploadService.ConsumableIds = string.Join(",", allConsumableTasks.Select(a => a.ConsumableId)); + // uploadService.ConsumableNos = string.Join(",", allConsumableTasks.Select(a => a.ConsumableCount)); + // uploadService.WorkProcessIds = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.打包服务).Select(a => a.PackServiceId)); + // uploadService.WorkProcessNos = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.打包服务).Select(a => a.PackServiceCount)); + // uploadService.IncreateServiceIds = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.增值服务).Select(a => a.PackServiceId)); + // uploadService.IncreateServiceNos = string.Join(",", PackServiceMembers.Where(p => p.ServiceType == ServiceType.增值服务).Select(a => a.PackServiceCount)); + + // uploadService.PackServiceIds = string.Join(",", PackServiceMembers.Select(a => a.PackServiceId)); + // uploadService.PackServiceNos = string.Join(",", PackServiceMembers.Select(a => a.PackServiceCount)); + // //var orgIds = LoadList.Select(p => p.SelectId).ToList(); + // //var nowIds = PackServiceMembers.Select(p => p.PackServiceId).ToList(); + + // //var add = nowIds.Except(orgIds); + + // foreach (var item in LoadList) + // { + // if (!PackServiceMembers.Any(p => p.UserId == item.SelectUserId && p.PackServiceId == item.SelectId)) + // { + // delDatas.Add(new PersonTaskModel + // { + + // TaskId = taskId, + // PackUserId = item.SelectUserId, + // ServiceId = item.SelectId + // }); + // } + // } + + + // //var del = orgIds.Except(nowIds).ToList(); + + // foreach (var PackServiceMember in PackServiceMembers) + // { + // addDatas.Add(new PersonTaskModel + // { + // TaskId = taskId, + // CreateTime = DateTime.Now, + // IsDeleted = false, + // ServiceCount = PackServiceMember.PackServiceCount, + // PackUserId = PackServiceMember.UserId, + // ServiceId = PackServiceMember.PackServiceId, + // ServiceType = PackServiceMember.ServiceType + // }); + // } + // uploadService.AddPackServices = addDatas; + // uploadService.DelPackServices = delDatas; + // //uploadService.DeletedPackServices = del; + + // //uploadService.DeletedPackServices + // 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")); + // var res = packDetailService.SetPackTaskDetail(uploadService); + // if (res != null && res.Success) + // { + // // new TipsWindow("上传成功!").Show(); + // var win = obj as System.Windows.Window; + // feesItem.AllFees = AllFees; + // feesItem.SingleFees = singleFees; + // feesItem.TaskId = TaskId; + // feesItem.DisCount = upDisCount; + // feesItem.DiscountAllFees = upDisCount * AllFees; + // feesItem.DiscountSingleFees = singleFees * upDisCount; + // if (SetAllFees != null) + // SetAllFees(feesItem, packUsers); + // win.Close(); + // } + //} + + /// /// 更新 打包员 和费用数据 /// - public Action> SetAllFees { get; set; } + public Action SetAllFees { get; set; } private void AddPackService() { - PackList.Add(new PackItemModel() + App.Current.Dispatcher.Invoke(new Action(() => { - ItemCount = TaskCount, - MemberList = MemberList, - PackServiceList = PackServiceList - }); + 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 = PackServiceList + }); + })); + } private void AddIncreateService() { - IncreateList.Add(new PackItemModel() + App.Current.Dispatcher.Invoke(new Action(() => { - ItemCount = TaskCount, - IncreateServiceList = IncreateServiceList, - MemberList = MemberList, - }); + IncreateList.Add(new PackItemModel() + { + ItemCount = TaskCount, + IncreateServiceList = IncreateServiceList, + MemberList = MemberList, + }); + })); + + } private void AddConsumable() { - ConsumableServiceList.Add(new PackItemModel() + App.Current.Dispatcher.Invoke(new Action(() => { - ItemCount = TaskCount, - ConsumableList = ConsumableList - }); + ConsumableServiceList.Add(new PackItemModel() + { + ItemCount = TaskCount, + ConsumableList = ConsumableList + }); + })); + } } } diff --git a/BBWY.Client/ViewModels/ViewModelLocator.cs b/BBWY.Client/ViewModels/ViewModelLocator.cs index af467f81..a5ebf30e 100644 --- a/BBWY.Client/ViewModels/ViewModelLocator.cs +++ b/BBWY.Client/ViewModels/ViewModelLocator.cs @@ -324,5 +324,12 @@ namespace BBWY.Client.ViewModels return s.ServiceProvider.GetRequiredService(); } } + + + void test() + { + + var packuser = (App.Current as App).ServiceProvider.GetRequiredService(); + } } } diff --git a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml index c0c5139e..49edbf0c 100644 --- a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml +++ b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml @@ -4,9 +4,225 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:BBWY.Client.Views.PackTask" - mc:Ignorable="d" - d:DesignHeight="100" d:DesignWidth="1800"> + mc:Ignorable="d" Background="White" + d:DesignHeight="150" d:DesignWidth="1800"> - + + diff --git a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs index f1d413b8..857b3648 100644 --- a/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs +++ b/BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs @@ -1,6 +1,7 @@ using BBWY.Client.APIServices; using BBWY.Client.Models.APIModel.Response.PackTask; using NPOI.POIFS.Crypt.Dsig; +using NPOI.SS.Formula.Functions; using System; using System.Collections.Generic; using System.Linq; @@ -59,8 +60,20 @@ namespace BBWY.Client.Views.PackTask // DependencyProperty.Register("FeesPrice", typeof(decimal), typeof(FeesExcelControl), new PropertyMetadata(ChangedProperty2)); + public bool IsMin + { + get + { + return (bool)GetValue(IsMinProperty); - + } + set + { + SetValue(IsMinProperty, value); + } + } + public static readonly DependencyProperty IsMinProperty = + DependencyProperty.Register("IsMin", typeof(bool), typeof(FeesExcelControl)); @@ -106,10 +119,50 @@ namespace BBWY.Client.Views.PackTask } } + public FeesExcelControl() + { + InitializeComponent(); + } + string xaml = @" + + + [:Columns:] + + + + + + + + + + + + + + + + + + + + + + + + [:Header:] + + + + [:ListData:] + "; + + + string oldxaml = @" [:Columns:] @@ -146,33 +199,159 @@ namespace BBWY.Client.Views.PackTask [:ListData:] "; + /// - /// index 从1开始 0+1 + /// index 从1开始 0+1 增值服务 和打包耗材 /// string columnData = @" - + - - + + - + "; - string columnStr = ""; - string increateService = @" - "; + string packProcessColumnData = @""; + + + string incrementConsumableStr = @" + + + + + + + + "; + + string totalIncrementConsumableStr = @" + + + + + + + + "; + + string basicPackStr = @" + + + + + + + + + + [:Columns:] + + [:BasicProcessData:] + + + + + + "; + + string basicProcessdata = @" + "; + + string increateProcessStr = @" + + + + + + + + + + + [:Columns:] + + + [:IncreateProcessDatas:] + + + + + "; + string increateProcessData = @" + + + + + + + + "; + + string increatePartData = @" + + + + + + + + + + + + "; + + + + string FeesModeStr = @" + + + + + + + + "; + + string discountFactorStr = @" + + + + + + + + "; + string processFeesStr = @" + + + + + + + + + + + "; - string workProcess = "\r\n \r\n "; - string consumableService = "\r\n \r\n "; - public FeesExcelControl() - { - InitializeComponent(); - } + + string columnStr = ""; + + string increateService = @" + "; + + string workProcess = "\r\n \r\n "; + + string consumableService = "\r\n \r\n "; + + @@ -191,20 +370,56 @@ namespace BBWY.Client.Views.PackTask { gd.Children.Clear(); }); - var increateList = FeesItem.ServiceList.Where(s => s.ServiceType == ServiceType.增值服务).ToList(); - var processList = FeesItem.ServiceList.Where(s => s.ServiceType == ServiceType.打包服务).ToList(); - var consumableList = FeesItem.ServiceList.Where(s => s.ServiceType == ServiceType.耗材服务).ToList(); + + int packserviceCount = 0; + bool isExitIncrementPart = false; + + if (FeesItem.IncrementPartTaskCount != null && FeesItem.IncrementPartTaskCount > 0 && FeesItem.IncrementPartCount > 1) + { + isExitIncrementPart = true; + packserviceCount++; + } + var increateList = FeesItem.IncreateList; + var basicProcessList = FeesItem.PackItemList.Where(f => f.ProcessType == Models.ProcessType.基础包装工序).ToList(); + if (basicProcessList.Count > 0) packserviceCount++; + + var increateProcessList = FeesItem.PackItemList.Where(f => f.ProcessType == Models.ProcessType.增值服务工序).ToList(); + if (increateProcessList.Count > 0) packserviceCount++; + var processList = FeesItem.PackItemList; + var consumableList = FeesItem.ConsumableList; + + if (packserviceCount > 0) packserviceCount += 3; + + + + + + var increateCount = increateList.Count(); - var processCount = processList.Count(); + + var processCount = packserviceCount; var consumableCount = consumableList.Count(); - List all = new List(); - all.AddRange(increateList); - all.AddRange(processList); - all.AddRange(consumableList); + if (consumableCount > 0) + { + consumableCount++; + } + if (increateCount > 0) + { + increateCount++; + } + if (IsMin) + { + columnStr = columnStr.Replace("[:Width:]", "Auto"); + } + else + { + columnStr = columnStr.Replace("[:Width:]", "*"); + } - var columnCount = 2 + all.Count + 2; + + var columnCount = consumableCount + processCount + increateCount + 2; StringBuilder columns = new StringBuilder(); for (int i = 0; i < columnCount; i++) { @@ -212,27 +427,117 @@ namespace BBWY.Client.Views.PackTask } StringBuilder serviceData = new StringBuilder(); + int allCount = consumableCount + processCount + increateCount; - if (isPrice) + int rowIndex = 0; + if (increateList.Count > 0) { - for (int i = 0; i < all.Count; i++) + foreach (var item in increateList) { - serviceData.AppendLine(columnData.Replace("[:index:]", $"{i + 1}") - .Replace("[:ServiceName:]", $"{all[i].ItemName}") - .Replace("[:ServiceCount:]", $"{all[i].ItemPrice}")); + rowIndex++; + serviceData.AppendLine(incrementConsumableStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:ServiceName:]", $"{item.ItemName}") + .Replace("[:ServiceCount:]", $"{item.ItemPrice}*{item.ItemCount}")); } + + rowIndex++; + serviceData.AppendLine(totalIncrementConsumableStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:Price:]", $"{FeesItem.IncreateFees}") + ); + //totalIncrementConsumableStr } - else + + + + + + if (basicProcessList.Count > 0)//打包服务 + { + rowIndex++; + + + StringBuilder basicSB = new StringBuilder(); + StringBuilder basiccolumns = new StringBuilder(); + for (int i = 0; i < basicProcessList.Count; i++) + { + basicSB.AppendLine(basicProcessdata.Replace("[:index:]", $"{i}") + .Replace("[:ServiceName:]", $"{basicProcessList[i].ItemName}") + .Replace("[:ServiceCount:]", $"{basicProcessList[i].ItemPrice}*{basicProcessList[i].ItemCount}")); + basiccolumns.AppendLine(columnStr); + } + + + serviceData.AppendLine(basicPackStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:Columns:]", $"{basiccolumns}") + .Replace("[:ServiceCount:]", $"{FeesItem.BasicProcessPrice}*{FeesItem.BasicProcessCount}") + .Replace("[:BasicProcessData:]", basicSB.ToString())); + + + + + } + if (increateProcessList.Count > 0) { - for (int i = 0; i < all.Count; i++) + rowIndex++; + StringBuilder increateProcessSB = new StringBuilder(); + StringBuilder increateProcesscolumns = new StringBuilder(); + for (int i = 0; i < increateProcessList.Count(); i++) { - serviceData.AppendLine(columnData.Replace("[:index:]", $"{i + 1}") - .Replace("[:ServiceName:]", $"{all[i].ItemName}") - .Replace("[:ServiceCount:]", $"{all[i].ItemPrice}*{all[i].ItemCount}")); + increateProcessSB.AppendLine(increateProcessData.Replace("[:index:]", $"{i}") + .Replace("[:ServiceName:]", $"{increateProcessList[i].ItemName}") + .Replace("[:ServiceCount:]", $"{increateProcessList[i].ItemPrice}*{increateProcessList[i].ItemCount}")); + increateProcesscolumns.AppendLine(columnStr); } + //[:IncreateProcessCount:] + serviceData.AppendLine(increateProcessStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:IncreateProcessCount:]", $"{increateProcessList.Count()}") + .Replace("[:Columns:]", $"{increateProcesscolumns}") + .Replace("[:IncreateProcessDatas:]", $"{increateProcessSB.ToString()}") + .Replace("[:ServiceCount:]", $"{FeesItem.BasicProcessPrice}*{FeesItem.BasicProcessCount}")); + } + + if (isExitIncrementPart) + { + rowIndex++; + + serviceData.AppendLine(increatePartData.Replace("[:index:]", $"{rowIndex}") + .Replace("[:PartCount:]", $"{FeesItem.IncrementPartCount}") + .Replace("[:ServiceCount:]", $"{FeesItem.IncrementPartPrice}*{FeesItem.IncrementPartTaskCount}")); } + + if (processCount > 0) + { + rowIndex++; + serviceData.AppendLine(FeesModeStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:FeesMode:]", $"{FeesItem.FeesMode}")); + rowIndex++; + serviceData.AppendLine(discountFactorStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:DiscountFactor:]", $"{FeesItem.DiscountFoctor}") + ); + rowIndex++; + serviceData.AppendLine(processFeesStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:PackFees:]", $"{FeesItem.PackFees}") + ); + } + + if (consumableList.Count > 0) + { + foreach (var item in consumableList) + { + rowIndex++; + serviceData.AppendLine(incrementConsumableStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:ServiceName:]", $"{item.ItemName}") + .Replace("[:ServiceCount:]", $"{item.ItemPrice}*{item.ItemCount}")); + } + rowIndex++; + serviceData.AppendLine(totalIncrementConsumableStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:Price:]", $"{FeesItem.ConsumableFees}") + ); + } + + StringBuilder header = new StringBuilder(); if (increateCount > 0) @@ -251,14 +556,9 @@ namespace BBWY.Client.Views.PackTask decimal discount = 0; decimal discountFees = 0; discount = FeesItem.disCount; - if (isPrice) - { - allFees = FeesItem.SingleFees; - } - else - { - allFees = FeesItem.AllFees; - } + + allFees = FeesItem.AllFees; + discountFees = allFees * discount; string discountStr = "原价"; @@ -269,7 +569,7 @@ namespace BBWY.Client.Views.PackTask var newGrid = xaml.Replace("[:Header:]", header.ToString()) .Replace("[:Columns:]", columns.ToString()) .Replace("[:ColumnCount:]", $"{columnCount}") - .Replace("[:ColumnCount-2:]", $"{columnCount - 4}") + .Replace("[:ColumnCount-2:]", $"{columnCount - 2}") .Replace("[:1+IncreateCount:]", $"{increateCount + 1}") .Replace("[:1+IncreateCount+ProcessCount:]", $"{1 + increateCount + processCount}") .Replace("[:1+IncreateCount+ProcessCount:+ConsumableCount]", $"{1 + increateCount + processCount + consumableCount}") @@ -280,10 +580,18 @@ namespace BBWY.Client.Views.PackTask .Replace("[:ConsumableCount:]", $"{consumableCount}") .Replace("[:TaskId:]", $"{FeesItem.TaskId}") .Replace("[:ListData:]", serviceData.ToString()) - .Replace("[:AllFees:]", $"{allFees}") - .Replace("[:Discount:]", discountStr) - .Replace("[:DiscountFees:]", $"{discountFees.ToString(" 0.00")}"); - + .Replace("[:AllFees:]", $"{FeesItem.AllFees}"); + //.Replace("[:Discount:]", $"{FeesItem.DiscountFoctor}") + //.Replace("[:DiscountFees:]", $"{discountFees.ToString(" 0.00")}"); + if (IsMin) + { + newGrid = newGrid.Replace(@"MinWidth=""84""", "").Replace(@"[:Visity:]", "Width=\"0\""); + } + else + { + // + newGrid = newGrid.Replace(@"[:Visity:]", ""); + } diff --git a/BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml b/BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml new file mode 100644 index 00000000..c7f827a4 --- /dev/null +++ b/BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml @@ -0,0 +1,11 @@ + + + + diff --git a/BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml.cs b/BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml.cs new file mode 100644 index 00000000..4e6acbd4 --- /dev/null +++ b/BBWY.Client/Views/PackTask/MinFeesExcelControl.xaml.cs @@ -0,0 +1,526 @@ +using BBWY.Client.Models.APIModel.Response.PackTask; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Data; +using System.Windows.Documents; +using System.Windows.Input; +using System.Windows.Markup; +using System.Windows.Media; +using System.Windows.Media.Imaging; +using System.Windows.Navigation; +using System.Windows.Shapes; + +namespace BBWY.Client.Views.PackTask +{ + /// + /// MinFeesExcelControl.xaml 的交互逻辑 + /// + public partial class MinFeesExcelControl : UserControl + { + public MinFeesExcelControl() + { + InitializeComponent(); + } + + /// + /// 是否仓库端 + /// + public bool IsWareHouse + { + get { return (bool)GetValue(IsWareHouseProperty); } + set + { + SetValue(IsWareHouseProperty, value); + } + } + + + public static readonly DependencyProperty IsWareHouseProperty = + DependencyProperty.Register("IsWareHouse", typeof(bool), typeof(MinFeesExcelControl), new PropertyMetadata(true, ChangedProperty1)); + + + /// + /// 价格 + /// + //public decimal FeesPrice + //{ + // get { return (decimal)GetValue(FeesPriceProperty); } + // set + // { + // SetValue(FeesPriceProperty, value); + // } + //} + + + //public static readonly DependencyProperty FeesPriceProperty = + // DependencyProperty.Register("FeesPrice", typeof(decimal), typeof(FeesExcelControl), new PropertyMetadata(ChangedProperty2)); + + + public bool IsMin + { + get + { + return (bool)GetValue(IsMinProperty); + + } + set + { + SetValue(IsMinProperty, value); + } + } + public static readonly DependencyProperty IsMinProperty = + DependencyProperty.Register("IsMin", typeof(bool), typeof(MinFeesExcelControl)); + + + + public FeesItemResponse FeesItem + { + get + { + return (FeesItemResponse)GetValue(FeesItemProperty); + + } + set + { + SetValue(FeesItemProperty, value); + } + } + + + public static readonly DependencyProperty FeesItemProperty = + DependencyProperty.Register("FeesItem", typeof(FeesItemResponse), typeof(MinFeesExcelControl), new PropertyMetadata(ChangedProperty)); + + + private static void ChangedProperty1(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = d as FeesExcelControl; + + var newValue = e.NewValue as FeesItemResponse; + + } + + private static void ChangedProperty(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + var control = d as MinFeesExcelControl; + // control.Str + var newValue = e.NewValue as FeesItemResponse; + control.FeesItem = newValue; + if (control.IsWareHouse) + { + control.LoadData(false); + } + else + { + control.LoadData(true); + } + + } + + + string xaml = @" + + [:Columns:] + + + + + + + + + + + + + + + + + + + + + + + + [:Header:] + + + [:ListData:] + "; + + + + + + /// + /// index 从1开始 0+1 增值服务 和打包耗材 + /// + string columnData = @" + + + + + + + + + "; + + + + + string incrementConsumableStr = @" + + + + + + + + "; + + //string totalIncrementConsumableStr = @" + // + // + // + // + // + // + // + //"; + + string basicPackStr = @" + + + + + + + + + + [:Columns:] + + [:BasicProcessData:] + + + + + + "; + + string basicProcessdata = @" + "; + + string increateProcessStr = @" + + + + + + + + + + + [:Columns:] + + + [:IncreateProcessDatas:] + + + + + "; + string increateProcessData = @" + + + + + + + + "; + + string increatePartData = @" + + + + + + + + + + + + "; + + + + string FeesModeStr = @" + + + + + + + + "; + + string discountFactorStr = @" + + + + + + + + "; + //string processFeesStr = @" + + + // + // + // + // + // + // + // + // + //"; + + + + + + string columnStr = ""; + + //string increateService = @" + // "; + + string workProcess = "\r\n \r\n "; + + string consumableService = "\r\n \r\n "; + + + + + + + private void LoadData(bool isPrice) + { + isPrice = false; + if (FeesItem == null || FeesItem.ServiceList.Count <= 0) + { + return; + } + try + { + + App.Current.Dispatcher.Invoke(() => + { + gd.Children.Clear(); + }); + + int packserviceCount = 0; + bool isExitIncrementPart = false; + + if (FeesItem.IncrementPartTaskCount != null && FeesItem.IncrementPartTaskCount > 0 && FeesItem.IncrementPartCount > 1) + { + isExitIncrementPart = true; + packserviceCount++; + } + + var basicProcessList = FeesItem.PackItemList.Where(f => f.ProcessType == Models.ProcessType.基础包装工序).ToList(); + if (basicProcessList.Count > 0) packserviceCount++; + + var increateProcessList = FeesItem.PackItemList.Where(f => f.ProcessType == Models.ProcessType.增值服务工序).ToList(); + if (increateProcessList.Count > 0) packserviceCount++; + var processList = FeesItem.PackItemList; + var consumableList = FeesItem.ConsumableList; + + if (packserviceCount > 0) packserviceCount += 2; + + + + + + + + + var processCount = packserviceCount; + var consumableCount = consumableList.Count(); + + + + + + + var columnCount = consumableCount + processCount + 1; + StringBuilder columns = new StringBuilder(); + for (int i = 0; i < columnCount; i++) + { + columns.AppendLine(columnStr); + } + StringBuilder serviceData = new StringBuilder(); + + int allCount = consumableCount + processCount ; + + + + int rowIndex = 0; + + if (basicProcessList.Count > 0)//打包服务 + { + StringBuilder basicSB = new StringBuilder(); + StringBuilder basiccolumns = new StringBuilder(); + for (int i = 0; i < basicProcessList.Count; i++) + { + basicSB.AppendLine(basicProcessdata.Replace("[:index:]", $"{i}") + .Replace("[:ServiceName:]", $"{basicProcessList[i].ItemName}") + .Replace("[:ServiceCount:]", $"{basicProcessList[i].ItemPrice}*{basicProcessList[i].ItemCount}")); + basiccolumns.AppendLine(columnStr); + } + + + serviceData.AppendLine(basicPackStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:Columns:]", $"{basiccolumns}") + .Replace("[:ServiceCount:]", $"{FeesItem.BasicProcessPrice}*{FeesItem.BasicProcessCount}") + .Replace("[:BasicProcessData:]", basicSB.ToString())); + + + + + } + if (increateProcessList.Count > 0) + { + rowIndex++; + StringBuilder increateProcessSB = new StringBuilder(); + StringBuilder increateProcesscolumns = new StringBuilder(); + for (int i = 0; i < increateProcessList.Count(); i++) + { + increateProcessSB.AppendLine(increateProcessData.Replace("[:index:]", $"{i}") + .Replace("[:ServiceName:]", $"{increateProcessList[i].ItemName}") + .Replace("[:ServiceCount:]", $"{increateProcessList[i].ItemPrice}*{increateProcessList[i].ItemCount}")); + increateProcesscolumns.AppendLine(columnStr); + } + //[:IncreateProcessCount:] + serviceData.AppendLine(increateProcessStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:IncreateProcessCount:]", $"{increateProcessList.Count()}") + .Replace("[:Columns:]", $"{increateProcesscolumns}") + .Replace("[:IncreateProcessDatas:]", $"{increateProcessSB.ToString()}") + .Replace("[:ServiceCount:]", $"{FeesItem.BasicProcessPrice}*{FeesItem.BasicProcessCount}")); + } + + if (isExitIncrementPart) + { + rowIndex++; + + serviceData.AppendLine(increatePartData.Replace("[:index:]", $"{rowIndex}") + .Replace("[:PartCount:]", $"{FeesItem.IncrementPartCount}") + .Replace("[:ServiceCount:]", $"{FeesItem.IncrementPartPrice}*{FeesItem.IncrementPartTaskCount}")); + } + + if (processCount > 0) + { + rowIndex++; + serviceData.AppendLine(FeesModeStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:FeesMode:]", $"{FeesItem.FeesMode}")); + rowIndex++; + serviceData.AppendLine(discountFactorStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:DiscountFactor:]", $"{FeesItem.DiscountFoctor}") + ); + + } + + if (consumableList.Count > 0) + { + foreach (var item in consumableList) + { + rowIndex++; + serviceData.AppendLine(incrementConsumableStr.Replace("[:index:]", $"{rowIndex}") + .Replace("[:ServiceName:]", $"{item.ItemName}") + .Replace("[:ServiceCount:]", $"")); + } + + } + + + StringBuilder header = new StringBuilder(); + + + if (processCount > 0) + { + header.AppendLine(workProcess); + } + if (consumableCount > 0) + { + header.AppendLine(consumableService); + } + decimal allFees = 0; + decimal discount = 0; + decimal discountFees = 0; + discount = FeesItem.disCount; + + allFees = FeesItem.AllFees; + + discountFees = allFees * discount; + string discountStr = "原价"; + + if (discount > 1) + discountStr = $"{discount.ToString("0.0")}倍"; + if (discount < 1) + discountStr = $"{(discount * 10).ToString("0.0")}折"; + var newGrid = xaml.Replace("[:Header:]", header.ToString()) + .Replace("[:Columns:]", columns.ToString()) + .Replace("[:ColumnCount:]", $"{columnCount}") + .Replace("[:ColumnCount-2:]", $"{columnCount - 1}") + .Replace("[:1+IncreateCount:]", $"{0}") + .Replace("[:1+IncreateCount+ProcessCount:]", $"{ processCount}") + .Replace("[:1+IncreateCount+ProcessCount:+ConsumableCount]", $"{ processCount + consumableCount}") + .Replace("[:2+IncreateCount+ProcessCount:+ConsumableCount]", $"{1 + processCount + consumableCount}") + .Replace("[:3+IncreateCount+ProcessCount:+ConsumableCount]", $"{2 + processCount + consumableCount}") + .Replace("[:IncreateCount:]", $"{0}") + .Replace("[:ProcessCount:]", $"{processCount}") + .Replace("[:ConsumableCount:]", $"{consumableCount}") + .Replace("[:TaskId:]", $"{FeesItem.TaskId}") + .Replace("[:ListData:]", serviceData.ToString()) + .Replace("[:AllFees:]", $"{FeesItem.PackFees}"); + //.Replace("[:Discount:]", $"{FeesItem.DiscountFoctor}") + //.Replace("[:DiscountFees:]", $"{discountFees.ToString(" 0.00")}"); + if (IsMin) + { + newGrid = newGrid.Replace(@"MinWidth=""84""", "").Replace(@"[:Visity:]", "Width=\"0\""); + } + else + { + // + newGrid = newGrid.Replace(@"[:Visity:]", ""); + } + + + + var grid = XamlReader.Parse(newGrid) as Grid; + App.Current.Dispatcher.Invoke(() => + { + gd.Children.Add(grid); + }); + + } + catch + { + + + } + + + + } + } +} diff --git a/BBWY.Client/Views/PackTask/PublishTaskWindow.xaml b/BBWY.Client/Views/PackTask/PublishTaskWindow.xaml index 890893c4..cb1a9d3c 100644 --- a/BBWY.Client/Views/PackTask/PublishTaskWindow.xaml +++ b/BBWY.Client/Views/PackTask/PublishTaskWindow.xaml @@ -46,7 +46,7 @@ - + diff --git a/BBWY.Client/Views/PackTask/ServiceWindow.xaml b/BBWY.Client/Views/PackTask/ServiceWindow.xaml index 112b771a..dd629549 100644 --- a/BBWY.Client/Views/PackTask/ServiceWindow.xaml +++ b/BBWY.Client/Views/PackTask/ServiceWindow.xaml @@ -5,23 +5,46 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:BBWY.Client.Views.PackTask" mc:Ignorable="d" - Title="TipsWindow" Height="844" Width="350" + Title="TipsWindow" Height="844" Width="380" xmlns:c="clr-namespace:BBWY.Controls;assembly=BBWY.Controls" xmlns:b="http://schemas.microsoft.com/xaml/behaviors" xmlns:ctr="clr-namespace:BBWY.Client.Converters" xmlns:cmodel="clr-namespace:BBWY.Client.Models" xmlns:sys="clr-namespace:System;assembly=mscorlib" + xmlns:hc="https://handyorg.github.io/handycontrol" CloseButtonVisibility="Visible" WindowStartupLocation="CenterScreen" CloseButtonColor="{StaticResource WindowButtonColor}" DataContext="{Binding PackServiceList,Source={StaticResource Locator}}" - MinButtonVisibility="Collapsed" - MaxButtonVisibility="Collapsed" + MinButtonVisibility="Collapsed" + MaxButtonVisibility="Collapsed" RightButtonGroupMargin="0,5,5,0"> - + + + + + + + + - + @@ -35,203 +58,369 @@ - + + + + + + + + + + + - - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + - - - - - - + - - - - - - - - - - + + + + + + + + + + + + + + - - + + + @@ -240,52 +429,56 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -293,174 +486,165 @@ - - + - - - + + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - - + + - - - - - - - - - - - - - - - - + + + + + + + + + - - + + - - + + - - - - - - - - + + + + + + + + - - - - - + + + + + + + + + + + - - - - - - - - - + + - - + + - - - - - + + + + - - + + - - + + - - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - + + - - - - - + + + + - - - - - - - - - - + + + + + + + + - - - - + + + + - - + - + + - - - + + - - - - + + - diff --git a/BBWY.Client/Views/PackTask/ServiceWindow.xaml.cs b/BBWY.Client/Views/PackTask/ServiceWindow.xaml.cs index d6c59a70..cd1668ac 100644 --- a/BBWY.Client/Views/PackTask/ServiceWindow.xaml.cs +++ b/BBWY.Client/Views/PackTask/ServiceWindow.xaml.cs @@ -37,7 +37,14 @@ namespace BBWY.Client.Views.PackTask private void BButton_Click(object sender, RoutedEventArgs e) { var localPrintServer = new LocalPrintServer(); - var printQueue = localPrintServer.GetPrintQueue(cbPrintName.Text); + string printName = cbPrintName.Text.Trim(); + if (string.IsNullOrEmpty(printName)) + { + MessageBox.Show("选择打印机"); + return; + } + + var printQueue = localPrintServer.GetPrintQueue(printName); if (printQueue.IsInError) { MessageBox.Show("打印机处于错误状态"); diff --git a/BBWY.Client/Views/PackTask/SetBarCode.xaml.cs b/BBWY.Client/Views/PackTask/SetBarCode.xaml.cs index 56db3411..0da7c4ab 100644 --- a/BBWY.Client/Views/PackTask/SetBarCode.xaml.cs +++ b/BBWY.Client/Views/PackTask/SetBarCode.xaml.cs @@ -63,16 +63,19 @@ namespace BBWY.Client.Views.PackTask LabelModel = BarCodeModel.LabelModel }); - if (resData == null || !resData.Success) + if (resData == null) { + MessageBox.Show("网络异常!"); + return; + } + if (!resData.Success) + { + MessageBox.Show(resData.Msg); return; } - BarCodeModel.Id = resData.Data; if (SaveResult != null) SaveResult(BarCodeModel); - - this.Close(); } diff --git a/BBWY.Client/Views/PackTask/SetCerWindow.xaml.cs b/BBWY.Client/Views/PackTask/SetCerWindow.xaml.cs index 74627b12..55073097 100644 --- a/BBWY.Client/Views/PackTask/SetCerWindow.xaml.cs +++ b/BBWY.Client/Views/PackTask/SetCerWindow.xaml.cs @@ -93,20 +93,26 @@ namespace BBWY.Client.Views.PackTask Shader = item.CertificateModel.Shader, ApplyAge = item.CertificateModel.ApplyAge, GoodsNumber = item.CertificateModel.GoodsNumber, - ProduceDate= item.CertificateModel.ProduceDate, + ProduceDate = item.CertificateModel.ProduceDate, }); - if (resData == null || !resData.Success) + if (resData == null) { - // IsSetCertificate = false; + MessageBox.Show("网络异常!"); return; } - // IsNeedCertificateModel = "需要"; + + + if (!resData.Success) + { + MessageBox.Show(resData.Msg); + return; + } + item.CertificateModel.Id = resData.Data; if (SaveResult != null) SaveResult(GoodsNumberCerList.Select(c => c.CertificateModel).ToArray()); - //IsSetCertificate = false; - //setCerWindow.Close(); + } this.Close(); } @@ -197,7 +203,7 @@ namespace BBWY.Client.Views.PackTask { var select = test.SelectedItem as GoodsNumberCer; if (select != null) - selectCer = select.CertificateModel.GoodsNumber; + selectCer = select.CertificateModel.GoodsNumber; } } } diff --git a/BBWY.Client/Views/PackTask/WareHouseList.xaml b/BBWY.Client/Views/PackTask/WareHouseList.xaml index c05d5d70..d28b50bc 100644 --- a/BBWY.Client/Views/PackTask/WareHouseList.xaml +++ b/BBWY.Client/Views/PackTask/WareHouseList.xaml @@ -15,6 +15,7 @@ Title="TaskList">