Răsfoiți Sursa

更改csv保存数据

zly 5 luni în urmă
părinte
comite
d251a1d897
2 a modificat fișierele cu 76 adăugiri și 43 ștergeri
  1. 72 39
      TeamAAS-VM/Core/Management.cs
  2. 4 4
      TeamAAS-VM/Services/MesService.cs

+ 72 - 39
TeamAAS-VM/Core/Management.cs

@@ -82,6 +82,15 @@ namespace TeamAAS_VP.Core
         /// </summary>
         private int _pressureMaxDurationSeconds = 30; //超时自动停止秒数
         DateTime[] StartCtqTime = new DateTime[3];//开始采集Ctq数据的时间
+
+        /// <summary>
+        /// 上次执行上传csv的日期
+        /// </summary>
+        private DateTime _lastCompressDate = DateTime.MinValue;
+        /// <summary>
+        /// 当天是否上传过csv
+        /// </summary>
+        private bool _hasCompressedToday = false;
         List<LockResult> lockResultsAll = new List<LockResult>();//一个产品的总结果
         string productSn = "";//产品sn
         DateTime StartScrewTime = DateTime.Now;//开始锁附的时间
@@ -2353,11 +2362,11 @@ namespace TeamAAS_VP.Core
                                                         ppid[i] = ppidItem.Replace("ppid=", "").Trim();
                                                         SendTaskMessage($"ppid:{ppid[i]}", MessageLevel.Info);
                                                     }
-                                                    string revisionItem = item.FirstOrDefault(f => f.Contains("revision="));
+                                                    string revisionItem = item.FirstOrDefault(f => f.Contains("stage="));
                                                     if (revisionItem != null)
                                                     {
-                                                        revision[i] = revisionItem.Replace("revision=", "").Trim();
-                                                        SendTaskMessage($"revision:{revision[i]}", MessageLevel.Info);
+                                                        revision[i] = revisionItem.Replace("stage=", "").Trim();
+                                                        SendTaskMessage($"stage:{revision[i]}", MessageLevel.Info);
                                                     }
 
                                                     LogHelper.WriteLogMes($"第二次询问mes成功");
@@ -2457,11 +2466,11 @@ namespace TeamAAS_VP.Core
                                                     ppid[i] = ppidItem.Replace("ppid=", "").Trim();
                                                     SendTaskMessage($"ppid:{ppid[i]}", MessageLevel.Info);
                                                 }
-                                                string revisionItem = item.FirstOrDefault(f => f.Contains("revision="));
+                                                string revisionItem = item.FirstOrDefault(f => f.Contains("stage="));
                                                 if (revisionItem != null)
                                                 {
-                                                    revision[i] = revisionItem.Replace("revision=", "").Trim();
-                                                    SendTaskMessage($"revision:{revision[i]}", MessageLevel.Info);
+                                                    revision[i] = revisionItem.Replace("stage=", "").Trim();
+                                                    SendTaskMessage($"stage:{revision[i]}", MessageLevel.Info);
                                                 }
 
                                                 //切换产品
@@ -2608,7 +2617,7 @@ namespace TeamAAS_VP.Core
                                                         }
                                                         else turnRes = false;
 
