|
|
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
|
|
|
using SunlightAggregationTerminal.Class;
|
|
|
|
|
using SunlightAggregationTerminal.Models;
|
|
|
|
|
using System.Collections.ObjectModel;
|
|
|
|
|
using System.Reflection.PortableExecutable;
|
|
|
|
|
using System.Text.Json;
|
|
|
|
|
using TouchSocket.Core;
|
|
|
|
|
|
|
|
|
|
namespace SunlightAggregationTerminal;
|
|
|
|
|
|
|
|
|
|
public class InfoMachineItem
|
|
|
|
|
{
|
|
|
|
|
public string? inf { get; set; }
|
|
|
|
|
}public partial class InfoDetail : ContentPage
|
|
|
|
|
{
|
|
|
|
|
public static ObservableCollection<ProbuctItem> InfoProbuctItems { get; set; } = new();
|
|
|
|
|
public static ObservableCollection<DyelotDetailsItem> InfoDyelotHistoryItems { get; set; } = new();
|
|
|
|
|
public static ObservableCollection<InfoMachineItem> InfoMachineItems { get; set; } = new();
|
|
|
|
|
public static InfoItem infoItem=new();
|
|
|
|
|
private DateTime _lastRefreshTime = DateTime.MinValue;
|
|
|
|
|
public InfoDetail(InfoItem item)
|
|
|
|
|
{
|
|
|
|
|
InitializeComponent();
|
|
|
|
|
this.BindingContext = item;
|
|
|
|
|
infoItem = item;
|
|
|
|
|
myCardCollectionView_.Refreshing += (sender, e) => {
|
|
|
|
|
// 防抖判断:如果距离上次刷新不足5秒,直接取消本次操作
|
|
|
|
|
if ((DateTime.Now - _lastRefreshTime).TotalSeconds < 1)
|
|
|
|
|
{
|
|
|
|
|
myCardCollectionView_.IsRefreshing = false;
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
// 更新刷新时间
|
|
|
|
|
_lastRefreshTime = DateTime.Now;
|
|
|
|
|
InfoMachine();
|
|
|
|
|
myCardCollectionView_.IsRefreshing = false;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private void ContentPage_Loaded(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
InfoMachine();
|
|
|
|
|
|
|
|
|
|
InfoMachineItems.Clear();
|
|
|
|
|
InfoProbuctItems.Clear();
|
|
|
|
|
InfoDyelotHistoryItems.Clear();
|
|
|
|
|
|
|
|
|
|
CardCollectionView_inf.ItemsSource = InfoMachineItems;
|
|
|
|
|
CardCollectionView_machine.ItemsSource = InfoProbuctItems;
|
|
|
|
|
CardCollectionView_history.ItemsSource = InfoDyelotHistoryItems;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//查询
|
|
|
|
|
private void InfoMachine() {
|
|
|
|
|
Dictionary<string, object> data_ = new Dictionary<string, object>();
|
|
|
|
|
data_.Add("Command", "InfoMachine");
|
|
|
|
|
if (infoItem.Model == "252")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "10");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "252-2T")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "10");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "252RB")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "10");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "252RDRM")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "12");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "242W")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "10");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "302")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "20");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "303")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "20");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "303PDW")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "20");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Command(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//设备信息
|
|
|
|
|
private void Button_real(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_real.IsVisible = true;
|
|
|
|
|
_machine.IsVisible = false;
|
|
|
|
|
_history.IsVisible = false;
|
|
|
|
|
_control.IsVisible = false;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//设备内容
|
|
|
|
|
private async void Button_machine(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_real.IsVisible = false;
|
|
|
|
|
_machine.IsVisible = true;
|
|
|
|
|
_history.IsVisible = false;
|
|
|
|
|
_control.IsVisible = false;
|
|
|
|
|
|
|
|
|
|
if (infoItem.Model == "252" || infoItem.Model == "252-2T" ||
|
|
|
|
|
infoItem.Model == "252RB" || infoItem.Model == "242W" ||
|
|
|
|
|
infoItem.Model == "252RDRM")
|
|
|
|
|
{
|
|
|
|
|
await DisplayAlertAsync("限制", "当前功能暂不可用", "是");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (InfoProbuctItems.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
Dictionary<string, object> data_ = new Dictionary<string, object>();
|
|
|
|
|
data_.Add("Command", "InfoMachinePipes");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_Probuct(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//历史
|
|
|
|
|
private void Button_history(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_real.IsVisible = false;
|
|
|
|
|
_machine.IsVisible = false;
|
|
|
|
|
_history.IsVisible = true;
|
|
|
|
|
_control.IsVisible = false;
|
|
|
|
|
if (InfoDyelotHistoryItems.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
Dictionary<string, object> data_ = new Dictionary<string, object>();
|
|
|
|
|
data_.Add("Command", "InfoMachineHistory");
|
|
|
|
|
if (infoItem.Model == "252")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "80");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "252-2T")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "80");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "252RB")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "80");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "252RDRM")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "82");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "242W")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "80");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "302")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "90");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "303")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "90");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
else if (infoItem.Model == "303PDW")
|
|
|
|
|
{
|
|
|
|
|
data_.Add("Type", "90");
|
|
|
|
|
data_.Add("Field", "*");
|
|
|
|
|
data_.Add("MachinName", infoItem.Machine!);
|
|
|
|
|
Query_History(data_.ToJsonString());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//远程
|
|
|
|
|
private async void Button_control(object sender, EventArgs e)
|
|
|
|
|
{
|
|
|
|
|
_real.IsVisible = false;
|
|
|
|
|
_machine.IsVisible = false;
|
|
|
|
|
_history.IsVisible = false;
|
|
|
|
|
_control.IsVisible = true;
|
|
|
|
|
await DisplayAlertAsync("限制", "当前功能暂不可用", "是");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//发送请求
|
|
|
|
|
public async void Query_Command(string dat)
|
|
|
|
|
{
|
|
|
|
|
LoadingIndicator.IsVisible = true;
|
|
|
|
|
InfoMachineItems.Clear();
|
|
|
|
|
|
|
|
|
|
DataReceived.Transmit(dat);
|
|
|
|
|
|
|
|
|
|
// 创建一个 秒的延时任务
|
|
|
|
|
Task delayTask = Task.Delay(10000);
|
|
|
|
|
// 创建一个监测任务,不断检查变量
|
|
|
|
|
Task monitorTask = Task.Run(async () =>
|
|
|
|
|
{
|
|
|
|
|
while (InfoMachineItems.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
// 每隔 100 毫秒检查一次,避免 CPU 占用过高
|
|
|
|
|
await Task.Delay(1000);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
// 使用 Task.WhenAny 等待任意一个任务完成
|
|
|
|
|
await Task.WhenAny(delayTask, monitorTask);
|
|
|
|
|
|
|
|
|
|
LoadingIndicator.IsVisible = false;
|
|
|
|
|
}
|
|
|
|
|
public async void Query_Probuct(string dat)
|
|
|
|
|
{
|
|
|
|
|
LoadingIndicator.IsVisible = true;
|
|
|
|
|
InfoProbuctItems.Clear();
|
|
|
|
|
|
|
|
|
|
DataReceived.Transmit(dat);
|
|
|
|
|
|
|
|
|
|
// 创建一个 秒的延时任务
|
|
|
|
|
Task delayTask = Task.Delay(10000);
|
|
|
|
|
// 创建一个监测任务,不断检查变量
|
|
|
|
|
Task monitorTask = Task.Run(async () =>
|
|
|
|
|
{
|
|
|
|
|
while (InfoProbuctItems.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
// 每隔 100 毫秒检查一次,避免 CPU 占用过高
|
|
|
|
|
await Task.Delay(1000);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
// 使用 Task.WhenAny 等待任意一个任务完成
|
|
|
|
|
await Task.WhenAny(delayTask, monitorTask);
|
|
|
|
|
|
|
|
|
|
LoadingIndicator.IsVisible = false;
|
|
|
|
|
}
|
|
|
|
|
public async void Query_History(string dat)
|
|
|
|
|
{
|
|
|
|
|
LoadingIndicator.IsVisible = true;
|
|
|
|
|
InfoDyelotHistoryItems.Clear();
|
|
|
|
|
|
|
|
|
|
DataReceived.Transmit(dat);
|
|
|
|
|
|
|
|
|
|
// 创建一个 秒的延时任务
|
|
|
|
|
Task delayTask = Task.Delay(10000);
|
|
|
|
|
// 创建一个监测任务,不断检查变量
|
|
|
|
|
Task monitorTask = Task.Run(async () =>
|
|
|
|
|
{
|
|
|
|
|
while (InfoDyelotHistoryItems.Count == 0)
|
|
|
|
|
{
|
|
|
|
|
// 每隔 100 毫秒检查一次,避免 CPU 占用过高
|
|
|
|
|
await Task.Delay(1000);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
// 使用 Task.WhenAny 等待任意一个任务完成
|
|
|
|
|
await Task.WhenAny(delayTask, monitorTask);
|
|
|
|
|
|
|
|
|
|
LoadingIndicator.IsVisible = false;
|
|
|
|
|
}
|
|
|
|
|
public static void Info_data(string dat, string id)
|
|
|
|
|
{
|
|
|
|
|
var data = JsonSerializer.Deserialize<List<Dictionary<string, object>>>(dat)!;
|
|
|
|
|
//助剂原料查询
|
|
|
|
|
if (id == "00")
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in data!)
|
|
|
|
|
{
|
|
|
|
|
ProbuctItem probuctItem = new ProbuctItem();
|
|
|
|
|
|
|
|
|
|
probuctItem.ProductCode = item.GetValue("ProductCode").ToString()!;
|
|
|
|
|
probuctItem.ProductName = item.GetValue("ProductName").ToString()!;
|
|
|
|
|
if (item.GetValue("Enabled").ToString()! == "1")
|
|
|
|
|
{
|
|
|
|
|
probuctItem.ProductState = "启用";
|
|
|
|
|
}
|
|
|
|
|
else { probuctItem.ProductState = "停用"; }
|
|
|
|
|
if (item!.TryGetValue("No", out var _No) && _No != null)
|
|
|
|
|
{
|
|
|
|
|
probuctItem.ProductInf = "管路: " + _No + "\n";
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("MinLimit", out var _MinLimit) && _MinLimit != null)
|
|
|
|
|
{
|
|
|
|
|
probuctItem.ProductInf = probuctItem.ProductInf+"最少量: " + _MinLimit + "g\n";
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("MaxLimit", out var _MaxLimit) && _MaxLimit != null)
|
|
|
|
|
{
|
|
|
|
|
probuctItem.ProductInf = probuctItem.ProductInf + "最大量: " + _MinLimit + "g\n";
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("Conc", out var _Conc) && _Conc != null)
|
|
|
|
|
{
|
|
|
|
|
probuctItem.ProductInf = probuctItem.ProductInf + "浓度: " + _Conc + "\n";
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("Enabled", out var _Gravity) && _Gravity != null)
|
|
|
|
|
{
|
|
|
|
|
probuctItem.ProductInf = probuctItem.ProductInf + "比重: " + _Gravity;
|
|
|
|
|
}
|
|
|
|
|
InfoProbuctItems.Add(probuctItem);
|
|
|
|
|
}
|
|
|
|
|
if (InfoProbuctItems.Count == 0) InfoProbuctItems.Add(new ProbuctItem());
|
|
|
|
|
}
|
|
|
|
|
//染料查询
|
|
|
|
|
else if (id == "10")
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in data!)
|
|
|
|
|
{
|
|
|
|
|
string inf_ = "染机: " + item.GetValue("Machine").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "料单: " + item.GetValue("Dyelot").ToString()!;
|
|
|
|
|
inf_ = inf_ + "@" + item.GetValue("ReDye").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "步骤: " + item.GetValue("StepNumber").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "流程: " + item.GetValue("Process").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "化料桶: " + item.GetValue("TankNO").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "染料桶数: " + item.GetValue("TotalNumber").ToString()!;
|
|
|
|
|
if (item!.TryGetValue("BarrelState", out var _Type) && _Type != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _Type?.ToString() ?? "";
|
|
|
|
|
// 转换
|
|
|
|
|
_Type = temp switch
|
|
|
|
|
{
|
|
|
|
|
"301" => "就绪",
|
|
|
|
|
"309" => "未准备",
|
|
|
|
|
_ => "无信息"
|
|
|
|
|
};
|
|
|
|
|
inf_ = inf_ + _Type;
|
|
|
|
|
}
|
|
|
|
|
inf_ = inf_ + "状态: " + item.GetValue("State").ToString()! + "\n";
|
|
|
|
|
|
|
|
|
|
InfoMachineItem infoMachineItem = new InfoMachineItem();
|
|
|
|
|
infoMachineItem.inf = inf_;
|
|
|
|
|
InfoMachineItems.Add(infoMachineItem);
|
|
|
|
|
}
|
|
|
|
|
if (InfoMachineItems.Count == 0) InfoMachineItems.Add(new InfoMachineItem());
|
|
|
|
|
}
|
|
|
|
|
//染料查询化料货架
|
|
|
|
|
else if (id == "12")
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in data!)
|
|
|
|
|
{
|
|
|
|
|
string inf_ = "位置: " + item.GetValue("position").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "料单: " + item.GetValue("Dyelot").ToString()!;
|
|
|
|
|
inf_ = inf_ + "@" + item.GetValue("ReDye").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "步骤: " + item.GetValue("StepNumber").ToString()! + "\n";
|
|
|
|
|
if (item!.TryGetValue("BarrelType", out var _Type) && _Type != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _Type?.ToString() ?? "";
|
|
|
|
|
// 转换
|
|
|
|
|
_Type = temp switch
|
|
|
|
|
{
|
|
|
|
|
"1" => "空桶",
|
|
|
|
|
"2" => "染料桶",
|
|
|
|
|
_ => "无桶"
|
|
|
|
|
};
|
|
|
|
|
inf_ = inf_ + "类型:" + _Type;
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("BarrelState", out var _BarrelState) && _BarrelState != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _BarrelState?.ToString() ?? "";
|
|
|
|
|
_BarrelState = temp switch
|
|
|
|
|
{
|
|
|
|
|
"201" => "[分桶]",
|
|
|
|
|
_ => ""
|
|
|
|
|
};
|
|
|
|
|
inf_ = inf_ + _BarrelState;
|
|
|
|
|
}
|
|
|
|
|
inf_ = inf_ + "[" + item.GetValue("Barrelserialnumber").ToString()! + "]\n";
|
|
|
|
|
inf_ = inf_ + "上架时间: " + DateTime.Parse(item.GetValue("createtime").ToString() ?? "")
|
|
|
|
|
.ToString("yyyy-MM-dd HH:mm:ss") + "\n";
|
|
|
|
|
inf_ = inf_ + "状态 [" + item.GetValue("State").ToString()! + "]";
|
|
|
|
|
|
|
|
|
|
InfoMachineItem infoMachineItem = new InfoMachineItem();
|
|
|
|
|
infoMachineItem.inf = inf_;
|
|
|
|
|
InfoMachineItems.Add(infoMachineItem);
|
|
|
|
|
}
|
|
|
|
|
if (InfoMachineItems.Count == 0) InfoMachineItems.Add(new InfoMachineItem());
|
|
|
|
|
}
|
|
|
|
|
//助剂查询
|
|
|
|
|
else if (id == "20")
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in data!)
|
|
|
|
|
{
|
|
|
|
|
string inf_ = "染机: " + item.GetValue("Machine").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "料单: " + item.GetValue("Dyelot").ToString()!;
|
|
|
|
|
inf_ = inf_ + "@" + item.GetValue("ReDye").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "步骤: " + item.GetValue("StepNumber").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "总浴量: " + item.GetValue("Volume").ToString()! + "\n";
|
|
|
|
|
inf_ = inf_ + "计量模组: " + item.GetValue("DispenseModule").ToString()! + "\n";
|
|
|
|
|
if (item!.TryGetValue("TankNo", out var _TankNo) && _TankNo != null)
|
|
|
|
|
{
|
|
|
|
|
inf_ = inf_ + "目标位置: " + item.GetValue("TankNo").ToString()! + "\n";
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
inf_ = inf_ + "目标位置: 未指定\n" ;
|
|
|
|
|
}
|
|
|
|
|
inf_ = inf_ + "开始时间: " + DateTime.Parse(item.GetValue("DispenseStartTime").ToString() ?? "")
|
|
|
|
|
.ToString("yyyy-MM-dd HH:mm:ss") + "\n";
|
|
|
|
|
if (item!.TryGetValue("State", out var _Type) && _Type != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _Type?.ToString() ?? "";
|
|
|
|
|
// 转换
|
|
|
|
|
_Type = temp switch
|
|
|
|
|
{
|
|
|
|
|
"102" => "计量中",
|
|
|
|
|
"301" => "完成",
|
|
|
|
|
"309" => "异常",
|
|
|
|
|
_ => "无信息"
|
|
|
|
|
};
|
|
|
|
|
inf_ = inf_ + "状态: " + _Type;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
InfoMachineItem infoMachineItem = new InfoMachineItem();
|
|
|
|
|
infoMachineItem.inf = inf_;
|
|
|
|
|
|
|
|
|
|
if (!InfoMachineItems.Any(x => x.inf == inf_))
|
|
|
|
|
{
|
|
|
|
|
InfoMachineItems.Add(infoMachineItem);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
if (InfoMachineItems.Count==0) InfoMachineItems.Add(new InfoMachineItem());
|
|
|
|
|
}
|
|
|
|
|
//化料历史信息查询
|
|
|
|
|
else if (id == "80")
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in data!)
|
|
|
|
|
{
|
|
|
|
|
DyelotDetailsItem dyelotDetailsItem = new DyelotDetailsItem();
|
|
|
|
|
dyelotDetailsItem.Dyelot = item.GetValue("Dyelot").ToString()!;
|
|
|
|
|
dyelotDetailsItem.ReDye =int.Parse( item.GetValue("ReDye").ToString()!);
|
|
|
|
|
dyelotDetailsItem.StepNumber = int.Parse(item.GetValue("StepNumber").ToString()!);
|
|
|
|
|
dyelotDetailsItem.Notes = "染机: " + item.GetValue("Machine").ToString()!+"\n";
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes +
|
|
|
|
|
"流程: " + item.GetValue("Process").ToString()!+"\n";
|
|
|
|
|
if (item!.TryGetValue("State", out var _State) && _State != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _State?.ToString() ?? "";
|
|
|
|
|
// 转换
|
|
|
|
|
_State = temp switch
|
|
|
|
|
{
|
|
|
|
|
"301" => "完成",
|
|
|
|
|
"309" => "异常",
|
|
|
|
|
_ => "无信息"
|
|
|
|
|
};
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + "状态: " + _State ;
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("TankNo", out var _TankNo) && _TankNo != null)
|
|
|
|
|
{
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + " [化料桶T" + _TankNo + "]";
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("TotalNumber", out var _TotalNumber) && _TotalNumber != null)
|
|
|
|
|
{
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + " [" + _TotalNumber+"桶]";
|
|
|
|
|
}
|
|
|
|
|
dyelotDetailsItem.DispenseStartTime = item.GetValue("DispenseStartTime").ToString()!.Replace("T", " ");
|
|
|
|
|
dyelotDetailsItem.DispenseEndTime = item.GetValue("DispenseEndTime").ToString()!.Replace("T", " ");
|
|
|
|
|
dyelotDetailsItem.UsageTime = item.GetValue("CallTime").ToString()!.Replace("T", " ");
|
|
|
|
|
InfoDyelotHistoryItems.Add(dyelotDetailsItem);
|
|
|
|
|
}
|
|
|
|
|
if (InfoDyelotHistoryItems.Count == 0) InfoDyelotHistoryItems.Add(new DyelotDetailsItem());
|
|
|
|
|
}
|
|
|
|
|
//化料货架历史信息查询
|
|
|
|
|
else if (id == "82")
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in data!)
|
|
|
|
|
{
|
|
|
|
|
DyelotDetailsItem dyelotDetailsItem = new DyelotDetailsItem();
|
|
|
|
|
dyelotDetailsItem.Dyelot = item.GetValue("Dyelot").ToString()!;
|
|
|
|
|
dyelotDetailsItem.ReDye = int.Parse(item.GetValue("ReDye").ToString()!);
|
|
|
|
|
dyelotDetailsItem.StepNumber = int.Parse(item.GetValue("StepNumber").ToString()!);
|
|
|
|
|
dyelotDetailsItem.Notes = "位置: " + item.GetValue("Position").ToString()! + "\n";
|
|
|
|
|
if (item!.TryGetValue("BarrelType", out var _Type) && _Type != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _Type?.ToString() ?? "";
|
|
|
|
|
// 转换
|
|
|
|
|
_Type = temp switch
|
|
|
|
|
{
|
|
|
|
|
"1" => "空桶",
|
|
|
|
|
"2" => "染料桶",
|
|
|
|
|
_ => "无桶"
|
|
|
|
|
};
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + "类型: " + _Type;
|
|
|
|
|
}
|
|
|
|
|
if (item!.TryGetValue("BarrelState", out var _BarrelState) && _BarrelState != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _BarrelState?.ToString() ?? "";
|
|
|
|
|
_BarrelState = temp switch
|
|
|
|
|
{
|
|
|
|
|
"201" => "[分桶]",
|
|
|
|
|
_ => ""
|
|
|
|
|
};
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + _BarrelState;
|
|
|
|
|
}
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + "[" + item.GetValue("Barrelserialnumber").ToString()! + "]\n";
|
|
|
|
|
if (item!.TryGetValue("State", out var _State) && _State != null)
|
|
|
|
|
{
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + "状态: " + _State;
|
|
|
|
|
}
|
|
|
|
|
dyelotDetailsItem.DispenseStartTime = "";
|
|
|
|
|
dyelotDetailsItem.DispenseEndTime = "";
|
|
|
|
|
dyelotDetailsItem.UsageTime = item.GetValue("Createtime").ToString()!.Replace("T", " ");
|
|
|
|
|
InfoDyelotHistoryItems.Add(dyelotDetailsItem);
|
|
|
|
|
}
|
|
|
|
|
if (InfoDyelotHistoryItems.Count == 0) InfoDyelotHistoryItems.Add(new DyelotDetailsItem());
|
|
|
|
|
}
|
|
|
|
|
//助剂历史信息查询
|
|
|
|
|
else if (id == "90")
|
|
|
|
|
{
|
|
|
|
|
foreach (var item in data!)
|
|
|
|
|
{
|
|
|
|
|
DyelotDetailsItem dyelotDetailsItem = new DyelotDetailsItem();
|
|
|
|
|
dyelotDetailsItem.Dyelot = item.GetValue("Dyelot").ToString()!;
|
|
|
|
|
dyelotDetailsItem.ReDye = int.Parse(item.GetValue("ReDye").ToString()!);
|
|
|
|
|
dyelotDetailsItem.StepNumber = int.Parse(item.GetValue("StepNumber").ToString()!);
|
|
|
|
|
dyelotDetailsItem.Notes = "染机: " + item.GetValue("Machine").ToString()! + "\n";
|
|
|
|
|
if (item!.TryGetValue("State", out var _State) && _State != null)
|
|
|
|
|
{
|
|
|
|
|
string temp = _State?.ToString() ?? "";
|
|
|
|
|
// 转换
|
|
|
|
|
_State = temp switch
|
|
|
|
|
{
|
|
|
|
|
"301" => "完成",
|
|
|
|
|
"309" => "异常",
|
|
|
|
|
_ => "无信息"
|
|
|
|
|
};
|
|
|
|
|
dyelotDetailsItem.Notes = dyelotDetailsItem.Notes + "状态: " + _State;
|
|
|
|
|
}
|
|
|
|
|
dyelotDetailsItem.DispenseStartTime = item.GetValue("DispenseStartTime").ToString()!.Replace("T", " ");
|
|
|
|
|
dyelotDetailsItem.DispenseEndTime = item.GetValue("DispenseEndTime").ToString()!.Replace("T", " ");
|
|
|
|
|
dyelotDetailsItem.UsageTime = item.GetValue("CallTime").ToString()!.Replace("T", " ");
|
|
|
|
|
InfoDyelotHistoryItems.Add(dyelotDetailsItem);
|
|
|
|
|
}
|
|
|
|
|
if (InfoDyelotHistoryItems.Count == 0) InfoDyelotHistoryItems.Add(new DyelotDetailsItem());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|