diff --git a/Analysis/CjlrForm/FileSorter.cs b/Analysis/CjlrForm/FileSorter.cs index 3ce8b10..33fbc10 100644 --- a/Analysis/CjlrForm/FileSorter.cs +++ b/Analysis/CjlrForm/FileSorter.cs @@ -296,7 +296,6 @@ namespace NSAnalysis return; } - // 解析数据之前,备份原始数据,如果已存在备份文件,则覆盖, 备份到 程序根目录\Backup 文件夹 try { @@ -315,7 +314,6 @@ namespace NSAnalysis // 继续处理,不返回 } - try { using (var reader = new StreamReader(filePath)) @@ -562,12 +560,41 @@ namespace NSAnalysis Directory.CreateDirectory(ConfigDfn.strReportPath); MyBase.TraceWriteLine($"创建报告目录: {ConfigDfn.strReportPath}"); } - string savePath = Path.Combine(ConfigDfn.strReportPath, fileName); + + // 构造备份路径 ,备份到 程序根目录\ReportBackup 文件夹 + string backupDir = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "ReportBackup"); + if (!Directory.Exists(backupDir)) + { + Directory.CreateDirectory(backupDir); + } + + // 备份文件完整路径 + string savePath = Path.Combine(backupDir, fileName); + + // 目标路径 + string target = Path.Combine(ConfigDfn.strReportPath, fileName); GenerateCsvReport(strCarID, dtCSVContent, ConfigDfn.strCSVReportTemplatePath, savePath); MyBase.TraceWriteLine($"客户报告已生成: {savePath}"); + + // 将备份路径,拷贝到目标路径 emitProcessStep($"---> 5、客户报告已生成: {savePath}"); + try + { + File.Copy(savePath, target, true); // 如果存在则覆盖 + //记录成功 + MyBase.TraceWriteLine("已拷贝客户报告到目标路径: " + target); + emitProcessStep($"---> 6、已拷贝客户报告到目标路径: {target}"); + } + catch + { + MyBase.TraceWriteLine("拷贝客户报告到目标路径失败: " + target); + + emitProcessStep($"---> 6、拷贝客户报告到目标路径失败: {target}"); + } + + } // 生成CSV报告函数 @@ -581,11 +608,30 @@ namespace NSAnalysis // 替换模板中的变量 foreach (var line in templateLines) { - string processedLine = line - .Replace("{prodnum}", strCarID) - .Trim('"'); - - Console.WriteLine($"处理行: {processedLine}"); // 控制台输出处理的行 + string processedLine = line; + if (processedLine.Contains("{datetime}")) + { + processedLine = processedLine.Replace("{datetime}", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss", CultureInfo.InvariantCulture)); + } + if (processedLine.Contains("{Part_ident}")) + { + processedLine = processedLine.Replace("{Part_ident}", strCarID); + } + if (processedLine.Contains("{model}")) + { + processedLine = processedLine.Replace("{model}", ConfigDfn.strCarModel); + } + if (processedLine.Contains("{Part_code}")) + { + if (ConfigDfn.strCarModel == "E03") + processedLine = processedLine.Replace("{Part_code}", "E03_5000000FAonline"); + else if (ConfigDfn.strCarModel == "E0Y") + processedLine = processedLine.Replace("{Part_code}", "E0Y_5000000FAonline"); + else + processedLine = processedLine.Replace("{Part_code}", "UnknownModel_5000000FAonline"); + } + processedLine = processedLine.Trim('"'); + Console.WriteLine($"处理行: {processedLine}"); sb.AppendLine(processedLine); } @@ -601,8 +647,17 @@ namespace NSAnalysis // 添加测量数据内容 foreach (DataRow row in measureData.Rows) { + //sb.AppendFormat("{0},{1},{2}\n", + // row["PointName"], row["DimensionName"], row["DimensionValue"]); + + var dimensionValue = row["DimensionValue"]?.ToString(); + if (dimensionValue != null && dimensionValue.Contains("1.#R")) + { + dimensionValue = ""; + } sb.AppendFormat("{0},{1},{2}\n", - row["PointName"], row["DimensionName"], row["DimensionValue"]); + row["PointName"], row["DimensionName"], dimensionValue); + } // 可根据实际需求添加统计行 sb.AppendLine("POP,P,99.99"); diff --git a/Analysis/FormMain.cs b/Analysis/FormMain.cs index 901bcdc..7dc57d8 100644 --- a/Analysis/FormMain.cs +++ b/Analysis/FormMain.cs @@ -23,6 +23,9 @@ namespace NSAnalysis /// 2、解析失败或提取有效内容失败,移动到源文件夹的Error文件夹 /// 3、修复查询结果,显示错误问题 /// + /// 2025.08.31 + /// -------------------------------------------- + /// 1、新增将客户报告 默认生成到备份文件夹,然后拷贝到目标路径,并记录错误日志 /// /// /// diff --git a/Analysis/Properties/AssemblyInfo.cs b/Analysis/Properties/AssemblyInfo.cs index a2a534f..23dd0b9 100644 --- a/Analysis/Properties/AssemblyInfo.cs +++ b/Analysis/Properties/AssemblyInfo.cs @@ -25,8 +25,8 @@ using System.Runtime.InteropServices; // // You can specify all the values or you can default the Build and Revision Numbers by using the '*' // as shown below: [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2025.08.28.1")] -[assembly: AssemblyFileVersion("2025.08.28.1")] +[assembly: AssemblyVersion("2025.09.01.2")] +[assembly: AssemblyFileVersion("2025.09.01.2")] //奇瑞总装软件 //2024.09.27.1 该版本增加读取编码器数值功能 //2024.10.08.1 该版本修改了EHY和EH3的测点图片 以及增加了上传IOT时,在1.5倍公差内,都是OK的结果,传给IOT diff --git a/Analysis/bin/x64/Debug/Debug.txt b/Analysis/bin/x64/Debug/Debug.txt index 8276c09..5cb6b27 100644 --- a/Analysis/bin/x64/Debug/Debug.txt +++ b/Analysis/bin/x64/Debug/Debug.txt @@ -1,42 +1,13 @@ -2025-08-31 15:00:31.702----软件Program Main函数开始执行-- -2025-08-31 15:00:31.707--加载配置文件——>开始 -2025-08-31 15:00:31.728--数据库连接 SqlServerName:127.0.0.1 -2025-08-31 15:00:31.731--数据库连接 SqlUserName:sa -2025-08-31 15:00:31.733--数据库连接 SqlPassword:Hexagon123 -2025-08-31 15:00:31.736--数据库连接 SqlDbName:CJLR -2025-08-31 15:00:31.739--加载配置文件——>完成 -2025-08-31 15:00:31.742--Log in using the original authorization mode. -2025-08-31 15:00:34.140--软件授权成功 -2025-08-31 15:00:35.816--数据库连接 SqlServerName:127.0.0.1 -2025-08-31 15:00:35.821--数据库连接 SqlUserName:sa -2025-08-31 15:00:35.825--数据库连接 SqlPassword:Hexagon123 -2025-08-31 15:00:35.828--数据库连接 SqlDbName:CJLR -2025-08-31 15:00:35.829--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=CJLR;User ID=sa;password=Hexagon123; -2025-08-31 15:00:36.701---------------海克斯康面隙分析软件程序启动--------------------- -2025-08-31 15:00:39.610--数据库连接 SqlServerName:127.0.0.1 -2025-08-31 15:00:39.614--数据库连接 SqlUserName:sa -2025-08-31 15:00:39.617--数据库连接 SqlPassword:Hexagon123 -2025-08-31 15:00:39.620--数据库连接 SqlDbName:CJLR -2025-08-31 15:00:39.622--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=CJLR;User ID=sa;password=Hexagon123; -2025-08-31 15:00:51.851--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R -2025-08-31 15:00:51.874--匹配文件特征符: E0Y_R -2025-08-31 15:00:51.882--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L -2025-08-31 15:00:51.886--匹配文件特征符: E0Y_L -2025-08-31 15:01:06.703--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R -2025-08-31 15:01:06.709--匹配文件特征符: E0Y_R -2025-08-31 15:01:06.716--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L -2025-08-31 15:01:06.719--匹配文件特征符: E0Y_L -2025-08-31 15:01:21.702--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R -2025-08-31 15:01:21.709--匹配文件特征符: E0Y_R -2025-08-31 15:01:21.713--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L -2025-08-31 15:01:21.719--匹配文件特征符: E0Y_L -2025-08-31 15:01:36.692--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R -2025-08-31 15:01:36.697--匹配文件特征符: E0Y_R -2025-08-31 15:01:36.702--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L -2025-08-31 15:01:36.707--匹配文件特征符: E0Y_L -2025-08-31 15:01:51.707--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\RRR, 目标路径: D:\CJLR\DATA\Output\X540L, 匹配字符: E0Y 位置:R -2025-08-31 15:01:51.711--匹配文件特征符: E0Y_R -2025-08-31 15:01:51.717--[ProcessFiles] 正在执行分发任务 - 源路径: D:\CJLR\DATA\Input\LLL, 目标路径: D:\CJLR\DATA\Output\X540R, 匹配字符: E0Y 位置:L -2025-08-31 15:01:51.722--匹配文件特征符: E0Y_L -2025-08-31 15:01:51.728--正在处理文件 : D:\CJLR\DATA\Input\LLL\S8540702.csv -2025-08-31 15:01:51.755--已备份文件到: D:\HexagonProjects\2025-01-捷豹路虎改造\code\Analysis\bin\x64\Debug\Backup\S8540702.csv +2025-09-01 09:55:17.792----软件Program Main函数开始执行-- +2025-09-01 09:55:17.793--加载配置文件——>开始 +2025-09-01 09:55:17.796--数据库连接 SqlServerName:127.0.0.1 +2025-09-01 09:55:17.797--数据库连接 SqlUserName:sa +2025-09-01 09:55:17.797--数据库连接 SqlPassword:Hexagon123 +2025-09-01 09:55:17.799--数据库连接 SqlDbName:CJLR +2025-09-01 09:55:17.800--加载配置文件——>完成 +2025-09-01 09:55:17.807--数据库连接 SqlServerName:127.0.0.1 +2025-09-01 09:55:17.808--数据库连接 SqlUserName:sa +2025-09-01 09:55:17.809--数据库连接 SqlPassword:Hexagon123 +2025-09-01 09:55:17.809--数据库连接 SqlDbName:CJLR +2025-09-01 09:55:17.810--数据库连接字符串:Data Source=127.0.0.1;initial Catalog=CJLR;User ID=sa;password=Hexagon123; +2025-09-01 09:56:50.027--客户报告已生成: D:\HexagonProjects\2025-01-捷豹路虎改造\code\Analysis\bin\x64\Debug\ReportBackup\K0902906_20250901095646.csv diff --git a/Analysis/bin/x64/Debug/File/CSVReportTemplate.csv b/Analysis/bin/x64/Debug/File/CSVReportTemplate.csv index 6fbdaf5..fa857b8 100644 --- a/Analysis/bin/x64/Debug/File/CSVReportTemplate.csv +++ b/Analysis/bin/x64/Debug/File/CSVReportTemplate.csv @@ -1,17 +1,17 @@ -MeasPlan.Name,CheryEH3 -vehiclecode,1 -robot.MessplanID,1 +Measurement Info Name,Measurement Info +Date_Time,{datetime} +Operator, +Machine, +Part_ident,{Part_ident} +Production_Line,QGX +Process_number, +Temperature,22 +Humidity,40 +Shift, Plant_sector,CS Product_type,Carbody -Auto_name,EH3 +Auto_name,{model} Part_type,Assembly -Part_number,EH3_5000000FAonline -Part_name,123 -prodnum,{prodnum} -Production_line,11_line -Workshop,ER_QI -Operator, -Shift, -Machine, -Temperature, -Humidity, +Part_number,{Part_code} +Part_name, +Workshop, diff --git a/Analysis/bin/x64/Debug/NSAnalysis.exe b/Analysis/bin/x64/Debug/NSAnalysis.exe index 37a3fdb..c9c54ed 100644 Binary files a/Analysis/bin/x64/Debug/NSAnalysis.exe and b/Analysis/bin/x64/Debug/NSAnalysis.exe differ diff --git a/Analysis/bin/x64/Debug/NSAnalysis.pdb b/Analysis/bin/x64/Debug/NSAnalysis.pdb index 39a6ce4..eddc061 100644 Binary files a/Analysis/bin/x64/Debug/NSAnalysis.pdb and b/Analysis/bin/x64/Debug/NSAnalysis.pdb differ diff --git a/CheryFianlAssemblyLine.sln b/CheryFianlAssemblyLine.sln index 8de4419..33c47a6 100644 --- a/CheryFianlAssemblyLine.sln +++ b/CheryFianlAssemblyLine.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 -VisualStudioVersion = 17.12.35707.178 d17.12 +VisualStudioVersion = 17.12.35707.178 MinimumVisualStudioVersion = 10.0.40219.1 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NXSAnalysis", "Analysis\NXSAnalysis.csproj", "{7C83975D-A071-48E0-8A12-DAFD20525B66}" EndProject