Browse Source

订单列表修改

master
pry 2 years ago
parent
commit
3d0d3ed394
22 changed files with 982 additions and 422 deletions
  1. +6
    -2
      HBLConsole.Abstract/AbstractMessageServer.cs
  2. +6
    -0
      HBLConsole.Abstract/HBLConsole.Abstract.csproj
  3. +7
    -20
      HBLConsole.Business/Devices/MORKS.cs
  4. +93
    -0
      HBLConsole.Business/MessageServer/Base.cs
  5. +0
    -53
      HBLConsole.Business/MessageServerBase.cs
  6. +2
    -4
      HBLConsole.Business/ServerData.cs
  7. +0
    -22
      HBLConsole.Business/ServerMessage.cs
  8. +58
    -4
      HBLConsole.Factory/SimpleFactory.cs
  9. +1
    -0
      HBLConsole.GVL/HBLConsole.GVL.csproj
  10. +4
    -1
      HBLConsole.GVL/InternetInfo.cs
  11. +2
    -1
      HBLConsole.GVL/MORKS.cs
  12. +13
    -0
      HBLConsole.Interface/IBusiness.cs
  13. +12
    -0
      HBLConsole.Interface/IGvl.cs
  14. +7
    -2
      HBLConsole.MainConsole/Main.cs
  15. +199
    -0
      HBLConsole.PryUserControl/ScrollViewerStyle.xaml
  16. +39
    -42
      HBLConsole.Service/APIHelper.cs
  17. +3
    -0
      HBLConsole/App.xaml.cs
  18. +197
    -0
      HBLConsole/Resources/ResourceDictionarys/BasicStyle.xaml
  19. +12
    -2
      HBLConsole/View/MessageLogView.xaml
  20. +266
    -151
      HBLConsole/View/OrderStatusView.xaml
  21. +0
    -56
      HBLConsole/ViewModel/OrderStatusViewModel.cs
  22. +55
    -62
      HBLConsole/ViewModel/ViewModelBase.cs

+ 6
- 2
HBLConsole.Abstract/AbstractMessageServer.cs View File

@@ -1,4 +1,5 @@
using System;
using BPA.Message.Enum;
using System;

namespace HBLConsole.Abstract
{
@@ -6,10 +7,13 @@ namespace HBLConsole.Abstract
{
public abstract void GetBatchingInfo<T>(T batchingInfo);

public abstract void GetBatchingInfo(int ClientId);

public abstract void AddOrder<T>(T orderInfo);

public abstract void GetRecipeBom<T>(T recipeBomInfo);

public abstract void BatchingCountInfo();
public abstract bool OrderStatusChange(string subOrderId, ORDER_STATUS status);

}
}

+ 6
- 0
HBLConsole.Abstract/HBLConsole.Abstract.csproj View File

@@ -4,4 +4,10 @@
<TargetFramework>net5.0</TargetFramework>
</PropertyGroup>

<ItemGroup>
<Reference Include="BPA.Message">
<HintPath>D:\BPACommon_output\net5.0\BPA.Message.dll</HintPath>
</Reference>
</ItemGroup>

</Project>

HBLConsole.Business/MORKS.cs → HBLConsole.Business/Devices/MORKS.cs View File

@@ -1,4 +1,6 @@
using HBLConsole.Communication;
using HBLConsole.Factory;
using HBLConsole.Interface;
using HBLConsole.Model;
using HBLConsole.Service;
using System;
@@ -6,19 +8,15 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HBLConsole.GVL;
using BPA.Message;

namespace HBLConsole.Business
namespace HBLConsole.Business.Devices
{
public class MORKS
public class MORKS : IBusiness
{
private volatile static MORKS _Instance;
public static MORKS GetInstance => _Instance ?? (_Instance = new MORKS());
private MORKS() { }



/// <summary>
/// 写入配方数据到 PLC
/// </summary>
@@ -47,23 +45,12 @@ namespace HBLConsole.Business
}), "ConnectOk");

//获取物料信息
Json<BatchingInfoPar>.GetInstance.Base.orderMaterialDelivery = APIHelper.GetInstance.GetBatchingInfo(InternetInfo.GetInstance.ClientId);
Json<BatchingInfoPar>.GetInstance.Base.orderMaterialDelivery.BatchingInfo.Sort((a, b) => a.BatchingLoc.CompareTo(b.BatchingLoc));
MessageLog.GetInstance.Show("【物料信息】");
Json<BatchingInfoPar>.GetInstance.Base.orderMaterialDelivery?.BatchingInfo?.ForEach(x =>
{
MessageLog.GetInstance.Show($"{x.BatchingLoc}号位置:{x.BatchingCount}");
});

SimpleFactory.GetInstance.GetBatchingInfo();

//Modbus Tcp 连接
ModbusTcpHelper.GetInstance.ModbusTcpConnect("127.0.0.1");
}






}

}


+ 93
- 0
HBLConsole.Business/MessageServer/Base.cs View File

@@ -0,0 +1,93 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HBLConsole.Abstract;
using BPA.Message;
using HBLConsole.Model;
using HBLConsole.Service;
using BPA.Message.Enum;
using HBLConsole.GVL;
using BPA.Utility;
using Newtonsoft.Json;

