提交版
This commit is contained in:
parent
7347aaec64
commit
1f4c172959
@ -412,17 +412,63 @@ namespace YiDa_WinForm
|
||||
bool hasSelection2 = comboBox2.SelectedIndex > 0 &&
|
||||
!string.IsNullOrEmpty(comboBox2.SelectedValue?.ToString());
|
||||
|
||||
// 1. 重置静态上传标记(每次连接都重新开始判断)
|
||||
_isScrapImageUploadedOne = false;
|
||||
_isRodImageUploadedOne = false;
|
||||
_isScrapImageUploadedTwo = false;
|
||||
_isRodImageUploadedTwo = false;
|
||||
_isRodImageWorkNoticeOne = false;
|
||||
_isRodImageWorkNoticeTwo = false;
|
||||
_isScrapImageWorkNoticeOne = false;
|
||||
_isScrapImageWorkNoticeTwo = false;
|
||||
LogHelper.AppendLog("重置上传标记:连杆未上传、报废未上传");
|
||||
|
||||
string selectedContent1 = string.Empty;
|
||||
string selectedContent2 = string.Empty;
|
||||
|
||||
// 获取选中项的DataRowView(增加判空)
|
||||
DataRowView drv1 = comboBox1.SelectedItem as DataRowView;
|
||||
// 先判断drv1是否为null,再访问字段
|
||||
selectedContent1 = drv1 != null ? (drv1["part_name"]?.ToString()?.Trim() ?? string.Empty) : string.Empty;
|
||||
|
||||
// 获取选中项的DataRowView(增加判空)
|
||||
DataRowView drv2 = comboBox2.SelectedItem as DataRowView;
|
||||
// 先判断drv2是否为null,再访问字段
|
||||
selectedContent2 = drv2 != null ? (drv2["part_name"]?.ToString()?.Trim() ?? string.Empty) : string.Empty;
|
||||
|
||||
if (hasSelection1 && hasSelection2)
|
||||
{
|
||||
selection = "3";
|
||||
StartScrapOneAlarmTimers();
|
||||
StartScrapTwoAlarmTimers();
|
||||
if (selectedContent1.Contains("连杆2") && selectedContent2.Contains("连杆2"))
|
||||
{
|
||||
StartRodOneAlarmTimers();
|
||||
StartDailyRodDeviceOneFixedTimers();
|
||||
|
||||
StartRodTwoAlarmTimers();
|
||||
StartDailyRodDeviceTwoFixedTimers();
|
||||
}
|
||||
}
|
||||
else if (hasSelection1)
|
||||
{
|
||||
selection = "1";
|
||||
StartScrapOneAlarmTimers();
|
||||
if (selectedContent1.Contains("连杆2"))
|
||||
{
|
||||
StartRodOneAlarmTimers();
|
||||
StartDailyRodDeviceOneFixedTimers();
|
||||
}
|
||||
}
|
||||
else if (hasSelection2)
|
||||
{
|
||||
selection = "2";
|
||||
StartScrapTwoAlarmTimers();
|
||||
if (selectedContent2.Contains("连杆2"))
|
||||
{
|
||||
StartRodTwoAlarmTimers();
|
||||
StartDailyRodDeviceTwoFixedTimers();
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -431,19 +477,6 @@ namespace YiDa_WinForm
|
||||
|
||||
this.button2.Enabled = false;
|
||||
|
||||
// 1. 重置静态上传标记(每次连接都重新开始判断)
|
||||
_isScrapImageUploadedOne = false;
|
||||
_isRodImageUploadedOne = false;
|
||||
_isScrapImageUploadedTwo = false;
|
||||
_isRodImageUploadedTwo = false;
|
||||
LogHelper.AppendLog("重置上传标记:连杆未上传、报废未上传");
|
||||
|
||||
// 2. 启动定时任务(复用用户保存的间隔值)
|
||||
StartScrapAlarmTimers();
|
||||
StartRodAlarmTimers();
|
||||
StartDailyRodDeviceOneFixedTimers();
|
||||
StartDailyRodDeviceTwoFixedTimers();
|
||||
|
||||
// 设备1选择配方
|
||||
string selected1 = this.comboBox1.SelectedValue?.ToString();
|
||||
if (string.IsNullOrEmpty(selected1) || selected1 == "-1")
|
||||
@ -573,7 +606,7 @@ namespace YiDa_WinForm
|
||||
if (isImageUploadSuccess)
|
||||
{
|
||||
_buttonService.MergeAndSaveData("1", "device1");
|
||||
MqttYiDaUpload("1", "device");
|
||||
MqttYiDaUpload("1", "device1");
|
||||
// 上传成功:直接标记为已上传(避免后续定时报警)
|
||||
_isScrapImageUploadedOne = true;
|
||||
}
|
||||
@ -621,7 +654,7 @@ namespace YiDa_WinForm
|
||||
if (isImageUploadSuccess)
|
||||
{
|
||||
_buttonService.MergeAndSaveData("1", "device2");
|
||||
MqttYiDaUpload("2", "device");
|
||||
MqttYiDaUpload("2", "device2");
|
||||
// 上传成功:直接标记为已上传(避免后续定时报警)
|
||||
_isScrapImageUploadedTwo = true;
|
||||
}
|
||||
@ -669,7 +702,7 @@ namespace YiDa_WinForm
|
||||
if (isImageUploadSuccess)
|
||||
{
|
||||
_buttonService.MergeAndSaveData("2", "device1");
|
||||
MqttYiDaUpload("1", "device");
|
||||
MqttYiDaUpload("2", "device1");
|
||||
// 上传成功:直接标记为已上传(避免后续定时报警)
|
||||
_isRodImageUploadedOne = true;
|
||||
DateTime now = DateTime.Now;
|
||||
@ -742,7 +775,7 @@ namespace YiDa_WinForm
|
||||
if (isImageUploadSuccess)
|
||||
{
|
||||
_buttonService.MergeAndSaveData("2", "device1");
|
||||
MqttYiDaUpload("1", "device");
|
||||
MqttYiDaUpload("2", "device1");
|
||||
// 上传成功:直接标记为已上传(避免后续定时报警)
|
||||
_isRodImageUploadedOne = true;
|
||||
DateTime now = DateTime.Now;
|
||||
@ -821,7 +854,7 @@ namespace YiDa_WinForm
|
||||
if (isImageUploadSuccess)
|
||||
{
|
||||
_buttonService.MergeAndSaveData("2", "device2");
|
||||
MqttYiDaUpload("2", "device");
|
||||
MqttYiDaUpload("2", "device2");
|
||||
// 上传成功:直接标记为已上传(避免后续定时报警)
|
||||
_isRodImageUploadedTwo = true;
|
||||
DateTime now = DateTime.Now;
|
||||
@ -875,7 +908,7 @@ namespace YiDa_WinForm
|
||||
|
||||
_lastRodIntervalTwo = interval;
|
||||
|
||||
// 3. 上传逻辑:仅当勾选「模具上传」时,才弹出文件选择框(分离上传和报警逻辑)
|
||||
// 3. 上传逻辑
|
||||
bool isImageUploadSuccess = false;
|
||||
OpenFileDialog openFile = new OpenFileDialog();
|
||||
if (openFile.ShowDialog() == DialogResult.OK)
|
||||
@ -888,7 +921,7 @@ namespace YiDa_WinForm
|
||||
if (isImageUploadSuccess)
|
||||
{
|
||||
_buttonService.MergeAndSaveData("2", "device2");
|
||||
MqttYiDaUpload("2", "device");
|
||||
MqttYiDaUpload("2", "device2");
|
||||
// 上传成功:直接标记为已上传(避免后续定时报警)
|
||||
_isRodImageUploadedTwo = true;
|
||||
DateTime now = DateTime.Now;
|
||||
@ -1054,7 +1087,7 @@ namespace YiDa_WinForm
|
||||
/// <summary>
|
||||
/// 启动报废定时任务(前30分钟上传)
|
||||
/// </summary>
|
||||
private void StartScrapAlarmTimers()
|
||||
private void StartScrapOneAlarmTimers()
|
||||
{
|
||||
// 设备1
|
||||
if (_scrapAlarmTimerOne != null)
|
||||
@ -1069,7 +1102,10 @@ namespace YiDa_WinForm
|
||||
_scrapAlarmTimerOne.Elapsed += ScrapAlarmTimerOne_Elapsed;
|
||||
_scrapAlarmTimerOne.Enabled = true; // 启动定时
|
||||
LogHelper.AppendLog($"设备1报废上传定时已启动:若{_lastScrapIntervalOne}分钟内未上传凭证,将触发钉钉报警");
|
||||
}
|
||||
|
||||
private void StartScrapTwoAlarmTimers()
|
||||
{
|
||||
// 设备2
|
||||
if (_scrapAlarmTimerTwo != null)
|
||||
{
|
||||
@ -1088,7 +1124,7 @@ namespace YiDa_WinForm
|
||||
/// <summary>
|
||||
/// 启动连杆定时任务(前30分钟上传)
|
||||
/// </summary>
|
||||
private void StartRodAlarmTimers()
|
||||
private void StartRodOneAlarmTimers()
|
||||
{
|
||||
// 设备1
|
||||
if (_rodAlarmTimerOne != null)
|
||||
@ -1103,7 +1139,10 @@ namespace YiDa_WinForm
|
||||
_rodAlarmTimerOne.Elapsed += RodAlarmTimerOne_Elapsed;
|
||||
_rodAlarmTimerOne.Enabled = true; // 启动定时
|
||||
LogHelper.AppendLog($"设备1连杆定时已启动:若{_lastRodIntervalOne}分钟内未上传凭证,将触发钉钉报警");
|
||||
}
|
||||
|
||||
private void StartRodTwoAlarmTimers()
|
||||
{
|
||||
// 设备2
|
||||
if (_rodAlarmTimerTwo != null)
|
||||
{
|
||||
@ -1346,25 +1385,6 @@ namespace YiDa_WinForm
|
||||
DateTime now = DateTime.Now;
|
||||
TimeSpan currentTime = now.TimeOfDay;
|
||||
|
||||
// // 1. 工作时间判断
|
||||
// if (currentTime < _morningCheckTime || currentTime > _eveningCheckTime)
|
||||
// {
|
||||
// LogHelper.AppendLog($"当前时间{currentTime:hh\\:mm}不在工作时间内,跳过本次连杆报警判断");
|
||||
// _rodAlarmTimerOne?.Dispose();
|
||||
// _rodAlarmTimerOne = null;
|
||||
// return;
|
||||
// }
|
||||
|
||||
// ========== 早晚节点标记判断(已上传则跳过原有报警) ==========
|
||||
if (_isMorningRodUploadedOne || _isEveningRodUploadedOne)
|
||||
{
|
||||
LogHelper.AppendLog("连杆图片已在早晚强制时段内上传,跳过本次原有定时报警");
|
||||
_rodAlarmTimerOne?.Dispose();
|
||||
_rodAlarmTimerOne = null;
|
||||
_isRodImageUploadedOne = false;
|
||||
return;
|
||||
}
|
||||
|
||||
// 2. 使用静态标记 _isRodImageUploaded 判断是否报警
|
||||
if (!_isRodImageUploadedOne)
|
||||
{
|
||||
@ -1569,9 +1589,9 @@ namespace YiDa_WinForm
|
||||
private void InitDailyRodDeviceOneCheckTimes()
|
||||
{
|
||||
// 计算早上检查节点:工作开始时间 + 30分钟
|
||||
_morningCheckTimeOne = _workStartTimeOne.Add(TimeSpan.FromMinutes(30));
|
||||
_morningCheckTimeOne = _workStartTimeOne.Add(TimeSpan.FromMinutes(2));
|
||||
// 计算晚上检查节点:工作结束时间 + 30分钟
|
||||
_eveningCheckTimeOne = _workEndTimeOne.Add(TimeSpan.FromMinutes(30));
|
||||
_eveningCheckTimeOne = _workEndTimeOne.Add(TimeSpan.FromMinutes(2));
|
||||
|
||||
// 校验:防止晚上检查节点早于早上检查节点(避免用户配置异常)
|
||||
if (_eveningCheckTimeOne <= _morningCheckTimeOne)
|
||||
@ -2010,33 +2030,40 @@ namespace YiDa_WinForm
|
||||
{
|
||||
return string.Equals(value?.ToString(), "无错误", StringComparison.Ordinal) ? "合格" : "不合格";
|
||||
}
|
||||
else if ((paramName == "报废图片" || paramName == "连杆测试") && (_isScrapImageWorkNoticeOne || _isRodImageWorkNoticeOne || _isScrapImageWorkNoticeTwo || _isRodImageWorkNoticeTwo))
|
||||
else if (paramName == "报废图片" || paramName == "连杆测试")
|
||||
{
|
||||
bool isNoticeTriggered = false;
|
||||
if (paramName == "报废图片")
|
||||
{
|
||||
if (site == "1号设备")
|
||||
{
|
||||
_isScrapImageWorkNoticeOne = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_isScrapImageWorkNoticeTwo = false;
|
||||
}
|
||||
isNoticeTriggered = (site == "1号设备" && _isScrapImageWorkNoticeOne)
|
||||
|| (site == "2号设备" && _isScrapImageWorkNoticeTwo);
|
||||
}
|
||||
if (paramName == "连杆测试")
|
||||
else if (paramName == "连杆测试")
|
||||
{
|
||||
if (site == "1号设备")
|
||||
{
|
||||
_isRodImageWorkNoticeOne = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
_isRodImageWorkNoticeTwo = false;
|
||||
}
|
||||
isNoticeTriggered = (site == "1号设备" && _isRodImageWorkNoticeOne)
|
||||
|| (site == "2号设备" && _isRodImageWorkNoticeTwo);
|
||||
}
|
||||
if (isNoticeTriggered)
|
||||
{
|
||||
// 重置对应设备的标记
|
||||
if (paramName == "报废图片")
|
||||
{
|
||||
if (site == "1号设备") _isScrapImageWorkNoticeOne = false;
|
||||
if (site == "2号设备") _isScrapImageWorkNoticeTwo = false;
|
||||
}
|
||||
else if (paramName == "连杆测试")
|
||||
{
|
||||
if (site == "1号设备") _isRodImageWorkNoticeOne = false;
|
||||
if (site == "2号设备") _isRodImageWorkNoticeTwo = false;
|
||||
}
|
||||
return "不合格";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "合格";
|
||||
}
|
||||
return "不合格";
|
||||
}
|
||||
else if (paramName == "开模总数实时" || paramName == "托模次数" || paramName == "报废图片" || paramName == "连杆测试")
|
||||
else if (paramName == "开模总数实时" || paramName == "托模次数")
|
||||
{
|
||||
return "合格";
|
||||
}
|
||||
|
||||
@ -150,7 +150,7 @@ namespace YiDa_WinForm.Service
|
||||
{
|
||||
try
|
||||
{
|
||||
string strSql;
|
||||
string strSql = null;
|
||||
if (selection != null && device == null)
|
||||
{
|
||||
if (selection.Contains("1"))
|
||||
@ -169,18 +169,31 @@ namespace YiDa_WinForm.Service
|
||||
}
|
||||
else
|
||||
{
|
||||
if (selection.Contains("1"))
|
||||
if (device.Equals("device1"))
|
||||
{
|
||||
strSql = @"SELECT * FROM yida_mqtt_message where device_code='device1' and pv_status = 1 and img_status = 1 ORDER BY create_time DESC LIMIT 1";
|
||||
if (selection.Equals("1"))
|
||||
{
|
||||
strSql = @"SELECT * FROM yida_mqtt_message where device_code = 'device1' and pv_status = 1 and img_status1 = 1 ORDER BY create_time DESC LIMIT 1";
|
||||
}
|
||||
else
|
||||
{
|
||||
strSql = @"SELECT * FROM yida_mqtt_message where device_code = 'device1' and pv_status = 1 and img_status2 = 1 ORDER BY create_time DESC LIMIT 1";
|
||||
}
|
||||
}
|
||||
else if (selection.Contains("2"))
|
||||
else if (device.Equals("device2"))
|
||||
{
|
||||
strSql = @"SELECT * FROM yida_mqtt_message where device_code='device2' and pv_status = 1 and img_status = 1 ORDER BY create_time DESC LIMIT 1";
|
||||
if (selection.Equals("1"))
|
||||
{
|
||||
strSql = @"SELECT * FROM yida_mqtt_message where device_code = 'device2' and pv_status = 1 and img_status3 = 1 ORDER BY create_time DESC LIMIT 1";
|
||||
}
|
||||
else
|
||||
{
|
||||
strSql = @"SELECT * FROM yida_mqtt_message where device_code = 'device2' and pv_status = 1 and img_status4 = 1 ORDER BY create_time DESC LIMIT 1";
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strSql=
|
||||
@"SELECT * FROM yida_mqtt_message where (device_code = 'device1' or device_code = 'device2') and pv_status = 1 and img_status = 1 ORDER BY create_time DESC LIMIT 1";
|
||||
strSql= @"SELECT * FROM yida_mqtt_message where (device_code = 'device1' or device_code = 'device2') and pv_status = 1 and (img_status1 = 1 or img_status2 = 1 or img_status3 = 1 or img_status4 = 1) ORDER BY create_time DESC LIMIT 1";
|
||||
}
|
||||
}
|
||||
|
||||
@ -298,18 +311,37 @@ namespace YiDa_WinForm.Service
|
||||
string mergedData = JsonConvert.SerializeObject(dataModel);
|
||||
|
||||
// 6. 更新数据库(调用DbHelper执行更新)
|
||||
string updateSql;
|
||||
string updateSql = null;
|
||||
if (deviceCode.Equals("device1"))
|
||||
{
|
||||
updateSql = @"UPDATE yida_mqtt_message
|
||||
SET receive_data = @mergedData, img_status = 1
|
||||
if (operationStatus == "1")
|
||||
{
|
||||
updateSql = @"UPDATE yida_mqtt_message
|
||||
SET receive_data = @mergedData, img_status1 = 1
|
||||
WHERE id = @latestId and pv_status = 1 and device_code = 'device1'";
|
||||
}
|
||||
else
|
||||
{
|
||||
updateSql = @"UPDATE yida_mqtt_message
|
||||
SET receive_data = @mergedData, img_status2 = 1
|
||||
WHERE id = @latestId and pv_status = 1 and device_code = 'device1'";
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
if (deviceCode.Equals("device2"))
|
||||
{
|
||||
updateSql = @"UPDATE yida_mqtt_message
|
||||
SET receive_data = @mergedData, img_status = 1
|
||||
if (operationStatus == "2")
|
||||
{
|
||||
updateSql = @"UPDATE yida_mqtt_message
|
||||
SET receive_data = @mergedData, img_status3 = 1
|
||||
WHERE id = @latestId and pv_status = 1 and device_code = 'device2'";
|
||||
}
|
||||
else
|
||||
{
|
||||
updateSql = @"UPDATE yida_mqtt_message
|
||||
SET receive_data = @mergedData, img_status4 = 1
|
||||
WHERE id = @latestId and pv_status = 1 and device_code = 'device2'";
|
||||
}
|
||||
}
|
||||
var updateParameters = new[]
|
||||
{
|
||||
|
||||
@ -145,7 +145,7 @@ namespace YiDa_WinForm.Service
|
||||
for (int i = 0; i < yidaLists.Count; i++)
|
||||
{
|
||||
var item = yidaLists[i];
|
||||
var mqttItem = mqttLists[i];
|
||||
// var mqttItem = mqttLists[i];
|
||||
|
||||
var dataDict = new Dictionary<string, object>
|
||||
{
|
||||
|
||||
Binary file not shown.
@ -35,7 +35,7 @@
|
||||
</log4net>
|
||||
<!-- 数据库连接配置 -->
|
||||
<connectionStrings>
|
||||
<add name="MySqlConnection" connectionString="server=localhost;port=3306;database=fgassembly;user=root;password=123456;charset=utf8;SslMode=None;" providerName="MySql.Data.MySqlClient" />
|
||||
<add name="MySqlConnection" connectionString="server=localhost;port=3306;database=fgassembly2;user=root;password=123456;charset=utf8;SslMode=None;" providerName="MySql.Data.MySqlClient" />
|
||||
</connectionStrings>
|
||||
<YiDaConfig>
|
||||
<!-- 钉钉配置 -->
|
||||
|
||||
Binary file not shown.
Loading…
x
Reference in New Issue
Block a user