Browse Source

1

AddValidOverTime
506583276@qq.com 2 years ago
parent
commit
fa11980814
  1. 2
      BBWY.Client/APIServices/PackTaskService.cs
  2. 30
      BBWY.Client/Helpers/MyPrintHelper.cs
  3. 6
      BBWY.Client/Models/PackTask/BarCodeModel.cs
  4. 122
      BBWY.Client/ViewModels/PackTask/PackServiceViewModel.cs
  5. 2
      BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs
  6. 74
      BBWY.Client/Views/PackTask/MinBarcodeControl.xaml
  7. 70
      BBWY.Client/Views/PackTask/MinBarcodeControl.xaml.cs
  8. 159
      BBWY.Client/Views/PackTask/MinCerControl.xaml
  9. 51
      BBWY.Client/Views/PackTask/MinCerControl.xaml.cs
  10. 91
      BBWY.Client/Views/PackTask/ServiceWindow.xaml
  11. 138
      BBWY.Client/Views/PackTask/ServiceWindow.xaml.cs

2
BBWY.Client/APIServices/PackTaskService.cs

@ -410,6 +410,8 @@ namespace BBWY.Client.APIServices
/// </summary>
public List<long> DeletedPackServices { get; set; }
public List<PersonTaskModel> DelPackServices { get; set; }
//public PersonTaskModel[] PersonTaskModels { get; set; }
//public IncreateMemberModel[] IncreateMembers { get; set; }

30
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;
}
}
}
}

6
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
/// 模板标签
/// </summary>
public BarcodeLabelModel LabelModel { get => labelModel; set { Set(ref labelModel, value); } }
}
}

122
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;
/// <summary>
/// 任务Id条形码
/// </summary>
public BitmapImage BarcodeImage { get => barcodeImage; set { Set(ref barcodeImage, value); } }
private BitmapImage taskImage;
/// <summary>
/// 任务Id条形码
/// </summary>
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<string> printList;
/// <summary>
/// 打印机列表
/// </summary>
public ObservableCollection<string> PrintList { get => printList; set { Set(ref printList, value); } }
private ObservableCollection<PackTaskModel> packTaskList;
/// <summary>
/// 动态数据表
@ -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
/// </summary>
public List<PackItemModel> LoadList = new List<PackItemModel>();
public void InitPrintList()
{
TaskImage = MyPrintHelper.GetBarcodeImage(TaskId.ToString(),300,60);
BarcodeImage = MyPrintHelper.GetBarcodeImage(SkuId, 300, 60);
PrintList = new ObservableCollection<string>();
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
/// </summary>
public void LoadPackDatas()
{
try
{
InitPrintList();
}
catch (Exception)
{
}
LoadList = new List<PackItemModel>();
Task task = Task.Factory.StartNew(() =>
{
@ -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,7 +646,10 @@ 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"));

2
BBWY.Client/Views/PackTask/FeesExcelControl.xaml.cs

@ -137,7 +137,7 @@ namespace BBWY.Client.Views.PackTask
<TextBlock MinWidth=""84"" Text=""ID"" TextAlignment=""Center"" Grid.Column=""0"" Grid.RowSpan=""2"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
[:Header:]
<TextBlock MinWidth=""101"" TextAlignment=""Center"" Text="""" Grid.Column=""[:1+IncreateCount+ProcessCount:+ConsumableCount]"" Grid.RowSpan=""2"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock MinWidth=""101"" TextAlignment=""Center"" Text="""" Grid.Column=""[:2+IncreateCount+ProcessCount:+ConsumableCount]"" Grid.RowSpan=""2"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock MinWidth=""101"" TextAlignment=""Center"" Text="""" Grid.Column=""[:2+IncreateCount+ProcessCount:+ConsumableCount]"" Grid.RowSpan=""2"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock MinWidth=""101"" TextAlignment=""Center"" Text="""" Grid.Column=""[:3+IncreateCount+ProcessCount:+ConsumableCount]"" Grid.RowSpan=""2"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock Text=""[:TaskId:]"" Grid.Row=""2"" Grid.Column=""0"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>
<TextBlock Text=""[:AllFees:]"" Grid.Row=""2"" Grid.Column=""[:1+IncreateCount+ProcessCount:+ConsumableCount]"" VerticalAlignment=""Center"" HorizontalAlignment=""Center""/>

74
BBWY.Client/Views/PackTask/MinBarcodeControl.xaml

@ -0,0 +1,74 @@
<UserControl x:Class="BBWY.Client.Views.PackTask.MinBarcodeControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
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" Background="White"
d:DesignHeight="250" d:DesignWidth="200">
<Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:MinBarcodeControl}}}">
<DockPanel Grid.Row="1">
<Border Name="jingjian" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter},ConverterParameter=精简模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Margin="1">
<StackPanel Orientation="Vertical">
<TextBlock Margin="10,25,10,0" FontSize="15" FontWeight="Black" >
<Run Text="品名:"/>
<Run Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<TextBlock Margin="10,25,10,0" FontSize="15" FontWeight="Black" >
<Run Text="规格:"/>
<Run Text="{Binding model.SkuName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<Image Source="{Binding BarcodeImage,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="10,25,10,0"/>
<TextBlock Text="POP" HorizontalAlignment="Center" Margin="10,0,10,0" FontSize="15" FontWeight="Black" >
<Run Text="{Binding model.SkuId,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
</StackPanel>
</Border>
<Border Name="biaozhun" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter},ConverterParameter=标准模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Margin="1">
<StackPanel Orientation="Vertical" >
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="品牌:"/>
<Run Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
</TextBlock>
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="品名:"/>
<Run Text="{Binding model.BrandName}"/>
</TextBlock>
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="型号:"/>
<Run Text="{Binding model.ProductNo}"/>
</TextBlock>
<TextBlock Margin="10,10,10,0" FontSize="15" FontWeight="Black" >
<Run Text="规格:"/>
<Run Text="{Binding model.SkuName}"/>
</TextBlock>
<Image Source="{Binding BarcodeImage,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="10,10,10,0"/>
<TextBlock Text="POP" HorizontalAlignment="Center" Margin="10,0,10,0" FontSize="15" FontWeight="Black" >
<Run Text="{Binding model.SkuId}"/>
</TextBlock>
</StackPanel>
</Border>
<Border Name="wuxinghao" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter},ConverterParameter=无型号模板:Visible:Collapsed}" BorderBrush="{StaticResource Border.Brush}" BorderThickness="1" Margin="1">
<StackPanel Orientation="Vertical" >
<TextBlock Margin="10,10,10,5" FontSize="15" FontWeight="Black" >
<Run Text="品牌:"/>
<Run Text="{Binding model.Brand}"/>
</TextBlock>
<TextBlock Margin="10,10,10,5" FontSize="15" FontWeight="Black" >
<Run Text="品名:"/>
<Run Text="{Binding model.BrandName}"/>
</TextBlock>
<TextBlock Margin="10,10,10,5" FontSize="15" FontWeight="Black" >
<Run Text="规格:"/>
<Run Text="{Binding model.SkuName}"/>
</TextBlock>
<Image Source="{Binding BarcodeImage,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Margin="10,10,10,0"/>
<TextBlock Text="POP" HorizontalAlignment="Center" Margin="10,0,10,0" FontSize="15" FontWeight="Black" >
<Run Text="{Binding model.SkuId}"/>
</TextBlock>
</StackPanel>
</Border>
</DockPanel>
</Grid>
</UserControl>