namespace HBLConsole.Business.MessageServer
{
public class Base : AbstractMessageServer
{
public override void AddOrder<T>(T orderInfo)
{
if (orderInfo == null) return;
if (orderInfo is MorkOrderPush morkOrderpush)
{
Json<MorkOrderPushPar>.GetInstance.Base.morkOrderPushes.Add(new OrderData()
{
OrderStatus = ORDER_STATUS.WAIT,
IsSelected = true,
OrderPush = morkOrderpush
});
ActionManagerment.GetInstance.Send("AddOrder", morkOrderpush);
}
}

public override void GetBatchingInfo<T>(T batchingInfo)
{
if (batchingInfo == null) return;
if (batchingInfo is OrderMaterialDelivery BatchingInfos)
{
Json<BatchingInfoPar>.GetInstance.Base.orderMaterialDelivery = BatchingInfos;
}
}

public override void GetBatchingInfo(int ClientId)
{
string result = string.Empty;
try
{
var jsondata = new { ClientId };
string header = $"[{InternetInfo.GetInstance.StockServer}/GetItemInfo]_[{DateTime.Now.Ticks}]".AESEncrypt();
string url = $"{InternetInfo.GetInstance.ApiAddress}{InternetInfo.GetInstance.StockServer}/GetItemInfo";
result = APIHelper.GetInstance.HttpRequest(url, header, jsondata, RequestType.POST);
}
catch (Exception ex)
{
MessageLog.GetInstance.Show(ex.ToString());
}
Json<BatchingInfoPar>.GetInstance.Base.orderMaterialDelivery = JsonConvert.DeserializeObject<OrderMaterialDelivery>(result);

MessageLog.GetInstance.Show("【物料信息】");
Json<BatchingInfoPar>.GetInstance.Base.orderMaterialDelivery?.BatchingInfo?.ForEach(x =>
{
MessageLog.GetInstance.Show($"{x.BatchingLoc}号位置:{x.BatchingCount}");
});
}

public override void GetRecipeBom<T>(T recipeBomInfo)
{
if (recipeBomInfo == null) return;
if (recipeBomInfo is RecipeBoms recipeBom)
{
Json<BatchingInfoPar>.GetInstance.Base.recipeBoms = recipeBom;
}
}

public override bool OrderStatusChange(string subOrderId, ORDER_STATUS status)
{
string result = string.Empty;
OrderStatusChange orderStatusChange = new OrderStatusChange() { CookingStatus = status, SuborderId = subOrderId };
try
{
string header = $"[{InternetInfo.GetInstance.OrderServer}/order/robotstatuschange]_[{DateTime.Now.Ticks}]".AESEncrypt();
string url = $"{InternetInfo.GetInstance.ApiAddress}{InternetInfo.GetInstance.OrderServer}/order/robotstatuschange";
result = APIHelper.GetInstance.HttpRequest(url, header, orderStatusChange, RequestType.POST);
}
catch (Exception ex)
{
MessageLog.GetInstance.Show(ex.ToString());
}
var res = JsonConvert.DeserializeObject<OrderStatusChangeRsp>(result);
return res?.Result == 2;
}
}
}

+ 0
- 53
HBLConsole.Business/MessageServerBase.cs View File

@@ -1,53 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HBLConsole.Abstract;
using BPA.Message;
using HBLConsole.Model;
using HBLConsole.Service;
using BPA.Message.Enum;

namespace HBLConsole.Business
{
public class MessageServerBase : AbstractMessageServer
{
public override void AddOrder<T>(T orderInfo)
{
if (orderInfo == null) return;
if (orderInfo is MorkOrderPush morkOrderpush)
{
Json<MorkOrderPushPar>.GetInstance.Base.morkOrderPushes.Add(new OrderData()
{
OrderStatus = ORDER_STATUS.WAIT,
IsSelected = true,
OrderPush = morkOrderpush
});
}
}

public override void BatchingCountInfo()
{
throw new NotImplementedException();
}

public override void GetBatchingInfo<T>(T batchingInfo)
{
if (batchingInfo == null) return;
if (batchingInfo is OrderMaterialDelivery BatchingInfos)
{
Json<BatchingInfoPar>.GetInstance.Base.orderMaterialDelivery = BatchingInfos;
}
}

public override void GetRecipeBom<T>(T recipeBomInfo)
{
if (recipeBomInfo == null) return;
if (recipeBomInfo is RecipeBoms recipeBom)
{
Json<BatchingInfoPar>.GetInstance.Base.recipeBoms = recipeBom;
}
}
}
}

+ 2
- 4
HBLConsole.Business/ServerData.cs View File

@@ -22,8 +22,6 @@ namespace HBLConsole.Business

ConcurrentQueue<string> receives = new ConcurrentQueue<string>();

IServerMessage serverMessage = new ServerMessage();

public void Init()
{
ThreadManagerment.GetInstance.StartLong(new Action(() =>
@@ -37,13 +35,13 @@ namespace HBLConsole.Business
{
if (package.Message != null)
{
serverMessage.Universal(SimpleFactory.GetInstance.GetAbsMessageServer, package.Message);
SimpleFactory.GetInstance.MqttMessage(package.Message);
}
}
}
}
Thread.Sleep(100);
}), "");
}), "mqtt消息处理");
}




+ 0
- 22
HBLConsole.Business/ServerMessage.cs View File

@@ -1,22 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HBLConsole.Interface;
using BPA.Message;
using HBLConsole.Abstract;

namespace HBLConsole.Business
{
public class ServerMessage : IServerMessage
{
public void Universal(AbstractMessageServer abstractMessageServer, IMessage message)
{
abstractMessageServer.AddOrder(message);
abstractMessageServer.GetBatchingInfo(message);
abstractMessageServer.GetRecipeBom(message);
abstractMessageServer.BatchingCountInfo();
}
}
}

+ 58
- 4
HBLConsole.Factory/SimpleFactory.cs View File

@@ -4,6 +4,8 @@ using System;
using System.Reflection;
using BPA.Message.Enum;
using HBLConsole.GVL;
using BPA.Message;
using HBLConsole.Service;

