|
|
@@ -67,6 +67,16 @@ namespace TeamAAS_VP.Core
|
|
|
string color = "";//产品color
|
|
|
string ppid = "";//产品ppid
|
|
|
string revision = "";//产品revision
|
|
|
+ string stage = "";//产品revision
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ /// 上次执行上传csv的日期
|
|
|
+ /// </summary>
|
|
|
+ private DateTime _lastCompressDate = DateTime.MinValue;
|
|
|
+ /// <summary>
|
|
|
+ /// 当天是否上传过csv
|
|
|
+ /// </summary>
|
|
|
+ private bool _hasCompressedToday = false;
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
@@ -1650,9 +1660,9 @@ namespace TeamAAS_VP.Core
|
|
|
SendTaskMessage($"产品主sn:{ProductMainSN}", MessageLevel.Info);
|
|
|
}
|
|
|
string woItem = items.FirstOrDefault(f => f.Contains("wo="));
|
|
|
- if (snItem != null)
|
|
|
+ if (woItem != null)
|
|
|
{
|
|
|
- wo = snItem.Replace("wo=", "").Trim();
|
|
|
+ wo = woItem.Replace("wo=", "").Trim();
|
|
|
SendTaskMessage($"产品wo:{wo}", MessageLevel.Info);
|
|
|
}
|
|
|
string modelItem = items.FirstOrDefault(f => f.Contains("model_num="));
|
|
|
@@ -1670,14 +1680,14 @@ namespace TeamAAS_VP.Core
|
|
|
string ppidItem = items.FirstOrDefault(f => f.Contains("ppid="));
|
|
|
if (ppidItem != null)
|
|
|
{
|
|
|
- ppid = colorItem.Replace("ppid=", "").Trim();
|
|
|
+ ppid = ppidItem.Replace("ppid=", "").Trim();
|
|
|
SendTaskMessage($"ppid:{ppid}", MessageLevel.Info);
|
|
|
}
|
|
|
- string revisionItem = items.FirstOrDefault(f => f.Contains("revision="));
|
|
|
- if (revisionItem != null)
|
|
|
+ string stageItem = items.FirstOrDefault(f => f.Contains("stage="));
|
|
|
+ if (stageItem != null)
|
|
|
{
|
|
|
- revision = colorItem.Replace("revision=", "").Trim();
|
|
|
- SendTaskMessage($"revision:{revision}", MessageLevel.Info);
|
|
|
+ stage = stageItem.Replace("stage=", "").Trim();
|
|
|
+ SendTaskMessage($"stage:{revision}", MessageLevel.Info);
|
|
|
}
|
|
|
|
|
|
}
|
|
|
@@ -1788,9 +1798,9 @@ namespace TeamAAS_VP.Core
|
|
|
SendTaskMessage($"产品主sn:{ProductMainSN}", MessageLevel.Info);
|
|
|
}
|
|
|
string woItem = item.FirstOrDefault(f => f.Contains("wo="));
|
|
|
- if (snItem != null)
|
|
|
+ if (woItem != null)
|
|
|
{
|
|
|
- wo = snItem.Replace("wo=", "").Trim();
|
|
|
+ wo = woItem.Replace("wo=", "").Trim();
|
|
|
SendTaskMessage($"产品wo:{wo}", MessageLevel.Info);
|
|
|
}
|
|
|
string modelItem = item.FirstOrDefault(f => f.Contains("model_num="));
|
|
|
@@ -1808,14 +1818,14 @@ namespace TeamAAS_VP.Core
|
|
|
string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
|
|
|
if (ppidItem != null)
|
|
|
{
|
|
|
- ppid = colorItem.Replace("ppid=", "").Trim();
|
|
|
+ ppid = ppidItem.Replace("ppid=", "").Trim();
|
|
|
SendTaskMessage($"ppid:{ppid}", MessageLevel.Info);
|
|
|
}
|
|
|
- string revisionItem = item.FirstOrDefault(f => f.Contains("revision="));
|
|
|
- if (revisionItem != null)
|
|
|
+ string stageItem = item.FirstOrDefault(f => f.Contains("stage="));
|
|
|
+ if (stageItem != null)
|
|
|
{
|
|
|
- revision = colorItem.Replace("revision=", "").Trim();
|
|
|
- SendTaskMessage($"revision:{revision}", MessageLevel.Info);
|
|
|
+ stage = stageItem.Replace("stage=", "").Trim();
|
|
|
+ SendTaskMessage($"stage:{revision}", MessageLevel.Info);
|
|
|
}
|
|
|
}
|
|
|
LogHelper.WriteLogMes($"第二次询问mes成功");
|
|
|
@@ -1990,9 +2000,9 @@ namespace TeamAAS_VP.Core
|
|
|
SendTaskMessage($"产品主sn:{ProductMainSN}", MessageLevel.Info);
|
|
|
}
|
|
|
string woItem = item.FirstOrDefault(f => f.Contains("wo="));
|
|
|
- if (snItem != null)
|
|
|
+ if (woItem != null)
|
|
|
{
|
|
|
- wo = snItem.Replace("wo=", "").Trim();
|
|
|
+ wo = woItem.Replace("wo=", "").Trim();
|
|
|
SendTaskMessage($"产品wo:{wo}", MessageLevel.Info);
|
|
|
}
|
|
|
string modelItem = item.FirstOrDefault(f => f.Contains("model_num="));
|
|
|
@@ -2010,14 +2020,14 @@ namespace TeamAAS_VP.Core
|
|
|
string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
|
|
|
if (ppidItem != null)
|
|
|
{
|
|
|
- ppid = colorItem.Replace("ppid=", "").Trim();
|
|
|
+ ppid = ppidItem.Replace("ppid=", "").Trim();
|
|
|
SendTaskMessage($"ppid:{ppid}", MessageLevel.Info);
|
|
|
}
|
|
|
- string revisionItem = item.FirstOrDefault(f => f.Contains("revision="));
|
|
|
- if (revisionItem != null)
|
|
|
+ string stageItem = item.FirstOrDefault(f => f.Contains("stage="));
|
|
|
+ if (stageItem != null)
|
|
|
{
|
|
|
- revision = colorItem.Replace("revision=", "").Trim();
|
|
|
- SendTaskMessage($"revision:{revision}", MessageLevel.Info);
|
|
|
+ stage = stageItem.Replace("stage=", "").Trim();
|
|
|
+ SendTaskMessage($"stage:{revision}", MessageLevel.Info);
|
|
|
}
|
|
|
}
|
|
|
LogHelper.WriteLogMes($"第二次询问mes成功");
|
|
|
@@ -2142,9 +2152,9 @@ namespace TeamAAS_VP.Core
|
|
|
SendTaskMessage($"产品主sn:{ProductMainSN}", MessageLevel.Info);
|
|
|
}
|
|
|
string woItem = items.FirstOrDefault(f => f.Contains("wo="));
|
|
|
- if (snItem != null)
|
|
|
+ if (woItem != null)
|
|
|
{
|
|
|
- wo = snItem.Replace("wo=", "").Trim();
|
|
|
+ wo = woItem.Replace("wo=", "").Trim();
|
|
|
SendTaskMessage($"产品wo:{wo}", MessageLevel.Info);
|
|
|
}
|
|
|
string modelItem = items.FirstOrDefault(f => f.Contains("model_num="));
|
|
|
@@ -2162,14 +2172,14 @@ namespace TeamAAS_VP.Core
|
|
|
string ppidItem = items.FirstOrDefault(f => f.Contains("ppid="));
|
|
|
if (ppidItem != null)
|
|
|
{
|
|
|
- ppid = colorItem.Replace("ppid=", "").Trim();
|
|
|
+ ppid = ppidItem.Replace("ppid=", "").Trim();
|
|
|
SendTaskMessage($"ppid:{ppid}", MessageLevel.Info);
|
|
|
}
|
|
|
- string revisionItem = items.FirstOrDefault(f => f.Contains("revision="));
|
|
|
- if (revisionItem != null)
|
|
|
+ string stageItem = items.FirstOrDefault(f => f.Contains("stage="));
|
|
|
+ if (stageItem != null)
|
|
|
{
|
|
|
- revision = colorItem.Replace("revision=", "").Trim();
|
|
|
- SendTaskMessage($"revision:{revision}", MessageLevel.Info);
|
|
|
+ stage = stageItem.Replace("stage=", "").Trim();
|
|
|
+ SendTaskMessage($"stage:{revision}", MessageLevel.Info);
|
|
|
}
|
|
|
}
|
|
|
LogHelper.WriteLogMes($"【mes结束QUERY】");
|
|
|
@@ -2391,14 +2401,14 @@ namespace TeamAAS_VP.Core
|
|
|
string ppidItem = item.FirstOrDefault(f => f.Contains("ppid="));
|
|
|
if (ppidItem != null)
|
|
|
{
|
|
|
- ppid = colorItem.Replace("ppid=", "").Trim();
|
|
|
+ ppid = ppidItem.Replace("ppid=", "").Trim();
|
|
|
SendTaskMessage($"ppid:{ppid}", MessageLevel.Info);
|
|
|
}
|
|
|
- string revisionItem = item.FirstOrDefault(f => f.Contains("revision="));
|
|
|
- if (revisionItem != null)
|
|
|
+ string stageItem = item.FirstOrDefault(f => f.Contains("stage="));
|
|
|
+ if (stageItem != null)
|
|
|
{
|
|
|
- revision = colorItem.Replace("revision=", "").Trim();
|
|
|
- SendTaskMessage($"revision:{revision}", MessageLevel.Info);
|
|
|
+ stage = stageItem.Replace("stage=", "").Trim();
|
|
|
+ SendTaskMessage($"stage:{revision}", MessageLevel.Info);
|
|
|
}
|
|
|
ShowMes_Query = true;
|
|
|
//产品发生改变并且供料器发生了变化时,需要通知PLC进行取料更改
|
|
|
@@ -2496,7 +2506,7 @@ namespace TeamAAS_VP.Core
|
|
|
StringBuilder submitData = new StringBuilder();
|
|
|
foreach (var item in lockResultsAll)
|
|
|
{
|
|
|
- submitData.Append($"{item.PhotoName}={item.ResultData}&");
|
|
|
+ submitData.Append($"{item.PhotoName}={item.ResultData}");
|
|
|
}
|
|
|
|
|
|
ShowMes_Result = resultIndex == 1 ? true : false;
|
|
|
@@ -2547,7 +2557,7 @@ namespace TeamAAS_VP.Core
|
|
|
PROCESS_END_TIME = serverTimeResult.Now.ToString("o"),
|
|
|
SUPPLIER_NAME = stationConfig.DataInfo.SUPPLIER_NAME,
|
|
|
COMMODITY_TYPE = stationConfig.DataInfo.COMMODITY_TYPE,
|
|
|
- REVISION = revision,
|
|
|
+ REVISION = stage,
|
|
|
WO = wo,
|
|
|
MFG_LOT = stationConfig.DataInfo.MFG_LOT,
|
|
|
MFG_ASSY_LINE = stationConfig.DataInfo.MFG_ASSY_LINE,
|
|
|
@@ -2575,28 +2585,58 @@ namespace TeamAAS_VP.Core
|
|
|
DateTime dt = DateTime.Now;
|
|
|
string filename = $"{ProductMainSN}_{dt.ToString("yyyyMMddHHmmss")}";
|
|
|
var device = _configService.GetDeviceInfo();
|
|
|
+ var config = _configService.GetSystemConfiguration();
|
|
|
+
|
|
|
(bool isSuc, string resp) = await _mesService.SendFtpFileAsync(ProductMainSN, filename);
|
|
|
if (isSuc)
|
|
|
{
|
|
|
LogHelper.WriteLogMes($"上传数据成功");
|
|
|
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}";
|
|
|
+ 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)); ;
|
|
|
+ string target_csv = Path.Combine(filePath, Path.GetFileName(source_csv));
|
|
|
File.Copy(source_csv, target_csv, true);
|
|
|
//复制log
|
|
|
string source_log = $"..\\Log\\LogInfo\\{dt.ToString("yyyy-MM")}\\{dt.ToString("yyyy-MM-dd")}.txt";
|
|
|
string target_log = Path.Combine(filePath, Path.GetFileName(source_log));
|
|
|
File.Copy(source_log, target_log, true);
|
|
|
+
|
|
|
+
|
|
|
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);
|
|
|
+ }
|
|
|
+ // 跨天后重置当天执行标记
|
|
|
+ if (!isNewDay && _hasCompressedToday)
|
|
|
+ {
|
|
|
+ _hasCompressedToday = false;
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
LogHelper.WriteLogMes($"上传数据失败");
|
|
|
SendTaskMessage($"上传数据失败", MessageLevel.Error);
|
|
|
}
|
|
|
- }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ LogHelper.WriteLogMes($"未启用mes");
|
|
|
+ SendTaskMessage($"未启用mes", MessageLevel.Error);
|
|
|
+ }
|
|
|
}
|
|
|
catch (Exception ex)
|
|
|
{
|