#010 修复解析入库,分发,和前端界面显示逻辑,增加 解析前判断是否已经处理过,增加clms授权检测

This commit is contained in:
HM-CN\zhengxuan.zhang
2025-08-19 16:07:09 +08:00
parent a15d9efd64
commit f865e8653c
32 changed files with 4905 additions and 1421 deletions
+12 -13
View File
@@ -257,20 +257,19 @@ namespace BaseFunction
{
try
{
if (rleMessage != null)
{
//rleMessage.Text = str;
//if (rleMessage != null)
//{
// //rleMessage.Text = str;
if (rleMessage != null && rleMessage.ElementTree != null && rleMessage.ElementTree.Control.InvokeRequired)
{
rleMessage.ElementTree.Control.Invoke(new Action(() => rleMessage.Text = str));
}
else if (rleMessage != null)
{
rleMessage.Text = str;
}
}
// if (rleMessage != null && rleMessage.ElementTree != null && rleMessage.ElementTree.Control.InvokeRequired)
// {
// rleMessage.ElementTree.Control.Invoke(new Action(() => rleMessage.Text = str));
// }
// else if (rleMessage != null)
// {
// rleMessage.Text = str;
// }
//}
if (str.Contains("警告") || str.ToUpper().Contains("WARN"))
{
NLogger.Warn(str);
@@ -8,12 +8,12 @@ using Telerik.WinControls.UI;
namespace NSAnalysis
{
public partial class FAddTolerance : Telerik.WinControls.UI.ShapedForm
public partial class FAddConfig : Telerik.WinControls.UI.ShapedForm
{
#region
private CjlrDAL tmdal = new CjlrDAL();
private FToleranceSetup gFTS;
private FConfigSetup gFTS;
#endregion
@@ -33,7 +33,7 @@ namespace NSAnalysis
#endregion
public FAddTolerance(FToleranceSetup fts)
public FAddConfig(FConfigSetup fts)
{
InitializeComponent();
@@ -1,6 +1,6 @@
namespace NSAnalysis
{
partial class FAddTolerance
partial class FAddConfig
{
/// <summary>
/// Required designer variable.
@@ -28,7 +28,7 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FAddTolerance));
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FAddConfig));
Telerik.WinControls.UI.RadListDataItem radListDataItem4 = new Telerik.WinControls.UI.RadListDataItem();
Telerik.WinControls.UI.RadListDataItem radListDataItem5 = new Telerik.WinControls.UI.RadListDataItem();
Telerik.WinControls.UI.RadListDataItem radListDataItem6 = new Telerik.WinControls.UI.RadListDataItem();
@@ -9,7 +9,7 @@ using Telerik.WinControls.UI;
namespace NSAnalysis
{
public partial class FToleranceSetup : Telerik.WinControls.UI.ShapedForm
public partial class FConfigSetup : Telerik.WinControls.UI.ShapedForm
{
private CjlrDAL tmdal = new CjlrDAL();
public int idgvSelectRowNumber = 0;
@@ -30,7 +30,7 @@ namespace NSAnalysis
#endregion
public FToleranceSetup()
public FConfigSetup()
{
InitializeComponent();
InitStatusComboBox();
@@ -39,7 +39,7 @@ namespace NSAnalysis
private void FToleranceSetup_Load(object sender, EventArgs e)
{
dgvTolList.ColumnHeadersDefaultCellStyle.Font = new Font("Segoe UI", 10, FontStyle.Regular);
dgvTolList.ColumnHeadersDefaultCellStyle.Font = new Font("Segoe UI", 8, FontStyle.Regular);
lpcAddTol.labPicture.Click += lpcAddTol_Click;
lpcAddTol.labText.Click += lpcAddTol_Click;
rtbnSearch_Click(null, null);
@@ -117,7 +117,7 @@ namespace NSAnalysis
private void lpcAddTol_Click(object sender, EventArgs e)
{
FAddTolerance fat = new FAddTolerance(this);
FAddConfig fat = new FAddConfig(this);
fat.ShowDialog(this);
}
@@ -165,7 +165,7 @@ namespace NSAnalysis
if (buttonText == "修改" || buttonText == "Edit")
{
idgvSelectRowNumber = e.RowIndex;
FEditTolerance sfeditcnc = new FEditTolerance(this);
FEditConfig sfeditcnc = new FEditConfig(this);
sfeditcnc.ShowDialog();
}
}
@@ -2,7 +2,7 @@
namespace NSAnalysis
{
partial class FToleranceSetup
partial class FConfigSetup
{
/// <summary>
/// Required designer variable.
@@ -30,7 +30,7 @@ namespace NSAnalysis
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FToleranceSetup));
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FConfigSetup));
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
@@ -7,13 +7,13 @@ using Telerik.WinControls.UI;
namespace NSAnalysis
{
public partial class FEditTolerance : Telerik.WinControls.UI.ShapedForm
public partial class FEditConfig : Telerik.WinControls.UI.ShapedForm
{
#region
private CjlrDAL tmdal = new CjlrDAL();
private FToleranceSetup gFTS;
private FConfigSetup gFTS;
#endregion
@@ -33,7 +33,7 @@ namespace NSAnalysis
#endregion
public FEditTolerance(FToleranceSetup fts)
public FEditConfig(FConfigSetup fts)
{
InitializeComponent();
@@ -1,6 +1,6 @@
namespace NSAnalysis
{
partial class FEditTolerance
partial class FEditConfig
{
/// <summary>
/// Required designer variable.
@@ -28,7 +28,7 @@
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEditTolerance));
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FEditConfig));
Telerik.WinControls.UI.RadListDataItem radListDataItem6 = new Telerik.WinControls.UI.RadListDataItem();
Telerik.WinControls.UI.RadListDataItem radListDataItem7 = new Telerik.WinControls.UI.RadListDataItem();
Telerik.WinControls.UI.RadListDataItem radListDataItem1 = new Telerik.WinControls.UI.RadListDataItem();
+23 -81
View File
@@ -25,41 +25,6 @@ namespace NSAnalysis
#endregion RadButton鼠标事件
private string strSection = "Chery";
private void LoadSoftwareSetup()
{
#region Load Software Setup
rtbIOTAddress.Text = ConfigDfn.strIOTAddress;
rtbCarTypebyVIN.Text = ConfigDfn.strIOTCarTypeAddress;
//rtbVWUploadPath.Text = ConfigDfn.strUploadPath;
//rtbUploadPath2.Text = ConfigDfn.strUploadPath2;
if (ConfigDfn.iStartIOTFlag == 1)
{
cbStartIOT.Checked = true;
rtbIOTAddress.Enabled = true;
}
else
{
cbStartIOT.Checked = false;
rtbIOTAddress.Enabled = false;
}
if (ConfigDfn.iAnalysisCSVFlag == 1)
{
cbAnalysisCSV.Checked = true;
}
else
{
cbAnalysisCSV.Checked = false;
}
#endregion Load Software Setup
}
public FSoftwareSetup()
{
InitializeComponent();
@@ -67,47 +32,17 @@ namespace NSAnalysis
private void FSoftwareSetup_Load(object sender, EventArgs e)
{
LoadSoftwareSetup();
// 根据加载的全局变量,设置控件状态
rtbReportPath.Text = ConfigDfn.strReportPath.Trim();
cbFileSorter.Checked = ConfigDfn.iEnableSort; //文件排序功能
cbAnalysisCSV.Checked = ConfigDfn.iAnalysisCSVFlag == 1 ? true : false; //分析结果导出CSV功能
}
private void rtbnSaveSetup_Click(object sender, EventArgs e)
{
//FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "tavascanUploadPath", rtbVWUploadPath.Text.Trim());
//FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "blacklabelUploadPath", rtbUploadPath2.Text.Trim());
//FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "Level2Times", rtbTolPercentage.Text.Trim());
//FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "Level3Times", rtbLevel3.Text.Trim());
if (cbStartIOT.Checked)
{
FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "StartIOTFlag", 1.ToString());
}
else
{
FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "StartIOTFlag", 0.ToString());
}
if (cbAnalysisCSV.Checked)
{
FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "AnalysisCSVFlag", 1.ToString());
}
else
{
FileIni.WriteString(ConfigDfn.strConfigFile, strSection, "AnalysisCSVFlag", 0.ToString());
}
MessageBox.Show("保存设置完成,请重启软件,参数即可生效! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
private void rbtnCancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void rbtnReportCSV2_Click(object sender, EventArgs e)
private void btn_browse_Click(object sender, EventArgs e) //浏览
{
FolderBrowserDialog mFolder = new FolderBrowserDialog();
mFolder.Description = "请选择奇瑞报告存放的路径:";
mFolder.Description = "请选择报告存放的路径:";
mFolder.ShowDialog();
if (Directory.Exists(mFolder.SelectedPath))
{
@@ -115,16 +50,23 @@ namespace NSAnalysis
}
}
private void cbStartIOT_CheckedChanged(object sender, EventArgs e)
private void rtbnSaveSetup_Click(object sender, EventArgs e) //保存
{
if (cbStartIOT.Checked)
{
rtbIOTAddress.Enabled = true;
}
else
{
rtbIOTAddress.Enabled = false;
}
//获取控件状态
ConfigDfn.iEnableSort = cbFileSorter.Checked ;
ConfigDfn.iAnalysisCSVFlag = cbAnalysisCSV.Checked ? 1 : 0;
ConfigDfn.strReportPath = rtbReportPath.Text.Trim();
//保存配置
ConfigDfn.SaveConfig();
MessageBox.Show("保存设置完成,请重启软件,参数即可生效! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
this.Close();
}
private void rbtnCancel_Click(object sender, EventArgs e) //取消
{
this.Close();
}
}
}
+71 -131
View File
@@ -32,27 +32,21 @@
this.radTitleBar1 = new Telerik.WinControls.UI.RadTitleBar();
this.label2 = new System.Windows.Forms.Label();
this.labTitle = new System.Windows.Forms.Label();
this.cbStartIOT = new System.Windows.Forms.CheckBox();
this.label20 = new System.Windows.Forms.Label();
this.rtbIOTAddress = new Telerik.WinControls.UI.RadTextBox();
this.label19 = new System.Windows.Forms.Label();
this.cbFileSorter = new System.Windows.Forms.CheckBox();
this.rtbnSaveSetup = new Telerik.WinControls.UI.RadButton();
this.rbtnCancel = new Telerik.WinControls.UI.RadButton();
this.cbAnalysisCSV = new System.Windows.Forms.CheckBox();
this.label14 = new System.Windows.Forms.Label();
this.rtbCarTypebyVIN = new Telerik.WinControls.UI.RadTextBox();
this.label10 = new System.Windows.Forms.Label();
this.rtbReportPath = new Telerik.WinControls.UI.RadTextBox();
this.label1 = new System.Windows.Forms.Label();
this.radButton1 = new Telerik.WinControls.UI.RadButton();
this.btn_browse = new Telerik.WinControls.UI.RadButton();
this.label20 = new System.Windows.Forms.Label();
((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).BeginInit();
this.radTitleBar1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.rtbIOTAddress)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.rtbnSaveSetup)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.rtbCarTypebyVIN)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.rtbReportPath)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.radButton1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.btn_browse)).BeginInit();
this.SuspendLayout();
//
// radTitleBar1
@@ -114,52 +108,17 @@
this.labTitle.TabIndex = 0;
this.labTitle.Text = "软件设置";
//
// cbStartIOT
// cbFileSorter
//
this.cbStartIOT.AutoSize = true;
this.cbStartIOT.Font = new System.Drawing.Font("Segoe UI", 12F);
this.cbStartIOT.ForeColor = System.Drawing.Color.White;
this.cbStartIOT.Location = new System.Drawing.Point(268, 75);
this.cbStartIOT.Name = "cbStartIOT";
this.cbStartIOT.Size = new System.Drawing.Size(63, 25);
this.cbStartIOT.TabIndex = 489;
this.cbStartIOT.Text = "启用";
this.cbStartIOT.UseVisualStyleBackColor = true;
this.cbStartIOT.CheckedChanged += new System.EventHandler(this.cbStartIOT_CheckedChanged);
//
// label20
//
this.label20.Font = new System.Drawing.Font("Segoe UI", 12F);
this.label20.ForeColor = System.Drawing.Color.White;
this.label20.Location = new System.Drawing.Point(28, 76);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(234, 21);
this.label20.TabIndex = 488;
this.label20.Text = "IOT上传功能启用:";
this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// rtbIOTAddress
//
this.rtbIOTAddress.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
this.rtbIOTAddress.Font = new System.Drawing.Font("Segoe UI", 12F);
this.rtbIOTAddress.ForeColor = System.Drawing.Color.White;
this.rtbIOTAddress.Location = new System.Drawing.Point(268, 116);
this.rtbIOTAddress.Name = "rtbIOTAddress";
this.rtbIOTAddress.Size = new System.Drawing.Size(565, 27);
this.rtbIOTAddress.TabIndex = 487;
((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbIOTAddress.GetChildAt(0))).Text = "";
((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbIOTAddress.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
//
// label19
//
this.label19.Font = new System.Drawing.Font("Segoe UI", 12F);
this.label19.ForeColor = System.Drawing.Color.White;
this.label19.Location = new System.Drawing.Point(62, 119);
this.label19.Name = "label19";
this.label19.Size = new System.Drawing.Size(200, 21);
this.label19.TabIndex = 486;
this.label19.Text = "IOT测量数据接口地址:";
this.label19.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.cbFileSorter.AutoSize = true;
this.cbFileSorter.Font = new System.Drawing.Font("Segoe UI", 12F);
this.cbFileSorter.ForeColor = System.Drawing.Color.White;
this.cbFileSorter.Location = new System.Drawing.Point(266, 92);
this.cbFileSorter.Name = "cbFileSorter";
this.cbFileSorter.Size = new System.Drawing.Size(63, 25);
this.cbFileSorter.TabIndex = 489;
this.cbFileSorter.Text = "启用";
this.cbFileSorter.UseVisualStyleBackColor = true;
//
// rtbnSaveSetup
//
@@ -167,9 +126,9 @@
this.rtbnSaveSetup.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
this.rtbnSaveSetup.Font = new System.Drawing.Font("Segoe UI", 12F);
this.rtbnSaveSetup.ForeColor = System.Drawing.Color.White;
this.rtbnSaveSetup.Location = new System.Drawing.Point(592, 598);
this.rtbnSaveSetup.Location = new System.Drawing.Point(644, 576);
this.rtbnSaveSetup.Name = "rtbnSaveSetup";
this.rtbnSaveSetup.Size = new System.Drawing.Size(138, 47);
this.rtbnSaveSetup.Size = new System.Drawing.Size(101, 47);
this.rtbnSaveSetup.TabIndex = 476;
this.rtbnSaveSetup.Text = "保存设置";
this.rtbnSaveSetup.Click += new System.EventHandler(this.rtbnSaveSetup_Click);
@@ -200,9 +159,9 @@
this.rbtnCancel.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
this.rbtnCancel.Font = new System.Drawing.Font("Segoe UI", 12F);
this.rbtnCancel.ForeColor = System.Drawing.Color.White;
this.rbtnCancel.Location = new System.Drawing.Point(770, 599);
this.rbtnCancel.Location = new System.Drawing.Point(785, 577);
this.rbtnCancel.Name = "rbtnCancel";
this.rbtnCancel.Size = new System.Drawing.Size(138, 47);
this.rbtnCancel.Size = new System.Drawing.Size(101, 47);
this.rbtnCancel.TabIndex = 477;
this.rbtnCancel.Text = "取消";
this.rbtnCancel.Click += new System.EventHandler(this.rbtnCancel_Click);
@@ -232,55 +191,34 @@
this.cbAnalysisCSV.AutoSize = true;
this.cbAnalysisCSV.Font = new System.Drawing.Font("Segoe UI", 12F);
this.cbAnalysisCSV.ForeColor = System.Drawing.Color.White;
this.cbAnalysisCSV.Location = new System.Drawing.Point(268, 202);
this.cbAnalysisCSV.Location = new System.Drawing.Point(266, 206);
this.cbAnalysisCSV.Name = "cbAnalysisCSV";
this.cbAnalysisCSV.Size = new System.Drawing.Size(63, 25);
this.cbAnalysisCSV.TabIndex = 513;
this.cbAnalysisCSV.Text = "解析";
this.cbAnalysisCSV.UseVisualStyleBackColor = true;
this.cbAnalysisCSV.Visible = false;
//
// label14
//
this.label14.Font = new System.Drawing.Font("Segoe UI", 12F);
this.label14.ForeColor = System.Drawing.Color.White;
this.label14.Location = new System.Drawing.Point(25, 205);
this.label14.Location = new System.Drawing.Point(23, 209);
this.label14.Name = "label14";
this.label14.Size = new System.Drawing.Size(237, 21);
this.label14.TabIndex = 512;
this.label14.Text = "是否解析CSV文件:";
this.label14.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// rtbCarTypebyVIN
//
this.rtbCarTypebyVIN.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
this.rtbCarTypebyVIN.Font = new System.Drawing.Font("Segoe UI", 12F);
this.rtbCarTypebyVIN.ForeColor = System.Drawing.Color.White;
this.rtbCarTypebyVIN.Location = new System.Drawing.Point(268, 159);
this.rtbCarTypebyVIN.Name = "rtbCarTypebyVIN";
this.rtbCarTypebyVIN.Size = new System.Drawing.Size(567, 27);
this.rtbCarTypebyVIN.TabIndex = 515;
((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbCarTypebyVIN.GetChildAt(0))).Text = "";
((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbCarTypebyVIN.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
//
// label10
//
this.label10.Font = new System.Drawing.Font("Segoe UI", 12F);
this.label10.ForeColor = System.Drawing.Color.White;
this.label10.Location = new System.Drawing.Point(62, 162);
this.label10.Name = "label10";
this.label10.Size = new System.Drawing.Size(200, 21);
this.label10.TabIndex = 514;
this.label10.Text = "获取车型接口地址:";
this.label10.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.label14.Visible = false;
//
// rtbReportPath
//
this.rtbReportPath.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
this.rtbReportPath.Font = new System.Drawing.Font("Segoe UI", 12F);
this.rtbReportPath.ForeColor = System.Drawing.Color.White;
this.rtbReportPath.Location = new System.Drawing.Point(268, 243);
this.rtbReportPath.Location = new System.Drawing.Point(266, 142);
this.rtbReportPath.Name = "rtbReportPath";
this.rtbReportPath.Size = new System.Drawing.Size(567, 27);
this.rtbReportPath.Size = new System.Drawing.Size(538, 27);
this.rtbReportPath.TabIndex = 516;
((Telerik.WinControls.UI.RadTextBoxElement)(this.rtbReportPath.GetChildAt(0))).Text = "";
((Telerik.WinControls.Primitives.BorderPrimitive)(this.rtbReportPath.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(68)))));
@@ -289,42 +227,54 @@
//
this.label1.Font = new System.Drawing.Font("Segoe UI", 12F);
this.label1.ForeColor = System.Drawing.Color.White;
this.label1.Location = new System.Drawing.Point(25, 248);
this.label1.Location = new System.Drawing.Point(23, 147);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(237, 21);
this.label1.TabIndex = 517;
this.label1.Text = "奇瑞报告存放的路径:";
this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// radButton1
// btn_browse
//
this.radButton1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.radButton1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
this.radButton1.Font = new System.Drawing.Font("Segoe UI", 12F);
this.radButton1.ForeColor = System.Drawing.Color.White;
this.radButton1.Location = new System.Drawing.Point(853, 244);
this.radButton1.Name = "radButton1";
this.radButton1.Size = new System.Drawing.Size(55, 31);
this.radButton1.TabIndex = 518;
this.radButton1.Text = "浏览";
((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).Text = "浏览";
((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).FocusBorderWidth = 5;
((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).EnableHighlight = true;
((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).EnableBorderHighlight = true;
((Telerik.WinControls.UI.RadButtonElement)(this.radButton1.GetChildAt(0))).BorderHighlightThickness = 3;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).Width = 2F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).TopWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).RightWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.radButton1.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
this.btn_browse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btn_browse.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(19)))), ((int)(((byte)(46)))), ((int)(((byte)(53)))));
this.btn_browse.Font = new System.Drawing.Font("Segoe UI", 12F);
this.btn_browse.ForeColor = System.Drawing.Color.White;
this.btn_browse.Location = new System.Drawing.Point(826, 138);
this.btn_browse.Name = "btn_browse";
this.btn_browse.Size = new System.Drawing.Size(80, 31);
this.btn_browse.TabIndex = 518;
this.btn_browse.Text = "浏览";
this.btn_browse.Click += new System.EventHandler(this.btn_browse_Click);
((Telerik.WinControls.UI.RadButtonElement)(this.btn_browse.GetChildAt(0))).Text = "浏览";
((Telerik.WinControls.UI.RadButtonElement)(this.btn_browse.GetChildAt(0))).FocusBorderWidth = 5;
((Telerik.WinControls.UI.RadButtonElement)(this.btn_browse.GetChildAt(0))).EnableHighlight = true;
((Telerik.WinControls.UI.RadButtonElement)(this.btn_browse.GetChildAt(0))).EnableBorderHighlight = true;
((Telerik.WinControls.UI.RadButtonElement)(this.btn_browse.GetChildAt(0))).BorderHighlightThickness = 3;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).Width = 2F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).LeftWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).TopWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).RightWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).BottomWidth = 3F;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).BorderDashStyle = System.Drawing.Drawing2D.DashStyle.Solid;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).GradientStyle = Telerik.WinControls.GradientStyles.Solid;
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).ForeColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).InnerColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).InnerColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).InnerColor3 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).InnerColor4 = System.Drawing.Color.FromArgb(((int)(((byte)(27)))), ((int)(((byte)(60)))), ((int)(((byte)(48)))));
((Telerik.WinControls.Primitives.BorderPrimitive)(this.btn_browse.GetChildAt(0).GetChildAt(2))).ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(151)))), ((int)(((byte)(186)))));
//
// label20
//
this.label20.Font = new System.Drawing.Font("Segoe UI", 12F);
this.label20.ForeColor = System.Drawing.Color.White;
this.label20.Location = new System.Drawing.Point(26, 93);
this.label20.Name = "label20";
this.label20.Size = new System.Drawing.Size(234, 21);
this.label20.TabIndex = 488;
this.label20.Text = "是否启用分发功能:";
this.label20.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// FSoftwareSetup
//
@@ -334,18 +284,14 @@
this.BorderColor = System.Drawing.Color.FromArgb(((int)(((byte)(44)))), ((int)(((byte)(109)))), ((int)(((byte)(124)))));
this.BorderWidth = 0;
this.ClientSize = new System.Drawing.Size(935, 672);
this.Controls.Add(this.radButton1);
this.Controls.Add(this.btn_browse);
this.Controls.Add(this.label1);
this.Controls.Add(this.rtbReportPath);
this.Controls.Add(this.rtbCarTypebyVIN);
this.Controls.Add(this.label10);
this.Controls.Add(this.cbAnalysisCSV);
this.Controls.Add(this.label14);
this.Controls.Add(this.rbtnCancel);
this.Controls.Add(this.cbStartIOT);
this.Controls.Add(this.cbFileSorter);
this.Controls.Add(this.label20);
this.Controls.Add(this.rtbIOTAddress);
this.Controls.Add(this.label19);
this.Controls.Add(this.rtbnSaveSetup);
this.Controls.Add(this.radTitleBar1);
this.Font = new System.Drawing.Font("宋体", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
@@ -358,12 +304,10 @@
((System.ComponentModel.ISupportInitialize)(this.radTitleBar1)).EndInit();
this.radTitleBar1.ResumeLayout(false);
this.radTitleBar1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.rtbIOTAddress)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.rtbnSaveSetup)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.rbtnCancel)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.rtbCarTypebyVIN)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.rtbReportPath)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.radButton1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.btn_browse)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
@@ -374,18 +318,14 @@
private Telerik.WinControls.UI.RadTitleBar radTitleBar1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Label labTitle;
private System.Windows.Forms.CheckBox cbStartIOT;
private System.Windows.Forms.Label label20;
private Telerik.WinControls.UI.RadTextBox rtbIOTAddress;
private System.Windows.Forms.Label label19;
private System.Windows.Forms.CheckBox cbFileSorter;
private Telerik.WinControls.UI.RadButton rtbnSaveSetup;
private Telerik.WinControls.UI.RadButton rbtnCancel;
private System.Windows.Forms.CheckBox cbAnalysisCSV;
private System.Windows.Forms.Label label14;
private Telerik.WinControls.UI.RadTextBox rtbCarTypebyVIN;
private System.Windows.Forms.Label label10;
private Telerik.WinControls.UI.RadTextBox rtbReportPath;
private System.Windows.Forms.Label label1;
private Telerik.WinControls.UI.RadButton radButton1;
private Telerik.WinControls.UI.RadButton btn_browse;
private System.Windows.Forms.Label label20;
}
}
@@ -6,6 +6,7 @@ using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.IO;
using System.Text;
namespace NSAnalysis
{
@@ -20,7 +21,17 @@ namespace NSAnalysis
public event Action<string> OnLog; // 日志事件
public event Action<string> OnFileParsed; // 解析完成后通知文件名
public event Action<string, string> OnFileParsed; // 解析完成后通知文件名
// 关键流程节点日志事件
public event Action<string> OnProcessStep; // 处理步骤日志事件
// 封装 OnProcessStep 事件
private void emitProcessStep(string message)
{
OnProcessStep?.Invoke(message);
//Console.WriteLine(message); // 控制台输出
}
public FileSorter()
{
@@ -49,29 +60,28 @@ namespace NSAnalysis
{
Trace($"[ProcessFiles] 源文件地址不存在或错误: {sourceDir}");
//记录到数据库
try
{
//插入分发详情
CjlrTaskReleaseDetailModel detailModel = new CjlrTaskReleaseDetailModel
{
ModelsName = modelName, // 这里可以根据需要填写车型名称
ModelsCode = modelCode,
Position = position, // 这里可以根据需要填写位置
SourceFile = "",
TargetFile = "",
TaskFileName = "",
TaskStatus = 2, // 假设1表示已处理, 2表示未处理
TaskDetail = $"源文件地址不存在或错误: {sourceDir}",
CreateDate = DateTime.Now
};
_dal.InsertTaskDetail(detailModel);
}
catch (Exception ex)
{
Trace($"[ProcessFiles] 记录错误到数据库失败: {ex.Message}");
}
////记录到数据库
//try
//{
// //插入分发详情
// CjlrTaskReleaseDetailModel detailModel = new CjlrTaskReleaseDetailModel
// {
// ModelsName = modelName, // 这里可以根据需要填写车型名称
// ModelsCode = modelCode,
// Position = position, // 这里可以根据需要填写位置
// SourceFile = "",
// TargetFile = "",
// TaskFileName = "",
// TaskStatus = 2, // 假设1表示已处理, 2表示未处理
// TaskDetail = $"源文件地址不存在或错误: {sourceDir}",
// CreateDate = DateTime.Now
// };
// _dal.InsertTaskDetail(detailModel);
//}
//catch (Exception ex)
//{
// Trace($"[ProcessFiles] 记录错误到数据库失败: {ex.Message}");
//}
}
}
}
@@ -82,7 +92,7 @@ namespace NSAnalysis
DataTable dt = _dal.SelectTaskByCondition("", "", "start");
//打印 dt
PrintDataTable(dt);
//PrintDataTable(dt);
if (dt == null || dt.Rows.Count == 0)
{
Trace("未发现移动任务.");
@@ -116,12 +126,24 @@ namespace NSAnalysis
// 解析入库
AnalysisNxsCSV(file);
if (!ConfigDfn.iEnableSort)
{
return;
}
// 分发逻辑
if (MatchCsvValue(file, matchStr, readRowIndex, readColIndex))
{
string destFile = Path.Combine(targetDir, Path.GetFileName(file));
if (File.Exists(destFile))
{
// 生成备份文件名,格式如:xxx.csv.bak_20240613_153012
string backupFile = destFile + ".bak_" + DateTime.Now.ToString("yyyyMMdd_HHmmss");
File.Move(destFile, backupFile);
Trace($"目标文件已存在,已重命名为备份文件: {backupFile}");
}
File.Move(file, destFile);
Trace($"移动完成,: {file} -> {destFile}");
emitProcessStep($"---> 5、文件移动完成: -> {destFile}");
//插入分发详情
CjlrTaskReleaseDetailModel detailModel = new CjlrTaskReleaseDetailModel
@@ -141,6 +163,7 @@ namespace NSAnalysis
else
{
Trace($"未匹配到文件: {file}");
emitProcessStep($"---> 5、未匹配到文件: {file}");
//记录到数据库
CjlrTaskReleaseDetailModel detailModel = new CjlrTaskReleaseDetailModel
@@ -177,6 +200,8 @@ namespace NSAnalysis
/// <returns>匹配成功返回true,否则false</returns>
public static bool MatchCsvValue(string filePath, string targetValue, int rowIndex, int colIndex)
{
// 记录日志 输入
MyBase.TraceWriteLine($"[MatchCsvValue] 检查文件: {filePath}, 行索引: {rowIndex}, 列索引: {colIndex}, 目标值: {targetValue}");
try
{
string[] lines = File.ReadAllLines(filePath);
@@ -200,27 +225,66 @@ namespace NSAnalysis
}
}
// 编写一个打印 DataTable 对象的方法,输入是对象
public static void PrintDataTable(DataTable dt)
// 生成单侧统计信息的方法
private void GenerateSingleSideStatistics(string GroupName, string Position)
{
if (dt == null || dt.Rows.Count == 0)
#region
DataTable sampleData = _dal.SelectMeasureResultByCarID(ConfigDfn.strEquipNo, GroupName);
if (sampleData == null || sampleData.Rows.Count == 0)
{
MyBase.TraceWriteLine("[PrintDataTable] DataTable is empty or null.");
MyBase.TraceWriteLine("没有测量数据,无法生成统计信息。");
// 触发日志事件
emitProcessStep(Position + " 没有测量数据,无法生成统计信息。");
return;
}
foreach (DataColumn column in dt.Columns)
// 提取分析结果
AnalysisResult analysis = AnalysisResult.AnalyzeMeasureData(sampleData);
//AnalysisResult.DisplayAnalysisResult(analysis);
//表格行数
int dtRowCount = analysis.TotalCount;
//超差个数
double OutCount = analysis.OutCount;
//Ok个数
double OKCount = analysis.OKCount;
//异常个数
double RejectedCount = analysis.RejectedCount;
//合格率
double FPYPercent = analysis.FPYPercent;
TMeasureResultModel tmrm = new TMeasureResultModel();
FPYPercent = OKCount / (OKCount + OutCount);
if (FPYPercent >= ConfigDfn.dFPY)
{
Console.Write($"{column.ColumnName}\t");
tmrm.Result = 1;
}
MyBase.TraceWriteLine("");
foreach (DataRow row in dt.Rows)
else if (FPYPercent >= ConfigDfn.dFPY2 && FPYPercent < ConfigDfn.dFPY)
{
foreach (var item in row.ItemArray)
{
Console.Write($"{item}\t");
}
MyBase.TraceWriteLine("");
tmrm.Result = 1;
}
else
{
tmrm.Result = 2;
}
tmrm.CarID = ConfigDfn.strEquipNo;
tmrm.CarType = ConfigDfn.strCarModel;
tmrm.SumMeasureItems = dtRowCount;
tmrm.GoodMeasureItems = (int)OKCount;
tmrm.NoGoodMeasureItems = (int)OutCount;
tmrm.RejectMeasureItems = (int)RejectedCount;
tmrm.FPY = FPYPercent.ToString("F4");
tmrm.Remark = Position; //区分左右侧
tmrm.MeasureDate = ConfigDfn.strMeasureTime;
_dal.InsertTMeasureResult(tmrm);
MyBase.TraceWriteLine("将总结果插入数据库完毕。");
emitProcessStep($"---> 3、统计信息已生成: 位置: {Position}, 总测量项: {dtRowCount}, 合格项: {OKCount}, 不合格项: {OutCount}, 异常项: {RejectedCount}, FPY: {FPYPercent:F4}");
#endregion
}
// 导入CSV文件到数据库
@@ -228,6 +292,18 @@ namespace NSAnalysis
{
var records = new List<CJLR_MeaDataModel>();
var lineNo = 0; // 行号计数器
var groupName = string.Empty; // 组名变量
var position = string.Empty; // 位置变量
emitProcessStep($"正在处理: {filePath}");
// 判断文件是否已经处理过
if (_dal.IsFileProcessed(filePath))
{
MyBase.TraceWriteLine($"文件已处理过,跳过: {filePath}");
emitProcessStep($"---> 2、文件已处理过,跳过: {filePath}");
return;
}
try
{
@@ -310,13 +386,35 @@ namespace NSAnalysis
// 获取车号
MyBase.TraceWriteLine("--------------------------------------------------------");
ConfigDfn.strEquipNo = firstRecord.ProductNum;
MyBase.TraceWriteLine("车号:" + ConfigDfn.strEquipNo);
//获取车型
ConfigDfn.strCarModel = firstRecord.Model;
ConfigDfn.strCarModel = firstRecord.Model; //获取车型
MyBase.TraceWriteLine("车型:" + ConfigDfn.strCarModel);
// 从 firstRecord.GroupName 中提取位置 ,使用下划线分隔 例如:X540_R,提取 R 作为位置
groupName = firstRecord.GroupName;
MyBase.TraceWriteLine("组名:" + firstRecord.GroupName);
// 如果 GroupName 为空,则使用默认位置
if (string.IsNullOrEmpty(firstRecord.GroupName))
{
MyBase.TraceWriteLine("组名为空,使用默认位置。");
ConfigDfn.strEquipPosition = "Default"; // 默认位置
}
else
{
// 使用下划线分隔 GroupName,提取最后一部分作为位置
var parts2 = firstRecord.GroupName.Split('_');
ConfigDfn.strEquipPosition = parts2.Length > 1 ? parts2[parts2.Length - 1] : firstRecord.GroupName; // 如果没有下划线,直接使用原值
}
// 打印提取后位置
MyBase.TraceWriteLine("位置:" + ConfigDfn.strEquipPosition);
MyBase.TraceWriteLine("测量时间:" + ConfigDfn.strMeasureTime);
emitProcessStep($"---> 1、解析到, 车号:{ConfigDfn.strEquipNo} 车型:{ConfigDfn.strCarModel} 位置:{ConfigDfn.strEquipPosition} 测量时间:{ConfigDfn.strMeasureTime}");
}
else
{
@@ -338,15 +436,28 @@ namespace NSAnalysis
// 逐条插入数据到数据库
foreach (var record in records)
{
_dal.InsertCJLRMeaData(record);
_dal.InsertOrUpdateCJLRMeaData(record);
}
MyBase.TraceWriteLine("CSV文件导入到数据库成功!");
// 记录处理文件到数据库
_dal.InsertProcessedFile(filePath);
emitProcessStep($"---> 2、CSV文件导入到数据库成功");
#region
GenerateSingleSideStatistics(groupName, ConfigDfn.strEquipPosition);
#endregion
MyBase.TraceWriteLine("--------------------------------------------------------");
}
catch (Exception ex)
{
MyBase.TraceWriteLine("导入CSV文件时发生错误:" + ex.Message);
emitProcessStep($"---> 2、导入CSV文件时发生错误: {ex.Message}");
}
}
@@ -368,7 +479,25 @@ namespace NSAnalysis
// 解析完成后触发事件
if (!string.IsNullOrEmpty(ConfigDfn.strEquipNo))
{
OnFileParsed?.Invoke(ConfigDfn.strEquipNo);
// 构造 事件参数
Trace($"触发事件,车号: {ConfigDfn.strEquipNo} 位置: {ConfigDfn.strEquipPosition}");
OnFileParsed?.Invoke(ConfigDfn.strEquipNo, ConfigDfn.strEquipPosition);
}
// 每次解析完一个文件后,检查是否有双侧测量结果
bool isMeasureComplete = _dal.HasBothSidesMeasureResult(ConfigDfn.strEquipNo);
if (isMeasureComplete)
{
MyBase.TraceWriteLine("双侧测量结果已完成,开始生成客户报告。");
emitProcessStep($"---> 4、双侧测量结果已完成,开始生成客户报告,车号: {ConfigDfn.strEquipNo}");
// 生成客户报告
GenCustomerReport(ConfigDfn.strEquipNo);
}
else
{
MyBase.TraceWriteLine("双侧测量结果未完成,跳过客户报告生成。");
emitProcessStep($"---> 4、双侧测量结果未完成,跳过客户报告生成,车号: {ConfigDfn.strEquipNo}");
}
}
catch (Exception ex)
@@ -377,76 +506,102 @@ namespace NSAnalysis
}
}
private void GenCustomerReport()
// 生成客户报告函数
private void GenCustomerReport(string strCarID)
{
//#region 解析完报告后,重新生成客户模板报告
// 从数据库获取测量数据
DataTable dtCSVContent = _dal.SelectPointDimensionByCarID(strCarID);
//string filePath = strSaveReprotPath + DateTime.Now.ToString("yyyyMMddHHmmss") + "_" + strCarID + ".csv"; //wsp 后期还要再改
//string strWithoutLCarVin = strCarID.Substring(1);
//StringBuilder sb = new StringBuilder();
////添加表头
//sb.Append("Measurement Info Name");
//sb.Append(",");
//sb.Append("Measurement Info");
//sb.AppendLine();
//sb.Append("Date_Time");
//sb.Append(",");
//sb.Append(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss"));
//sb.AppendLine();
//for (int i = 0; i < listCSVTitleInfo.Count; i++)
//{
// if (listCSVTitleInfo[i].Contains("prodnum"))
// {
// listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace("prodnum", "Part_ident");
// }
// if (listCSVTitleInfo[i].Contains(strWithoutLCarVin))
// {
// listCSVTitleInfo[i] = listCSVTitleInfo[i].Replace(strWithoutLCarVin, strCarID);
// }
// sb.Append(listCSVTitleInfo[i]);
// sb.AppendLine();
//}
//sb.AppendLine();
//sb.AppendLine();
//sb.AppendLine();
//sb.AppendLine();
//sb.AppendLine();
////添加测量数据
//sb.Append("Characteristic");
//sb.Append(",");
//sb.Append("Extension");
//sb.Append(",");
//sb.Append("Measured_Value");
//sb.AppendLine();
//foreach (DataRow row in dtCSVContent.Rows)
//{
// sb.Append(row.ItemArray[2]);
// sb.Append(",");
// sb.Append(row.ItemArray[3]);
// sb.Append(",");
// sb.Append(row.ItemArray[7]);
// sb.AppendLine();
//}
if (dtCSVContent == null || dtCSVContent.Rows.Count == 0)
{
MyBase.TraceWriteLine("没有找到测量数据,无法生成客户报告。");
return;
}
//sb.Append("POP");
//sb.Append(",");
//sb.Append("P");
//sb.Append(",");
//sb.Append(Math.Round(FPYPercent * 100.00d, 2).ToString("F2"));
//sb.AppendLine();
//// 将数据写入CSV文件
//File.WriteAllText(filePath, sb.ToString());
//MyBase.TraceWriteLine("客户csv报告生成完毕,路径为:" + filePath);
// 生成报告
string fileName = strCarID + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".csv";
//#endregion 解析完报告后,重新生成客户模板报告
// 确保报告路径存在
if (!Directory.Exists(ConfigDfn.strReportPath))
{
Directory.CreateDirectory(ConfigDfn.strReportPath);
MyBase.TraceWriteLine($"创建报告目录: {ConfigDfn.strReportPath}");
}
string savePath = Path.Combine(ConfigDfn.strReportPath, fileName);
GenerateCsvReport(strCarID, dtCSVContent, ConfigDfn.strCSVReportTemplatePath, savePath);
MyBase.TraceWriteLine($"客户报告已生成: {savePath}");
emitProcessStep($"---> 5、客户报告已生成: {savePath}");
}
// 生成CSV报告函数
private void GenerateCsvReport(string strCarID, DataTable measureData, string templatePath, string savePath)
{
// 读取模板内容
var templateLines = File.ReadAllLines(templatePath);
StringBuilder sb = new StringBuilder();
// 替换模板中的变量
foreach (var line in templateLines)
{
string replaced = line
.Replace("{DateTime}", DateTime.Now.ToString("yyyy/MM/dd HH:mm"))
.Replace("{CarID}", strCarID);
sb.AppendLine(replaced);
}
// 空行分隔
sb.AppendLine();
sb.AppendLine();
// 添加测量数据表头
sb.AppendLine("Characteristic,Extension,Measured_Value");
// 添加测量数据内容
foreach (DataRow row in measureData.Rows)
{
sb.AppendFormat("{0},{1},{2}\n",
row["PointName"], row["DimensionName"], row["DimensionValue"]);
}
// 可根据实际需求添加统计行 sb.AppendLine("POP,P,99.99");
// 写入文件
File.WriteAllText(savePath, sb.ToString(), Encoding.UTF8);
}
// 日志记录方法
private void Trace(string msg)
{
OnLog?.Invoke(msg);
MyBase.TraceWriteLine(msg); // 保持原有日志
}
// 打印 DataTable 对象的方法,输入是对象
public static void PrintDataTable(DataTable dt)
{
if (dt == null || dt.Rows.Count == 0)
{
Console.WriteLine("[PrintDataTable] DataTable is empty or null.");
return;
}
foreach (DataColumn column in dt.Columns)
{
Console.WriteLine($"{column.ColumnName}\t");
}
Console.WriteLine("");
foreach (DataRow row in dt.Rows)
{
foreach (var item in row.ItemArray)
{
Console.WriteLine($"{item}\t");
}
Console.WriteLine("");
}
}
// 测试方法
public void test()
{
+231 -4
View File
@@ -4,8 +4,6 @@ using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Windows.Forms;
using Telerik.WinControls;
namespace NSAnalysis.DAL
{
@@ -34,6 +32,7 @@ namespace NSAnalysis.DAL
return dt;
}
// 查询指定车辆ID的测量结果
public DataTable SelectTMeasureResultByTime(string strCarID, string strStartTime, string strEndTime)
{
DataTable dt = new DataTable();
@@ -98,6 +97,43 @@ namespace NSAnalysis.DAL
}
// 从CJLR_MeaData 中查询 总测量项 Good测量项 NoGood测量项 Reject测量项 FPY
public DataTable SelectMeasureResultByCarID(string strCarID,string strGroupName)
{
string strSql = @"
SELECT
ProductNum AS CarID,
COUNT(*) AS TotalCount,
SUM(CASE WHEN UPPER(Classification) IN ('OK','OK ','Acceptable','Acceptable ') THEN 1 ELSE 0 END) AS PassCount,
SUM(CASE WHEN UPPER(Classification) IN ('NG1','NG1 ','NG2','NG2 ') THEN 1 ELSE 0 END) AS NGCount,
SUM(CASE WHEN Classification = 'Rejected' THEN 1 ELSE 0 END) AS RejectCount,
CAST(
SUM(CASE WHEN UPPER(Classification) IN ('OK','OK ','Acceptable','Acceptable ') THEN 1 ELSE 0 END) AS FLOAT
) /
NULLIF(
SUM(CASE WHEN UPPER(Classification) IN ('NG1','NG1 ','NG2','NG2 ','OK','OK ','ACCEPTABLE','ACCEPTABLE ','Rejected') THEN 1 ELSE 0 END),
0
) * 100 AS FPY
FROM CJLR.dbo.CJLR_MeaData
WHERE ProductNum = @CarID and GroupName = @GroupName
GROUP BY ProductNum
";
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@CarID", strCarID),
new SqlParameter("@GroupName", strGroupName)
};
DataTable dt = SQLHelper.ExecuteQuery(strSql, parameters, CommandType.Text);
return dt;
}
public DataTable SelectMeasureResultByCarID(string strCarID)
{
string strSql = @"
@@ -125,18 +161,19 @@ NULLIF(
SqlParameter[] parameters = new SqlParameter[]
{
new SqlParameter("@CarID", strCarID)
};
DataTable dt = SQLHelper.ExecuteQuery(strSql, parameters, CommandType.Text);
return dt;
}
// 每个测量点的上下限和偏差分析(包含合并的测量时间)
public DataTable SelectMeasureDataByCarID(string strCarID)
{
string strSql = @"SELECT
PointName,
Model,
DimensionName,
DimensionValue,
NominalValue,
@@ -199,6 +236,39 @@ ProductNum,
return SQLHelper.ExecuteQuery(strSql.ToString(), parameters.ToArray(), CommandType.Text);
}
// check 是否有左右两侧的测量结果
public bool HasBothSidesMeasureResult(string carId)
{
string sql = @"
SELECT CASE
WHEN COUNT(DISTINCT Remark) = 2 THEN 1
ELSE 0
END AS HasBothSides
FROM CJLR.dbo.TMeasureResult
WHERE CarID = @CarID AND Remark IN ('L', 'R')";
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@CarID", carId)
};
DataTable dt = SQLHelper.ExecuteQuery(sql, paras, CommandType.Text);
return dt.Rows.Count > 0 && Convert.ToInt32(dt.Rows[0]["HasBothSides"]) == 1;
}
// 查询指定车辆ID的测量点维度数据
public DataTable SelectPointDimensionByCarID(string carId)
{
string sql = @"
SELECT PointName, DimensionName, DimensionValue
FROM CJLR.dbo.CJLR_MeaData
WHERE ProductNum = @CarID
ORDER BY Id";
SqlParameter[] paras = new SqlParameter[]
{
new SqlParameter("@CarID", carId)
};
return SQLHelper.ExecuteQuery(sql, paras, CommandType.Text);
}
#endregion
@@ -328,6 +398,122 @@ ProductNum,
return SQLHelper.ExecuteNonQuery(strSql, paras, CommandType.Text);
}
public int InsertOrUpdateCJLRMeaData(CJLR_MeaDataModel record)
{
// 判断是否存在
string checkSql = @"
SELECT Id FROM CJLR_MeaData
WHERE ProductNum = @ProdNum
AND PointName = @MeasPointName
AND DimensionName = @DimensionName
AND MeasureDate = @Date
AND MeasureTime = @Time";
SqlParameter[] checkParas = new SqlParameter[]
{
new SqlParameter("@ProdNum", record.ProductNum),
new SqlParameter("@MeasPointName", record.PointName),
new SqlParameter("@DimensionName", record.DimensionName),
new SqlParameter("@Date", record.MeasureDate),
new SqlParameter("@Time", record.MeasureTime)
};
DataTable dt = SQLHelper.ExecuteQuery(checkSql, checkParas, CommandType.Text);
if (dt.Rows.Count > 0)
{
// 已存在,执行更新
int id = Convert.ToInt32(dt.Rows[0]["Id"]);
string updateSql = @"
UPDATE CJLR_MeaData SET
GroupName = @MeasGroupName,
Model = @Model,
Station = @Station,
Method = @MeasMethod,
Standard = @TestStandard,
DimensionValue = @DimensionValue,
DimensionUnit = @DimensionUnit,
IsManual = @DimensionManualOverride,
Classification = @DimensionClassification,
ToleranceName0 = @ToleranceName0,
ToleranceLower0 = @ToleranceLower0,
ToleranceUpper0 = @ToleranceUpper0,
ToleranceName1 = @ToleranceName1,
ToleranceLower1 = @ToleranceLower1,
ToleranceUpper1 = @ToleranceUpper1,
NominalValue = @MeasPointNominal,
SequenceNum = @SeqNr,
CreatedAt = @CreatedAt
WHERE Id = @Id";
SqlParameter[] updateParas = new SqlParameter[]
{
new SqlParameter("@MeasGroupName", record.GroupName ?? (object)DBNull.Value),
new SqlParameter("@Model", record.Model ?? (object)DBNull.Value),
new SqlParameter("@Station", record.Station ?? (object)DBNull.Value),
new SqlParameter("@MeasMethod", record.Method ?? (object)DBNull.Value),
new SqlParameter("@TestStandard", record.Standard ?? (object)DBNull.Value),
new SqlParameter("@DimensionValue", record.DimensionValue),
new SqlParameter("@DimensionUnit", record.DimensionUnit ?? (object)DBNull.Value),
new SqlParameter("@DimensionManualOverride", record.IsManual ? 1 : 0),
new SqlParameter("@DimensionClassification", record.Classification ?? (object)DBNull.Value),
new SqlParameter("@ToleranceName0", record.ToleranceName0 ?? (object)DBNull.Value),
new SqlParameter("@ToleranceLower0", record.ToleranceLower0),
new SqlParameter("@ToleranceUpper0", record.ToleranceUpper0),
new SqlParameter("@ToleranceName1", record.ToleranceName1 ?? (object)DBNull.Value),
new SqlParameter("@ToleranceLower1", record.ToleranceLower1),
new SqlParameter("@ToleranceUpper1", record.ToleranceUpper1),
new SqlParameter("@MeasPointNominal", record.NominalValue),
new SqlParameter("@SeqNr", record.SequenceNum),
new SqlParameter("@CreatedAt", DateTime.Now),
new SqlParameter("@Id", id)
};
return SQLHelper.ExecuteNonQuery(updateSql, updateParas, CommandType.Text);
}
else
{
// 不存在,执行插入
string insertSql = @"
INSERT INTO CJLR_MeaData (
PointName, GroupName, ProductNum, Model, Station, Method,
Standard, DimensionName, DimensionValue, DimensionUnit,
IsManual, Classification, ToleranceName0,
ToleranceLower0, ToleranceUpper0, ToleranceName1,
ToleranceLower1, ToleranceUpper1, NominalValue, MeasureDate, MeasureTime, SequenceNum,CreatedAt
) VALUES (
@MeasPointName, @MeasGroupName, @ProdNum, @Model, @Station, @MeasMethod,
@TestStandard, @DimensionName, @DimensionValue, @DimensionUnit,
@DimensionManualOverride, @DimensionClassification, @ToleranceName0,
@ToleranceLower0, @ToleranceUpper0, @ToleranceName1,
@ToleranceLower1, @ToleranceUpper1, @MeasPointNominal, @Date, @Time, @SeqNr,@CreatedAt
)";
SqlParameter[] insertParas = new SqlParameter[]
{
new SqlParameter("@MeasPointName", record.PointName ?? (object)DBNull.Value),
new SqlParameter("@MeasGroupName", record.GroupName ?? (object)DBNull.Value),
new SqlParameter("@ProdNum", record.ProductNum ?? (object)DBNull.Value),
new SqlParameter("@Model", record.Model ?? (object)DBNull.Value),
new SqlParameter("@Station", record.Station ?? (object)DBNull.Value),
new SqlParameter("@MeasMethod", record.Method ?? (object)DBNull.Value),
new SqlParameter("@TestStandard", record.Standard ?? (object)DBNull.Value),
new SqlParameter("@DimensionName", record.DimensionName ?? (object)DBNull.Value),
new SqlParameter("@DimensionValue", record.DimensionValue),
new SqlParameter("@DimensionUnit", record.DimensionUnit ?? (object)DBNull.Value),
new SqlParameter("@DimensionManualOverride", record.IsManual ? 1 : 0),
new SqlParameter("@DimensionClassification", record.Classification ?? (object)DBNull.Value),
new SqlParameter("@ToleranceName0", record.ToleranceName0 ?? (object)DBNull.Value),
new SqlParameter("@ToleranceLower0", record.ToleranceLower0),
new SqlParameter("@ToleranceUpper0", record.ToleranceUpper0),
new SqlParameter("@ToleranceName1", record.ToleranceName1 ?? (object)DBNull.Value),
new SqlParameter("@ToleranceLower1", record.ToleranceLower1),
new SqlParameter("@ToleranceUpper1", record.ToleranceUpper1),
new SqlParameter("@MeasPointNominal", record.NominalValue),
new SqlParameter("@Date", record.MeasureDate == default ? DateTime.Now : record.MeasureDate),
new SqlParameter("@Time", record.MeasureTime == default ? DateTime.Now.TimeOfDay : record.MeasureTime),
new SqlParameter("@SeqNr", record.SequenceNum),
new SqlParameter("@CreatedAt", DateTime.Now)
};
return SQLHelper.ExecuteNonQuery(insertSql, insertParas, CommandType.Text);
}
}
#endregion
#region Update Function
@@ -405,5 +591,46 @@ ProductNum,
}
#endregion
#region
// 判断文件是否已处理
public bool IsFileProcessed(string fileName)
{
string sql = "SELECT COUNT(*) FROM CJLR_ProcessedFiles WHERE FileName = @FileName";
SqlParameter[] paras = { new SqlParameter("@FileName", fileName) };
DataTable dt = SQLHelper.ExecuteQuery(sql, paras, CommandType.Text);
return dt.Rows.Count > 0 && Convert.ToInt32(dt.Rows[0][0]) > 0;
}
// 记录已处理文件
public int InsertProcessedFile(string fileName, string taskCode = null, string position = null)
{
string sql = @"INSERT INTO CJLR_ProcessedFiles (FileName, TaskCode, Position) VALUES (@FileName, @TaskCode, @Position)";
SqlParameter[] paras = {
new SqlParameter("@FileName", fileName),
new SqlParameter("@TaskCode", (object)taskCode ?? DBNull.Value),
new SqlParameter("@Position", (object)position ?? DBNull.Value)
};
return SQLHelper.ExecuteNonQuery(sql, paras, CommandType.Text);
}
// 获取已处理文件名列表
public List<string> GetProcessedFileNames()
{
string sql = "SELECT FileName FROM CJLR_ProcessedFiles";
DataTable dt = SQLHelper.ExecuteQuery(sql, CommandType.Text);
var list = new List<string>();
foreach (DataRow row in dt.Rows)
{
list.Add(row["FileName"].ToString());
}
return list;
}
#endregion
}
}
+35
View File
@@ -0,0 +1,35 @@
using System;
namespace NSAnalysis.Model
{
public class CJLR_MeaDataModel
{
public int Id { get; set; }
public string PointName { get; set; }
public string GroupName { get; set; }
public string ProductNum { get; set; }
public string Model { get; set; }
public string Station { get; set; }
public string Method { get; set; }
public string Standard { get; set; }
public string DimensionName { get; set; }
public string DimensionValue { get; set; }
public string DimensionUnit { get; set; }
public bool IsManual { get; set; }
public string Classification { get; set; }
public string ToleranceName0 { get; set; }
public string ToleranceLower0 { get; set; }
public string ToleranceUpper0 { get; set; }
public string ToleranceName1 { get; set; }
public string ToleranceLower1 { get; set; }
public string ToleranceUpper1 { get; set; }
public string NominalValue { get; set; }
public DateTime MeasureDate { get; set; }
public TimeSpan MeasureTime { get; set; }
public int SequenceNum { get; set; }
public DateTime CreatedAt { get; set; }
// 位置
public string Position { get; set; }
}
}
@@ -56,6 +56,5 @@
/// Remark 备注
/// </summary>
public string Remark { get; set; }
}
}
+1 -5
View File
@@ -14,8 +14,7 @@ namespace NSAnalysis.DAL
public static int iFlag = 0;
private static SqlConnection GetConn()
private static SqlConnection GetConn()
{
conn = new SqlConnection(connStr);
try
@@ -36,8 +35,6 @@ namespace NSAnalysis.DAL
// 这里建议抛出异常而不是返回未打开的连接
throw;
}
}
#region SQL语句或存储过程 int类型
@@ -97,7 +94,6 @@ namespace NSAnalysis.DAL
return res;
}
#endregion SQL语句或存储过程 int类型
#region SQL语句或存储过程 DataTable类型
+52 -25
View File
@@ -52,7 +52,7 @@ namespace NSAnalysis
public static string strSkinName = "";
public static string strHelpDocumentName = "";
public static int iDeleteFlieTime;
public static string strImagePath = "";
/// <summary>
@@ -84,8 +84,8 @@ namespace NSAnalysis
public static double dFPY2 = 0.6;
public static string strCarModel = ""; //车型
public static string strEquipNo = "";
public static string strEquipName = "";
public static string strEquipNo = ""; // 车号
public static string strEquipPosition = ""; //位置
public static string strIOTAddress = "";
public static string strIOTCarTypeAddress = "";
public static int iStartIOTFlag = 1;
@@ -93,15 +93,17 @@ namespace NSAnalysis
public static string strShowCarLR = "";
public static string strCOMPort = "";
public static int iCreateReportFlag = 0;
public static bool iEnableSort = false;
public static string strStationName = "";
public static string strUploadPath = "";
public static string strUploadPath2 = "";
public static double dLevel2 = 1.5;
public static double dLevel3 = 2.0;
public static string strReportPath = "";
public static string strReportPath2 = "";
public static string strReportPath = ""; //保存CSV报告的路径
// csv报告模板路径
public static string strCSVReportTemplatePath = Application.StartupPath + "\\File\\CSVReportTemplate.csv";
/// <summary>
/// 公差带百分比
@@ -122,34 +124,56 @@ namespace NSAnalysis
{
string strSection = "";
#region
strSection = "Chery";
iDeleteFlieTime = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "DeleteDebugFileIntervalTime");
strSkinName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ConfigSkinName");
strTheme += strSkinName;
strHelpDocumentName = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "SoftwareHelpDocument");
strImagePath = strImageFile + FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "CNCPictureName");
bLanguage = FileIni.ReadBool(ConfigDfn.strConfigFile, strSection, "Language", 0);
bRememberMe = FileIni.ReadBool(ConfigDfn.strConfigFile, strSection, "RememberMe", 0);
strNextSenseCSVEH3Path = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "NextsenseCSVEH3Path");
//密码
strPwd = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "Password");
iCreateReportFlag = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "CreateReportFlag");
strUploadPath = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "tavascanUploadPath");
strUploadPath2 = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "blacklabelUploadPath");
dLevel2 = double.Parse(FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "Level2Times"));
dLevel3 = double.Parse(FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "Level3Times"));
strReportPath = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ReportCSVPath");
strReportPath2 = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ReportCSVPath2");
// 启用分发功能
iEnableSort = FileIni.ReadBool(ConfigDfn.strConfigFile, strSection, "EnableSort");
// 启用解析
iAnalysisCSVFlag = FileIni.ReadInt(ConfigDfn.strConfigFile, strSection, "AnalysisCSVFlag");
iRecordEncoderFlag = FileIni.ReadInt(strConfigFile, strSection, "RecordEncoderFlag");
iIncludeRangeFlag = FileIni.ReadInt(strConfigFile, strSection, "IncludeRangeFlag");
iMeasureItemsCount = FileIni.ReadInt(strConfigFile, strSection, "MeasureCarItemsCount");
// 保存报告
strReportPath = FileIni.ReadString(ConfigDfn.strConfigFile, strSection, "ReportCSVPath");
}
#endregion
// 保存配置,从全局变量中读取数据,写入到配置文件中
public static void SaveConfig()
{
try
{
MyBase.TraceWriteLine("保存配置文件——>开始");
if (File.Exists(strConfigFile))
{
string strSection = "Chery";
FileIni.WriteString(strConfigFile, strSection, "ConfigSkinName", strSkinName);
FileIni.WriteString(strConfigFile, strSection, "SoftwareHelpDocument", strHelpDocumentName);
FileIni.WriteString(strConfigFile, strSection, "CNCPictureName", Path.GetFileName(strImagePath));
FileIni.WriteBool(strConfigFile, strSection, "Language", bLanguage);
FileIni.WriteBool(strConfigFile, strSection, "RememberMe", bRememberMe );
FileIni.WriteString(strConfigFile, strSection, "Password", strPwd);
FileIni.WriteBool(strConfigFile, strSection, "EnableSort", iEnableSort);
FileIni.WriteInt(strConfigFile, strSection, "AnalysisCSVFlag", iAnalysisCSVFlag);
FileIni.WriteString(strConfigFile, strSection, "ReportCSVPath", strReportPath);
MyBase.TraceWriteLine("保存配置文件——>完成");
}
else
{
MyBase.TraceWriteLine("配置文件不存在!");
}
}
catch (Exception ex)
{
MyBase.TraceWriteLine("保存配置文件错误:" + ex.ToString());
}
}
public static void LoadConfigFile()
@@ -159,9 +183,8 @@ namespace NSAnalysis
MyBase.TraceWriteLine("加载配置文件——>开始");
if (File.Exists(strConfigFile))
{
LoadConfig();
DatabaseDfn.LoadConfig();
LoadConfig(); //加载软件配置
DatabaseDfn.LoadConfig(); //加载数据库配置
MyBase.TraceWriteLine("加载配置文件——>完成");
}
else
@@ -184,6 +207,10 @@ namespace NSAnalysis
if (!Directory.Exists(ConfigDfn.strDFQFolder))
Directory.CreateDirectory(ConfigDfn.strDFQFolder);
//创建保存报告的路径
if (!Directory.Exists(ConfigDfn.strReportPath))
Directory.CreateDirectory(ConfigDfn.strReportPath);
#endregion
}
catch (Exception ex)
+129 -389
View File
@@ -2,9 +2,9 @@
using NSAnalysis.DAL;
using NSAnalysis.Model;
using NSAnalysis.Properties;
using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.IO;
@@ -23,8 +23,6 @@ namespace NSAnalysis
#region
private int[] yValues = new int[3];
private string[] xValues = new string[3];
private DataTable dtCSVContent = new DataTable();
private CjlrDAL tmdal = new CjlrDAL();
@@ -59,6 +57,9 @@ namespace NSAnalysis
#endregion
private Dictionary<Control, PointF> originalRatios = new Dictionary<Control, PointF>();
private Dictionary<Control, SizeF> originalSizes = new Dictionary<Control, SizeF>();
#endregion
#region
@@ -78,7 +79,7 @@ namespace NSAnalysis
{
//初始化全局变量
MyBase.rleMessage = rleMessage;
//MyBase.rleMessage = rleMessage;
rdtpStartTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
rdtpEndTime.Text = DateTime.Now.ToString("yyyy-MM-dd");
@@ -89,7 +90,7 @@ namespace NSAnalysis
// 订阅处理中事件
fileSorter.OnFileParsed += FileSorter_OnFileParsed;
fileSorter.OnProcessStep += FileSorter_OnProcessStep;
//绑定按钮
@@ -107,22 +108,49 @@ namespace NSAnalysis
iLastMesureCount = tmdal.SelectTMeasureResultCount();
#region
ClearLabel(); //清空信息
InitTableColumns();
StoreControlRatios(this);
}
private void FileSorter_OnProcessStep(string obj)
{
if (lbCSVFiles.InvokeRequired)
{
lbCSVFiles.Invoke(new Action<string>(FileSorter_OnProcessStep), obj);
return;
}
// 控件初始化检查
if (lbCSVFiles == null)
return;
// 超过100条时清空
if (lbCSVFiles.Items.Count > 100)
{
lbCSVFiles.Items.Clear();
}
lbCSVFiles.Items.Add(obj);
// 滚动到底部
if (lbCSVFiles.Items.Count > 0)
{
lbCSVFiles.TopIndex = lbCSVFiles.Items.Count - 1;
}
}
private void ClearLabel()
{
labVIN.Text = "";
labOKCount.Text = "";
labNGCount.Text = "";
labRejectCount.Text = "";
labSumMeasureCount.Text = "";
labMeaTime.Text = "";
labResultPercent.Text = "";
labResult.Text = "";
labCarType.Text = "";
#endregion
InitTableColumns();
labOKCount_L.Text = "";
labNGCount_L.Text = "";
labRejectCount_L.Text = "";
labSumMeasureCount_L.Text = "";
labMeaTime_L.Text = "";
}
private void InitTableColumns()
@@ -250,19 +278,18 @@ namespace NSAnalysis
});
}
private void DisplayMeasureData(string strCarID)
private void DisplayMeasureData(string strCarID) // 其中 string strCarID 是车身ID_L 或 车身ID_R
{
try
{
#region
MyBase.TraceWriteLine("正在查询车ID为:" + strCarID + " 的测量结果。");
DataTable sampleData = tmdal.SelectMeasureResultByCarID(strCarID);
if (sampleData == null || sampleData.Rows.Count == 0)
{
MyBase.TraceWriteLine("[DisplayMeasureData] 没有找到车ID为:" + strCarID + " 的测量数据。");
return;
}
AnalysisResult analysis = AnalysisResult.AnalyzeMeasureData(sampleData);
AnalysisResult.DisplayAnalysisResult(analysis);
// 记录正在查询
//AnalysisResult.DisplayAnalysisResult(analysis);
//表格行数
int dtRowCount = analysis.TotalCount;
@@ -274,66 +301,15 @@ namespace NSAnalysis
double RejectedCount = analysis.RejectedCount;
//合格率
double FPYPercent = analysis.FPYPercent;
// 更新统计信息显示
labVIN.Text = strCarID;
labCarType.Text = ConfigDfn.strCarModel;
TMeasureResultModel tmrm = new TMeasureResultModel();
labNGCount.Text = OutCount.ToString();
labOKCount.Text = OKCount.ToString();
labRejectCount.Text = RejectedCount.ToString();
labMeaTime.Text = ConfigDfn.strMeasureTime;
labSumMeasureCount.Text = dtRowCount.ToString();
FPYPercent = OKCount / (OKCount + OutCount);
if (FPYPercent >= ConfigDfn.dFPY)
{
labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%";
labResult.Text = "合格";
labResultPercent.ForeColor = Color.LimeGreen;
labResult.ForeColor = Color.LimeGreen;
pbResult.Image = Resources.OK;
tmrm.Result = 1;
}
else if (FPYPercent >= ConfigDfn.dFPY2 && FPYPercent < ConfigDfn.dFPY)
{
labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%";
labResult.Text = "合格";
labResultPercent.ForeColor = Color.Yellow;
labResult.ForeColor = Color.Yellow;
pbResult.Image = Resources.OK;
tmrm.Result = 1;
}
else
{
labResultPercent.Text = Math.Round(FPYPercent * 100.00d, 2).ToString("F2") + "%";
labResult.Text = "不合格";
labResultPercent.ForeColor = Color.Red;
labResult.ForeColor = Color.Red;
pbResult.Image = Resources.NG;
tmrm.Result = 2;
}
xValues[0] = "合格 : " + OKCount.ToString();
xValues[1] = "不合格 : " + OutCount.ToString();
xValues[2] = "异常 : " + RejectedCount.ToString();
yValues[0] = (int)OKCount;
yValues[1] = (int)OutCount;
yValues[2] = (int)RejectedCount;
chartResultPie.Series[0].Points.DataBindXY(xValues, yValues);
string strTargetRate = Math.Round(ConfigDfn.dFPY2 * 100.00d, 2).ToString("F2") + "%";
tmrm.CarID = strCarID;
tmrm.CarType = ConfigDfn.strCarModel;
tmrm.SumMeasureItems = dtRowCount;
tmrm.GoodMeasureItems = (int)OKCount;
tmrm.NoGoodMeasureItems = (int)OutCount;
tmrm.RejectMeasureItems = (int)RejectedCount;
tmrm.FPY = FPYPercent.ToString("F4");
tmrm.Remark = "";
tmrm.MeasureDate = ConfigDfn.strMeasureTime;
tmdal.InsertTMeasureResult(tmrm);
MyBase.TraceWriteLine("将总结果插入数据库完毕。");
#endregion
//labPosition_L.Text = "左侧";
labOKCount_L.Text = OKCount.ToString();
labNGCount_L.Text = OutCount.ToString();
labRejectCount_L.Text = RejectedCount.ToString();
labSumMeasureCount_L.Text = dtRowCount.ToString();
labMeaTime_L.Text = ConfigDfn.strMeasureTime;
#region
@@ -379,28 +355,18 @@ namespace NSAnalysis
}
}
private void FileSorter_OnFileParsed(string strCarID)
private void FileSorter_OnFileParsed(string strCarID, string Position) //形如
{
// 线程安全更新 UI
if (InvokeRequired)
{
Invoke(new Action<string>(FileSorter_OnFileParsed), strCarID);
Invoke(new Action<string, string>(FileSorter_OnFileParsed), strCarID, Position);
return;
}
// 这里可以更新界面控件,例如 ListBox、Label 等
// 例如:listBoxParsedFiles.Items.Add(fileName);
// 或 rleMessage.Text = $"已解析: {fileName}";
rleMessage.Text = $"已解析: {strCarID}";
// 显示数据, 此时为左侧或右侧数据
// 显示数据 并更新单侧汇总结果, 此时为左侧或右侧数据
DisplayMeasureData(strCarID);
}
/// 通过给定的文件流,判断文件的编码类型
/// <param name="fs">文件流</param>
/// <returns>文件的编码类型</returns>
@@ -816,312 +782,40 @@ namespace NSAnalysis
e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
}
private void tmrMonitorDBToCreateReport_Tick(object sender, EventArgs e)
{
tmrMonitorDBToCreateReport.Stop();
int iCurrentMeasureCount = tmdal.SelectTMeasureResultCount();
if (iCurrentMeasureCount > iLastMesureCount && (iCurrentMeasureCount == (iLastMesureCount + 1)))
{
MyBase.TraceWriteLine("监控数据库,开始生成ipn文件:");
DataTable dtMeaResult = tmdal.SelectNewestTMeasureResult();
string strVIN = dtMeaResult.Rows[0]["CarID"].ToString();
DateTime dateMeaDate = Convert.ToDateTime(dtMeaResult.Rows[0]["Remark"].ToString());
DataTable dtMeaContent = tmdal.SelectCJLRMeaDataByCarID(strVIN);
string strCarType = dtMeaContent.Rows[0][2].ToString();
int iMeaCount = dtMeaContent.Rows.Count;
#region
string filePath = "";
if (strCarType.ToLower().Contains("tava"))
{
filePath = ConfigDfn.strReportPath + "\\" + strCarType + "_" + strVIN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".ipn";
}
else
{
filePath = ConfigDfn.strReportPath2 + "\\" + strCarType + "_" + strVIN + "_" + DateTime.Now.ToString("yyyyMMddHHmmss") + ".ipn";
}
StringBuilder sb = new StringBuilder();
#region
sb.Append("GAUGE ID");
sb.Append("\t");
sb.Append("JSN");
sb.Append("\t");
sb.Append("MO");
sb.Append("\t");
sb.Append("DAY");
sb.Append("\t");
sb.Append("YR");
sb.Append("\t");
sb.Append("HR");
sb.Append("\t");
sb.Append("MIN");
sb.Append("\t");
sb.Append("SEC");
sb.Append("\t");
sb.Append("MODEL");
sb.Append("\t");
sb.Append("AuxID1");
sb.Append("\t");
sb.Append("AuxID2");
sb.Append("\t");
sb.Append("QUAL");
sb.Append("\t");
sb.Append("SHIFT");
sb.Append("\t");
sb.Append("DATA TYPE");
sb.Append("\t");
sb.Append("FIXTURE");
sb.Append("\t");
for (int i = 0; i < iMeaCount / 2; i++)
{
string strMeaPointName = dtMeaContent.Rows[i * 2]["MeasPointName"].ToString();
string strMPF = strMeaPointName + " Flush";
string strMPG = strMeaPointName + " Gap";
sb.Append("D " + strMPF);
sb.Append("\t");
sb.Append("D " + strMPG);
sb.Append("\t");
sb.Append("B " + strMPF);
sb.Append("\t");
sb.Append("B " + strMPG);
sb.Append("\t");
sb.Append("A " + strMPF);
sb.Append("\t");
sb.Append("A " + strMPG);
sb.Append("\t");
sb.Append("US " + strMPF);
sb.Append("\t");
sb.Append("LS " + strMPF);
sb.Append("\t");
sb.Append("US " + strMPG);
sb.Append("\t");
sb.Append("LS " + strMPG);
sb.Append("\t");
sb.Append("UR " + strMPF);
sb.Append("\t");
sb.Append("LR " + strMPF);
sb.Append("\t");
sb.Append("UR " + strMPG);
sb.Append("\t");
sb.Append("LR " + strMPG);
sb.Append("\t");
sb.Append("UT " + strMPF);
sb.Append("\t");
sb.Append("LT " + strMPF);
sb.Append("\t");
sb.Append("UT " + strMPG);
sb.Append("\t");
sb.Append("LT " + strMPG);
sb.Append("\t");
}
#endregion
sb.AppendLine();
#region
sb.Append(ConfigDfn.strStationName);
sb.Append("\t");
sb.Append(strVIN);
sb.Append("\t");
sb.Append(dateMeaDate.Month.ToString());
sb.Append("\t");
sb.Append(dateMeaDate.Day.ToString());
sb.Append("\t");
sb.Append(dateMeaDate.Year.ToString().Substring(2));
sb.Append("\t");
sb.Append(dateMeaDate.Hour.ToString());
sb.Append("\t");
sb.Append(dateMeaDate.Minute.ToString());
sb.Append("\t");
sb.Append(dateMeaDate.Second.ToString());
sb.Append("\t");
if (strCarType.ToLower().Contains("tava"))
sb.Append(ConfigDfn.strUploadPath);
else
{
sb.Append(ConfigDfn.strUploadPath2);
}
sb.Append("\t");
sb.Append("Unknow");
sb.Append("\t");
sb.Append("Unknow");
sb.Append("\t");
sb.Append("2");
sb.Append("\t");
sb.Append("");
sb.Append("\t");
sb.Append("AUTO");
sb.Append("\t");
sb.Append("NONE");
sb.Append("\t");
double dDevFVal = 0;
double dDevGVal = 0;
double dMeaFVal = 0;
double dMeaGVal = 0;
double dNorFVal = 0;
double dNorGVal = 0;
double dFUpper = 0;
double dFLower = 0;
double dGUpper = 0;
double dGLower = 0;
double dFUpper2 = 0;
double dFLower2 = 0;
double dGUpper2 = 0;
double dGLower2 = 0;
double dFUpper3 = 0;
double dFLower3 = 0;
double dGUpper3 = 0;
double dGLower3 = 0;
for (int i = 0; i < iMeaCount / 2; i++)
{
string strMeasureFValue = dtMeaContent.Rows[i * 2]["MeasureValue"].ToString();
string strMeasureGValue = dtMeaContent.Rows[i * 2 + 1]["MeasureValue"].ToString();
string strNormalFValue = dtMeaContent.Rows[i * 2]["NormalValue"].ToString();
string strNormalGValue = dtMeaContent.Rows[i * 2 + 1]["NormalValue"].ToString();
dNorFVal = double.Parse(strNormalFValue);
dNorGVal = double.Parse(strNormalGValue);
dFUpper = double.Parse(dtMeaContent.Rows[i * 2]["UpperTolVal"].ToString());
dFLower = double.Parse(dtMeaContent.Rows[i * 2]["LowerTolVal"].ToString());
dGUpper = double.Parse(dtMeaContent.Rows[i * 2 + 1]["UpperTolVal"].ToString());
dGLower = double.Parse(dtMeaContent.Rows[i * 2 + 1]["LowerTolVal"].ToString());
dFUpper2 = dFUpper * ConfigDfn.dLevel2;
dFLower2 = dFLower * ConfigDfn.dLevel2;
dGUpper2 = dGUpper * ConfigDfn.dLevel2;
dGLower2 = dGLower * ConfigDfn.dLevel2;
dFUpper3 = dFUpper * ConfigDfn.dLevel3;
dFLower3 = dFLower * ConfigDfn.dLevel3;
dGUpper3 = dGUpper * ConfigDfn.dLevel3;
dGLower3 = dGLower * ConfigDfn.dLevel3;
if (strMeasureFValue.Contains("inv"))
{
sb.Append("inv");
sb.Append("\t");
}
else
{
dMeaFVal = double.Parse(strMeasureFValue);
dDevFVal = dMeaFVal - dNorFVal;
sb.Append(dDevFVal.ToString("F3"));
sb.Append("\t");
}
if (strMeasureGValue.Contains("inv"))
{
sb.Append("inv");
sb.Append("\t");
}
else
{
dMeaGVal = double.Parse(strMeasureGValue);
dDevGVal = dMeaGVal - dNorGVal;
sb.Append(dDevGVal.ToString("F3"));
sb.Append("\t");
}
sb.Append(strNormalFValue);
sb.Append("\t");
sb.Append(strNormalGValue);
sb.Append("\t");
sb.Append(strMeasureFValue);
sb.Append("\t");
sb.Append(strMeasureGValue);
sb.Append("\t");
sb.Append(dFUpper.ToString("F3"));
sb.Append("\t");
sb.Append(dFLower.ToString("F3"));
sb.Append("\t");
sb.Append(dGUpper.ToString("F3"));
sb.Append("\t");
sb.Append(dGLower.ToString("F3"));
sb.Append("\t");
sb.Append(dFUpper2.ToString("F3"));
sb.Append("\t");
sb.Append(dFLower2.ToString("F3"));
sb.Append("\t");
sb.Append(dGUpper2.ToString("F3"));
sb.Append("\t");
sb.Append(dGLower2.ToString("F3"));
sb.Append("\t");
sb.Append(dFUpper3.ToString("F3"));
sb.Append("\t");
sb.Append(dFLower3.ToString("F3"));
sb.Append("\t");
sb.Append(dGUpper3.ToString("F3"));
sb.Append("\t");
sb.Append(dGLower3.ToString("F3"));
sb.Append("\t");
}
#endregion
// 将数据写入CSV文件
File.WriteAllText(filePath, sb.ToString());
MyBase.TraceWriteLine("客户定制ipn报告生成完毕,路径为:" + filePath);
#endregion
}
iLastMesureCount = iCurrentMeasureCount;
tmrMonitorDBToCreateReport.Start();
}
private void lpcSoftwareSetup_Click(object sender, EventArgs e)
{
string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消");
if (strInputPwd.Contains("-999.999"))
{
return;
}
else if (strInputPwd == ConfigDfn.strPwd)
//string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消");
//if (strInputPwd.Contains("-999.999"))
//{
// return;
//}
//else if (strInputPwd == ConfigDfn.strPwd)
{
FSoftwareSetup fss = new FSoftwareSetup();
fss.ShowDialog(this);
}
else
{
MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//else
//{
// MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
//}
}
private void lpcToleranceSetup_Click(object sender, EventArgs e)
{
string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消");
if (strInputPwd.Contains("-999.999"))
//string strInputPwd = MyBase.InputBox("密码", "请输入密码 : ", "", "确定", "取消");
//if (strInputPwd.Contains("-999.999"))
//{
// return;
//}
//else if (strInputPwd == ConfigDfn.strPwd)
{
return;
}
else if (strInputPwd == ConfigDfn.strPwd)
{
FToleranceSetup fts = new FToleranceSetup();
FConfigSetup fts = new FConfigSetup();
fts.ShowDialog(this);
}
else
{
MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
//else
//{
// MessageBox.Show("密码错误! ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
//}
}
private void lpcAboutSoftware_Click(object sender, EventArgs e)
@@ -1136,6 +830,52 @@ namespace NSAnalysis
}
#endregion
private void StoreControlRatios(Control container)
{
foreach (Control ctrl in container.Controls)
{
// 存储位置比例
originalRatios.Add(ctrl,
new PointF((float)ctrl.Left / container.Width,
(float)ctrl.Top / container.Height));
// 存储尺寸比例
originalSizes.Add(ctrl,
new SizeF((float)ctrl.Width / container.Width,
(float)ctrl.Height / container.Height));
// 递归处理容器控件
if (ctrl.HasChildren) StoreControlRatios(ctrl);
}
}
private void ScaleControls(Control container)
{
foreach (var item in originalRatios)
{
if (!container.Controls.Contains(item.Key)) continue;
// 调整位置
item.Key.Left = (int)(container.Width * item.Value.X);
item.Key.Top = (int)(container.Height * item.Value.Y);
// 调整大小
if (originalSizes.TryGetValue(item.Key, out SizeF sizeRatio))
{
item.Key.Width = (int)(container.Width * sizeRatio.Width);
item.Key.Height = (int)(container.Height * sizeRatio.Height);
}
// 递归处理容器控件
if (item.Key.HasChildren) ScaleControls(item.Key);
}
}
private void FormMain_Resize(object sender, EventArgs e)
{
ScaleControls(this);
}
}
public class AnalysisResult
+329 -489
View File
File diff suppressed because it is too large Load Diff
-3
View File
@@ -296,9 +296,6 @@
<metadata name="tmSystem.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tmrMonitorDBToCreateReport.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>128, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
+18 -18
View File
@@ -69,8 +69,7 @@
<Prefer32Bit>true</Prefer32Bit>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>
</ApplicationIcon>
<ApplicationIcon>HexagonTransparent.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="Covert, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
@@ -119,7 +118,7 @@
<DependentUpon>AboutSoftwareInfo.cs</DependentUpon>
</Compile>
<Compile Include="BaseUnit\Base.cs" />
<Compile Include="BaseUnit\FileSorter.cs" />
<Compile Include="CjlrForm\FileSorter.cs" />
<Compile Include="BaseUnit\NetworkCopy.cs" />
<Compile Include="BaseUnit\RichTextUnit.cs" />
<Compile Include="DAL\Model\CjlrTaskReleaseDetailModel.cs" />
@@ -141,17 +140,17 @@
<Compile Include="DAL\SQLHelper.cs" />
<Compile Include="DAL\CjlrDAL.cs" />
<Compile Include="DAL\Model\TMeasureResultModel.cs" />
<Compile Include="CjlrForm\FAddTolerance.cs">
<Compile Include="CjlrForm\FAddConfig.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CjlrForm\FAddTolerance.designer.cs">
<DependentUpon>FAddTolerance.cs</DependentUpon>
<Compile Include="CjlrForm\FAddConfig.designer.cs">
<DependentUpon>FAddConfig.cs</DependentUpon>
</Compile>
<Compile Include="CjlrForm\FEditTolerance.cs">
<Compile Include="CjlrForm\FEditConfig.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CjlrForm\FEditTolerance.designer.cs">
<DependentUpon>FEditTolerance.cs</DependentUpon>
<Compile Include="CjlrForm\FEditConfig.designer.cs">
<DependentUpon>FEditConfig.cs</DependentUpon>
</Compile>
<Compile Include="CjlrForm\FSoftwareSetup.cs">
<SubType>Form</SubType>
@@ -159,11 +158,11 @@
<Compile Include="CjlrForm\FSoftwareSetup.designer.cs">
<DependentUpon>FSoftwareSetup.cs</DependentUpon>
</Compile>
<Compile Include="CjlrForm\FToleranceSetup.cs">
<Compile Include="CjlrForm\FConfigSetup.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CjlrForm\FToleranceSetup.designer.cs">
<DependentUpon>FToleranceSetup.cs</DependentUpon>
<Compile Include="CjlrForm\FConfigSetup.designer.cs">
<DependentUpon>FConfigSetup.cs</DependentUpon>
</Compile>
<Compile Include="BaseUnit\ZSFDEMO.cs">
<SubType>Form</SubType>
@@ -193,17 +192,17 @@
<DependentUpon>Resources.resx</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<EmbeddedResource Include="CjlrForm\FAddTolerance.resx">
<DependentUpon>FAddTolerance.cs</DependentUpon>
<EmbeddedResource Include="CjlrForm\FAddConfig.resx">
<DependentUpon>FAddConfig.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CjlrForm\FEditTolerance.resx">
<DependentUpon>FEditTolerance.cs</DependentUpon>
<EmbeddedResource Include="CjlrForm\FEditConfig.resx">
<DependentUpon>FEditConfig.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CjlrForm\FSoftwareSetup.resx">
<DependentUpon>FSoftwareSetup.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CjlrForm\FToleranceSetup.resx">
<DependentUpon>FToleranceSetup.cs</DependentUpon>
<EmbeddedResource Include="CjlrForm\FConfigSetup.resx">
<DependentUpon>FConfigSetup.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="BaseUnit\ZSFDEMO.resx">
<DependentUpon>ZSFDEMO.cs</DependentUpon>
@@ -227,6 +226,7 @@
</ItemGroup>
<ItemGroup>
<!--sirinie -->
<Content Include="HexagonTransparent.ico" />
<Content Include="Images\1024B-2.png" />
<Content Include="Images\cncmachine32.png" />
<Content Include="Images\Dashboard.png" />
+61 -38
View File
@@ -1,6 +1,5 @@
using BaseFunction;
using Microsoft.Win32;
using NSAnalysis;
using System;
using System.Diagnostics;
using System.Runtime.InteropServices;
@@ -83,50 +82,74 @@ namespace NSAnalysis
#endregion Log文件
Application.Run(new FormMain());
//FileSorter fileSorter = new FileSorter();
//fileSorter.test();
//if (gAuthorizationMode == 1)
// {
// MyBase.TraceWriteLine("Log in using the CLMS authorization.");
if (gAuthorizationMode == 1)
{
MyBase.TraceWriteLine("Log in using the CLMS authorization.");
// #region 检测CLMS
#region CLMS
// /////1登陆验证 //验证内容为软件指纹文件中字符串,功能:使用MORCODE.DLL前验证使用软件是否正确,否则其他函数都不可正常调用 StringBuilder
// password = new
// StringBuilder("vravnhNYybkmDkHDPKhVIwbHMoqHktgqWHFkBTOUsZLLVLwaAOkPIFFoVffUnSqUkCApSxrWQmsKvYCdVUpZLOhuHshKFbUPezYYbyQCgUoHrFOaaLVSosAapdVagrfFSqDUzxCvVuSJodxkjBiCJdRUfhCIfyRzjLdTfkxtUHPYUHyQbzOaJFvdSbzLihYmuhLHFNUSbERcAFbnrvNQtZOCUSUnHFcySXzTbfqTgzeaWQrjoSTzEUYDkEUmqusV");
// bool res = CLM_Login(password); if (!res) { MyBase.TraceWriteLine("CLMS Login
// Failed."); MessageBox.Show("CLMS Login fails. Please authorize the user first ",
// "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } /////2检查许可
// //该函数自动检查电脑中是否有当前软件的许可信息,过期/非本机电脑/其他软件 的许可证书都不会识别 res = CLM_Login_Scope(); if (!res)
// { //检查许可失败 MyBase.TraceWriteLine("CLMS check license failed! Please authorize the
// operation."); MessageBox.Show("The CLMS failed to check for permissions. Please
// authorize first ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
// //3获取许可模块是否可用 //输入模块ID验证模块可用性 UInt16 mod = (UInt16)gCLMSModeID;//模块ID UInt16 type = 0;//暂无定义
/////1登陆验证
//验证内容为软件指纹文件中字符串,功能:使用MORCODE.DLL前验证使用软件是否正确,否则其他函数都不可正常调用
StringBuilder password = new StringBuilder("vravnhNYybkmDkHDPKhVIwbHMoqHktgqWHFkBTOUsZLLVLwaAOkPIFFoVffUnSqUkCApSxrWQmsKvYCdVUpZLOhuHshKFbUPezYYbyQCgUoHrFOaaLVSosAapdVagrfFSqDUzxCvVuSJodxkjBiCJdRUfhCIfyRzjLdTfkxtUHPYUHyQbzOaJFvdSbzLihYmuhLHFNUSbERcAFbnrvNQtZOCUSUnHFcySXzTbfqTgzeaWQrjoSTzEUYDkEUmqusV");
bool res = CLM_Login(password);
if (!res)
{
MyBase.TraceWriteLine("CLMS Login Failed.");
MessageBox.Show("CLMS Login fails. Please authorize the user first ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
/////2检查许可
//该函数自动检查电脑中是否有当前软件的许可信息,过期/非本机电脑/其他软件 的许可证书都不会识别
res = CLM_Login_Scope();
if (!res)
{
//检查许可失败
MyBase.TraceWriteLine("CLMS check license failed! Please authorize the operation.");
MessageBox.Show("The CLMS failed to check for permissions. Please authorize first ", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
//3获取许可模块是否可用
//输入模块ID验证模块可用性
UInt16 mod = (UInt16)gCLMSModeID;//模块ID
UInt16 type = 0;//暂无定义
// res = CLM_ModuleIsLicensed(ref mod, ref type);//res true:可用 false:不可用 if (!res) {
// MyBase.TraceWriteLine("The CLMS module is unavailable!");
// MessageBox.Show(mod.ToString() + " The CLMS module is unavailable!", "Error",
// MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
res = CLM_ModuleIsLicensed(ref mod, ref type);//res true:可用 false:不可用
if (!res)
{
MyBase.TraceWriteLine("The CLMS module is unavailable!");
MessageBox.Show(mod.ToString() + " The CLMS module is unavailable!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
// //4获取到期日期 int Year = 0, Month = 0, Day = 0; res = CLM_GetWarrantyExpiration(ref
// Month, ref Day, ref Year); if (!res) { //登陆验证失败 MyBase.TraceWriteLine("Login
// verification failed, authorization time is up, please contact Hexagon company for
// authorization! The maturity time is" + Year.ToString() + "." + Month.ToString() +
// "." + Day.ToString()); MessageBox.Show("Login verification failed, authorization time
// is up, please contact Hexagon company for authorization! The maturity time is" +
// Year.ToString() + "." + Month.ToString() + "." + Day.ToString(), "Error",
// MessageBoxButtons.OK, MessageBoxIcon.Error); return; }
//4获取到期日期
int Year = 0, Month = 0, Day = 0;
res = CLM_GetWarrantyExpiration(ref Month, ref Day, ref Year);
if (!res)
{
//登陆验证失败
MyBase.TraceWriteLine("Login verification failed, authorization time is up, please contact Hexagon company for authorization! The maturity time is" + Year.ToString() + "." + Month.ToString() + "." + Day.ToString());
MessageBox.Show("Login verification failed, authorization time is up, please contact Hexagon company for authorization! The maturity time is" + Year.ToString() + "." + Month.ToString() + "." + Day.ToString(), "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
// if (res) { ConfigDfn.strExpiredTime = Year.ToString() + "-" + Month.ToString() + "-"
// + Day.ToString(); }
if (res)
{
ConfigDfn.strExpiredTime = Year.ToString() + "-" + Month.ToString() + "-" + Day.ToString();
}
// #endregion 检测CLMS
#endregion CLMS
// Application.Run(new FormMain()); } else { MyBase.TraceWriteLine("Log in using the
// original authorization mode."); Licence.GetRegisterInfo(); Licence.Encryption_DLL(); }
}
Application.Run(new FormMain());
}
else
{
MyBase.TraceWriteLine("Log in using the original authorization mode.");
Licence.GetRegisterInfo();
Licence.Encryption_DLL();
}
}
}
public class Licence
@@ -166,7 +189,7 @@ namespace NSAnalysis
foreach (Process instance in processes)
{
string pro = instance.ProcessName;
if (pro.ToLower() == "cheryanalysis")
if (pro.ToLower() == "NSAnalysis")
{
Num++;
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+381
View File
@@ -0,0 +1,381 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="label2.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAABqdJREFUWEe1lnlQE1ccx61HPXEqFEdtx0GtZ1uPTq3V1mPafxjbomO1VVtrj1E7
VfHgMOQggCggoAUUCEqCEIwElQAaslnIJrsBkpAGstlkNxFF28HqqONU7WhFeX27SWg8qFHxN/Mdluzb
9/38fu/93m6/5wkAwAAx6pqytEITue1M5Qbfzy8/JFbroJUVTaEK24UF62vM0UsravKSMancd/vlBsz6
lXLi4qivq1qWTJRihklS9dUVVSWdKlJwwjfk5cU6pXX8UmXT1jlluDZUgt4ano90rVJJu3NNaZ11roSX
A8CWex9GjZlVii9/76i+8K1irDFcgl4elq8FU0tUIF6XCypJEQTg9S0AW+of1LbwbQg1O6besXqKDCsP
K0RvjCjQPhgCzYfmI2CFqgQcNKcBDZPQiTB9XAGlUjngG1XLynly4tjYooYrrClnXICCYQVaMLIQAQWW
NKCiRH0L8HE5MWruUf38KcU6bXhR/aWQfO2dofnerP1640gtWFktg+ZCoKH5zwWwGMMGrjtlDhOLQX/f
T95YVtUcEVnZ/O2YovorsNxd0Lwnc1YjCzVgtrwSZDZlArWLD6DxMwFkN1GhySbnwvVq20+LKogfFyux
Eb5b3thUb5uxTtMSEyHTgZBC9CFz9nq8tAYsh2tfDbNHYPZa5ukVEAPQX4x1DNltYibsNbs+5+OOrO/U
VjRCqpOOlWCv+4Z5IwanZuzQtcVEVZtB+OH6xwAiT5aBjMZMLnNWQQGw5kbHpD0m+pDA6Li0HrHdX3Dc
eH1IPiId8SSAGD0Zsw2zg3flOAgr8kKwmuZruxonzD4YANhJApyKFBLOXB7hcO4ykDfhvPc/OdkMwiT1
/w8QizvAUpUJTD6qhy3Htp0WrK0tBgfhzoeGnLFfjwJkGOkQcSM5TUhQMXycqoDGzjicvBMH51x1uoVL
DJ4jvQPEQQB28Aa0FcyvMILQIi0YffgMt/FOOBJ7Mn8UgC212EiPS8AdHyUaqa1CI9UR7zOOM5Bgh56E
8zWCccU6MPjQUwDi2YegvoTE8xT1IKqqFJ54j5sHAqQ0O6bDrDN24WRrrIF8wBn7tBOaf4/YOHN2PwUN
EA33wk6MAEesad1ql+AhAPa6DrbiMfuev9ONRzr4jc52mPE1WO67geasNuvawNtlOGxj72YOGoBvdPy5
z2SyIcy+NoTh/8Oa+lViSwGJhgNgQ52sa01tzW0e7uj2P8f+9V9v1dnBarUVdlUDd4oGDRBvILv3mFyE
lLRlmC5IsrWM6MYZp6CbPX7lbUkgtiEPLKxQgMkldWDuMaLHNFBwKbjSL6ps6ummoJcgscl5p5jsSMc8
njfPdaLj9WfTmQr77nvJ+AEwX6EEwwsQbsLRMLPeANiNF1ll4trZf54EDZBlcZcXtrZ/pqLpkGMkMzPL
hLasqK69OUFaDUZJ6rjW7A3Av/Yrai3gHW/bPQMATu0QGp3XS8kL0WXUxahsi3t1lsWTIySsv396Er8D
X1IPlfNRAM4clp7dwB/CNh57RNcz9qkACRCAh5PRaRbadcrduabUcSE23cygCYSDa6uoGjOYWqrvAWDl
B/BnzSoGAqzX/AYiZBiXfeB4Vr0CiE3UjOQm15bD9vNEajN9jU9Q9wIn3gLbKarGAtff206sRsN3xqMA
2/V2ru1ek/xXrUD1CgDfVmEZZvp9UaMzehdu3wUn48NjWeDXTr1dsB1rzI5GpYY4XW5XPJYDeNjBv0SG
w6R/jNjYdDDXcpJIxPMAT58D2DGBim3IubUZLbAuq5KvnVlaOtxn7Y0cj2fwHtwTHmukZvemzObaJUdb
D2yXt6XckrcmdctbU66Ute7Vsvd+taBzZW3HtyrIHHM5bNVAye1J9xX2VEpBZiikbTk7N2pk0zZaJYN8
1sGH2pMzWEtnjEPdog6EFtwNfBmhrrwwgzt9k4bhX/YfWBqG1wX/vw3PkT907tT9eHvWp9ZOyTBushcJ
/dk0PsoktgUCNDCJ6xBaeNpv7pXQ3cAkFzZ3FERQlPJV7uG+iNPk9onwc7wYmlAsgOVi/kSdO6VUS/Ov
IHTCfZQWuRBGlIrQoi/wc3unYB2yIezXtu/xFw+lctWAOpr3s5YWKFgAon3/xnp3cjPKCDsamCTUelHG
M5zL/kBDiUN9j/R9EOdzZ+k8yb/At2NlgydJjTKiVtSdVKk/m/kVANjAPs34ScEaMJfVMw3t6bm6s6lp
qEc4R0mJ+26dgwn6qipE706fjsJ1VnvEI8VA/PC3/lOjX79/AdonQT85iOsDAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="PointName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="DimensionName.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="NormalVal.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="LowerTolVal.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="UpperTolVal.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="MeasureValue.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="MeasureDateTime.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="Classification.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="rpvpAnalysis.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAB4AAAAYCAYAAADtaU2/AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AkVCAAngM/SOwAAAoNJREFU
SEu1lsvLTWEUh7cIJQbEwIRipoSRiRiIAf4AxcB1YGJgIkWhFBHKyOQrA5JigmKipIQJGZCJWwauySWX
iOf5etfu/XbrHMftV0/tvd61fr/O2e9+z2kG1GRYAUfgGjyFtwWvrblmj71/rSmwGa7Ce/jxC+yx1xln
f1ujYDlo8h26AbdhS8Hr7rozzuqh10AaC9vgNXQN5Q0shpDX1rJePfTSs69s2A1fIDOS+zANQlPBWtYr
X0HPvuFbIUJvwTG4At9KTd7BKgh5bS3W7XXGWT2s6al3Kr+yF2DjdZgByl16DsJYHsK+gtf1mr2xs/XQ
y7reS2CEJsEliOG9UGsjxFoXN5LPODbhBqilV/SaYVar1eCziIaTMAZC+yHWupyA+XC53Nsb0kOv6DXD
rGFNgIsQi/IRNFgK2+EV1OuBz24lqONgzV5nnNVDr3rGLDObRdDL+HNSq3kEM8Gv72apBb1mzTKz2VUK
f8J5GA0LoNe7nGFmc6Eq+CoMcjQGO0F5RGbrgZ71K2lm+/J72G+ChbAHPkA0ZnyCZaCGIOvRQy899TbD
upnN83Kzw5sid+MZqE26PIDp4I/BnVLrokf9dphh3cz22azxptJRqE0Cd7KGsZvnwkvIevWoZYZ1M5sn
5eYseO6qOXAXapPgIIyHkNeHIOvVQy+ltxnWzWzPU08ejzcPhHul1uUxzIKurLmWzeilp95xuvnq9dwY
GQ6MOPKKJsINyGYyzGzWQ31c9sNPNRu66veJu5i1DoaH3KFZU4bPeByEvD4AWW+GWe3jOgxZU4ZH4SlY
C+7S06WW9WaY1WoePIOs8V9ihlmt/EPm3xP/SXja/A/0NoOspvkJxD7h7QqkS00AAAAASUVORK5CYII=
</value>
</data>
<data name="resource.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAAUAAAAECAYAAABGM/VAAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vAAADrwBlbxySQAAACFJREFUGFdjEHXq/o+OGf4DAbIACDCAAEwCLgADCAEGBgDP4STWpID5ywAAAABJ
RU5ErkJggg==
</value>
</data>
<metadata name="Column2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn1.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn2.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn3.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn4.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn5.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn6.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn7.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="MeasureItemResult.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn9.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn10.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn11.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn12.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn13.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn14.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="dataGridViewTextBoxColumn16.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="SMResult.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="rpvpSearch.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AEGATc06Xu77gAAAihJREFU
WEft1j1rFUEUgOH1IwYLCzEKSSAQVLBRkkZ/gEYs468w1iJoY6ud2gqKIfEXWAh2GhNrP8DYRcEETaNi
YSHq+152YLKe3J1ELiLcAw8sO2fO7MfM7Fb96Mf/GIPYj0MYrXnsOdt6EgdwGlcwjwW8wErNY8/ZZo65
9vnrGMclLOIzfhUy1z72tcaWYx8uwDv7iWiQEva1hrWsWRSHMYfviIomX7FW8zjKSaxlTWt3jUk8RVQk
ccDbOIcjNY89Z1vUJ7H2BMI4jueIOiYvcRY7sAvOfnls2GZO1Dd5hmPYEMN4hKhD4t05gOFd3MNy7S58
eoY5bU/iIRyzEwO4jrbJdgs7YVxEc468wkkY5uZtTY51A3tQnccnRInJF5xBir24hm/I8+5jN8y1T97W
5JiO3VmvUUJuFc5g372PbgRHcQc/kPLe4CBc+/bJa0Qcu1rKTmzGYhZ1d3uCD3iPj8hfnRfgpCy9AFdF
8Stwe3W+uN1GOZpF6StYxzQ6E8EJ0TYJb8I4hddotnvONsPcZntuwyQ0fK8ujSg5cWlNwXDJufTe1vJl
aM6WlmEKNwc3iahD4iaTLiLaiGxr24iceH9sRClO4DGijomTy3Xe3Io91zbxrO0YXWMMTqaSj5EDquRj
ZE1rF4Wfzhn4ONsmZzf2tYa1ij/HebieL2O7PyT23dYPSTOG4D5wFQ/g75d39q7msedsM8dc+/Qk/slP
aT/60aOoqt9oGogfMlqpmgAAAABJRU5ErkJggg==
</value>
</data>
<data name="rpvpSetup.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAB3RJTUUH5AQOAhEQGbTF3QAABH1JREFU
WEe111mobmMcx/FtnnKcDJlFiDLPM+UgQy50RIZSCDdKUUKIQm7IkIgoKQ7HPAtlvJFypSjKPBbKPP8+
613/09rLepe95fzqe1rredd+hv/4nJn/oLXDHeHP8FfLH+H+sF5Y7jo2/BK+Dx+0eP49LA7/m1YJq00e
Z+mS4NS3hc1abmzHrg59rdoyL+0floanw6mhNrJCuC9Y7CwDrU4Jxh4PKxmIHODE8FQwfniYkw4I7wYT
4tdwe9gu7BHeDj+Fg0PJ+HfhvbBf2DrcHHxX83wcjg6jcvJ3Qp3mivB5+87X9fxG2CCUFoZXgt++CO+3
z1+GK4O5vNvEkWFQTMbsPvQHGwdikWeC03wdHgoHhb72CtzzVfg5vBgODbRJeCyYm0uGYqsZtJCPnLwr
Jzww7BrGAsohdgm+XddARxcGcz8fVjcwJAHH558F7hjTgrBlyzoGRrRb4MLfwhkGpokVBJydsoaT97Vj
uCow6Ustj7ZjfutrrVCuvSesEUYl2u2Wz5myJL1OD8+FywKfb9Gye1Af/HZ2qFSkfYNCJThZYlTyXEqJ
dgHH5yWLvxz2bN4m324YBOuKBiIWeCSc07xNtH34JHwTBK+/myW1XXm9OIhiec5cD4YKOBM7XS1uk3cH
qYcHQtWFHYJva/M2d2cwpxTXMy4Nx4UmUDUWtd0HYHp53k01/mV2svibwdhOwYKXh7dCpd0F4brJYyOm
fz38GGodAWnjTVfjI7VdeXWSbpER7QKOz5nPyS3elxhgtZXDzkEZ73bH9YOYOjPcGqxpI80/gk5TGZI0
E+mCbaPA5E7el+B9LZjHARScrcKQfGPNOW9A8NmAgLMBZu9rm/Bq2DzYwJNh2gY2Dcs24DLBHDeEkwMf
d/NfkZHn/Cig+K3ioavzg3xXDW3w2dB1pXmk60nh+rDMBaLSZcILdDUmr4gnPudjOiQIuIsCszu5xQXm
okDnhZsmj41s6IVg7lrHmg7WBMrx4ZrwRKhOdm9wGqo0rEon2gUcn3OJk9fi2wbf7t28TaxW1fXDIDau
DSeEf1zhRLAeoI3qaqK5pMI9HMr/vhU3fF4btfiScG7zNhEracPfhsOCvxuVywQraKn9UqzCOZ08lwl8
LL1sitn53eLdUuxAPwQNbqhXzJKTuMkwl37eb6kkGAWRPBfp3GZhPi+zd6XS1oXkrjB4Fyi5w6mEXFBV
bZr4T5qhG+1DsjH9QKs/zcCQ1H0BYqeuUV1pqfsEjaUaz5D8xufuhU7eVd2mp15IbIA5faT01pVMUxHl
8tYpNJZulyyJA9H+UeDzKt+0ZrglmJvrprrhiCBifShHXaOqYnGLlupZYxF8Jf1CnvtNtAs4zzasy9bi
n4ajwqiOCbUJ6FpuMoJPh9RSdbVuhqhwiow8l2qiXcDxec1jcW1/TrJL8eBU7nB1jdINlWITdu92yqsx
f1N5zswCjs+Z/V9P3pcJhoLFZcJiWqpCpLFIS2MqXF/mGE29+cpNhlsEpfiAZ7VdeV3uUpzKDV0E7Tz/
ez4z8zeeNDGa23P9IwAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="tmSystem.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="tmrMonitorDBToCreateReport.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>128, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>25</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AACt5tMNidzBKYTbviZ92LoOedi5AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAzO/jAbfp2C6J3MGShNu+h3zYujF52LkGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAACS3sYvgtq+anrYuquB2r22ftm7z4DZvKuL3MJWzvDkBM7w5AEAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAbtSzA3nXuWh82Lqnedi5rI7dxGaB2r3Hfdi734DZvbuf4sx4jt3DNn7Z
uxIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB01bYieNe4nXrYudR52LmsmODJIoPavqJ72Lrpedi5/H3Y
u9Z92LqEfdi6TYjbwCaX4MgIl+DIAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIfbwHp+2bvQedi55XnYuawAAAAAf9m8XXzY
urR52Ln/edi5/3nYuf982LrZgtm9mJfgyCCX4MgGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIbbvweG278aftm733vYufh52Lnledi5rAAA
AACN3MITiNvAZ3rYueh52Ln/edi5/3nYuft62Ln0ftm744Tavo6N3cNDld/HCgAAAAAAAAAAAAAAAAAA
AAAAAAAA2cuMB9fIhRXTwnUw08J1MNPCdTDTwnUw08J1MNPCdTDTwnUwssiKQI/PonCC0aXzgdCl/oLQ
pOmGz6O608J1MLzLkDWp0J5tktKoyYDQpf+A0KX/gNCl/4DQpf+B0aX8hNGn1IrSqKeRz59yoLhlKKC4
ZQUAAAAAAAAAAAAAAADXyIYT18mHNNXFfW7Tw3h308J2etPCdXvTwnV708J1e9LBc3vFv3GNnrxvwZK/
dvuRv3b/lMB58ZvBfdLTwnV708J1e8bFgJSuy5LDk8J+/5HAeP+Rv3b/kb92/5G/dv+Rv3b/kr5085e7
bMylsFBarKg5CwAAAAAAAAAAAAAAANbGfyrXx4Js3tGbw9fIhezUxHr608J1/9PCdf/TwnX/0L5s/8qy
Tv+7lwv/upYI/7qWCP+8mxb/w6Y1/9PCdf/TwnX/08J1/9HAcP/Coyv/vJkQ/7qWCP+6lgj/upYI/7qW
CP+6lgj/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08N4KtTDeG7YyojW5dmwWeHUo3TZyom71MR6/dPC
df/Jsk7/wKIn/7qWCP+6lgj/upYI/72bFv/DpjX/08J1/9PCdf/TwnX/0sFz/824X/+/nyD/upYK/7qW
CP+6lgj/upYI/7qWCP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J2cdXFfe3g1KJu4NSiTtrL
jljay42RzMN84sKtQ/e8mhX/upYI/7qWCP+7lwn/vZsW/8OmNf/Twnb/08J2/9PCdf/SwXX/0b9u/8Sp
OP++nBn/upYI/7uXCf+7lwn/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J2/9rL
jaXd0JlL2Nu2DdjVqC67yY3Ls7FS8rGeIf+3mRH/upYJ/7qWCP+9mxb/w6Y1/9PCdv/Twnb/08J2/9PC
df/TwnX/yrNS/8KkLP+6lgr/u5cJ/7uXCf+7lwn/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPC
dXPTwnb/1sZ/99/SnYje374cuunaHonbwdiE0an6j8KB/6qnOf+5lwv/upYI/72bFv/DpjX/08J2/9PC
dv/Twnb/08J2/9PCdv/SwHH/yK9I/7yaE/+7lwn/u5cJ/7uXCf+6lgjtupYInrqWCBQAAAAAAAAAAAAA
AADTwnUq08J1c9PCdv/Twnb+18iGw8/Sn4mZ4MmNftm773vWtv591LD/gNCk/5O9dP+nqT3/t6Al/8Om
Nf/Twnb/08J2/9PCdv/Twnb/08J2/9LBdP/OuWD/xqs+/7qWCP+6lgj/u5cJ/7qWCO26lgieupYIFAAA
AAAAAAAAAAAAANPCdSrTwnVz08J2/9PCdf/UxHvnyMmLzovZudB72Ln5edi5/3nYuf952Ln/gs6g/4/B
fv+fuGb7s7Ra9NTDeP7Twnb/08J1/9PCdv/Twnb/08J1/9G+bf/Mtlj/vZsV/7qXCv+6lgj/upYI7bqW
CJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdXPTwnb/08J1/9G/bv/Dv3L/iM2d/nvWtv952Ln/eti6/3rY
uv952Ln/eta3/4XRp/WdxYjf1cV73NPDd+zTwnX408J1/9PCdf/TwnX/08J1/9C+a//Coyv/u5gO/7qW
CP+6lgjtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq08J1c9PCdv/TwnX/y7RT/7ynN/+ir07/ftKr/3nY
uf962Lr/eti6/3rYuv962Lr/edi55XnYuazWxoEp1MR8idPDeM/TwnX908J1/9PCdf/TwnX/0sBy/865
YP++nRr/u5cJ/7qWCO26lgieupYIFAAAAAAAAAAAAAAAANPCdSrTwnVz08J1/8+7Zf/EqTn/upoS/7Wb
Fv+Lxov/ftOs/3nYuf962Lr/eti6/3rYuv952Lnledi5rNbGgQjUxHwa1MR7O9XFfm3VxX3f08J399PC
df/SwXX/0sBx/8WpOf++nRr/upYI7bqWCJ66lggUAAAAAAAAAAAAAAAA08J1KtPCdHPTwnT/yLBK/8Ch
Jf+6lgn/upYJ/52zWv+HypT/edi4/3rYuv962Lr/eti6/3nYueV52LmsAAAAAAAAAADWxoEN1cV+KNTE
fHPUw3qp08J41dPCdvfTwnX/y7RV/8KkLf+6lwvtupYInrqWCBQAAAAAAAAAAAAAAADTwnUq0sF0c9G/
b//CpC3/vJoT/7qWCP+6lgj/sKAo/5K+dv981bL/edi5/3nYuf962Lr/edi55XnYuawAAAAAAAAAAAAA
AAAAAAAA0sJ4AdTEfEjVxHyS1MN51dPCd/LRv2/8x61C/7yaE+26lgieupYIFAAAAAAAAAAAAAAAANPC
dSrRv3BzybFO/7ybFf+6lgj/u5cJ/7uXCf+6lgj/o61I/4vFif952Ln/edi5/3rYuv952Lnledi5rAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAANXGhgjVxoYj18iGldTEe+bOuV/8xak67bqWCJ66lggUAAAAAAAA
AAAAAAAAz7xpKs23XnO+nyD/u5gN/7qWCP+7lwn/u5cJ/7qWCP+ynh7/oLBQ/3zUsf9617n/eti6/3nY
ueV52LmsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1caGAtXGhgjXyIYh2MmHTNTDeozNt167vp4gnr2b
GBQAAAAAAAAAAAAAAADIrU4gx6xIXLyaGOm7lwz7upYJ/7qWCP+7lwn/u5cJ/7iYDv+rpDD/i8aL/3rW
tv952Ln/edi55XnYuawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADazI0S1seCPc23
YGPEqD9ixKhCDAAAAAAAAAAAAAAAAMKiNxHBojY5v54nuryaFea7lw33upYJ/bqWCP+6lgj/upYI/7Oc
G/+fsVT/fNSw/3rXuP952Lnledi5rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAy7JfBMuyXxPLsl8CAAAAAAAAAAAAAAAAAAAAAAAAAADUvIcDy69bVMOkN6a9mhnpupYI/7qW
CP+7lwn/upcK/7mYDv+Hypf/fdSw/3nYueV52LmsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANS8hwHNsmcV0rtxMNO9
dVjAnyalvJkT77qXDP26lgj/uZYJ/6CwUv+HyZT/edi55XnYuawAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADh0qwF18KFGMGhMFDBoTKYv54kxbyaFui6lgr/sKAn/5K+dv9+0qvleNe4rAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmuXR7HqkxtwqMyuryZE/O6lgv7n7FV/ojIk+V517isAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODRyAHbyawRy7BYQL+eI8G2niTroLBS5XvT
sawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANfDmAXLsFgS4M6pOsqy
X26zqkqTn7+BpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AADu4+QD1L1/JrmpS0istm5lAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAA//4P///8D////AH///gA///4AB//+EAf/+BAB8AAAAHAAAABwAAAAcAA
AAHAAAABwAAAAcAAAAHAAAABwAAAAcAAAAHAAAABwAAAAcAAYAHAAHgBwAB+AcAAfgHAAH/BwAB/8fAA
f//wAH///AB///+Af///wH///+B////4f/8=
</value>
</data>
</root>
+15 -87
View File
@@ -1,87 +1,15 @@
2025-08-18 14:16:02.926----软件Program Main函数开始执行--
2025-08-18 14:16:02.927--加载配置文件——>开始
2025-08-18 14:16:02.947--数据库连接 SqlServerName127.0.0.1
2025-08-18 14:16:02.948--数据库连接 SqlUserNamesa
2025-08-18 14:16:02.949--数据库连接 SqlPasswordHexagon123
2025-08-18 14:16:02.949--数据库连接 SqlDbNameCJLR
2025-08-18 14:16:02.950--加载配置文件——>完成
2025-08-18 14:16:04.153--数据库连接 SqlServerName127.0.0.1
2025-08-18 14:16:04.154--数据库连接 SqlUserNamesa
2025-08-18 14:16:04.155--数据库连接 SqlPasswordHexagon123
2025-08-18 14:16:04.156--数据库连接 SqlDbNameCJLR
2025-08-18 14:16:04.157--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=CJLR;User ID=sa;password=Hexagon123;
2025-08-18 14:16:14.507--
2025-08-18 14:16:14.510--
2025-08-18 14:16:14.510--
2025-08-18 14:16:14.511--
2025-08-18 14:16:14.512--
2025-08-18 14:16:14.513--
2025-08-18 14:16:14.514--
2025-08-18 14:16:14.515--
2025-08-18 14:16:14.516--
2025-08-18 14:16:14.517--
2025-08-18 14:16:14.517--
2025-08-18 14:16:14.519--
2025-08-18 14:16:14.520--
2025-08-18 14:16:14.521--
2025-08-18 14:16:14.522--Processing Task - Source: P:\, Target: K:\X260R, ModelCode: X260 Position: R
2025-08-18 14:16:14.524--[ProcessFiles] 源文件地址不存在或错误: P:\
2025-08-18 14:16:14.528--Processing Task - Source: D:\CJLR\DATA\Input\LLL, Target: D:\CJLR\DATA\Output\X540L, ModelCode: X540 Position: L
2025-08-18 14:16:14.533--匹配文件特征符: X540_L
2025-08-18 14:16:14.536--正在处理文件 : D:\CJLR\DATA\Input\LLL\K1902905.csv
2025-08-18 14:16:14.540--第 35 行数据为0,跳过该行:,,,,,,,,,,,,,,,,,,,,,
2025-08-18 14:16:14.541--第 36 行数据为0,跳过该行:,,,,,,,,,,,,,,,,,,,,,
2025-08-18 14:16:14.542--第 37 行数据为0,跳过该行:<!-- [IMPORTED 232001] -->,,,,,,,,,,,,,,,,,,,,,
2025-08-18 14:16:19.608----------------------------------------------------------
2025-08-18 14:16:19.609--车号:K1902905
2025-08-18 14:16:19.610--车型:MY20
2025-08-18 14:16:19.611--测量时间:2020-05-04 12:16:16
2025-08-18 14:16:19.871--CSV文件导入到数据库成功!
2025-08-18 14:16:19.872----------------------------------------------------------
2025-08-18 14:16:19.879--正在查询车ID为:K1902905 的测量结果。
2025-08-18 14:16:19.916--将总结果插入数据库完毕。
2025-08-18 14:16:20.094--未匹配到文件: D:\CJLR\DATA\Input\LLL\K1902905.csv
2025-08-18 14:16:20.104--Processing Task - Source: O:\, Target: L:\X260L, ModelCode: X260 Position: L
2025-08-18 14:16:20.105--[ProcessFiles] 源文件地址不存在或错误: O:\
2025-08-18 14:16:20.108--Processing Task - Source: O:\, Target: L:\X760L, ModelCode: X760 Position: L
2025-08-18 14:16:20.109--[ProcessFiles] 源文件地址不存在或错误: O:\
2025-08-18 14:16:20.110--Processing Task - Source: P:\, Target: K:\X760R, ModelCode: X760 Position: R
2025-08-18 14:16:20.111--[ProcessFiles] 源文件地址不存在或错误: P:\
2025-08-18 14:16:20.117--Processing Task - Source: P:\, Target: K:\L551R 21MY, ModelCode: L551_21MY Position: R
2025-08-18 14:16:20.118--[ProcessFiles] 源文件地址不存在或错误: P:\
2025-08-18 14:16:20.121--Processing Task - Source: O:\, Target: L:\L551L 21MY, ModelCode: L551_21MY Position: L
2025-08-18 14:16:20.122--[ProcessFiles] 源文件地址不存在或错误: O:\
2025-08-18 14:16:20.123--Processing Task - Source: O:\, Target: L:\X540L 20MY, ModelCode: X540_24MY Position: L
2025-08-18 14:16:20.124--[ProcessFiles] 源文件地址不存在或错误: O:\
2025-08-18 14:16:20.126--Processing Task - Source: P:\, Target: K:\X540R 20MY, ModelCode: X540_24MY Position: R
2025-08-18 14:16:20.126--[ProcessFiles] 源文件地址不存在或错误: P:\
2025-08-18 14:16:20.128--Processing Task - Source: O:\, Target: L:\X540L, ModelCode: X540_18MY Position: L
2025-08-18 14:16:20.129--[ProcessFiles] 源文件地址不存在或错误: O:\
2025-08-18 14:16:20.130--Processing Task - Source: O:\, Target: L:\L550L, ModelCode: L550_23MY Position: L
2025-08-18 14:16:20.132--[ProcessFiles] 源文件地址不存在或错误: O:\
2025-08-18 14:16:20.241--Processing Task - Source: P:\, Target: K:\X540R, ModelCode: X540_18MY Position: R
2025-08-18 14:16:20.243--[ProcessFiles] 源文件地址不存在或错误: P:\
2025-08-18 14:16:20.249--Processing Task - Source: P:\, Target: K:\L550R, ModelCode: L550_23MY Position: R
2025-08-18 14:16:20.251--[ProcessFiles] 源文件地址不存在或错误: P:\
2025-08-18 14:16:24.571--
2025-08-18 14:16:24.573--
2025-08-18 14:16:24.574--
2025-08-18 14:16:24.575--
2025-08-18 14:16:24.579--
2025-08-18 14:16:24.580--
2025-08-18 14:16:24.581--
2025-08-18 14:16:24.582--
2025-08-18 14:16:24.583--
2025-08-18 14:16:24.584--
2025-08-18 14:16:24.584--
2025-08-18 14:16:24.585--
2025-08-18 14:16:24.586--
2025-08-18 14:16:24.586--
2025-08-18 14:16:24.587--Processing Task - Source: P:\, Target: K:\X260R, ModelCode: X260 Position: R
2025-08-18 14:16:24.588--[ProcessFiles] 源文件地址不存在或错误: P:\
2025-08-18 14:16:24.598--Processing Task - Source: D:\CJLR\DATA\Input\LLL, Target: D:\CJLR\DATA\Output\X540L, ModelCode: X540 Position: L
2025-08-18 14:16:24.599--匹配文件特征符: X540_L
2025-08-18 14:16:24.600--正在处理文件 : D:\CJLR\DATA\Input\LLL\K1902905.csv
2025-08-18 14:16:24.604--第 35 行数据为0,跳过该行:,,,,,,,,,,,,,,,,,,,,,
2025-08-18 14:16:24.605--第 36 行数据为0,跳过该行:,,,,,,,,,,,,,,,,,,,,,
2025-08-18 14:16:24.605--第 37 行数据为0,跳过该行:<!-- [IMPORTED 232001] -->,,,,,,,,,,,,,,,,,,,,,
2025-08-19 16:04:27.901----软件Program Main函数开始执行--
2025-08-19 16:04:27.902--加载配置文件——>开始
2025-08-19 16:04:27.905--数据库连接 SqlServerName127.0.0.1
2025-08-19 16:04:27.907--数据库连接 SqlUserNamesa
2025-08-19 16:04:27.907--数据库连接 SqlPasswordHexagon123
2025-08-19 16:04:27.908--数据库连接 SqlDbNameCJLR
2025-08-19 16:04:27.909--加载配置文件——>完成
2025-08-19 16:04:27.910--Log in using the original authorization mode.
2025-08-19 16:04:43.067--软件授权成功
2025-08-19 16:04:44.514--数据库连接 SqlServerName127.0.0.1
2025-08-19 16:04:44.516--数据库连接 SqlUserNamesa
2025-08-19 16:04:44.517--数据库连接 SqlPasswordHexagon123
2025-08-19 16:04:44.519--数据库连接 SqlDbNameCJLR
2025-08-19 16:04:44.520--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=CJLR;User ID=sa;password=Hexagon123;
2025-08-19 16:04:54.108---------------海克斯康面隙分析软件程序关闭---------------------
+6 -15
View File
@@ -6,30 +6,21 @@ Language =1
;1 = 中文简
;0 = 英语
RememberMe=1
NextsenseCSVEH3Path=D:\cherytestEH3
ReportCSVPath=D:\QMLTest
;1:CLMS授权
AuthorizationMode=1
AuthorizationMode=2
CLMSModeID=10
;权限密码
Password=1
;1-计算合格率时包含极差项 ;0-不包含
IncludeRangeFlag=1
; 生成Pi-web报告的路径
ReportCSVPath=D:\QMLTest
CNCPictureName=
EnableSort=1
AnalysisCSVFlag=1
;车型检查项总数量
MeasureCarItemsCount=50
;连续多少辆车不满足总数量 连续几辆车小于该检测项总数量 则报警
ContinuousCarCount=6
StationName=ZP5_FG1
tavascanUploadPath=VW316_8CM_ZP6_FG
blacklabelUploadPath=VW316_8CM_BLZP6_FG
Level2Times=1.5
Level3Times=2
ReportCSVPath2=D:\QMLTest
[Timer]
;单位s
@@ -0,0 +1,17 @@
MeasPlan.Name,CheryEH3
vehiclecode,1
robot.MessplanID,1
Plant_sector,WH
Product_type,Carbody
Auto_name,EH3
Part_type,Assembly
Part_number,EH3_5000000FAonline
Part_name,123
prodnum,NNACDEB0RDA50893
Production_line,11_line
Workshop,ER_QI
Operator,
Shift,
Machine,
Temperature,
Humidity,
1 MeasPlan.Name CheryEH3
2 vehiclecode 1
3 robot.MessplanID 1
4 Plant_sector WH
5 Product_type Carbody
6 Auto_name EH3
7 Part_type Assembly
8 Part_number EH3_5000000FAonline
9 Part_name 123
10 prodnum NNACDEB0RDA50893
11 Production_line 11_line
12 Workshop ER_QI
13 Operator
14 Shift
15 Machine
16 Temperature
17 Humidity
+1 -1
View File
@@ -1 +1 @@
E0257D210D71798C7D342413B6AE6E827FF7CDF4D9B987590FAE35D6DCCAFB886AA76997CF2A0EB6CE1262B84EAA89847CE6CDC5A6F8D2EED117805EA3C58FC41BAE98458ABC8F6E2F7D3BC1F235ECAA82954257F761B6EDE6B01E9FFEE276B41AAB0B16C34FF9D2865DF53073BE883F9187EB6EB61E90DDAAA99D8CEBD45D79C7B258FDE9888FDC6ACCD540C3DB33F837A1CD9E7A11BB9D832E332CAE39B9F387EB6710AB221145D9A6E1F2A1FA298D40262129F295BA060BED16C420C03178782B354A00BAD77335C105D312852C3ACEA15E3CA3F54D6B16970431D3E78069F9EAD8D82F39E953F2D6B51CAEE05D904F400BAFC3F41FF2152E610D26B4CDCF27B257D642BF1F30BD8A177925C11CCA10126D0A2870F62CEE7FBD251DCC6A5C68D62B656F9ADA143E07B02516F84636148A81409E1D928DFB346CD8050354C82CA074EDB89ADCBE6E31AD2D142B58B04F2577A03F4CE43586150CE1C69370F28D58DAEABCB2C5920A9759C3D210DF7422DFAA2D1CB0D95564D2A07A82B2F4B4A497C47C57CE23CB1294C515FACF9EEF0C4A6CB8300317D90ECBC6B30D2ABA0EBE5698648EB59A1B33F770C4EB0F928970D13FD27DA4B9521F223210E3B43345B22C2583B76CFAF265F453C3835D7ADAF002206BD6F4C338D19D0DCCFC21F76526CAFDDEC710742816AFD59794DA9653452A9EF92504C1D44B9ED41133C75E185B80E331B531F0535705493788E09E4B04CF0AF947157D7C9E1D6F7F55ADFF4CA2786E83F4315A170E4C7F461B43515DA399766454E68E89428308D085AF0CC75182F5F21077D3A1A42E53784A13DA35D174311F41CB0C111672D7AF1E3EA0E62530BFD5AED3055D783C8020517B9BDB734E885A536BE72FC79A53B301F6994EE89E1EC3D195C4A95C8E880A1F058A9C745242797396C1505ADE70F66B51C0028466F38DDBFBDB66351B696404DC767D0886B7E903EA892C6D667723939B66376CBABF1035635CB9
E0257D210D71798C7D342413B6AE6E827FF7CDF4D9B987590FAE35D6DCCAFB886AA76997CF2A0EB6183A1A07A6254010415BCA8EF7EB824B6AC227D17C067A53EC3C074338CE4489D1526A6745F8326A3CCC88BA268537C2982273D504D3FBD0570E4C172917E3829DA2C9683B7D6556C8F161F85B4111525371DC60C71086CCC0DED32D5E81E9A83608FB23D8A98F0CE9A56F4559B73159E51D63588E1D1B1995354C2A43825755B0D8869373E58D59AF678076388BCAD83C36867FE0FCFB50D6200CA3AF3E09CB8A154F46BDBE1651F20EAB4AE02E0D16267C192E4B8AEB473DBD8EA87CFD59933062F5FC46B4C360507E9ABEA928539EDCA1FDE38757CB5D50CD286312A907C8659BB2CD95C1C5EB5FB3FF894808137E7F01C767C4AFF501FE74A18570277994AC542D7CF811A0AAB4B53BF5083C4EC10DE7EC55E72BCEAE80B364DDBA2515CEA190D585F349A2A704ADFD6F7EA8D23C429EEE440239844CEC4ACA624A34933816E72E71BFF1669EC74486B70E0C7DD1418C983FCBC9D35043CB2523A685435B541C7B59F511B00347D7E16E1044B337CDD4A819E499EDE975FE7A553DE2604235916CAE6FC2C906625DAE32A7C2441969B842242AAE869F95C22AE889BC2388CBECD6BD0B3074A656940CAB067C850C554E112A104F445F4F7AAA5A879F2C476B088120CEFA03CB3597CC695AF681C6A54B61DEC63E8F39B25446DAAB73608AF105A1F1C2631780E4A7A202FB03323B82115B2BFE71A26FA516FDAAA00A1D4887BEBE6DF4C8D9130C57E0DA55DAC33220C891A46CB8B73D8EFA47314D8015A7F3267D2C726ACAB59DAC92E8CD24F4D08F3B030A96489379642E982F8E4A8B25FA3979A230A6A7C6B38EEB71B0B3E65305D38AB9AD3C3433BC7A5555AAA21F3807ED4BFE97093359CB1E80BBC539B97F616E017218773297294742D0EAB299DD2FD178FAD7D01FD2FA200E6974BA95123B01367C62EF6F0ECDF715ECA67BFE83
Binary file not shown.
Binary file not shown.