namespace HBLConsole.Factory
{
@@ -17,15 +19,67 @@ namespace HBLConsole.Factory
public AbstractMessageServer GetAbsMessageServer => _GetAbsMessageServer ?? (_GetAbsMessageServer = GetAbstractMessageServer());
private AbstractMessageServer _GetAbsMessageServer;

//public IServerMessage GetIServerMessage => _GetIServerMessage ?? (_GetIServerMessage = new ServerMessage());
//private IServerMessage _GetIServerMessage;
private string DeviceType => GeneralConfig.GetInstance.DeviceType.ToString();

public void MqttMessage(IMessage message)
{
GetAbsMessageServer.AddOrder(message);
GetAbsMessageServer.GetBatchingInfo(message);
GetAbsMessageServer.GetRecipeBom(message);
}

/// <summary>
/// 获取物料信息
/// </summary>
public void GetBatchingInfo()
{
GetAbsMessageServer.GetBatchingInfo(InternetInfo.GetInstance.ClientId);
}

/// <summary>
/// 订单状态更改
/// </summary>
/// <param name="subid"></param>
/// <param name="status"></param>
/// <returns></returns>
public bool OrderChanged(string subid, ORDER_STATUS status)
{
bool res = GetAbsMessageServer.OrderStatusChange(subid, status);
if (res)
{
ActionManagerment.GetInstance.Send("OrderStatusChange", new OrderStatusChange()
{
CookingStatus = status,
SuborderId = subid
});
}
return res;
}

private AbstractMessageServer GetAbstractMessageServer()
{
Type type = Assembly.Load("HBLConsole.Business").GetType($"HBLConsole.Business.{GeneralConfig.GetInstance.DeviceType.ToString()}");
string NameSpace = "HBLConsole.Business";
Type type = Assembly.Load(NameSpace).GetType($"{NameSpace}.MessageServer.{DeviceType}");
if (type == null)
type = Assembly.Load("HBLConsole.Business").GetType($"HBLConsole.Business.MessageServerBase");
type = Assembly.Load(NameSpace).GetType($"{NameSpace}.MessageServer.Base");
return (AbstractMessageServer)Activator.CreateInstance(type);
}

/// <summary>
/// 设备初始化
/// </summary>
public void DeviceInit()
{
string NameSpace = "HBLConsole.Business";//Load 加载的是dll的名称,GetType获取的是全命名空间下的类
Type type = Assembly.Load(NameSpace).GetType($"{NameSpace}.Devices.{DeviceType}");
IBusiness business = (IBusiness)type?.GetProperty("GetInstance").GetValue(null);
business?.Init();
}

public IGvl GetGvl()
{
Type type = Assembly.Load("HBLConsole.GVL").GetType($"HBLConsole.GVL.{DeviceType}");
return (IGvl)Activator.CreateInstance(type);
}
}
}

+ 1
- 0
HBLConsole.GVL/HBLConsole.GVL.csproj View File

@@ -13,6 +13,7 @@
</ItemGroup>

<ItemGroup>
<ProjectReference Include="..\HBLConsole.Interface\HBLConsole.Interface.csproj" />
<ProjectReference Include="..\HBLConsole.Service\HBLConsole.Service.csproj" />
</ItemGroup>



+ 4
- 1
HBLConsole.GVL/InternetInfo.cs View File

@@ -22,7 +22,10 @@ namespace HBLConsole.GVL
public static InternetInfo GetInstance => _Instance ?? (_Instance = new InternetInfo());
private InternetInfo() { }

