|
@@ -82,6 +82,15 @@ namespace TeamAAS_VP.Core
|
|
|
/// </summary>
|
|
/// </summary>
|
|
|
private int _pressureMaxDurationSeconds = 30; //超时自动停止秒数
|
|
private int _pressureMaxDurationSeconds = 30; //超时自动停止秒数
|
|
|
DateTime[] StartCtqTime = new DateTime[3];//开始采集Ctq数据的时间
|
|
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>();//一个产品的总结果
|
|
List<LockResult> lockResultsAll = new List<LockResult>();//一个产品的总结果
|
|
|
string productSn = "";//产品sn
|
|
string productSn = "";//产品sn
|
|
|
DateTime StartScrewTime = DateTime.Now;//开始锁附的时间
|
|
DateTime StartScrewTime = DateTime.Now;//开始锁附的时间
|
|
@@ -2353,11 +2362,11 @@ namespace TeamAAS_VP.Core
|
|
|
ppid[i] = ppidItem.Replace("ppid=", "").Trim();
|
|
ppid[i] = ppidItem.Replace("ppid=", "").Trim();
|
|
|
SendTaskMessage($"ppid:{ppid[i]}", MessageLevel.Info);
|
|
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)
|
|
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成功");
|
|
LogHelper.WriteLogMes($"第二次询问mes成功");
|
|
@@ -2457,11 +2466,11 @@ namespace TeamAAS_VP.Core
|
|
|
ppid[i] = ppidItem.Replace("ppid=", "").Trim();
|
|
ppid[i] = ppidItem.Replace("ppid=", "").Trim();
|
|
|
SendTaskMessage($"ppid:{ppid[i]}", MessageLevel.Info);
|
|
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)
|
|
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;
|
|
else turnRes = false;
|
|
|
|
|
|
|
|
- string midValue = "", saveppid = "";
|
|
|
|
|
|
|
+ string midValue = "NA", saveppid = "NA";
|
|
|
if (stationConfig.SaveCsvPPID) saveppid = ppid[i];
|
|
if (stationConfig.SaveCsvPPID) saveppid = ppid[i];
|
|
|
midValue = ((lockResult.TargetTorqueLowerLimit + lockResult.TargetTorqueUpperLimit) / 2).ToString("F3");
|
|
midValue = ((lockResult.TargetTorqueLowerLimit + lockResult.TargetTorqueUpperLimit) / 2).ToString("F3");
|
|
|
DFC.Add(new DataFormCtq
|
|
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",
|
|
PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
|
|
|
SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
|
|
SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
|
|
|
COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
|
|
COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
|
|
|
- REVISION = stationConfig.DataInfo.REVISION,
|
|
|
|
|
|
|
+ REVISION = stationConfig.DataInfo.REVISION+"_"+ revision[i],
|
|
|
WO = wo[i],
|
|
WO = wo[i],
|
|
|
MFG_LOT = stationConfig.DataInfo.MFG_LOT,
|
|
MFG_LOT = stationConfig.DataInfo.MFG_LOT,
|
|
|
MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
|
|
MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
|
|
|
PROCESS_OUTCOME = torqueRes ? "PASS" : "FAIL",
|
|
PROCESS_OUTCOME = torqueRes ? "PASS" : "FAIL",
|
|
|
PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
|
|
PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
|
|
|
CTQ_UNIT_OF_MEASURE = "kgf.cm",
|
|
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");
|
|
midValue = ((lockResult.TargetTurnsLowerLimit + lockResult.TargetTurnsUpperLimit) / 2).ToString("F3");
|
|
|
DFC.Add(new DataFormCtq
|
|
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",
|
|
PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
|
|
|
SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
|
|
SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
|
|
|
COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
|
|
COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
|
|
|
- REVISION = stationConfig.DataInfo.REVISION,
|
|
|
|
|
|
|
+ REVISION = stationConfig.DataInfo.REVISION + "_" + revision[i],
|
|
|
WO = wo[i],
|
|
WO = wo[i],
|
|
|
MFG_LOT = stationConfig.DataInfo.MFG_LOT,
|
|
MFG_LOT = stationConfig.DataInfo.MFG_LOT,
|
|
|
MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
|
|
MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
|
|
|
PROCESS_OUTCOME = turnRes ? "PASS" : "FAIL",
|
|
PROCESS_OUTCOME = turnRes ? "PASS" : "FAIL",
|
|
|
PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
|
|
PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
|
|
|
CTQ_UNIT_OF_MEASURE = "圈",
|
|
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");
|
|
midValue = ((stationConfig.DataInfo.CTQ_LSL_Pressure + stationConfig.DataInfo.CTQ_USL_Pressure) / 2).ToString("F3");
|
|
|
DFC.Add(new DataFormCtq
|
|
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",
|
|
PROCESS_END_TIME = serverTimeResult.Now.ToString("yyyy-MM-ddTHH:mm:ss.fffffff") + "+08:00",
|
|
|
SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
|
|
SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
|
|
|
COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
|
|
COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
|
|
|
- REVISION = stationConfig.DataInfo.REVISION,
|
|
|
|
|
|
|
+ REVISION = stationConfig.DataInfo.REVISION + "_" + revision[i],
|
|
|
WO = wo[i],
|
|
WO = wo[i],
|
|
|
MFG_LOT = stationConfig.DataInfo.MFG_LOT,
|
|
MFG_LOT = stationConfig.DataInfo.MFG_LOT,
|
|
|
MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
|
|
MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
|
|
|
PROCESS_OUTCOME = pressureRes ? "PASS" : "FAIL",
|
|
PROCESS_OUTCOME = pressureRes ? "PASS" : "FAIL",
|
|
|
PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
|
|
PROCESS_MACHINE_ID = stationConfig.DataInfo.PROCESS_MACHINE_ID,
|
|
|
CTQ_UNIT_OF_MEASURE = "N",
|
|
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($"上传数据成功");
|
|
LogHelper.WriteLogMes($"上传数据成功");
|
|
|
SendTaskMessage($"上传数据成功", MessageLevel.Debug);
|
|
SendTaskMessage($"上传数据成功", MessageLevel.Debug);
|
|
|
string filePath = $"D:\\image\\Recored\\{dt.ToString("yyyy-MM")}\\{dt.ToString("MM-dd")}\\{currentProduct.Name}\\{ProductMainSN[i]}";
|
|
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
|
|
//复制csv
|
|
|
string source_csv = $"{stationConfig.SaveCsvPath}\\{dt.ToString("yyyy-MM")}\\{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));
|
|
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));
|
|
string target_log = Path.Combine(filePath, Path.GetFileName(source_log));
|
|
|
File.Copy(source_log, target_log, true);
|
|
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
|
|
else
|
|
|
{
|
|
{
|