-                                                        string midValue = "", saveppid = "";
+                                                        string midValue = "NA", saveppid = "NA";
                                                         if (stationConfig.SaveCsvPPID) saveppid = ppid[i];
                                                         midValue = ((lockResult.TargetTorqueLowerLimit + lockResult.TargetTorqueUpperLimit) / 2).ToString("F3");
                                                         DFC.Add(new DataFormCtq
@@ -2624,19 +2633,19 @@ namespace TeamAAS_VP.Core
                                                             PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
                                                             SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
                                                             COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                                            REVISION = stationConfig.DataInfo.REVISION,
+                                                            REVISION = stationConfig.DataInfo.REVISION+"_"+ revision[i],
                                                             WO = wo[i],
                                                             MFG_LOT = stationConfig.DataInfo.MFG_LOT,
                                                             MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
                                                             PROCESS_OUTCOME = torqueRes ? "PASS" : "FAIL",
                                                             PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
                                                             CTQ_UNIT_OF_MEASURE = "kgf.cm",
-                                                            ERROR_MESSAGE = torqueRes ? "" : "Torque_Spec OOS",
-                                                            PD_ATTR_01 = midValue,
-                                                            PD_ATTR_02 = ProductMainSN[i],
-                                                            PD_ATTR_03 = "",
-                                                            PD_ATTR_04 = "",
-                                                            PD_ATTR_05 = "",
+                                                            ERROR_MESSAGE = torqueRes ? "NA" : "Torque_Spec OOS",
+                                                            PD_ATTR_01 = ProductMainSN[i],
+                                                            PD_ATTR_02 = midValue,
+                                                            PD_ATTR_03 = "NA",
+                                                            PD_ATTR_04 = productSn,
+                                                            PD_ATTR_05 = "NA",
                                                         });
                                                         midValue = ((lockResult.TargetTurnsLowerLimit + lockResult.TargetTurnsUpperLimit) / 2).ToString("F3");
                                                         DFC.Add(new DataFormCtq
@@ -2652,19 +2661,19 @@ namespace TeamAAS_VP.Core
                                                             PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
                                                             SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
                                                             COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                                            REVISION = stationConfig.DataInfo.REVISION,
+                                                            REVISION = stationConfig.DataInfo.REVISION + "_" + revision[i],
                                                             WO = wo[i],
                                                             MFG_LOT = stationConfig.DataInfo.MFG_LOT,
                                                             MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
                                                             PROCESS_OUTCOME = turnRes ? "PASS" : "FAIL",
                                                             PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
                                                             CTQ_UNIT_OF_MEASURE = "圈",
-                                                            ERROR_MESSAGE = turnRes ? "" : "Turn_Spec OOS",
-                                                            PD_ATTR_01 = midValue,
-                                                            PD_ATTR_02 = ProductMainSN[i],
-                                                            PD_ATTR_03 = "",
-                                                            PD_ATTR_04 = "",
-                                                            PD_ATTR_05 = "",
+                                                            ERROR_MESSAGE = turnRes ? "NA" : "Turn_Spec OOS",
+                                                            PD_ATTR_01 = ProductMainSN[i],
+                                                            PD_ATTR_02 = midValue,
+                                                            PD_ATTR_03 = "NA",
+                                                            PD_ATTR_04 = productSn,
+                                                            PD_ATTR_05 = "NA",
                                                         });
                                                         midValue = ((stationConfig.DataInfo.CTQ_LSL_Pressure + stationConfig.DataInfo.CTQ_USL_Pressure) / 2).ToString("F3");
                                                         DFC.Add(new DataFormCtq
@@ -2680,19 +2689,19 @@ namespace TeamAAS_VP.Core
                                                             PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
                                                             SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
                                                             COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
-                                                            REVISION = stationConfig.DataInfo.REVISION,
+                                                            REVISION = stationConfig.DataInfo.REVISION + "_" + revision[i],
                                                             WO = wo[i],
                                                             MFG_LOT = stationConfig.DataInfo.MFG_LOT,
                                                             MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
                                                             PROCESS_OUTCOME = pressureRes ? "PASS" : "FAIL",
                                                             PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
                                                             CTQ_UNIT_OF_MEASURE = "N",
-                                                            ERROR_MESSAGE = pressureRes ? "" : "Pressure_Spec OOS",
-                                                            PD_ATTR_01 = midValue,
-                                                            PD_ATTR_02 = ProductMainSN[i],
-                                                            PD_ATTR_03 = "",
-                                                            PD_ATTR_04 = "",
-                                                            PD_ATTR_05 = "",
+                                                            ERROR_MESSAGE = pressureRes ? "NA" : "Pressure_Spec OOS",
+                                                            PD_ATTR_01 = ProductMainSN[i],
+                                                            PD_ATTR_02 = midValue,
+                                                            PD_ATTR_03 = "NA",
+                                                            PD_ATTR_04 = productSn,
+                                                            PD_ATTR_05 = "NA",
                                                         });
                                                     }
                                                 }
@@ -2716,6 +2725,7 @@ namespace TeamAAS_VP.Core
                                                                 LogHelper.WriteLogMes($"上传数据成功");
                                                                 SendTaskMessage($"上传数据成功", MessageLevel.Debug);
                                                                 string filePath = $"D:\\image\\Recored\\{dt.ToString("yyyy-MM")}\\{dt.ToString("MM-dd")}\\{currentProduct.Name}\\{ProductMainSN[i]}";
+                                                                string csvfilename = $"{i}_{stationConfig.DeviceName}_{dt.ToString("yyyy-MM-dd")}";
                                                                 //复制csv
                                                                 string source_csv = $"{stationConfig.SaveCsvPath}\\{dt.ToString("yyyy-MM")}\\{i}_{stationConfig.DeviceName}_{dt.ToString("yyyy-MM-dd")}.csv";
                                                                 string target_csv = Path.Combine(filePath, Path.GetFileName(source_csv));
@@ -2725,24 +2735,47 @@ namespace TeamAAS_VP.Core
                                                                 string target_log = Path.Combine(filePath, Path.GetFileName(source_log));
                                                                 File.Copy(source_log, target_log, true);
 
