diff --git a/InSituLaboratory.Entities/SysDevice.cs b/InSituLaboratory.Entities/SysDevice.cs
index 7eb9f63..2840379 100644
--- a/InSituLaboratory.Entities/SysDevice.cs
+++ b/InSituLaboratory.Entities/SysDevice.cs
@@ -33,6 +33,11 @@ namespace InSituLaboratory.Entities
///
public string? WorkTime { get; set; }
+ ///
+ /// 最小工作时长
+ ///
+ public string? MinWorkTime { get; set; }
+
}
}
diff --git a/InSituLaboratory.Entities/SysSequentialDetails.cs b/InSituLaboratory.Entities/SysSequentialDetails.cs
index ce0caf3..2e08529 100644
--- a/InSituLaboratory.Entities/SysSequentialDetails.cs
+++ b/InSituLaboratory.Entities/SysSequentialDetails.cs
@@ -40,13 +40,13 @@ namespace InSituLaboratory.Entities
/// 工作时长
///
- public string? WorkTime { get; set; }
+ public float? WorkTime { get; set; }
///
/// 循环时长
///
- public string? DurationTime { get; set; }
+ public float? DurationTime { get; set; }
/////
/// 创建时间
diff --git a/InSituLaboratory.Entities/SysSequentialTotal.cs b/InSituLaboratory.Entities/SysSequentialTotal.cs
index 10d17e7..0a27b79 100644
--- a/InSituLaboratory.Entities/SysSequentialTotal.cs
+++ b/InSituLaboratory.Entities/SysSequentialTotal.cs
@@ -46,13 +46,13 @@ namespace InSituLaboratory.Entities
/// 工作时长
///
- public string? WorkTime { get; set; }
+ public float? WorkTime { get; set; }
///
/// 循环时长
///
- public string? DurationTime { get; set; }
+ public float? DurationTime { get; set; }
///
/// 创建时间
diff --git a/InSituLaboratory.Entities/tools.cs b/InSituLaboratory.Entities/tools.cs
index ccf17a0..bebb908 100644
--- a/InSituLaboratory.Entities/tools.cs
+++ b/InSituLaboratory.Entities/tools.cs
@@ -672,7 +672,29 @@ namespace InSituLaboratory.Entities
}
#endregion
+ #region byte数组按长度在前面补0
+ ///
+ /// byte数组按长度在前面补0
+ ///
+ ///
+ ///
+ ///
+ ///
+ ///
+ public static byte[] PadArrayWithZeros(byte[] array, int targetLength)
+ {
+ if (array == null)
+ throw new ArgumentNullException(nameof(array));
+ if (targetLength <= 0)
+ throw new ArgumentOutOfRangeException(nameof(targetLength), "Target length must be a positive integer.");
+ if (targetLength <= array.Length)
+ return array; // No need to pad
+ byte[] paddedArray = new byte[targetLength];
+ Array.Copy(array, 0, paddedArray, targetLength - array.Length, array.Length);
+ return paddedArray;
+ }
+ #endregion
#region CRC-8 x8+x5+x4+1 0x31(0x131)
///
diff --git a/InSituLaboratory.IService/IDeviceSvice.cs b/InSituLaboratory.IService/IDeviceSvice.cs
index 7546365..ee58877 100644
--- a/InSituLaboratory.IService/IDeviceSvice.cs
+++ b/InSituLaboratory.IService/IDeviceSvice.cs
@@ -23,5 +23,13 @@ namespace InSituLaboratory.IService
string GetDeviceByDeviceName(string DeviceName);
+
+ ///
+ /// 根据设备名称获取设备预设工作时长
+ ///
+ ///
+ ///
+ string GetDeviceByDeviceNameMinTime(string DeviceName);
+
}
}
diff --git a/InSituLaboratory.Service/DeviceService.cs b/InSituLaboratory.Service/DeviceService.cs
index b9989f1..5358d70 100644
--- a/InSituLaboratory.Service/DeviceService.cs
+++ b/InSituLaboratory.Service/DeviceService.cs
@@ -38,5 +38,24 @@ namespace InSituLaboratory.Service
return workTime;
}
+
+
+ ///
+ /// 根据设备名称查询预设最小工作时长
+ ///
+ ///
+ ///
+ public string GetDeviceByDeviceNameMinTime(string DeviceName)
+ {
+ var workTime = "";
+ var sysDevice = this.Query(m => m.DeviceName == DeviceName).ToList();
+
+ foreach (var item in sysDevice)
+ {
+ workTime = item.MinWorkTime;
+ }
+
+ return workTime;
+ }
}
}
diff --git a/InSituLaboratory.Service/SysSequentialService.cs b/InSituLaboratory.Service/SysSequentialService.cs
index 2d1a16b..02d3126 100644
--- a/InSituLaboratory.Service/SysSequentialService.cs
+++ b/InSituLaboratory.Service/SysSequentialService.cs
@@ -20,7 +20,7 @@ namespace InSituLaboratory.Service
///
public IEnumerable GetSequentials(string key)
{
- return this.Set().Where(m => m.Sequential == key && m.IsDelete == 0).OrderByDescending(n => n.CreateTime);
+ return this.Set().Where(m => m.Sequential == key && m.IsDelete == 0).OrderByDescending(n => n.CreateTime).AsNoTracking();
}
///
/// 获取时序子表数据
@@ -30,7 +30,7 @@ namespace InSituLaboratory.Service
public IEnumerable GetSequentialDetails(int key)
{
- return this.Set().Where(m => m.SysSquentialID == key && m.IsDelete == 0).OrderBy(n => n.SequenceGroup).ThenBy(m => m.CreateTime);
+ return this.Set().Where(m => m.SysSquentialID == key && m.IsDelete == 0).OrderBy(n => n.SequenceGroup).ThenBy(m => m.CreateTime).AsNoTracking();
}
///
@@ -41,7 +41,7 @@ namespace InSituLaboratory.Service
public IEnumerable GetSequentialDetailList(int key)
{
- return this.Set().Where(m => m.Number == key && m.IsDelete == 0);
+ return this.Set().Where(m => m.Number == key && m.IsDelete == 0).AsNoTracking();
}
diff --git a/InSituLaboratory/ViewModels/Pages/Dialogs/ModifySequentialViewModel.cs b/InSituLaboratory/ViewModels/Pages/Dialogs/ModifySequentialViewModel.cs
index 36a7b86..d56d2cc 100644
--- a/InSituLaboratory/ViewModels/Pages/Dialogs/ModifySequentialViewModel.cs
+++ b/InSituLaboratory/ViewModels/Pages/Dialogs/ModifySequentialViewModel.cs
@@ -30,8 +30,10 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
public SysSequentialDetails SysSequentialdata { get; set; }
public string? workTime { get; set; }
+ public string? minworkTime { get; set; }
public long? workInt { get; set; }
+ public long? minworkInt { get; set; }
///
/// 记录编辑时第一次带入的设备名称
@@ -88,12 +90,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
}
- private string _workTime;
+ private float? _workTime;
///
/// 工作时长
///
- public string WorkTime
+ public float? WorkTime
{
get { return _workTime; }
set
@@ -103,12 +105,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
}
- private string _durationTime;
+ private float? _durationTime;
///
/// 循环时长
///
- public string DurationTime
+ public float? DurationTime
{
get { return _durationTime; }
set
@@ -176,12 +178,12 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
System.Windows.Forms.MessageBox.Show("传感器设备不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
- else if (string.IsNullOrEmpty(WorkTime))
+ else if (WorkTime == null || WorkTime == 0)
{
System.Windows.Forms.MessageBox.Show("工作时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
- else if (string.IsNullOrEmpty(DurationTime))
+ else if (DurationTime == null || DurationTime == 0)
{
System.Windows.Forms.MessageBox.Show("循环时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
@@ -203,7 +205,7 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
{
foreach (var item in selectFirst)
{
- System.Windows.Forms.MessageBox.Show(kind + "- 配置" + item.SequenceGroup + "中,已配置" + SensorID + "!!!"+" 请重新配置。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ System.Windows.Forms.MessageBox.Show(kind + "- 配置" + item.SequenceGroup + "中,已配置" + SensorID + "!!!" + " 请重新配置。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
return;
}
}
@@ -232,7 +234,7 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
{
if (DurationTime != SysSequentialdata1.DurationTime)
{
- System.Windows.Forms.MessageBox.Show(kind + "- 配置" + SequenceGroup + " 已存在循环时长:" + SysSequentialdata1.DurationTime + "s" + ",无法修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ System.Windows.Forms.MessageBox.Show(kind + "- 配置" + SequenceGroup + " 已存在循环时长:" + SysSequentialdata1.DurationTime + "分钟" + ",无法修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
}
@@ -241,38 +243,78 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
///工作时长是否已超过传感器预设时间
workTime = _deviceSvice.GetDeviceByDeviceName(SensorID);
+ minworkTime = _deviceSvice.GetDeviceByDeviceNameMinTime(SensorID);
if (workTime == "无")
{
workTime = "0";
}
- workInt = Convert.ToInt64(workTime);
+ if (minworkTime == "无")
+ {
+ minworkTime = "0";
+ }
+ workInt = Convert.ToInt64(workTime); //设备预设最大工作时长
+ minworkInt = Convert.ToInt64(minworkTime);//设备预设最小工作时长
switch (SensorID)
{
case "气相色谱仪":
if (Convert.ToInt64(WorkTime) > workInt)
{
- System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h"+ ",已超过设备最大工作时长:" + workTime + "h" +"\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ return;
+ }
+ else if (Convert.ToInt64(WorkTime) < minworkInt)
+ {
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
break;
case "质谱仪":
if (Convert.ToInt64(WorkTime) > workInt)
{
- System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h"+ ",已超过设备最大工作时长:" + workTime + "h" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ return;
+ }
+ else if (Convert.ToInt64(WorkTime) < minworkInt)
+ {
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
break;
case "二氧化碳同位素分析仪":
if (Convert.ToInt64(WorkTime) > workInt)
{
- System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h"+ ",已超过设备最大工作时长:" + workTime + "h" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",已超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ return;
+ }
+ else if (Convert.ToInt64(WorkTime) < minworkInt)
+ {
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
break;
- case "甲烷同位素分析仪":
+ case "甲烷传感器":
if (Convert.ToInt64(WorkTime) > workInt)
{
- System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长:" + WorkTime + "h" + ",已超过设备最大工作时长:" + workTime + "h" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + "超过设备最大工作时长:" + workTime + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ return;
+ }
+ else if (Convert.ToInt64(WorkTime) < minworkInt)
+ {
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ return;
+ }
+ break;
+ case "显微拉曼分析仪":
+ if (Convert.ToInt64(WorkTime) < minworkInt)
+ {
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ return;
+ }
+ break;
+ case "色质联用":
+ if (Convert.ToInt64(WorkTime) < minworkInt)
+ {
+ System.Windows.Forms.MessageBox.Show("您填写的" + SensorID + "设置的工作时长:" + WorkTime + "分钟" + ",未能达到设备最小工作时长:" + minworkInt + "分钟" + "\n 请修改您填写的设备工作时长后重试!!!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
break;
diff --git a/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs b/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs
index ab5393f..440e5e0 100644
--- a/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs
+++ b/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs
@@ -13,6 +13,7 @@ using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
+using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Forms;
@@ -31,6 +32,8 @@ namespace InSituLaboratory.ViewModels.Pages
public ObservableCollection sysSequentialDetailsListS5 { get; set; } = new ObservableCollection();
public CurrentSequentiualModel CurrentSequentiual { get; set; } = new CurrentSequentiualModel(); //当前运行时序状态表
public SequentStatusModel sequentStatusModel { get; set; } = new SequentStatusModel();
+
+ System.Text.RegularExpressions.Regex regex = new System.Text.RegularExpressions.Regex(@"^[0-9]\d*$");
#endregion
IDialogService _dialogService;
@@ -231,7 +234,7 @@ namespace InSituLaboratory.ViewModels.Pages
{
status += item.Status;
}
- if (status == "已生成未下发")
+ if (status != "已下发")
{
if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{
@@ -356,41 +359,29 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void ClearS1()
{
- if (sequentStatusModel.SequentialStartTime1 == null || sequentStatusModel.SequentialEndTime1 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序1: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //清空并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x01, 0x03);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //清空且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x01, 0x04);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS1();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime1;
- DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime1;
-
- System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
-
- //清空并等待当前工作设备工作完最短周期
- if (s1 == System.Windows.Forms.DialogResult.Yes)
- {
- dosend(0x01, 0x03);
- //更新时序母表及时序总表状态字段
- UpdateData(startTime, endTime, "时序1", "已清空并等待");
- }
- //清空且关闭该时序所有设备
- else if (s1 == System.Windows.Forms.DialogResult.No)
- {
- dosend(0x01, 0x04);
- //更新时序母表及时序总表状态字段
- UpdateData(startTime, endTime, "时序1", "已清空并关闭");
- }
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- this.RefreshS1();
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
+
}
///
@@ -398,27 +389,15 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void BeginS1()
{
- if (sequentStatusModel.SequentialStartTime1 == null || sequentStatusModel.SequentialEndTime1 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序1: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ dosend(0x01, 0x05);
+ System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ this.RefreshS1();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime1;
- DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime1;
- dosend(0x01, 0x05);
-
- //更新时序母表及时序总表状态字段
- UpdateData(startTime, endTime, "时序1", "已启动");
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- this.RefreshS1();
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
@@ -427,40 +406,29 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void SuspendS1()
{
- if (sequentStatusModel.SequentialStartTime1 == null || sequentStatusModel.SequentialEndTime1 == null)
+
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序1: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //暂停并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x01, 0x07);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //暂停且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x01, 0x08);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS1();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- DateTime startTime = (DateTime)sequentStatusModel.SequentialStartTime1;
- DateTime endTime = (DateTime)sequentStatusModel.SequentialEndTime1;
-
- System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
-
- //暂停并等待当前工作设备工作完最短周期
- if (s1 == System.Windows.Forms.DialogResult.Yes)
- {
- dosend(0x01, 0x07);
- //更新时序母表及时序总表状态字段
- UpdateData(startTime, endTime, "时序1", "已暂停并等待");
- }
- //暂停且关闭该时序所有设备
- else if (s1 == System.Windows.Forms.DialogResult.No)
- {
- dosend(0x01, 0x08);
- //更新时序母表及时序总表状态字段
- UpdateData(startTime, endTime, "时序1", "已暂停并关闭");
- }
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- this.RefreshS1();
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
#endregion
@@ -506,45 +474,103 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void DoModifyS2(object model)
{
- if (sequentStatusModel.SequentialStartTime2 == null || sequentStatusModel.SequentialEndTime2 == null)
+ try
{
- System.Windows.Forms.MessageBox.Show("时序2:开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime2;
- DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime2;
- DateTime dateTime = DateTime.Now;
-
- if (expirationDate < dateTime)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime2 && m.EndTime == sequentStatusModel.SequentialEndTime2 && m.IsDelete == 0 && m.Sequential == "时序2").ToList();
+ if (sequentStatusModel.SequentialStartTime2 == null || sequentStatusModel.SequentialEndTime2 == null)
{
- System.Windows.Forms.MessageBox.Show("时序2:开始时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate1 < dateTime)
- {
- System.Windows.Forms.MessageBox.Show("时序2:结束时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate >= expirationDate1)
- {
- System.Windows.Forms.MessageBox.Show("时序2:结束时间不得早于开始时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ throw new Exception("时序2: 开始时间和结束时间不能为空!");
}
else
{
- DialogParameters ps = new DialogParameters();
- ps.Add("model", model);
- ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime2);
- ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime2);
- ps.Add("kind", "时序2");
- _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ if (datalist1.Count() != 0)
{
- // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
- if (result.Result == ButtonResult.OK)
+ foreach (var item in datalist1)
{
- this.RefreshS2();
+ status = item.Status;
}
- });
+ if (status == "已生成未下发")
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime2;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime2;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序2: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序2: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序2: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime2);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime2);
+ ps.Add("kind", "时序2");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS2();
+ }
+ });
+ }
+ }
+ else
+ {
+ throw new Exception("当前时序已下发!!! \n 若要设置新的时序,您可以修改时序的开始时间和结束时间即可!");
+ }
+ }
+ else
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime2;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime2;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序2: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序2: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序2: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime2);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime2);
+ ps.Add("kind", "时序2");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS2();
+ }
+ });
+ }
+ }
}
}
+ catch (Exception ex)
+ {
+ System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
}
@@ -556,25 +582,43 @@ namespace InSituLaboratory.ViewModels.Pages
{
try
{
- if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime2 && m.EndTime == sequentStatusModel.SequentialEndTime2 && m.IsDelete == 0 && m.Sequential == "时序2").ToList();
+ foreach (var item in datalist1)
{
- // 软删除
- var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
- data.IsDelete = 1;
- _sysSequentialService.Update(data);
-
- //查询删除后子表是否还存在时序配置
- var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
- //若子表不存在当前时序下配置信息,则删除对应的母表时序
- if (list.Count() == 0)
+ status += item.Status;
+ }
+ if (status != "已下发")
+ {
+ if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{
- var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
- SysSequential.IsDelete = 1;
- _sysSequentialService.Update(SysSequential);
- }
+ // 软删除
+ var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data.IsDelete = 1;
+ _sysSequentialService.Update(data);
- System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- this.RefreshS2();
+ //查询删除后子表是否还存在时序配置
+ var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
+ //若子表不存在当前时序下配置信息,则删除对应的母表时序
+ if (list.Count() == 0)
+ {
+ var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
+ SysSequential.IsDelete = 1;
+ _sysSequentialService.Update(SysSequential);
+ }
+
+ ///更新时序总表
+ var data1 = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data1.IsDelete = 1;
+ _sysSequentialService.Update(data1);
+
+ System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ this.RefreshS2();
+ }
+ }
+ else
+ {
+ System.Windows.Forms.MessageBox.Show(" 当前时序已下发!!! \n 无法删除!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
@@ -584,27 +628,35 @@ namespace InSituLaboratory.ViewModels.Pages
}
+
///
/// 时序清空
///
public override void ClearS2()
{
- if (sequentStatusModel.SequentialStartTime2 == null || sequentStatusModel.SequentialEndTime2 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序2: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //清空并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x02, 0x03);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //清空且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x02, 0x04);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS2();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x02, 0x02);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
+
}
///
@@ -612,21 +664,15 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void BeginS2()
{
- if (sequentStatusModel.SequentialStartTime2 == null || sequentStatusModel.SequentialEndTime2 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序2: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ dosend(0x02, 0x05);
+ System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ this.RefreshS2();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x02, 0x03);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
@@ -635,23 +681,32 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void SuspendS2()
{
- if (sequentStatusModel.SequentialStartTime2 == null || sequentStatusModel.SequentialEndTime2 == null)
+
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序2: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //暂停并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x02, 0x07);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //暂停且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x02, 0x08);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS2();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x02, 0x04);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
+
#endregion
#region 时序 3
@@ -695,45 +750,103 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void DoModifyS3(object model)
{
- if (sequentStatusModel.SequentialStartTime3 == null || sequentStatusModel.SequentialEndTime3 == null)
+ try
{
- System.Windows.Forms.MessageBox.Show("时序3:开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime3;
- DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime3;
- DateTime dateTime = DateTime.Now;
-
- if (expirationDate < dateTime)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime3 && m.EndTime == sequentStatusModel.SequentialEndTime3 && m.IsDelete == 0 && m.Sequential == "时序3").ToList();
+ if (sequentStatusModel.SequentialStartTime3 == null || sequentStatusModel.SequentialEndTime3 == null)
{
- System.Windows.Forms.MessageBox.Show("时序3:开始时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate1 < dateTime)
- {
- System.Windows.Forms.MessageBox.Show("时序3:结束时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate >= expirationDate1)
- {
- System.Windows.Forms.MessageBox.Show("时序3:结束时间不得早于开始时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ throw new Exception("时序3: 开始时间和结束时间不能为空!");
}
else
{
- DialogParameters ps = new DialogParameters();
- ps.Add("model", model);
- ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime3);
- ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime3);
- ps.Add("kind", "时序3");
- _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ if (datalist1.Count() != 0)
{
- // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
- if (result.Result == ButtonResult.OK)
+ foreach (var item in datalist1)
{
- this.RefreshS3();
+ status = item.Status;
}
- });
+ if (status == "已生成未下发")
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime3;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime3;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序3: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序3: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序3: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime3);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime3);
+ ps.Add("kind", "时序3");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS3();
+ }
+ });
+ }
+ }
+ else
+ {
+ throw new Exception("当前时序已下发!!! \n 若要设置新的时序,您可以修改时序的开始时间和结束时间即可!");
+ }
+ }
+ else
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime3;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime3;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序3: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序3: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序3: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime3);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime3);
+ ps.Add("kind", "时序3");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS3();
+ }
+ });
+ }
+ }
}
}
+ catch (Exception ex)
+ {
+ System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
}
@@ -745,25 +858,43 @@ namespace InSituLaboratory.ViewModels.Pages
{
try
{
- if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime3 && m.EndTime == sequentStatusModel.SequentialEndTime3 && m.IsDelete == 0 && m.Sequential == "时序3").ToList();
+ foreach (var item in datalist1)
{
- // 软删除
- var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
- data.IsDelete = 1;
- _sysSequentialService.Update(data);
-
- //查询删除后子表是否还存在时序配置
- var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
- //若子表不存在当前时序下配置信息,则删除对应的母表时序
- if (list.Count() == 0)
+ status += item.Status;
+ }
+ if (status != "已下发")
+ {
+ if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{
- var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
- SysSequential.IsDelete = 1;
- _sysSequentialService.Update(SysSequential);
- }
+ // 软删除
+ var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data.IsDelete = 1;
+ _sysSequentialService.Update(data);
- System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- this.RefreshS3();
+ //查询删除后子表是否还存在时序配置
+ var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
+ //若子表不存在当前时序下配置信息,则删除对应的母表时序
+ if (list.Count() == 0)
+ {
+ var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
+ SysSequential.IsDelete = 1;
+ _sysSequentialService.Update(SysSequential);
+ }
+
+ ///更新时序总表
+ var data1 = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data1.IsDelete = 1;
+ _sysSequentialService.Update(data1);
+
+ System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ this.RefreshS3();
+ }
+ }
+ else
+ {
+ System.Windows.Forms.MessageBox.Show(" 当前时序已下发!!! \n 无法删除!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
@@ -778,22 +909,29 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void ClearS3()
{
- if (sequentStatusModel.SequentialStartTime3 == null || sequentStatusModel.SequentialEndTime3 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序3: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //清空并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x03, 0x03);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //清空且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x03, 0x04);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS3();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x03, 0x02);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
+
}
///
@@ -801,21 +939,15 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void BeginS3()
{
- if (sequentStatusModel.SequentialStartTime3 == null || sequentStatusModel.SequentialEndTime3 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序3: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ dosend(0x03, 0x05);
+ System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ this.RefreshS3();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x03, 0x03);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
@@ -824,21 +956,28 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void SuspendS3()
{
- if (sequentStatusModel.SequentialStartTime3 == null || sequentStatusModel.SequentialEndTime3 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序3: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //暂停并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x03, 0x07);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //暂停且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x03, 0x08);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS3();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x03, 0x04);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
#endregion
@@ -884,45 +1023,103 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void DoModifyS4(object model)
{
- if (sequentStatusModel.SequentialStartTime4 == null || sequentStatusModel.SequentialEndTime4 == null)
+ try
{
- System.Windows.Forms.MessageBox.Show("时序4:开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime4;
- DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime4;
- DateTime dateTime = DateTime.Now;
-
- if (expirationDate < dateTime)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime4 && m.EndTime == sequentStatusModel.SequentialEndTime4 && m.IsDelete == 0 && m.Sequential == "时序4").ToList();
+ if (sequentStatusModel.SequentialStartTime4 == null || sequentStatusModel.SequentialEndTime4 == null)
{
- System.Windows.Forms.MessageBox.Show("时序4:开始时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate1 < dateTime)
- {
- System.Windows.Forms.MessageBox.Show("时序4:结束时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate >= expirationDate1)
- {
- System.Windows.Forms.MessageBox.Show("时序4:结束时间不得早于开始时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ throw new Exception("时序4: 开始时间和结束时间不能为空!");
}
else
{
- DialogParameters ps = new DialogParameters();
- ps.Add("model", model);
- ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime4);
- ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime4);
- ps.Add("kind", "时序4");
- _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ if (datalist1.Count() != 0)
{
- // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
- if (result.Result == ButtonResult.OK)
+ foreach (var item in datalist1)
{
- this.RefreshS4();
+ status = item.Status;
}
- });
+ if (status == "已生成未下发")
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime4;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime4;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序4: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序4: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序4: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime4);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime4);
+ ps.Add("kind", "时序4");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS4();
+ }
+ });
+ }
+ }
+ else
+ {
+ throw new Exception("当前时序已下发!!! \n 若要设置新的时序,您可以修改时序的开始时间和结束时间即可!");
+ }
+ }
+ else
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime4;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime4;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序4: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序4: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序4: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime4);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime4);
+ ps.Add("kind", "时序4");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS4();
+ }
+ });
+ }
+ }
}
}
+ catch (Exception ex)
+ {
+ System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
}
@@ -934,25 +1131,43 @@ namespace InSituLaboratory.ViewModels.Pages
{
try
{
- if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime4 && m.EndTime == sequentStatusModel.SequentialEndTime4 && m.IsDelete == 0 && m.Sequential == "时序4").ToList();
+ foreach (var item in datalist1)
{
- // 软删除
- var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
- data.IsDelete = 1;
- _sysSequentialService.Update(data);
-
- //查询删除后子表是否还存在时序配置
- var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
- //若子表不存在当前时序下配置信息,则删除对应的母表时序
- if (list.Count() == 0)
+ status += item.Status;
+ }
+ if (status != "已下发")
+ {
+ if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{
- var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
- SysSequential.IsDelete = 1;
- _sysSequentialService.Update(SysSequential);
- }
+ // 软删除
+ var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data.IsDelete = 1;
+ _sysSequentialService.Update(data);
- System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- this.RefreshS4();
+ //查询删除后子表是否还存在时序配置
+ var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
+ //若子表不存在当前时序下配置信息,则删除对应的母表时序
+ if (list.Count() == 0)
+ {
+ var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
+ SysSequential.IsDelete = 1;
+ _sysSequentialService.Update(SysSequential);
+ }
+
+ ///更新时序总表
+ var data1 = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data1.IsDelete = 1;
+ _sysSequentialService.Update(data1);
+
+ System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ this.RefreshS4();
+ }
+ }
+ else
+ {
+ System.Windows.Forms.MessageBox.Show(" 当前时序已下发!!! \n 无法删除!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
@@ -967,22 +1182,29 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void ClearS4()
{
- if (sequentStatusModel.SequentialStartTime4 == null || sequentStatusModel.SequentialEndTime4 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序4: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //清空并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x04, 0x03);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //清空且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x04, 0x04);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS4();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x04, 0x02);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
+
}
///
@@ -990,21 +1212,15 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void BeginS4()
{
- if (sequentStatusModel.SequentialStartTime4 == null || sequentStatusModel.SequentialEndTime4 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序4: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ dosend(0x04, 0x05);
+ System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ this.RefreshS4();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x04, 0x03);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
@@ -1013,21 +1229,29 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void SuspendS4()
{
- if (sequentStatusModel.SequentialStartTime4 == null || sequentStatusModel.SequentialEndTime4 == null)
+
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序4: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //暂停并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x04, 0x07);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //暂停且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x04, 0x08);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS4();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x04, 0x04);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
#endregion
@@ -1073,45 +1297,103 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void DoModifyS5(object model)
{
- if (sequentStatusModel.SequentialStartTime5 == null || sequentStatusModel.SequentialEndTime5 == null)
+ try
{
- System.Windows.Forms.MessageBox.Show("时序5:开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime5;
- DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime5;
- DateTime dateTime = DateTime.Now;
-
- if (expirationDate < dateTime)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime5 && m.EndTime == sequentStatusModel.SequentialEndTime5 && m.IsDelete == 0 && m.Sequential == "时序5").ToList();
+ if (sequentStatusModel.SequentialStartTime5 == null || sequentStatusModel.SequentialEndTime5 == null)
{
- System.Windows.Forms.MessageBox.Show("时序5:开始时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate1 < dateTime)
- {
- System.Windows.Forms.MessageBox.Show("时序5:结束时间不得早于当前时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else if (expirationDate >= expirationDate1)
- {
- System.Windows.Forms.MessageBox.Show("时序5:结束时间不得早于开始时间!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ throw new Exception("时序5: 开始时间和结束时间不能为空!");
}
else
{
- DialogParameters ps = new DialogParameters();
- ps.Add("model", model);
- ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime5);
- ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime5);
- ps.Add("kind", "时序5");
- _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ if (datalist1.Count() != 0)
{
- // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
- if (result.Result == ButtonResult.OK)
+ foreach (var item in datalist1)
{
- this.RefreshS5();
+ status = item.Status;
}
- });
+ if (status == "已生成未下发")
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime5;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime5;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序5: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序5: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序5: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime5);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime5);
+ ps.Add("kind", "时序5");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS5();
+ }
+ });
+ }
+ }
+ else
+ {
+ throw new Exception("当前时序已下发!!! \n 若要设置新的时序,您可以修改时序的开始时间和结束时间即可!");
+ }
+ }
+ else
+ {
+ DateTime expirationDate = (DateTime)sequentStatusModel.SequentialStartTime5;
+ DateTime expirationDate1 = (DateTime)sequentStatusModel.SequentialEndTime5;
+ DateTime dateTime = DateTime.Now;
+
+ if (expirationDate < dateTime)
+ {
+ throw new Exception("时序5: 开始时间不得早于当前时间!");
+ }
+ else if (expirationDate1 < dateTime)
+ {
+ throw new Exception("时序5: 结束时间不得早于当前时间!");
+ }
+ else if (expirationDate >= expirationDate1)
+ {
+ throw new Exception("时序5: 结束时间不得早于开始时间!");
+ }
+ else
+ {
+ DialogParameters ps = new DialogParameters();
+ ps.Add("model", model);
+ ps.Add("sequentialStartTime", sequentStatusModel.SequentialStartTime5);
+ ps.Add("sequentialEndTime", sequentStatusModel.SequentialEndTime5);
+ ps.Add("kind", "时序5");
+ _dialogService.ShowDialog("ModifySequentialView", ps, result =>
+ {
+ // 判断子窗口的返回状态,如果OK,刷新当前页面,否则不管
+ if (result.Result == ButtonResult.OK)
+ {
+ this.RefreshS5();
+ }
+ });
+ }
+ }
}
}
+ catch (Exception ex)
+ {
+ System.Windows.Forms.MessageBox.Show(ex.Message, "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
}
@@ -1123,25 +1405,43 @@ namespace InSituLaboratory.ViewModels.Pages
{
try
{
- if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
+ var status = "";
+ var datalist1 = _sysSequentialService.Query(m => m.StartTime == sequentStatusModel.SequentialStartTime5 && m.EndTime == sequentStatusModel.SequentialEndTime5 && m.IsDelete == 0 && m.Sequential == "时序5").ToList();
+ foreach (var item in datalist1)
{
- // 软删除
- var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
- data.IsDelete = 1;
- _sysSequentialService.Update(data);
-
- //查询删除后子表是否还存在时序配置
- var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
- //若子表不存在当前时序下配置信息,则删除对应的母表时序
- if (list.Count() == 0)
+ status += item.Status;
+ }
+ if (status != "已下发")
+ {
+ if (System.Windows.Forms.MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.OK)
{
- var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
- SysSequential.IsDelete = 1;
- _sysSequentialService.Update(SysSequential);
- }
+ // 软删除
+ var data = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data.IsDelete = 1;
+ _sysSequentialService.Update(data);
- System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
- this.RefreshS5();
+ //查询删除后子表是否还存在时序配置
+ var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
+ //若子表不存在当前时序下配置信息,则删除对应的母表时序
+ if (list.Count() == 0)
+ {
+ var SysSequential = _sysSequentialService.Find(data.SysSquentialID);
+ SysSequential.IsDelete = 1;
+ _sysSequentialService.Update(SysSequential);
+ }
+
+ ///更新时序总表
+ var data1 = _sysSequentialService.Find((model as SysSequentialDetails).Number);
+ data1.IsDelete = 1;
+ _sysSequentialService.Update(data1);
+
+ System.Windows.Forms.MessageBox.Show("删除完成!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
+ this.RefreshS5();
+ }
+ }
+ else
+ {
+ System.Windows.Forms.MessageBox.Show(" 当前时序已下发!!! \n 无法删除!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
catch (Exception ex)
@@ -1156,22 +1456,29 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void ClearS5()
{
- if (sequentStatusModel.SequentialStartTime5 == null || sequentStatusModel.SequentialEndTime5 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序5: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否清空并等待当前工作设备工作完最短周期? \n若选择否,则清空且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //清空并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x05, 0x03);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //清空且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x05, 0x04);
+ System.Windows.Forms.MessageBox.Show("时序清空命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS5();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x05, 0x02);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
+
}
///
@@ -1179,21 +1486,15 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void BeginS5()
{
- if (sequentStatusModel.SequentialStartTime5 == null || sequentStatusModel.SequentialEndTime5 == null)
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序5: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ dosend(0x05, 0x05);
+ System.Windows.Forms.MessageBox.Show("时序启动命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ this.RefreshS5();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x05, 0x03);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
@@ -1202,21 +1503,29 @@ namespace InSituLaboratory.ViewModels.Pages
///
public override void SuspendS5()
{
- if (sequentStatusModel.SequentialStartTime5 == null || sequentStatusModel.SequentialEndTime5 == null)
+
+ if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
{
- System.Windows.Forms.MessageBox.Show("时序5: 开始时间和结束时间不能为空!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+
+ System.Windows.Forms.DialogResult s1 = System.Windows.Forms.MessageBox.Show("是否暂停并等待当前工作设备工作完最短周期? \n若选择否,则暂停且关闭该时序所有设备!!!", "警告", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question);
+
+ //暂停并等待当前工作设备工作完最短周期
+ if (s1 == System.Windows.Forms.DialogResult.Yes)
+ {
+ dosend(0x05, 0x07);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ //暂停且关闭该时序所有设备
+ else if (s1 == System.Windows.Forms.DialogResult.No)
+ {
+ dosend(0x05, 0x08);
+ System.Windows.Forms.MessageBox.Show("时序暂停命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
+ }
+ this.RefreshS5();
}
else
{
- if (RelayViewModel.SocketInfo.ConnectionMessage == "断开")
- {
- dosend(0x05, 0x04);
- System.Windows.Forms.MessageBox.Show("命令已下发!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
- else
- {
- System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
- }
+ System.Windows.Forms.MessageBox.Show("请先连接服务端!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
#endregion
@@ -1313,6 +1622,7 @@ namespace InSituLaboratory.ViewModels.Pages
///
public List encode(DateTime StartTime, DateTime EndTime, byte GroupNumber, string kind)
{
+ #region 定义参数
DateTime startTime = StartTime;
DateTime endTime = EndTime;
@@ -1344,6 +1654,15 @@ namespace InSituLaboratory.ViewModels.Pages
//定义消息体数组
List byteaq = new List();
+
+ #endregion
+
+ //计算两个日期的分钟数差值,用于下发时间校验
+ System.TimeSpan t3 = endTime - startTime;
+ float getMinute = (float)t3.TotalMinutes;
+
+
+
year = (ulong)startTime.Year * 10000000000UL;
month = (ulong)startTime.Month * 100000000UL;
day = (ulong)startTime.Day * 1000000UL;
@@ -1408,6 +1727,7 @@ namespace InSituLaboratory.ViewModels.Pages
//拿下一次的节点i - 上一次的节点m 就是当前的长度,同时把新的节点赋到m上
//最后只要把总长度减去最后一个节点的长度,就是最后一个的长度
int m = 0;
+ float? totalTime = 0;
//先遍历 datalist 确定 SequenceGroup的种类和数量
for (int i = 0; i < datalist.Length; i++)
{
@@ -1429,8 +1749,13 @@ namespace InSituLaboratory.ViewModels.Pages
m = 0;
}
}
-
+ totalTime += datalist[i].WorkTime;
}
+ if (totalTime > getMinute)
+ {
+ throw new Exception("当前所下发的时序中,所有设备工作总时长:"+ totalTime + "分钟,已经超过时序规定时长:"+ getMinute + "分钟!" + "\n请修改设备后重试!!!");
+ }
+
//b = new List() { 4, 3, 4, 6 };
//3 3 2 1
for (int i = 0; i < b.Count; i++)
@@ -1440,6 +1765,7 @@ namespace InSituLaboratory.ViewModels.Pages
//定义一个循环间隔时长
int d = 0;
+ float dm = 0f;
//添加传感器识别码和工作时长
for (int j = 0; j < b[i]; j++)
{
@@ -1545,19 +1871,44 @@ namespace InSituLaboratory.ViewModels.Pages
}
//定义接收工作时长
- int w = Convert.ToInt32(datalist[i == 0 ? j : n + j].WorkTime) * 60 * 60;
- byteaq.Add((byte)(w & 0xFF));
- byteaq.Add((byte)((w & 0xFF00) >> 8));
- byteaq.Add((byte)((w & 0xFF0000) >> 16));
- byteaq.Add((byte)((w >> 24) & 0xFF));
+ float w = Convert.ToSingle(datalist[i == 0 ? j : n + j].WorkTime) * 60;
+
+ //判断w 是否是整数
+ if (regex.IsMatch(w.ToString()))
+ {
+ int worktime = (int)w;
+ byteaq.Add((byte)(worktime & 0xFF));
+ byteaq.Add((byte)((worktime & 0xFF00) >> 8));
+ byteaq.Add((byte)((worktime & 0xFF0000) >> 16));
+ byteaq.Add((byte)((worktime >> 24) & 0xFF));
+ }
+ else
+ {
+ byte[] bytes = BitConverter.GetBytes(w);
+ Array.Reverse(bytes);
+ byte[] bytes1 = tools.PadArrayWithZeros(bytes, 4);
+ byteaq.AddRange(bytes1);
+ }
//接收循环间隔时长
- d = Convert.ToInt32(datalist[i == 0 ? j : n + j].DurationTime) * 60 * 60;
+ dm = Convert.ToSingle(datalist[i == 0 ? j : n + j].DurationTime) * 60;
+ }
+ //判断dm是否为整数
+ if (regex.IsMatch(dm.ToString()))
+ {
+ int durationTime = (int)dm;
+ byteaq.Add((byte)(durationTime & 0xFF));
+ byteaq.Add((byte)((durationTime & 0xFF00) >> 8));
+ byteaq.Add((byte)((durationTime & 0xFF0000) >> 16));
+ byteaq.Add((byte)((durationTime >> 24) & 0xFF));
+ }
+ else
+ {
+ byte[] bytesm = BitConverter.GetBytes(dm);
+ Array.Reverse(bytesm);
+ byte[] bytesm1 = tools.PadArrayWithZeros(bytesm, 4);
+ byteaq.AddRange(bytesm1);
}
- byteaq.Add((byte)(d & 0xFF));
- byteaq.Add((byte)((d & 0xFF00) >> 8));
- byteaq.Add((byte)((d & 0xFF0000) >> 16));
- byteaq.Add((byte)((d >> 24) & 0xFF));
if (EnergyBoard1 > 250)
{
diff --git a/InSituLaboratory/Views/Pages/Dialogs/ModifySequentialView.xaml b/InSituLaboratory/Views/Pages/Dialogs/ModifySequentialView.xaml
index cd8a2ee..9133ab6 100644
--- a/InSituLaboratory/Views/Pages/Dialogs/ModifySequentialView.xaml
+++ b/InSituLaboratory/Views/Pages/Dialogs/ModifySequentialView.xaml
@@ -25,13 +25,13 @@
-
+
-
-
+
+
diff --git a/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml b/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml
index 20dabee..84c8986 100644
--- a/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml
+++ b/InSituLaboratory/Views/Pages/SequentialDistributionView.xaml
@@ -185,8 +185,8 @@
-
-
+
+
@@ -306,8 +306,8 @@
-
-
+
+
@@ -426,8 +426,8 @@
-
-
+
+
@@ -546,8 +546,8 @@
-
-
+
+
@@ -666,8 +666,8 @@
-
-
+
+