public void Init()
/// <summary>
/// 配置初始化
/// </summary>
public void ConfigInit()
{
NetworkConnectState = UniversalHelper.GetInstance.GetNetworkState();
while (!NetworkConnectState)


+ 2
- 1
HBLConsole.GVL/MORKS.cs View File

@@ -3,13 +3,14 @@ using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HBLConsole.Interface;

namespace HBLConsole.GVL
{
/// <summary>
/// MORKS 设备数据
/// </summary>
public class MORKS
public class MORKS : IGvl
{
/// <summary>
/// 初始化完成


+ 13
- 0
HBLConsole.Interface/IBusiness.cs View File

@@ -0,0 +1,13 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HBLConsole.Interface
{
public interface IBusiness
{
void Init();
}
}

+ 12
- 0
HBLConsole.Interface/IGvl.cs View File

@@ -0,0 +1,12 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HBLConsole.Interface
{
public interface IGvl
{
}
}

+ 7
- 2
HBLConsole.MainConsole/Main.cs View File

@@ -9,6 +9,7 @@ using HBLConsole.GVL;
using HBLConsole.Communication;
using BPA.Message;
using HBLConsole.Business;
using HBLConsole.Factory;

namespace HBLConsole.MainConsole
{
@@ -40,15 +41,19 @@ namespace HBLConsole.MainConsole
Topics.Add(TOPIC.GetInstance.GetBusinessTopic(GeneralConfig.GetInstance.DeviceType, InternetInfo.GetInstance.ClientId));
ThreadManagerment.GetInstance.Start(new Action(() =>
{
InternetInfo.GetInstance.Init();//从 consul 获取配置数据
InternetInfo.GetInstance.ConfigInit();//从 consul 获取配置数据

MORKS.GetInstance.Init();//设备初始化
SimpleFactory.GetInstance.DeviceInit();//设备初始化

//MQTT 连接成功
MqttHelper.GetInstance.ConnectOk = new Action(() =>
{
MqttHelper.GetInstance.MqttSubscriptionAsync(Topics.ToArray());//主题订阅

HeartbeatReport.GetInstance.Init();//心跳上报

ServerData.GetInstance.Init();//数据处理初始化

//接收MQTT消息
MqttHelper.GetInstance.MqttReceive = new Action<MQTTnet.MqttApplicationMessageReceivedEventArgs>((receivce) =>
{


+ 199
- 0
HBLConsole.PryUserControl/ScrollViewerStyle.xaml View File

@@ -0,0 +1,199 @@
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">


<!--#region ScrollViewerStyle-->
<ControlTemplate x:Key="MyScrollViewer" TargetType="{x:Type ScrollViewer}">
<!-- View区域背景色 -->
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle
x:Name="Corner"
Grid.Row="1"
Grid.Column="1"
Fill="White" />
<ScrollContentPresenter
x:Name="PART_ScrollContentPresenter"
Grid.Row="0"
Grid.Column="0"
Margin="{TemplateBinding Padding}"
CanContentScroll="{TemplateBinding CanContentScroll}"
CanHorizontallyScroll="False"
CanVerticallyScroll="False"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
<ScrollBar
x:Name="PART_VerticalScrollBar"
Grid.Row="0"
Grid.Column="1"
AutomationProperties.AutomationId="VerticalScrollBar"
Cursor="Arrow"
Maximum="{TemplateBinding ScrollableHeight}"
Minimum="0"
Style="{DynamicResource MyScrollBarStyle}"
ViewportSize="{TemplateBinding ViewportHeight}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
<ScrollBar
x:Name="PART_HorizontalScrollBar"
Grid.Row="1"
Grid.Column="0"
AutomationProperties.AutomationId="HorizontalScrollBar"
Cursor="Arrow"
Maximum="{TemplateBinding ScrollableWidth}"
Minimum="0"
Orientation="Horizontal"
Style="{DynamicResource MyScrollBarStyle}"
ViewportSize="{TemplateBinding ViewportWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
</Grid>
</ControlTemplate>
<SolidColorBrush x:Key="ScrollBarDisabledBackground" Color="#F4F4F4" />

<Style x:Key="VerticalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Focusable" Value="false" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Rectangle
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Fill="{TemplateBinding Background}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 滚动条颜色、圆角等设置 -->
<Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<!-- 滚动条颜色和圆角设置 -->
<Rectangle
Name="thumbRect"
Fill="#03ffea"
RadiusX="3"
RadiusY="3" />
<!-- 鼠标拉动滚动条时的颜色 -->
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="thumbRect" Property="Fill" Value="CornflowerBlue" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="HorizontalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Focusable" Value="false" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Rectangle
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Fill="{TemplateBinding Background}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MyScrollBarStyle" TargetType="{x:Type ScrollBar}">
<Setter Property="Background" Value="AliceBlue" />
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false" />
<Setter Property="Stylus.IsFlicksEnabled" Value="false" />
<!-- 滚动条宽度 -->
<Setter Property="Width" Value="8" />
<Setter Property="MinWidth" Value="6" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<!-- 滚动条背景色 -->
<Grid
x:Name="Bg"
Width="8"
Background="#001f55"
SnapsToDevicePixels="true">
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Track
x:Name="PART_Track"
IsDirectionReversed="true"
IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{StaticResource VerticalScrollBarPageButton}" />
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{StaticResource VerticalScrollBarPageButton}" />
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumb}" />
</Track.Thumb>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Bg" Property="Background" Value="{StaticResource ScrollBarDisabledBackground}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto" />
<Setter Property="MinWidth" Value="0" />
<Setter Property="Height" Value="6" />
<Setter Property="MinHeight" Value="6" />
<Setter Property="Background" Value="AliceBlue" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid
x:Name="Bg"
Background="Red"
SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Track x:Name="PART_Track" IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumb}" />
</Track.Thumb>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Bg" Property="Background" Value="{StaticResource ScrollBarDisabledBackground}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
<!--#endregion-->

</ResourceDictionary>

HBLConsole.Business/APIHelper.cs → HBLConsole.Service/APIHelper.cs View File

@@ -6,14 +6,11 @@ using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using BPA.Utility;
using HBLConsole.GVL;
using BPA.Message;
using System.Web;
using Newtonsoft.Json;
using HBLConsole.Service;

namespace HBLConsole.Business
namespace HBLConsole.Service
{
public class APIHelper
{
@@ -27,46 +24,46 @@ namespace HBLConsole.Business
/// </summary>
/// <param name="ClientId"></param>
/// <returns></returns>
public OrderMaterialDelivery GetBatchingInfo(int ClientId)
{
string result = string.Empty;
try
{
var jsondata = new { ClientId };
string header = $"[{InternetInfo.GetInstance.StockServer}/GetItemInfo]_[{DateTime.Now.Ticks}]".AESEncrypt();
string url = $"{InternetInfo.GetInstance.ApiAddress}{InternetInfo.GetInstance.StockServer}/GetItemInfo";
result = HttpRequest(url, header, jsondata, RequestType.POST);
}
catch (Exception ex)
{
MessageLog.GetInstance.Show(ex.ToString());
}
return JsonConvert.DeserializeObject<OrderMaterialDelivery>(result);
}
//public OrderMaterialDelivery GetBatchingInfo(int ClientId)
//{
// string result = string.Empty;
// try
// {
// var jsondata = new { ClientId };
// string header = $"[{InternetInfo.GetInstance.StockServer}/GetItemInfo]_[{DateTime.Now.Ticks}]".AESEncrypt();
// string url = $"{InternetInfo.GetInstance.ApiAddress}{InternetInfo.GetInstance.StockServer}/GetItemInfo";
// result = HttpRequest(url, header, jsondata, RequestType.POST);
// }
// catch (Exception ex)
// {
// MessageLog.GetInstance.Show(ex.ToString());
// }
// return JsonConvert.DeserializeObject<OrderMaterialDelivery>(result);
//}

/// <summary>
/// 更改订单状态
/// </summary>
/// <param name=""></param>
/// <returns></returns>
public OrderStatusChangeRsp OrderStatusChange(OrderStatusChange orderStatusChange)
{
string result = string.Empty;
try
{
string header = $"[{InternetInfo.GetInstance.OrderServer}/order/robotstatuschange]_[{DateTime.Now.Ticks}]".AESEncrypt();
string url = $"{InternetInfo.GetInstance.ApiAddress}{InternetInfo.GetInstance.OrderServer}/order/robotstatuschange";
result = HttpRequest(url, header, orderStatusChange, RequestType.POST);
}
catch (Exception ex)
{
MessageLog.GetInstance.Show(ex.ToString());
}
return JsonConvert.DeserializeObject<OrderStatusChangeRsp>(result);
}
///// <summary>
///// 更改订单状态
///// </summary>
///// <param name=""></param>
///// <returns></returns>
//public OrderStatusChangeRsp OrderStatusChange(OrderStatusChange orderStatusChange)
//{
// string result = string.Empty;
// try
// {
// string header = $"[{InternetInfo.GetInstance.OrderServer}/order/robotstatuschange]_[{DateTime.Now.Ticks}]".AESEncrypt();
// string url = $"{InternetInfo.GetInstance.ApiAddress}{InternetInfo.GetInstance.OrderServer}/order/robotstatuschange";
// result = HttpRequest(url, header, orderStatusChange, RequestType.POST);
// }
// catch (Exception ex)
// {
// MessageLog.GetInstance.Show(ex.ToString());
// }
// return JsonConvert.DeserializeObject<OrderStatusChangeRsp>(result);
//}


public static string PostData(string url, string data, string head)
public string PostData(string url, string data, string head)
{
byte[] b = Encoding.UTF8.GetBytes(data);//把字符串转换为二进制
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
@@ -88,7 +85,7 @@ namespace HBLConsole.Business
return str;
}

public static string GetData(string url, string head)
public string GetData(string url, string head)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "GET";

+ 3
- 0
HBLConsole/App.xaml.cs View File

@@ -12,6 +12,8 @@ using System.Diagnostics;
using HBLConsole.Service;
using HBLConsole.Model;
using HBLConsole.MainConsole;
using HBLConsole.GVL;
using BPA.Message.Enum;

namespace HBLConsole
{
@@ -25,6 +27,7 @@ namespace HBLConsole
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
GeneralConfig.GetInstance.DeviceType = DeviceClientType.MORKS;
SystemHelper.GetInstance.AutoStart(false);
SystemHelper.GetInstance.CreateDesktopShortcut();
AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;


+ 197
- 0
HBLConsole/Resources/ResourceDictionarys/BasicStyle.xaml View File

@@ -196,4 +196,201 @@
</ControlTemplate>
<!--#endregion-->

<!--#region ScrollViewerStyle-->
<ControlTemplate x:Key="MyScrollViewer" TargetType="{x:Type ScrollViewer}">
<!-- View区域背景色 -->
<Grid x:Name="Grid" Background="{TemplateBinding Background}">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Rectangle
x:Name="Corner"
Grid.Row="1"
Grid.Column="1"
Fill="Transparent" />
<ScrollContentPresenter
x:Name="PART_ScrollContentPresenter"
Grid.Row="0"
Grid.Column="0"
Margin="{TemplateBinding Padding}"
CanContentScroll="{TemplateBinding CanContentScroll}"
CanHorizontallyScroll="False"
CanVerticallyScroll="False"
Content="{TemplateBinding Content}"
ContentTemplate="{TemplateBinding ContentTemplate}" />
<ScrollBar
x:Name="PART_VerticalScrollBar"
Grid.Row="0"
Grid.Column="1"
AutomationProperties.AutomationId="VerticalScrollBar"
Cursor="Arrow"
Maximum="{TemplateBinding ScrollableHeight}"
Minimum="0"
Style="{DynamicResource MyScrollBarStyle}"
ViewportSize="{TemplateBinding ViewportHeight}"
Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}"
Value="{Binding VerticalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
<ScrollBar
x:Name="PART_HorizontalScrollBar"
Grid.Row="1"
Grid.Column="0"
AutomationProperties.AutomationId="HorizontalScrollBar"
Cursor="Arrow"
Maximum="{TemplateBinding ScrollableWidth}"
Minimum="0"
Orientation="Horizontal"
Style="{DynamicResource MyScrollBarStyle}"
ViewportSize="{TemplateBinding ViewportWidth}"
Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}"
Value="{Binding HorizontalOffset, Mode=OneWay, RelativeSource={RelativeSource TemplatedParent}}" />
</Grid>
</ControlTemplate>

<!--初始滚动条样式-->
<SolidColorBrush x:Key="ScrollBarDisabledBackground" Color="Transparent" />

<Style x:Key="VerticalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Focusable" Value="false" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Rectangle
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Fill="{TemplateBinding Background}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<!-- 滚动条颜色、圆角等设置 -->
<Style x:Key="ScrollBarThumb" TargetType="{x:Type Thumb}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<!-- 滚动条颜色和圆角设置 -->
<Rectangle
Name="thumbRect"
Fill="#334B8EC4"
RadiusX="3"
RadiusY="3" />
<!-- 鼠标拉动滚动条时的颜色 -->
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="thumbRect" Property="Fill" Value="CornflowerBlue" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="HorizontalScrollBarPageButton" TargetType="{x:Type RepeatButton}">
<Setter Property="OverridesDefaultStyle" Value="true" />
<Setter Property="Background" Value="Transparent" />
<Setter Property="Focusable" Value="false" />
<Setter Property="IsTabStop" Value="false" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type RepeatButton}">
<Rectangle
Width="{TemplateBinding Width}"
Height="{TemplateBinding Height}"
Fill="{TemplateBinding Background}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
<Style x:Key="MyScrollBarStyle" TargetType="{x:Type ScrollBar}">
<Setter Property="Background" Value="AliceBlue" />
<Setter Property="Stylus.IsPressAndHoldEnabled" Value="false" />
<Setter Property="Stylus.IsFlicksEnabled" Value="false" />
<!-- 滚动条宽度 -->
<Setter Property="Width" Value="8" />
<Setter Property="MinWidth" Value="6" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<!-- 滚动条背景色 -->
<Grid
x:Name="Bg"
Width="8"
Background="#884B8EC4"
SnapsToDevicePixels="true">
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<Track
x:Name="PART_Track"
IsDirectionReversed="true"
IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageUpCommand}" Style="{StaticResource VerticalScrollBarPageButton}" />
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageDownCommand}" Style="{StaticResource VerticalScrollBarPageButton}" />
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumb}" />
</Track.Thumb>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Bg" Property="Background" Value="{StaticResource ScrollBarDisabledBackground}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Orientation" Value="Horizontal">
<Setter Property="Width" Value="Auto" />
<Setter Property="MinWidth" Value="0" />
<Setter Property="Height" Value="6" />
<Setter Property="MinHeight" Value="6" />
<Setter Property="Background" Value="AliceBlue" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid
x:Name="Bg"
Background="Red"
SnapsToDevicePixels="true">
<Grid.ColumnDefinitions>
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Track x:Name="PART_Track" IsEnabled="{TemplateBinding IsMouseOver}">
<Track.DecreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageLeftCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
</Track.DecreaseRepeatButton>
<Track.IncreaseRepeatButton>
<RepeatButton Command="{x:Static ScrollBar.PageRightCommand}" Style="{StaticResource HorizontalScrollBarPageButton}" />
</Track.IncreaseRepeatButton>
<Track.Thumb>
<Thumb Style="{StaticResource ScrollBarThumb}" />
</Track.Thumb>
</Track>
</Grid>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="false">
<Setter TargetName="Bg" Property="Background" Value="{StaticResource ScrollBarDisabledBackground}" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Trigger>
</Style.Triggers>
</Style>
<!--#endregion-->

</ResourceDictionary>

+ 12
- 2
HBLConsole/View/MessageLogView.xaml View File

@@ -15,13 +15,23 @@
<vm:MessageLogViewModel />
</UserControl.DataContext>

<UserControl.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="../Resources/ResourceDictionarys/BasicStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>

</UserControl.Resources>

<Grid>

<ScrollViewer
Template="{StaticResource MyScrollViewer}"
Grid.Row="1"
Margin="5"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden">
HorizontalScrollBarVisibility="Visible"
VerticalScrollBarVisibility="Visible">
<TextBlock
FontSize="14"
Foreground="Aqua"


+ 266
- 151
HBLConsole/View/OrderStatusView.xaml View File

@@ -39,204 +39,319 @@

<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>

<!--#region 表格标题栏设置-->
<Grid Background="#dd2AB2E7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*" />
<ColumnDefinition />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>

<TextBlock
Grid.Column="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="取餐号" />

<Grid Grid.Column="1">
<!--#region 制作中的订单列表-->
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition />
</Grid.RowDefinitions>

<!--#region 表格标题栏设置-->
<Grid Background="#dd2AB2E7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*" />
<ColumnDefinition />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>

<TextBlock
Grid.Column="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="商品名" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="1,0,1,0" />
</Grid>
Text="取餐号" />

<TextBlock
Grid.Column="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="开始时间" />
<Grid Grid.Column="1">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="商品名" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="1,0,1,0" />
</Grid>

<Grid Grid.Column="3">
<TextBlock
Grid.Column="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="结束时间" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="1,0,1,0" />
</Grid>
Text="开始时间" />

<Grid Grid.Column="3">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="结束时间" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="1,0,1,0" />
</Grid>

<Grid Grid.Column="5">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="制作状态" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="0,0,1,0" />
</Grid>

<Grid Grid.Column="5">
<TextBlock
Grid.Column="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="制作状态" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="0,0,1,0" />
</Grid>
Text="完成时间" />

<TextBlock
Grid.Column="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="完成时间" />
</Grid>
<!--#endregion-->

</Grid>
<!--#endregion-->
<!--#region 表格数据显示-->
<ScrollViewer
Grid.Row="1"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden">
<ItemsControl ItemsSource="{Binding orderStatusLists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="30">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*" />
<ColumnDefinition />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>

<!--#region 表格数据显示-->
<ScrollViewer
Grid.Row="1"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden">
<ItemsControl ItemsSource="{Binding orderStatusLists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="30">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*" />
<ColumnDefinition />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>

<TextBlock
Grid.Column="0"
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding SortNo}" />

<Grid Grid.Column="1">
<TextBlock
Grid.Column="0"
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding GoodName}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="1,0,1,0" />
</Grid>
Text="{Binding SortNo}" />

<Grid Grid.Column="1">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding GoodName}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="1,0,1,0" />
</Grid>

<TextBlock
Grid.Column="2"
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="开始时间" />

<Grid Grid.Column="3">
<TextBlock
Grid.Column="2"
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="结束时间" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="1,0,1,0" />
Text="开始时间" />

<Grid Grid.Column="3">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="结束时间" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="1,0,1,0" />
</Grid>


<Grid Grid.Column="5">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding OrderStatus, Converter={StaticResource TextConverter}}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="0,0,1,0" />
</Grid>

<Grid Grid.Column="6">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding CookDateTime}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="0,0,1,0" />
</Grid>

<Border
Grid.ColumnSpan="8"
BorderBrush="{StaticResource BorderSolid}"
BorderThickness="1,0,1,1" />

</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<!--#endregion-->
</Grid>
<!--#endregion-->

<!--#region 等待取餐的订单列表-->
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="30" />
<RowDefinition />
</Grid.RowDefinitions>

<!--#region 表格标题栏设置-->
<Grid Background="#dd2AB2E7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*" />
<ColumnDefinition />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>

<TextBlock
Grid.Column="0"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="取餐号" />

<Grid Grid.Column="1">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="商品名" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="1,0,1,0" />
</Grid>

<TextBlock
Grid.Column="2"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="开始时间" />

<Grid Grid.Column="3">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="结束时间" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="1,0,1,0" />
</Grid>

<Grid Grid.Column="5">
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="制作状态" />
<Border BorderBrush="{StaticResource TitleBorderColor}" BorderThickness="0,0,1,0" />
</Grid>

<TextBlock
Grid.Column="6"
HorizontalAlignment="Center"
VerticalAlignment="Center"
FontSize="16"
Foreground="{StaticResource TitleFontColor}"
Text="完成时间" />

</Grid>
<!--#endregion-->

<!--#region 表格数据显示-->
<ScrollViewer
Grid.Row="1"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden">
<ItemsControl ItemsSource="{Binding WaitTakeMeal}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Height="30">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*" />
<ColumnDefinition />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0" />
<ColumnDefinition Width="0.7*" />
<ColumnDefinition Width="0.5*" />
</Grid.ColumnDefinitions>

<Grid Grid.Column="5">
<TextBlock
Grid.Column="0"
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding OrderStatus, Converter={StaticResource TextConverter}}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="0,0,1,0" />
</Grid>
Text="{Binding SortNo}" />

