using JinYuan.ControlCenters;
using JinYuan.Helper;
using JinYuan.MES.Models;
using JinYuan.Models;
using JinYuan.VirtualDataLibrary;
using Language;
using LargeSquareOne.ViewModel;
using System;
using System.Collections.Concurrent;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace LargeSquareOne
{
public partial class FrmDataMonitor : MultiLanguageForm
{
private System.Threading.Timer m_RefreshTimer;
///
/// 组盘数据显示
///
private BindingList listTA = new BindingList();
///
/// 组盘抽检数据显示
///
private BindingList listTC = new BindingList();
///
/// 叠盘数据绑定委托
///
///
private BindingList listTB = new BindingList();
///
/// 底托卡板绑定数据显示
///
private BindingList listTD = new BindingList();
///
/// 底托卡板绑定数据显示
///
private BindingList listTE = new BindingList();
public FrmDataMonitor()
{
InitializeComponent();
this.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
this.SetStyle(ControlStyles.DoubleBuffer, true);
this.SetStyle(ControlStyles.ResizeRedraw, true);
this.SetStyle(ControlStyles.Selectable, true);
this.SetStyle(ControlStyles.SupportsTransparentBackColor, true);
this.SetStyle(ControlStyles.UserPaint, true);
this.dgvFeedingData.AutoGenerateColumns = false;
this.dgvFeedingData.DataSource = listTA;
this.dgvFeedingData.DataError += delegate (object sender, DataGridViewDataErrorEventArgs e) { };
this.dgvFeedingData.DoubleBufferedDataGirdView(true);
this.dgvBlankingData.AutoGenerateColumns = false;
this.dgvBlankingData.DataSource = listTB;
this.dgvBlankingData.DataError += delegate (object sender, DataGridViewDataErrorEventArgs e) { };
this.dgvBlankingData.DoubleBufferedDataGirdView(true);
this.dgvPrintContainerData.AutoGenerateColumns = false;
this.dgvPrintContainerData.DataSource = listTD;
this.dgvPrintContainerData.DataError += delegate (object sender, DataGridViewDataErrorEventArgs e) { };
this.dgvPrintContainerData.DoubleBufferedDataGirdView(true);
this.dgvPrintPalletData.AutoGenerateColumns = false;
this.dgvPrintPalletData.DataSource = listTE;
this.dgvPrintPalletData.DataError += delegate (object sender, DataGridViewDataErrorEventArgs e) { };
this.dgvPrintPalletData.DoubleBufferedDataGirdView(true);
this.lVConfigRange.DoubleBufferedListView(true);
this.FormClosing += (sender, e) =>
{
};
}
private void FrmDataMonitor_Load(object sender, EventArgs e)
{
dgvFeedingData.ClearSelection();
dgvBlankingData.ClearSelection();
dgvPrintContainerData.ClearSelection();
dgvPrintPalletData.ClearSelection();
//表头动态渲染
this.InitFrmDataMonitor();
}
private string CurrentTime
{
get { return DateTime.Now.ToString("HH:mm:ss"); }
}
///
/// 刷新参数
///
public void GetLocalParaData()
{
try
{
if (CommonMethods.paramlists != null)
{
System.Windows.Forms.ListViewItem listItem = null;
lVConfigRange.Items.Clear();
int j = 0;
foreach (var ProductPara in CommonMethods.paramlists) //遍历list集合
{
string strRemark = ProductPara.Remark;
string strName = ProductPara.ParaName;
listItem = new System.Windows.Forms.ListViewItem(CommonMethods.paramlists[j].Remark);
listItem.SubItems.Add("0");
listItem.SubItems.Add("0");
listItem.SubItems.Add("0");
lVConfigRange.Items.Add(listItem);
lVConfigRange.Items[j].SubItems[1].Text = ProductPara.ParaValueMin;
lVConfigRange.Items[j].SubItems[2].Text = ProductPara.ParaValueMax;
lVConfigRange.Items[j].SubItems[3].Text = ProductPara.Uint;
switch (strName)
{
//case "OcvIr": //OCV内阻
// CommonMethods.parRange.OcvIrMax = Convert.ToDecimal(ProductPara.ParaValueMax == "" ? "0" : ProductPara.ParaValueMax);
// CommonMethods.parRange.OcvIrMin = Convert.ToDecimal(ProductPara.ParaValueMin == "" ? "0" : ProductPara.ParaValueMin);
// break;
//case "OcvVoltage": //OCV电压
// CommonMethods.parRange.OcvVoltageMax = Convert.ToDecimal(ProductPara.ParaValueMax == "" ? "0" : ProductPara.ParaValueMax);
// CommonMethods.parRange.OcvVoltageMin = Convert.ToDecimal(ProductPara.ParaValueMin == "" ? "0" : ProductPara.ParaValueMin);
// break;
//case "OcvTime": //OCV静置时间
// CommonMethods.parRange.OcvTimeMax = Convert.ToDecimal(ProductPara.ParaValueMax == "" ? "0" : ProductPara.ParaValueMax);
// CommonMethods.parRange.OcvTimeMin = Convert.ToDecimal(ProductPara.ParaValueMin == "" ? "0" : ProductPara.ParaValueMin);
// break;
//case "CoefficientA"://常数A
// CommonMethods.parRange.CoefficientA = Convert.ToDecimal(ProductPara.ParaValueMin);
// break;
//case "ExponentB"://常数B
// CommonMethods.parRange.ExponentB = Convert.ToDecimal(ProductPara.ParaValueMin);
// break;
default:
break;
}
j++;
}
}
}
catch (Exception ex)
{
LogHelper.Instance.WriteEX("获取参数失败".Translated(), ex);
}
}
///
/// 加载MES参数
///
public async Task<(bool Success, string msg)> GetMesParaDataAsync()
{
bool Success = false; // 操作结果
string Message = ""; // 消息
try
{
bool isChangeParam = false;
var nowDate = DateTime.Now;
string filePath = $@"{CommonMethods.strMesLogspath}\参数设定值请求\变更记录\{nowDate.Year}\{nowDate.Month}";
string fileName = $@"{nowDate.Day}.csv";
string fileTitle = "时间,机台,MES账户,更改参数名称,更改前参数值,更改后参数值";
string fileContent = string.Empty;
DataTable dt = new DataTable();
dt.Columns.Add("MES账户");
dt.Columns.Add("更改参数名称");
dt.Columns.Add("更改前参数值");
dt.Columns.Add("更改后参数值");
var (resultData, Mesage) = await CommonMethods.hbgMes.GetParamSetRequestAsync(
CommonMethods.mesConfig.DeviceParamChange,
CommonMethods.mesConfig.equipNum,
CommonMethods.mesConfig.siteCode,
CommonMethods.mesConfig.lineCode,
CommonMethods.mesConfig.MaterialCode,
CommonMethods.mesConfig.mesUserName);
//var resultData = JsonConvert.DeserializeObject(Data);
if (!resultData.success)
{
// 获取参数未成功
Message = "获取MES参数不成功!";
return (Success, Message);
}
List NewParamlists = CommonMethods.paramlists;
for (int i = 0; i < resultData.total; i++)
{
List rows = resultData.rows;
for (int j = 0; j < rows.Count; j++)
{
var tagList = rows[j].tagList;
for (int k = 0; k < NewParamlists.Count; k++)
{
for (int n = 0; n < rows[j].tagList.Count; n++)
{
if (NewParamlists[k].ParaName == tagList[n].tagCode)
{
string strMin = "0";
if (String.IsNullOrEmpty(tagList[n].minValue.Trim()) || tagList[n].minValue.Trim() == "null")
strMin = "0";
else
strMin = tagList[n].minValue.Trim();
if (NewParamlists[k].ParaValueMin != strMin)
{
fileContent += $"{nowDate.ToString("yyyy-MM-dd HH:mm:ss")},{CommonMethods.mesConfig.equipNum}," +
$"{CommonMethods.mesConfig.mesUserName},{tagList[n].tagDescription}最小值,{NewParamlists[k].ParaValueMin},{strMin}\n";
dt.Rows.Add(CommonMethods.mesConfig.mesUserName, $"{tagList[n].tagDescription}最小值", NewParamlists[k].ParaValueMin, strMin);
NewParamlists[k].ParaValueMin = strMin;
isChangeParam = true;
}
string strMax = "0";
if (String.IsNullOrEmpty(tagList[n].maxValue.Trim()) || tagList[n].maxValue.Trim() == "null")
strMax = "0";
else
strMax = tagList[n].maxValue.Trim();
if (NewParamlists[k].ParaValueMax != tagList[n].maxValue)
{
fileContent += $"{nowDate.ToString("yyyy-MM-dd HH:mm:ss")},{CommonMethods.mesConfig.equipNum}," +
$"{CommonMethods.mesConfig.mesUserName},{tagList[n].tagDescription}最大值,{NewParamlists[k].ParaValueMax},{strMax}\n";
dt.Rows.Add(CommonMethods.mesConfig.mesUserName, $"{tagList[n].tagDescription}最大值", NewParamlists[k].ParaValueMax, strMax);
NewParamlists[k].ParaValueMax = strMax;
isChangeParam = true;
}
}
}
}
if (isChangeParam)
{
CustomMessageBox customMessageBox = new CustomMessageBox(dt, $"当前MES下发参数与设备本地参数不一致,请确认是否使用MES下发参数");
if (customMessageBox.ShowDialog() == DialogResult.OK)
{
// 写csv文件
fileContent = fileContent.Substring(0, fileContent.Length - 1);
CSVHelper