70
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
{
/// <summary>
/// MinBarcodeControl.xaml 的交互逻辑
/// </summary>
public partial class MinBarcodeControl : UserControl
{
public MinBarcodeControl()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
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)
{
}
}
}

159
BBWY.Client/Views/PackTask/MinCerControl.xaml

@ -0,0 +1,159 @@
<UserControl x:Class="BBWY.Client.Views.PackTask.MinCerControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
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" Background="White" d:DesignWidth="382" Height="200">
<Grid DataContext="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type local:MinCerControl}}}">
<DockPanel Grid.Row="1">
<Border Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准有3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Vertical">
<StackPanel Orientation="Horizontal" >
<TextBlock VerticalAlignment="Center" HorizontalAlignment="Center" Text="合格证" FontSize="18" Margin="125 0 70 0" />
<Image Source="pack://siteoforigin:,,,/Resources/Images/3c.png" Height="20" VerticalAlignment="Top" Margin="0 5 0 0" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="工厂编号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="223,0,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.FactoryNumber,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="型号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.Shader,Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal" >
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="30 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="200" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Border>
<Border Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=无型号:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" />
<StackPanel Orientation="Horizontal" >
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" VerticalAlignment="Center" HorizontalAlignment="Left" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="100" />
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="10,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Center" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal" >
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="30 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="200" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Border>
<Border Name="shiyongnianling" Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=适用年龄:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="0,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.Shader,Mode=TwoWay}" Width="126" VerticalAlignment="Center" HorizontalAlignment="Left"/>
<TextBlock Text="适用年龄:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="0,0,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ApplyAge}" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal" >
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="地址:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Border>
<Border Visibility="{Binding model.LabelModel,Converter={StaticResource objConverter}, ConverterParameter=标准无3c:Visible:Collapsed}" BorderBrush="Black" BorderThickness="1" Margin="1" VerticalAlignment="Top" HorizontalAlignment="Left">
<StackPanel Orientation="Vertical">
<TextBlock VerticalAlignment="Top" HorizontalAlignment="Center" Text="合格证" FontSize="18" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="品牌:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.Brand,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="型号:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="0,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProductNo,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal" >
<TextBlock Text="品名:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="30,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.BrandName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="126" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Text="材质:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="0,0,0,0"/>
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.Shader,Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Left"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="执行标准:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ExcuteStanderFormat,Mode=TwoWay}" MinWidth="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Visibility="{Binding model.ProduceDate,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}" Orientation="Horizontal">
<TextBlock Text="生产日期:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="6 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProduceDate,Mode=TwoWay}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="生产商:" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="18 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" Text="{Binding model.ProductShop,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Left" />
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="地址:" VerticalAlignment="Top" HorizontalAlignment="Left" Margin="30 0 0 0" />
<TextBox IsReadOnly="True" BorderBrush="Transparent" TextWrapping ="Wrap" AcceptsReturn="True" Text="{Binding model.ProductAdress,Mode=TwoWay}" Width="200" VerticalAlignment="Top" HorizontalAlignment="Left" />
</StackPanel>
</StackPanel>
</Border>
</DockPanel>
</Grid>
</UserControl>

