新增mes接口业务调试代码

read_card
CaesarBao 2 months ago
parent cd8493e5a1
commit 2e755b98a9

@ -1,4 +1,5 @@
using Nancy.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Drawing;
@ -6,7 +7,7 @@ using System.IO;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using JsonSerializer = System.Text.Json.JsonSerializer;
#region << 版 本 注 释 >>
/*--------------------------------------------------------------------
@ -320,5 +321,21 @@ namespace SlnMesnac.Common
_numberToRegion.TryGetValue(regionNum, out var region);
return region;
}
public T JTokenToEntity<T>(JToken value) where T : class
{
if (value == null)
{
return null;
}
string json = value.ToString();
if (string.IsNullOrEmpty(json))
{
return null;
}
T ResponseEntity;
ResponseEntity = JsonSerializer.Deserialize<T>(json);
return ResponseEntity;
}
}
}

@ -93,6 +93,7 @@ namespace SlnMesnac.Extensions
_rfid.ip = IP;
_rfid.port = int.Parse(Port);
_rfid.ConfigKey = item.Deviceid;
_rfid.FilterData = item.Name;
//_rfid.FilterData = sensor_Infos.Find(x => x.Deviceid == item.Deviceid).Mapid;
//bool connectResult = _rfid.Connect(IP, int.Parse(Port));
//_rfid._Action += RecvIdentifyData_Instance;

@ -1,18 +1,29 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.Json.Serialization;
namespace SlnMesnac.Model.domain
{
public class MesApiResponse<T>
{
public int Code { get; set; }
public string Msg { get; set; }
public List<T> Data { get; set; }
}
public class MesOrderInfo
{
public MesOrderInfo() { }
[JsonPropertyName("ProductSpec")]
public string ProductSpec { get; set; }
[JsonPropertyName("OrderNo")]
public string OrderNo { get; set; }
[JsonPropertyName("ProductCode")]
public string ProductCode { get; set; }
[JsonPropertyName("ProductType")]
public string ProductType { get; set; }
[JsonPropertyName("ProductName")]
public string ProductName { get; set; }
public decimal PlanQty { get; set; }
[JsonPropertyName("PlanQty")]
public double PlanQty { get; set; }
}
}

@ -1,6 +1,7 @@
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using Nancy;
using Nancy.Json;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using Serilog;
@ -31,6 +32,7 @@ namespace SlnMesnac.TouchSocket
private readonly SerilogHelper _logger;
public static Action<string, string> RefreshStateEvent;
public static Action<string> _RefreshLogMessageAction;
private string m_IpHost = "";
public MeshttpClient(AppConfig appConfig, SerilogHelper logger)
{
_appConfig = appConfig;
@ -43,21 +45,22 @@ namespace SlnMesnac.TouchSocket
{
try
{
m_IpHost = IpHost;
MESHttpClient = new WebApiClient();
await MESHttpClient.SetupAsync(new TouchSocketConfig()
.SetRemoteIPHost(IpHost)
.ConfigurePlugins(a =>
{
}));
_logger.Info("正在连接:" + IpHost);
Console.WriteLine("正在连接:" + IpHost);
await MESHttpClient.ConnectAsync();
Console.WriteLine("连接成功");
_logger.Info(IpHost + "连接成功");
Console.WriteLine(IpHost + "连接成功");
return MESHttpClient;
}
catch (Exception ex)
{
_logger.Info("MES API连接ERROR: " + ex.Message);
Console.WriteLine("MES API连接ERROR: " + ex.Message);
return null;
}
}
@ -86,32 +89,71 @@ namespace SlnMesnac.TouchSocket
}
public async Task<ApiResponse<MesOrderInfo>> GetMesOrderInfo(string lineCode, string datetime)
public async Task<string> GetMesOrderInfo(string lineCode, string datetime)
{
RFIDDeviceApiResponse<MesOrderInfo> rFIDDeviceApiResponse = new RFIDDeviceApiResponse<MesOrderInfo>();
try
{
var invokeOption_30s = new InvokeOption(30 * 1000)
{
FeedbackType = FeedbackType.WaitInvoke
};
if (MESHttpClient == null)
if (MESHttpClient != null)
{
return null;
if (!MESHttpClient.Online)
{
Console.WriteLine("与MES客户端连接断开尝试重新连接...");
await MESHttpClient.SetupAsync(new TouchSocketConfig()
.SetRemoteIPHost(m_IpHost)
);
Console.WriteLine("正在连接:" + m_IpHost);
await MESHttpClient.ConnectAsync();
Console.WriteLine("连接成功");
Console.WriteLine(m_IpHost + "连接成功");
}
}
var request = new WebApiRequest();
request.Method = HttpMethodType.Get;
request.Querys = new KeyValuePair<string, string>[] { new KeyValuePair<string, string>("lineCode", lineCode), new KeyValuePair<string, string>("planDate", datetime) };
var responseValue = await MESHttpClient.InvokeTAsync<int>("/api/plan/get", invokeOption_30s, request);
string responseValue = "";
try
{
//responseValue = await MESHttpClient.InvokeTAsync<string>("/ApiServer/get", invokeOption_30s, request);
responseValue = await MESHttpClient.InvokeTAsync<string>("/api/plan/get", invokeOption_30s, request);
if (responseValue != null)
{
Console.WriteLine("MES接口返回:" + JsonSerializer.Serialize(responseValue));
// _logger.Info("MES接口返回:" + JsonSerializer.Serialize(responseValue));
rFIDDeviceApiResponse = JsonSerializer.Deserialize<RFIDDeviceApiResponse<MesOrderInfo>>(responseValue);
Console.WriteLine("MES接口返回成功");
return responseValue;
}
else
{
rFIDDeviceApiResponse.Code = 201;
return "201";
}
}
catch (Exception ex)
{
rFIDDeviceApiResponse.Code = 202;
Console.WriteLine(ex.ToString());
_logger.Error(ex.Message);
return "202";
}
//var responseValue = await MESHttpClient.InvokeTAsync<string>("/ApiServer/get", invokeOption_30s, request);
//JToken responseValue = await MESHttpClient.InvokeTAsync<JToken>("Get:/api/plan", null, requestValue);
return JTokenToEntity<ApiResponse<MesOrderInfo>>(responseValue);
}
catch (Exception ex)
{
_logger.Info("ERROR: " + ex.Message);
return new ApiResponse<MesOrderInfo>();
rFIDDeviceApiResponse.Code = 203;
Console.WriteLine("ERROR: " + ex.Message);
return "203";
}
}

@ -47,6 +47,7 @@ namespace SlnMesnac.TouchSocket
var _httpclient = service.GetService<MeshttpClient>();
//_server.Init(6001);
await _httpclient.CreateWebApiClientAsync("10.20.8.51:8005");
//await _httpclient.CreateWebApiClientAsync("127.0.0.1:9881");
//_httpclient.CreateWebApiClient("127.0.0.1:9880");
}

@ -434,11 +434,9 @@ namespace SlnMesnac.WPF
private void App_DispatcherUnhandledException(object sender, System.Windows.Threading.DispatcherUnhandledExceptionEventArgs e)
{
string errorMsg = $"[实例 {_instanceId}] 发生未处理异常: {e.Exception.Message}";
MessageBox.Show(errorMsg, "应用程序错误", MessageBoxButton.OK, MessageBoxImage.Error);
string errorMsg = $"[实例 {_instanceId}] 发生未处理异常: {e.Exception.Message}, {e.Exception.StackTrace}";
Log.Error(e.Exception, $"实例 {_instanceId} 全局异常: {e.Exception.Message}");
MessageBox.Show(errorMsg, "应用程序错误", MessageBoxButton.OK, MessageBoxImage.Error);
// 保存异常信息到实例日志目录
try
{

@ -54,7 +54,7 @@
<Button Content="退 出" Visibility="Hidden" x:Name="Exit" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Exit}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#FF0033" BorderBrush="#FF0033" Margin="0,0,10,0"/>-->
<Button Content="订单导入" x:Name="ChangeType" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=ChangeType}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
<Button Content="数据查询" x:Name="HistorySearch" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=HistorySearch}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
<Button Content="报警记录" x:Name="AlarmRecord" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=AlarmRecord}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#FF9900" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
<Button Content="报警记录" Visibility="Hidden" x:Name="AlarmRecord" Command="{Binding ControlOnClickCommand}" CommandParameter="{Binding Name,ElementName=AlarmRecord}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#FF9900" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
<Button Content="代码生成" Visibility="Hidden" x:Name="Generate" Command="{Binding FormControlCommand}" CommandParameter="{Binding Name,ElementName=Generate}" Style="{StaticResource BUTTON_AGREE}" Width="100" Height="30" Background="#009999" BorderBrush="#FF36B5C1" Margin="0,0,10,0"/>
</StackPanel>

@ -103,15 +103,17 @@
<!--<Label Content="产线编号:" FontSize="20" Foreground="Black"/>
<TextBox IsReadOnly="False" IsEnabled="True" Text="{Binding MesOrderNo,Mode=TwoWay}" Width="250" FontSize="20" Foreground="Black" Margin="0 0 30 0" />-->
<!--<Label Content="RFID数量:" FontSize="20" Foreground="Black"/>
<TextBox IsReadOnly="False" IsEnabled="True" Text="{Binding RfidCount,Mode=TwoWay}" Width="250" FontSize="20" Foreground="Black" Margin="0 0 30 0" />-->
<Label Content="产线编号:" FontSize="20" Foreground="Black"/>
<ComboBox Width="200" Height="30" FontSize="20" SelectedItem="{Binding QueryIsCheck,Mode=TwoWay}" Margin="10,0,30,0" Foreground="Black">
<ComboBoxItem Content="2#硫化线" Background="White" Foreground="#4285DE"/>
<ComboBox ItemsSource="{Binding Items}" Width="200" >
</ComboBox>-->
<Label Content="产线名称:" FontSize="20" Foreground="Black"/>
<ComboBox ItemsSource="{Binding Items}" Width="200" Height="30" FontSize="20" SelectedItem="{Binding QueryIsCheck,Mode=TwoWay}" Margin="10,0,30,0" Foreground="Black">
<!--<ComboBoxItem Content="2#硫化线" Background="White" Foreground="#4285DE"/>
<ComboBoxItem Content="3#硫化线" Foreground="#4285DE"/>
<ComboBoxItem Content="6#硫化线上" Foreground="#4285DE"/>
<ComboBoxItem Content="6#硫化线下" Foreground="#4285DE"/>
<ComboBoxItem Content="7#硫化线" Foreground="#4285DE"/>
<ComboBoxItem Content="" Foreground="#4285DE"/>
<ComboBoxItem Content="" Foreground="#4285DE"/>-->
</ComboBox>
<TextBlock Text="开始时间" Margin="10 0" Foreground="Black" FontSize="20" VerticalAlignment="Center"/>
@ -141,10 +143,10 @@
ScrollViewer.VerticalScrollBarVisibility="Auto" BorderThickness="0" CanUserAddRows="False" SelectionMode="Single" IsReadOnly="True"
Foreground="Black" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding OrderNo}" Header="订单编号" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding ProductCode}" Header="物料编号" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductName}" Header="物料名称" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductType}" Header="物料类型" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding OrderNo}" Header="订单编号" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding ProductCode}" Header="物料编号" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<!--<DataGridTextColumn Binding="{Binding ProductName}" Header="物料名称" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />-->
<DataGridTextColumn Binding="{Binding ProductType}" Header="物料类型" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding PlanQty}" Header="计划数量" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTemplateColumn Header="操作" Width="1.5*">
<DataGridTemplateColumn.CellTemplate>

@ -171,12 +171,12 @@
ScrollViewer.VerticalScrollBarVisibility="Auto" BorderThickness="0" CanUserAddRows="False" SelectionMode="Single" IsReadOnly="True"
Foreground="Black" >
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding objid}" Header="ID" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding orderno}" Header="订单号" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding objid}" Header="序号" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding orderno}" Header="订单号" Width="1.2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding lineno}" Header="产线号" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding producttype}" Header="产品类型" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidepc}" Header="原始EPC" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidascii}" Header="RFID编码" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding producttype}" Header="产品类型" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidepc}" Header="原始EPC" Width="1.1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding rfidascii}" Header="RFID编码" Width="3*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding readtime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="读取时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>
<DataGridTextColumn Binding="{Binding writetime,StringFormat=\{0:yyyy-MM-dd HH:mm:ss\}}" Header="写入时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>

@ -13,7 +13,7 @@
<ResourceDictionary>
<Style x:Key="DataGridTextColumnCenterSytle" TargetType="{x:Type TextBlock}">
<Setter Property="VerticalAlignment" Value="Center" />
<Setter Property="FontSize" Value="15"/>
<Setter Property="FontSize" Value="13"/>
</Style>
<local1:RowToIndexConverter x:Key="RowToIndexConverter" />
<!-- 渐变画笔 -->
@ -190,9 +190,9 @@
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<!--<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>
<RowDefinition Height="1*"/>-->
</Grid.RowDefinitions>
<!-- 面板标题 -->
@ -240,7 +240,7 @@
</Grid>
<!-- RFID总数量 -->
<Grid Grid.Row="5">
<!--<Grid Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="7*"/>
@ -248,17 +248,17 @@
</Grid.ColumnDefinitions>
<TextBlock Text="生产数量" Grid.ColumnSpan="1" FontSize="15"/>
<TextBlock Text="{Binding RfidCount,Mode=TwoWay}" FontSize="15" Grid.Column="1" Grid.ColumnSpan="2"/>
</Grid>
</Grid>-->
<!-- 已写入数量 -->
<Grid Grid.Row="6">
<!--<Grid Grid.Row="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="已写入数量:" FontSize="15"/>
<TextBlock Text="{Binding WriteCount,Mode=TwoWay}" FontSize="15" Grid.Column="1"/>
</Grid>
</Grid>-->
<Grid Grid.Row="7">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
@ -269,14 +269,14 @@
</Grid>
<!-- 生产状态 -->
<Grid Grid.Row="8">
<!--<Grid Grid.Row="8">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="生产状态:" FontSize="15"/>
<TextBlock Text="{Binding ProductStatus,Mode=TwoWay}" FontSize="15" Style="{StaticResource ProducingTextStyle}" Grid.Column="1"/>
</Grid>
</Grid>-->
</Grid>
</Border>
@ -561,12 +561,12 @@
<DataGrid.Columns>
<!--<DataGridTextColumn Binding="{Binding SerialNumber}" Header="编号" Width="0.1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}"/>-->
<DataGridTextColumn Binding="{Binding OrderNumber}" Header="订单号" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding LineNumber}" Header="产线号" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductType}" Header="产品类型" Width="0.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding LineNumber}" Header="产线号" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ProductType}" Header="产品类型" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding OriginalEPC}" Header="原始EPC" Width="2*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding RFIDCode}" Header="RFID编码" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ReadTime}" Header="读取时间" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding WriteTime}" Header="写入时间" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding RFIDCode}" Header="RFID编码" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding ReadTime}" Header="读取时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<DataGridTextColumn Binding="{Binding WriteTime}" Header="写入时间" Width="1.5*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />
<!--<DataGridTextColumn Binding="{Binding WriteStatus}" Header="写入状态" Width="1*" ElementStyle="{StaticResource DataGridTextColumnCenterSytle}" />-->
<DataGridTemplateColumn Header="写入状态" Width="1*">
<DataGridTemplateColumn.CellStyle>

@ -6,10 +6,15 @@ using CommunityToolkit.Mvvm.Messaging;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Logging;
using Models;
using Nancy;
using Nancy.Json;
using SlnMesnac.Common;
using SlnMesnac.Config;
using SlnMesnac.Model.domain;
using SlnMesnac.Repository;
using SlnMesnac.Repository.service;
using SlnMesnac.Rfid;
using SlnMesnac.Serilog;
using SlnMesnac.TouchSocket;
using SlnMesnac.WPF.Attribute;
using SlnMesnac.WPF.Model;
@ -19,6 +24,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Text.Json;
using System.Threading.Tasks;
using System.Windows.Controls;
using System.Windows.Forms;
@ -29,24 +35,35 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
[RegisterAsSingletonAttribute]
public partial class ChangeTypeViewModel : ObservableObject
{
private ILogger<ChangeTypeViewModel> _logger;
private Isys_dict_dataService _dataService;
private AppConfig appConfig;
private ISqlSugarClient? sqlSugarClient;
string lineno = string.Empty;
private MeshttpClient _httpclient;
private readonly SerilogHelper _logger;
public List<RfidAbsractFactory> rfidList;
public ObservableCollection<string> Items { get; set; }
public ChangeTypeViewModel()
{
_logger = App.ServiceProvider.GetService<SerilogHelper>();
_httpclient = App.ServiceProvider.GetService<MeshttpClient>();
appConfig = App.ServiceProvider.GetService<AppConfig>();
BeginDate = DateTime.Now.Date; // 当天的 0:00:00
UpdateCommand = new RelayCommand<object>(t => Update(t));
GetOrderInfoCommand = new RelayCommand<object>(t=> RefreshData(t));
sqlSugarClient = App.ServiceProvider.GetService<ISqlSugarClient>();
rfidList = App.ServiceProvider.GetRequiredService<List<RfidAbsractFactory>>();
Items = new ObservableCollection<string>();
foreach (var rfid in rfidList)
{
Items.Add(rfid.FilterData);
}
}
private ComboBoxItem _QueryIsCheck = new ComboBoxItem() { Content = "" };
public ComboBoxItem QueryIsCheck
private string _QueryIsCheck = "";
public string QueryIsCheck
{
get { return _QueryIsCheck; }
set
@ -75,19 +92,20 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
var ProductType = model.ProductType;
var PlanQty = model.PlanQty;
List<Base_device_info> DeviceInfos = sqlSugarClient.Queryable<Base_device_info>().Where(expression: x => x.Collectid == appConfig.StationCode && x.Name == QueryIsCheck.Content.ToString().Trim() && x.Deleteflag == 0).ToList();
List<Base_device_info> DeviceInfos = sqlSugarClient.Queryable<Base_device_info>().Where(expression: x => x.Collectid == appConfig.StationCode && x.Name == QueryIsCheck.ToString().Trim() && x.Deleteflag == 0).ToList();
string mesOrderNo = MesOrderNo;
string rfidCount = RfidCount;
Real_DataInfo real_Data = new Real_DataInfo()
{
OrderNo = model.OrderNo,
Deviceid = DeviceInfos[0].Deviceid,
LineName = QueryIsCheck.Content.ToString().Trim(),
LineName = QueryIsCheck.ToString().Trim(),
LineNo = lineno,
ProductType = model.ProductType,
RfidCount = model.PlanQty.ToString(),
};
WeakReferenceMessenger.Default.Send(real_Data);
MessageBox.Show("MES订单切换成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
/// <summary>
@ -100,69 +118,68 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
{
//获取设备编号
if (string.IsNullOrEmpty(QueryIsCheck.Content.ToString().Trim()))
if (string.IsNullOrEmpty(QueryIsCheck.ToString().Trim()))
{
MessageBox.Show("请选择产线!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);
return;
}
else
{
if (QueryIsCheck.Content.ToString().Trim() == "2#硫化线")
if (QueryIsCheck.ToString().Trim() == "2#硫化线")
{
lineno = "VM002";
}
else if (QueryIsCheck.Content.ToString().Trim() == "3#硫化线")
else if (QueryIsCheck.ToString().Trim() == "3#硫化线")
{
lineno = "VM003";
}
else if (QueryIsCheck.Content.ToString().Trim() == "6#硫化线上")
else if (QueryIsCheck.ToString().Trim() == "6#硫化线上")
{
lineno = "VM006";
}
else if (QueryIsCheck.Content.ToString().Trim() == "6#硫化线下")
else if (QueryIsCheck.ToString().Trim() == "6#硫化线下")
{
lineno = "VM006";
}
else if (QueryIsCheck.Content.ToString().Trim() == "7#硫化线")
else if (QueryIsCheck.ToString().Trim() == "7#硫化线")
{
lineno = "VM007";
}
}
Console.WriteLine("调用MES获取订单接口");
//调用MES接口获取生产订单信息
//MessageBox.Show("MES订单获取成功!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
List<MesOrderInfo> mesOrderInfos = new List<MesOrderInfo>();
//_httpclient.GetMesOrderInfo(lineno, BeginDate.ToString("yyyy-MM-dd"));
Random random = new Random();
MesOrderInfo mesOrderInfo = new MesOrderInfo()
string response = await _httpclient.GetMesOrderInfo(lineno, BeginDate.ToString("yyyy-MM-dd"));
Console.WriteLine("接收MES接口返回:"+ response);
// 反序列化
try
{
OrderNo = "MesOrder" + random.Next(10, 99).ToString(),
PlanQty = 0,
ProductCode = "物料编号" + random.Next(10, 99).ToString(),
ProductName = "物料名称" + random.Next(10, 99).ToString(),
ProductType = "挤出 PVC输送带" + random.Next(10, 99).ToString(),
};
MesOrderInfo mesOrderInfo1 = new MesOrderInfo()
{
OrderNo = "MesOrder" + random.Next(10, 99).ToString(),
PlanQty = 0,
ProductCode = "物料编号" + random.Next(10, 99).ToString(),
ProductName = "物料名称" + random.Next(10, 99).ToString(),
ProductType = "PVC输送带" + random.Next(10, 99).ToString(),
};
mesOrderInfos.Add(mesOrderInfo);
mesOrderInfos.Add(mesOrderInfo1);
ChangeTypePanel.Clear();
foreach (var item in mesOrderInfos)
{
ChangeTypePanel.Add(item);
var responsejson = JsonSerializer.Deserialize<MesApiResponse<MesOrderInfo>>(response, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
if (responsejson?.Data != null)
{
if (responsejson.Code != 200)
{
MessageBox.Show("MES订单获取失败!" + responsejson.Code + responsejson.Msg, "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Console.WriteLine("序列化:" + responsejson.Code);
if (response != null)
{
ChangeTypePanel.Clear();
foreach (var item in responsejson.Data)
{
ChangeTypePanel.Add(item);
}
}
}
}
catch (Exception ex)
{
Console.WriteLine($"JSON解析失败: {ex.Message}");
Console.WriteLine($"原始内容: {response}");
}
}
private DateTime _BeginDate;

@ -313,6 +313,7 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
//刷新界面
RefreshEventArgs(iCombineId, tagInfos);
AddRFIDData(iCombineId, tagInfos);
bool startflag = await rfidList.FirstOrDefault(x => x.deviceid == iCombineId).Set_BeginIdentify();
}
@ -360,6 +361,7 @@ namespace SlnMesnac.WPF.ViewModel.IndexPage
WriteTime = Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).ReadTime,
WriteStatus = Deviceinfo.FirstOrDefault(x => x.Deviceid == iCombineId).WriteStatus // 模拟1条失败数据
});
RFIDHistoryRecords.OrderByDescending(x=>x.ReadTime).ToList();
});
}

@ -15,7 +15,8 @@
"configId": "mes",
"dbType": 0,
//"connStr": "server=127.0.0.1;uid=sa;pwd=123456;database=WLDB"
"connStr": "server=localhost;Database=bt_db;Uid=root;Pwd=123456"
//"connStr": "server=localhost;Database=bt_db;Uid=root;Pwd=123456",
"connStr": "server=60.205.157.215;Database=bt_db;Uid=root;Pwd=qdhys123456"
//"connStr": "server=119.45.202.115;uid=sa;pwd=haiwei@123;database=WLDB"
//"connStr": "server=10.113.254.104;uid=sa;pwd=klltdb@3391123;database=XJMIDDBTOWCS"
},

Loading…
Cancel
Save