-                                                                string target_Directory = filePath + "\\扭力曲线\\";
-                                                                string source_Torque_Image = config.ScrewCurvePath + $"\\{dt.ToString("yyyy-MM")}\\{dt.ToString("yyyy-MM-dd")}\\{currentProduct.Name}\\{ProductMainSN[i]}";
-                                                                var col = Directory.GetFiles(source_Torque_Image);
-                                                                try
+                                                                //判断是否保存锁付曲线
+                                                                if (systemConfig.IsSaveScrewCurve)
                                                                 {
-                                                                    Directory.CreateDirectory(target_Directory);
-                                                                    foreach (var item in col)
+                                                                    string target_Directory = filePath + "\\扭力曲线\\";
+                                                                    string source_Torque_Image = config.ScrewCurvePath + $"\\{dt.ToString("yyyy-MM")}\\{dt.ToString("yyyy-MM-dd")}\\{currentProduct.Name}\\{ProductMainSN[i]}";
+                                                                    var col = Directory.GetFiles(source_Torque_Image);
+                                                                    try
                                                                     {
-                                                                        string target_Torque = target_Directory + item.Replace(source_Torque_Image, "");
-                                                                        File.Copy(item, target_Torque, true);
+                                                                        Directory.CreateDirectory(target_Directory);
+                                                                        foreach (var item in col)
+                                                                        {
+                                                                            string target_Torque = target_Directory + item.Replace(source_Torque_Image, "");
+                                                                            File.Copy(item, target_Torque, true);
+                                                                        }
                                                                     }
+                                                                    catch (Exception)
+                                                                    {
+                                                                        SendTaskMessage($"扭力曲线图读取失败", MessageLevel.Error);
+                                                                    }
+                                                                }                                                                
+                                                                CompressionImage(filePath, filename, device.Station, device.FixtureId);
+                                                                //上传csv
+                                                                bool isAfter20 = dt.Hour >= 20;
+                                                                //判断是否是新的一天
+                                                                bool isNewDay = dt.Date != _lastCompressDate.Date;
+                                                                //当天还没执行过压缩
+                                                                if (isAfter20 && isNewDay && !_hasCompressedToday)
+                                                                {
+                                                                    // 执行压缩
+                                                                    CompressionImage(source_csv, csvfilename, device.Station, device.FixtureId);
+                                                                    _lastCompressDate = dt;
+                                                                    _hasCompressedToday = true;
+                                                                    LogHelper.WriteLogMes("csv上传数据成功");
+                                                                    SendTaskMessage($"csv上传数据成功", MessageLevel.Debug);
                                                                 }
-                                                                catch (Exception)
+                                                                // 跨天后重置当天执行标记
+                                                                if (!isNewDay && _hasCompressedToday)
                                                                 {
-                                                                    SendTaskMessage($"扭力曲线图读取失败", MessageLevel.Error);
+                                                                    _hasCompressedToday = false;
                                                                 }
 
-                                                                CompressionImage(filePath, filename, device.Station, device.FixtureId);
                                                             }
                                                             else
                                                             {

+ 4 - 4
TeamAAS-VM/Services/MesService.cs

@@ -106,11 +106,11 @@ namespace TeamAAS_VP.Services
             string url = "";
             if (device.F == "PTL")
             {
-                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&comp={device.comp}:{comp}&p=message,sn,wo,model_num,color,ppid,revision";
+                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&comp={device.comp}:{comp}&p=message,sn,wo,model_num,color,ppid,stage";
             }
             else
             {
-                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&p=message,sn,wo,model_num,color,ppid,revision";
+                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&p=message,sn,wo,model_num,color,ppid,stage";
             }
 
             LogHelper.WriteLogMes($"¡¾Ñ¯ÎÊURL¡¿{url}");
@@ -291,11 +291,11 @@ namespace TeamAAS_VP.Services
             string url = "";
             if (device.F == "PTL")
             {
-                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&comp={device.comp}:{comp}&p=message,sn,wo,model_num,color";
+                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&comp={device.comp}:{comp}&p=message,sn,wo,model_num,color,ppid,stage";
             }
             else
             {
-                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&p=message,sn,wo,model_num,color";
+                url = $"{device.MesUrl}?c=QUERY_RECORD&line={device.Line}&station={device.Station}&fixtureid={device.FixtureId}&sn={sn}&p=message,sn,wo,model_num,color,ppid,stage";
             }
 
             LogHelper.WriteLogMes($"¡¾Ñ¯ÎÊURL¡¿{url}");