51
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
{
/// <summary>
/// MinCerControl.xaml 的交互逻辑
/// </summary>
public partial class MinCerControl : UserControl
{
public MinCerControl()
{
InitializeComponent();
}
/// <summary>
///
/// </summary>
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);
//}
}
}
}

91
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,9 +227,20 @@
</Grid>
<Grid Grid.Row="1" Grid.Column="1">
<StackPanel Orientation="Vertical" >
<Grid Height="145" Margin="20 20 20 20">
<StackPanel Orientation="Vertical" Name="printArea" Width="1065" Height="800">
<Grid Margin="20 5 0 0" HorizontalAlignment="Left" VerticalAlignment="Top" Width="200">
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Image Height="60" Width="200" Source="{Binding TaskImage}"/>
<TextBlock Grid.Row="1" FontSize="18" Style="{StaticResource middleTextBlock}" Text="{Binding TaskId}"/>
</Grid>
<Grid Margin="20 5 20 5">
<Grid.RowDefinitions>
<RowDefinition Height="35"/>
<RowDefinition />
@ -237,14 +248,14 @@
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="90"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition MinWidth="100"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition MinWidth="140"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Text="商品信息" Style="{StaticResource middleTextBlock}"/>
<TextBlock Text="数量" Grid.Column="1" Style="{StaticResource middleTextBlock}"/>
@ -302,15 +313,14 @@
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="350"/>
<ColumnDefinition Width="50"/>
<ColumnDefinition Width="90"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="60"/>
<ColumnDefinition MinWidth="100"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="100"/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition MinWidth="140"/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ListBox x:Name="listbox_orerSku" ItemsSource="{Binding ItemList}"
Style="{StaticResource NoScrollViewListBoxStyle}"
@ -396,11 +406,11 @@
<Grid Grid.Column="2" >
<StackPanel VerticalAlignment="Center" >
<StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<StackPanel Margin="5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="组合类型:"/>
<TextBlock Text="{Binding PackType}"/>
</StackPanel>
<StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<StackPanel Margin="5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="配件数量:"/>
<TextBlock Text="{Binding GoodsNumber}"/>
</StackPanel>
@ -422,11 +432,11 @@
</Grid>
<Grid Grid.Column="4" >
<StackPanel VerticalAlignment="Center" HorizontalAlignment="Left">
<StackPanel Margin="10,5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<StackPanel Margin="5" Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock Text="基础打包:"/>
<TextBlock Text="{Binding BasicPack}"/>
</StackPanel>
<Grid Margin="10,5" VerticalAlignment="Center" HorizontalAlignment="Left" >
<Grid Margin="5" VerticalAlignment="Center" HorizontalAlignment="Left" >
<TextBlock TextWrapping="Wrap">
<Run Text="增量耗材:"/>
<Run Text="{Binding Increment1}"/>
@ -504,20 +514,40 @@
</ListBox.ItemTemplate>
</ListBox>
</Grid>
<local:FeesExcelControl IsWareHouse="True" Margin="20 20 20 0"
FeesItem="{Binding PackTaskModel.FeesItemResponse,Mode=TwoWay,NotifyOnSourceUpdated=True,UpdateSourceTrigger=PropertyChanged}"
<local:FeesExcelControl IsWareHouse="True" Margin="20 0 20 0"
Visibility="{Binding PackTaskModel.IsShowFees,Converter={StaticResource objConverter},ConverterParameter=false:Collapsed:Visible}"
FeesItem="{Binding PackTaskModel.FeesItemResponse,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
/>
<StackPanel Orientation="Horizontal">
<local:CerControl model="{Binding PackTaskModel.CertificateModel[0],Mode=TwoWay}" Margin="20 20 0 0"
Visibility="{Binding PackTaskModel.CertificateModel[0],Mode=TwoWay,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}"
<StackPanel Orientation="Horizontal" Margin="20 0 0 0" Visibility="{Binding PackTaskModel.CertificateModel,Mode=TwoWay,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}">
<ListBox ItemsSource="{Binding PackTaskModel.CertificateModel,Mode=TwoWay}"
Style="{StaticResource NoScrollViewListBoxStyle}"
ItemContainerStyle="{StaticResource NoBgListBoxItemStyle}"
>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<local:MinCerControl model="{Binding }"
Visibility="{Binding Id ,Mode=TwoWay,Converter={StaticResource objConverter},ConverterParameter=0:Collapsed:Visible}"
/>
<local:BarcodeControl Grid.Row="1" model="{Binding PackTaskModel.BarCodeModel, Mode=TwoWay}" Margin="20 0 0 0" Width="350"
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</StackPanel>
<local:MinBarcodeControl Grid.Row="1" BarcodeImage="{Binding BarcodeImage,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" model="{Binding PackTaskModel.BarCodeModel, Mode=TwoWay}" HorizontalAlignment="Left" VerticalAlignment="Top" Margin="20 0 0 0" Width="250" Height="190"
Visibility="{Binding PackTaskModel.BarCodeModel,Mode=TwoWay,Converter={StaticResource objConverter},ConverterParameter=#null:Collapsed:Visible}"
/>
</StackPanel>
</StackPanel>
</Grid>
@ -526,11 +556,10 @@
<StackPanel Orientation="Horizontal" Grid.Row="2">
<TextBlock Text="打印机:" VerticalAlignment="Center"/>
<ComboBox Width="100" Height="30"/>
<ComboBox Name="cbPrintName" Width="100" Height="30" ItemsSource="{Binding PrintList}" Text="{Binding PrintName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
<c:BButton Grid.Row="2" Content="打印" Margin="5 0 10 0" HorizontalAlignment="Right" Width="80" VerticalAlignment="Stretch"
Command="{Binding UpLoadPackCommand}"
CommandParameter="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
Click="BButton_Click"
/>
<c:BButton Grid.Row="2" Content="确定" Margin="0 0 20 0" HorizontalAlignment="Right" Width="100" VerticalAlignment="Stretch"
Command="{Binding UpLoadPackCommand}"

