|
|
|
|
@ -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;
|
|
|
|
|
|