<Grid Grid.Column="1">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding GoodName}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="1,0,1,0" />
</Grid>


<Grid Grid.Column="6">
<TextBlock
Grid.Column="2"
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding CookDateTime}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="0,0,1,0" />
</Grid>
Text="开始时间" />

<Border
Grid.ColumnSpan="8"
BorderBrush="{StaticResource BorderSolid}"
BorderThickness="1,0,1,1" />
<Grid Grid.Column="3">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="结束时间" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="1,0,1,0" />
</Grid>

</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<!--#endregion-->

<Grid Grid.Column="5">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding OrderStatus, Converter={StaticResource TextConverter}}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="0,0,1,0" />
</Grid>

<!--<ScrollViewer
Grid.Row="1"
Margin="10,30,10,0"
HorizontalScrollBarVisibility="Hidden"
VerticalScrollBarVisibility="Hidden">
<ItemsControl ItemsSource="{Binding orderStatusLists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="26"
Foreground="{Binding OrderStatus, Converter={StaticResource color}}"
Text="{Binding GoodName}" />

<StackPanel
Grid.Row="1"
Margin="0,10,0,20"
Orientation="Horizontal">
<TextBlock
Margin="0,0,20,0"
VerticalAlignment="Center"
FontSize="26"
Foreground="#ddd"
Text="{Binding CreateDateTime}" />
<TextBlock
Margin="0,0,20,0"
VerticalAlignment="Center"
FontSize="26"
Foreground="{Binding OrderStatus, Converter={StaticResource color}}"
Text="{Binding SortNo}" />
<TextBlock
VerticalAlignment="Center"
FontSize="26"
Foreground="{Binding OrderStatus, Converter={StaticResource color}}"
Text="{Binding OrderStatus, Converter={StaticResource text}}" />
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>-->
<Grid Grid.Column="6">
<TextBlock
Foreground="{Binding OrderStatus, Converter={StaticResource ColorConverter}}"
Style="{StaticResource TextBlockStyle}"
Text="{Binding CookDateTime}" />
<Border BorderBrush="{StaticResource BorderSolid}" BorderThickness="0,0,1,0" />
</Grid>