138
BBWY.Client/Views/PackTask/ServiceWindow.xaml.cs

@ -1,10 +1,15 @@
using BBWY.Client.APIServices;
using BarcodeLib;
using BBWY.Client.APIServices;
using BBWY.Client.ViewModels;
using BBWY.Client.ViewModels.PackTask;
using BBWY.Controls;
using Org.BouncyCastle.Asn1.Ocsp;
using System;
using System.Collections.Generic;
using System.IO;
using System.Printing;
using System.Reflection;
using System.Runtime.InteropServices.WindowsRuntime;
using System.Text;
using System.Windows;
using System.Windows.Controls;
@ -27,5 +32,136 @@ namespace BBWY.Client.Views.PackTask
InitializeComponent();
}
private void BButton_Click(object sender, RoutedEventArgs e)
{
var localPrintServer = new LocalPrintServer();
var printQueue = localPrintServer.GetPrintQueue(cbPrintName.Text);
if (printQueue.IsInError)
{
MessageBox.Show("打印机处于错误状态");
return;
}
//Print(this.printArea, cbPrintName.Text, "打印任务",1);
this.printArea.Arrange(new Rect(new Point(0, 0), new Size(printArea.ActualWidth, printArea.ActualHeight)));
PrintDialog printDialog = new PrintDialog();
//设置纸张大小
var pageWidth = (int)Math.Ceiling(printDialog.PrintableAreaWidth);
var pageHeight = (int)Math.Ceiling(printDialog.PrintableAreaHeight);
printDialog.PrintTicket.PageMediaSize = new PageMediaSize(pageWidth, pageHeight);
printDialog.PrintVisual(this.printArea, "打印任务");
var applicationPath = System.IO.Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
string printNames = System.IO.Path.Combine(applicationPath, "printName.init");
File.WriteAllText(printNames, cbPrintName.Text);
}
/// <summary>
/// 打印
/// </summary>
/// <param name="document">流文档</param>
/// <param name="printer">打印机名称</param>
/// <param name="description">打印描述</param>
/// <param name="copyCount">打印个数</param>
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
{
/// <summary>
/// 批号
/// </summary>
public string BatchNumber { get; set; }
/// <summary>
/// 订单号
/// </summary>
public string OrderNumber { get; set; }
/// <summary>
/// 物料代码
/// </summary>
public string MaterialNumber { get; set; }
}
}
}

Loading…
Cancel
Save