<Border
Grid.ColumnSpan="8"
BorderBrush="{StaticResource BorderSolid}"
BorderThickness="1,0,1,1" />

</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
<!--#endregion-->
</Grid>
<!--#endregion-->

</Grid>
</UserControl>

+ 0
- 56
HBLConsole/ViewModel/OrderStatusViewModel.cs View File

@@ -1,5 +1,4 @@
using BPA.Message;
//using BPA.Message.Kafka;
using System;
using System.Collections.Generic;
using System.Linq;
@@ -14,61 +13,6 @@ namespace HBLConsole.ViewModel
{
MqttReceive();
WindowName = "订单状态";
//orderStatusLists.Add(new OrderStatusList()
//{
// StartDateTime = DateTime.Now.ToString("HH:mm:ss"),
// EndDateTime = DateTime.Now.ToString("HH:mm:ss"),
// GoodName = "细面",
// OrderStatus = ORDER_STATUS.WAIT,
// SortNo = "0001",
// SubOrderId = "0001",
//});

//orderStatusLists.Add(new OrderStatusList()
//{
// StartDateTime = DateTime.Now.ToString("HH:mm:ss"),
// EndDateTime = DateTime.Now.ToString("HH:mm:ss"),
// GoodName = "细面",
// OrderStatus = ORDER_STATUS.COOKING,
// SortNo = "0002",
// SubOrderId = "0002",
//});


//orderStatusLists.Add(new OrderStatusList()
//{
// StartDateTime = DateTime.Now.ToString("HH:mm:ss"),
// EndDateTime = DateTime.Now.ToString("HH:mm:ss"),
// GoodName = "细面",
// OrderStatus = ORDER_STATUS.COMPLETED_COOK,
// SortNo = "0003",
// SubOrderId = "0003",
//});

//orderStatusLists.Add(new OrderStatusList()
//{
// StartDateTime = DateTime.Now.ToString("HH:mm:ss"),
// EndDateTime = DateTime.Now.ToString("HH:mm:ss"),
// GoodName = "细面",
// OrderStatus = ORDER_STATUS.COMPLETED_TAKE,
// SortNo = "0004",
// SubOrderId = "0004",
//});

//orderStatusLists.Add(new OrderStatusList()
//{
// StartDateTime = DateTime.Now.ToString("HH:mm:ss"),
// EndDateTime = DateTime.Now.ToString("HH:mm:ss"),
// GoodName = "细面",
// OrderStatus = ORDER_STATUS.ERR_NOT_REPLY_WHEN_COOKING,
// SortNo = "0005",
// SubOrderId = "0005",
//});



}


}
}

+ 55
- 62
HBLConsole/ViewModel/ViewModelBase.cs View File

@@ -11,6 +11,7 @@ using BPA.Message;
using Microsoft.Toolkit.Mvvm.ComponentModel;
using HBLConsole.Service;
using HBLConsole.Model;
using BPA.Message.Enum;

namespace HBLConsole.ViewModel
{
@@ -55,6 +56,11 @@ namespace HBLConsole.ViewModel
/// </summary>
public static ObservableCollection<OrderData> orderStatusLists { get; set; } = new ObservableCollection<OrderData>();

/// <summary>
/// 等待取餐列表
/// </summary>
public static ObservableCollection<OrderData> WaitTakeMeal { get; set; } = new ObservableCollection<OrderData>();

/// <summary>
/// 显示当前窗体名称
/// </summary>
@@ -75,68 +81,55 @@ namespace HBLConsole.ViewModel
/// </summary>
public void MqttReceive()
{
//ClientStation.GetInstance.MqttReceive = new Action<IMessage>((m) =>
//{
// if (m is Kafka_BigScreenTakeInfo message)
// {
// App.Current.Dispatcher.Invoke(new Action(() =>
// {
// foreach (var item in message.SubOrderInfos)
// {
// var SubOrderInfo = orderStatusLists.FirstOrDefault(p => p.SubOrderId == item.SubOrderId);
// if (SubOrderInfo != null)//大屏取餐有该订单编号
// {
// //GVL.MessageLogOut.GetInstance.Show($"更改的 订单的ID是= 【{item.SubOrderId}】 状态是:={item.SubOrderStatus}");
// int index = Array.FindIndex(orderStatusLists.ToArray(), p => p.SubOrderId == item.SubOrderId);
// orderStatusLists.ElementAt(index).OrderStatus = item.SubOrderStatus;
// if (item.SubOrderStatus == ORDER_STATUS.COMPLETED_TAKE)
// {
// orderStatusLists.RemoveAt(index);
// }
// if (item.SubOrderStatus == ORDER_STATUS.COMPLETED_COOK)
// {
// string SortNo = orderStatusLists.FirstOrDefault(p => p.SubOrderId == item.SubOrderId).SortNo;
// if (SortNo != null)
// {
// if (SortNo.Length > 0)
// {
// //GVL_VAR.GetInstance.speacks.Enqueue(SortNo);
// //GVL.MessageLogOut.GetInstance.Show($"语音提示");
// }
// }
// orderStatusLists.ElementAt(index).EndDateTime = DateTime.Now.ToString("HH:mm:ss");
// orderStatusLists[index].CompleteDateTime = DateTime.Now.Subtract(Convert.ToDateTime(orderStatusLists.ElementAt(index).StartDateTime)).TotalSeconds.ToString();
// }
// if (item.SubOrderStatus == ORDER_STATUS.ERR_NOT_REPLY_WHEN_COOKING) orderStatusLists.ElementAt(index).OrderStatus = ORDER_STATUS.ERR_NOT_REPLY_WHEN_COOKING;
// }
// else//大屏取餐界面没有该订单编号
// {
// if (item.SubOrderStatus == ORDER_STATUS.WAIT)
// {
// MessageLogOut.GetInstance.Show($"添加的 订单编号= 【{item.SortNo}】 的ID是= 【{item.SubOrderId}】");

// if (item.SortNo != null)
// {
// if (item.SortNo.Length > 0)
// {
// orderStatusLists.Add(new OrderStatusList()
// {
// SortNo = item.SortNo.Substring(0, 4),
// GoodName = item.GoodName,
// OrderStatus = item.SubOrderStatus,
// SubOrderId = item.SubOrderId,
// StartDateTime = DateTime.Now.ToString("HH:mm:ss"),
// });
// }
// }
// }
// }
// }

// }));
// }

//});
ActionManagerment.GetInstance.Register(new Action<object>((o) =>
{
if (o is MorkOrderPush morkOrderpush)
{
var result = orderStatusLists.FirstOrDefault(p => p.OrderPush.SuborderId == morkOrderpush.SuborderId);
if (result == null)
{
orderStatusLists.Add(new OrderData()
{
OrderPush = morkOrderpush,
OrderStatus = ORDER_STATUS.WAIT,
StartDate = DateTime.Now.ToString("HH:mm:ss")
});
}
}
}), "AddOrder");

ActionManagerment.GetInstance.Register(new Action<object>((o) =>
{
if (o is OrderStatusChange orderStatusChange)
{
int index = Array.FindIndex(orderStatusLists.ToArray(), p => p.OrderPush.SuborderId == orderStatusChange.SuborderId);

if (index >= 0) orderStatusLists.ElementAt(index).OrderStatus = orderStatusChange.CookingStatus;
switch (orderStatusChange.CookingStatus)
{
case ORDER_STATUS.COOKING:

break;
case ORDER_STATUS.COMPLETED_COOK:
if (index >= 0)
{
orderStatusLists.ElementAt(index).EndDate = DateTime.Now.ToString("HH:mm:ss");
TimeSpan timeSpan = DateTime.Now.Subtract(Convert.ToDateTime(orderStatusLists.ElementAt(index).StartDate));
orderStatusLists.ElementAt(index).CompleteDate = timeSpan.TotalSeconds.ToString();
WaitTakeMeal.Insert(0, orderStatusLists.ElementAt(index));
orderStatusLists.RemoveAt(index);
}

break;
case ORDER_STATUS.COMPLETED_TAKE:
var re = WaitTakeMeal.FirstOrDefault(p => p.OrderPush.SuborderId == orderStatusChange.SuborderId);
if (re != null) WaitTakeMeal.Remove(re);
break;
default:
break;
}
}
}), "OrderStatusChange");
}
#endregion
}


Loading…
Cancel
Save