2024-04-09 08:17:44 +00:00
|
|
|
|
using InSituLaboratory.Entities;
|
|
|
|
|
|
using InSituLaboratory.IService;
|
|
|
|
|
|
using InSituLaboratory.Models;
|
|
|
|
|
|
using InSituLaboratory.Service;
|
2024-04-12 09:47:43 +00:00
|
|
|
|
using Microsoft.IdentityModel.Tokens;
|
2024-04-09 08:17:44 +00:00
|
|
|
|
using Microsoft.VisualBasic.ApplicationServices;
|
2024-03-27 13:49:16 +00:00
|
|
|
|
using Prism.Services.Dialogs;
|
|
|
|
|
|
using System;
|
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
|
using System.Linq;
|
|
|
|
|
|
using System.Text;
|
|
|
|
|
|
using System.Threading.Tasks;
|
2024-04-09 08:17:44 +00:00
|
|
|
|
using System.Windows;
|
2024-04-12 09:47:43 +00:00
|
|
|
|
using System.Windows.Forms;
|
2024-04-10 09:50:54 +00:00
|
|
|
|
using System.Windows.Media.Animation;
|
2024-03-27 13:49:16 +00:00
|
|
|
|
|
|
|
|
|
|
namespace InSituLaboratory.ViewModels.Pages.Dialogs
|
|
|
|
|
|
{
|
2024-04-09 08:17:44 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 新增或者增加时序
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public class ModifySequentialViewModel : DialogViewModelBase
|
2024-03-27 13:49:16 +00:00
|
|
|
|
{
|
2024-04-10 09:50:54 +00:00
|
|
|
|
#region Model
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 传感器设备集合
|
|
|
|
|
|
/// </summary>
|
2024-04-09 08:17:44 +00:00
|
|
|
|
public List<SysDevice> DeviceNodes { get; set; } = new List<SysDevice>();
|
|
|
|
|
|
|
2024-04-12 09:47:43 +00:00
|
|
|
|
public SysSequentialDetails SysSequentialdata { get; set; }
|
2024-04-11 09:49:43 +00:00
|
|
|
|
|
2024-04-10 09:50:54 +00:00
|
|
|
|
public string? workTime { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public long? workInt { get; set; }
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
2024-04-13 03:38:55 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 记录编辑时第一次带入的设备名称
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string Device { get; set; }
|
2024-04-10 09:50:54 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 开始时间
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
public DateTime? startTime { get; set; }
|
2024-04-10 09:50:54 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 结束时间
|
|
|
|
|
|
/// </summary>
|
2024-04-09 08:17:44 +00:00
|
|
|
|
public DateTime? endTime { get; set; }
|
|
|
|
|
|
|
2024-04-12 05:30:03 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 序号
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public int Number { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 时序类别
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string kind { get; set; }
|
|
|
|
|
|
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
2024-04-12 09:47:43 +00:00
|
|
|
|
private string _sequenceGroup;
|
|
|
|
|
|
|
2024-04-10 09:50:54 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 配置
|
|
|
|
|
|
/// </summary>
|
2024-04-11 09:49:43 +00:00
|
|
|
|
public string SequenceGroup
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return _sequenceGroup; }
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
_sequenceGroup = value;
|
2024-04-12 05:30:03 +00:00
|
|
|
|
|
2024-04-12 09:47:43 +00:00
|
|
|
|
//SysSequentialdata = _sequentialService.GetSequentialSequenceGroup(SequenceGroup, kind);
|
|
|
|
|
|
//if (SysSequentialdata != null)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// ErrorList.Add("DurationTime", new List<string> { "当前配置存在循环时长:" + SysSequentialdata.DurationTime + "s" });
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else
|
|
|
|
|
|
//{
|
|
|
|
|
|
// ErrorList.Remove("DurationTime");
|
|
|
|
|
|
//}
|
|
|
|
|
|
//this.RaiseErrorsChanged("DurationTime");
|
2024-04-11 09:49:43 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-04-12 09:47:43 +00:00
|
|
|
|
private string? _sensorID;
|
2024-04-10 09:50:54 +00:00
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 传感器设备
|
|
|
|
|
|
/// </summary>
|
2024-04-12 09:47:43 +00:00
|
|
|
|
public string? SensorID
|
2024-04-10 09:50:54 +00:00
|
|
|
|
{
|
2024-04-11 09:49:43 +00:00
|
|
|
|
get { return _sensorID; }
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
2024-04-10 09:50:54 +00:00
|
|
|
|
_sensorID = value;
|
|
|
|
|
|
|
2024-04-12 09:47:43 +00:00
|
|
|
|
//if (SequenceGroup == null)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// System.Windows.Forms.MessageBox.Show("配置为空!!! 请选择配置后,必须重新选择传感器设备!!!", "提示", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Exclamation);
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else
|
|
|
|
|
|
//{
|
|
|
|
|
|
// ///查询当前设备是否已存在数据库中
|
|
|
|
|
|
// var select = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == value && m.SequenceGroup == SequenceGroup && m.Sequential == kind && m.IsDelete == 0).ToList();
|
|
|
|
|
|
|
|
|
|
|
|
// if (select.Count() == 0)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// //通过设备信息查询设备工作时长
|
|
|
|
|
|
// workTime = _deviceSvice.GetDeviceByDeviceName(_sensorID);
|
|
|
|
|
|
|
|
|
|
|
|
// this.ErrorList.Clear();
|
|
|
|
|
|
// if (_sensorID == "质谱仪")
|
|
|
|
|
|
// {
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "质谱仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else if (_sensorID == "二氧化碳同位素分析仪")
|
|
|
|
|
|
// {
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "二氧化碳同位素分析仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else if (_sensorID == "甲烷同位素分析仪")
|
|
|
|
|
|
// {
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "甲烷同位素分析仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else if (_sensorID == "气相色谱仪")
|
|
|
|
|
|
// {
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "气相色谱仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else if (_sensorID == "基因测序仪")
|
|
|
|
|
|
// {
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "基因测序仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// this.RaiseErrorsChanged("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// System.Windows.MessageBox.Show(kind + "中 配置" + SequenceGroup + " 已存在" + SensorID, "提示");
|
|
|
|
|
|
// workTime = _deviceSvice.GetDeviceByDeviceName(_sensorID);
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
2024-04-10 09:50:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
|
2024-04-10 09:50:54 +00:00
|
|
|
|
private string _workTime;
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 工作时长
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
|
|
|
|
|
|
public string WorkTime
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return _workTime; }
|
2024-04-11 09:49:43 +00:00
|
|
|
|
set
|
2024-04-10 09:50:54 +00:00
|
|
|
|
{
|
|
|
|
|
|
_workTime = value;
|
2024-04-12 09:47:43 +00:00
|
|
|
|
//this.ErrorList.Clear();
|
|
|
|
|
|
//if (string.IsNullOrEmpty(value))
|
|
|
|
|
|
//{
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "工作时长不能为空" });
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else if (_sensorID == "质谱仪")
|
|
|
|
|
|
//{
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(value) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "质谱仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else if (_sensorID == "二氧化碳同位素分析仪")
|
|
|
|
|
|
//{
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(value) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "二氧化碳同位素分析仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else if (_sensorID == "甲烷同位素分析仪")
|
|
|
|
|
|
//{
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(value) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "甲烷同位素分析仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else if (_sensorID == "气相色谱仪")
|
|
|
|
|
|
//{
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(value) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "气相色谱仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else if (_sensorID == "基因测序仪")
|
|
|
|
|
|
//{
|
|
|
|
|
|
// workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
// if (Convert.ToInt64(value) > workInt)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("WorkTime", new List<string> { "基因测序仪已超出最大工作时长" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
|
|
|
|
|
//else
|
|
|
|
|
|
//{
|
|
|
|
|
|
// ErrorList.Remove("WorkTime");
|
|
|
|
|
|
//}
|
|
|
|
|
|
//this.RaiseErrorsChanged("WorkTime");
|
2024-04-11 09:49:43 +00:00
|
|
|
|
|
2024-04-10 09:50:54 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
2024-04-12 09:47:43 +00:00
|
|
|
|
private string _durationTime;
|
|
|
|
|
|
|
2024-04-12 05:30:03 +00:00
|
|
|
|
/// <summary>
|
|
|
|
|
|
/// 循环时长
|
|
|
|
|
|
/// </summary>
|
|
|
|
|
|
public string DurationTime
|
|
|
|
|
|
{
|
|
|
|
|
|
get { return _durationTime; }
|
|
|
|
|
|
set
|
|
|
|
|
|
{
|
|
|
|
|
|
_durationTime = value;
|
2024-04-12 09:47:43 +00:00
|
|
|
|
//ErrorList.Remove("DurationTime");
|
|
|
|
|
|
//if (SequenceGroup != null)
|
|
|
|
|
|
//{
|
|
|
|
|
|
// if (SysSequentialdata != null)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// if (_durationTime != SysSequentialdata.DurationTime)
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Add("DurationTime", new List<string> { "当前配置已存在循环时长:" + SysSequentialdata.DurationTime + "s" + ",无法修改" });
|
|
|
|
|
|
// }
|
|
|
|
|
|
// else
|
|
|
|
|
|
// {
|
|
|
|
|
|
// ErrorList.Remove("DurationTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
// this.RaiseErrorsChanged("DurationTime");
|
|
|
|
|
|
// }
|
|
|
|
|
|
//}
|
2024-04-12 05:30:03 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2024-04-10 09:50:54 +00:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
ISysSequentialService _sequentialService;
|
|
|
|
|
|
IDeviceSvice _deviceSvice;
|
|
|
|
|
|
|
|
|
|
|
|
public ModifySequentialViewModel(ISysSequentialService sequentialService, IDeviceSvice deviceSvice)
|
2024-03-27 13:49:16 +00:00
|
|
|
|
{
|
2024-04-09 08:17:44 +00:00
|
|
|
|
_sequentialService = sequentialService;
|
|
|
|
|
|
_deviceSvice = deviceSvice;
|
2024-04-12 09:47:43 +00:00
|
|
|
|
|
2024-03-27 13:49:16 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void OnDialogOpened(IDialogParameters parameters)
|
|
|
|
|
|
{
|
2024-04-09 08:17:44 +00:00
|
|
|
|
var SequentialDetail = parameters.GetValue<SysSequentialDetails>("model");
|
|
|
|
|
|
startTime = parameters.GetValue<DateTime>("sequentialStartTime");
|
|
|
|
|
|
endTime = parameters.GetValue<DateTime>("sequentialEndTime");
|
|
|
|
|
|
kind = parameters.GetValue<string>("kind");
|
2024-04-11 09:49:43 +00:00
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
|
|
|
|
|
|
if (SequentialDetail == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Title = "新增时序配置";
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Title = "编辑时序配置";
|
|
|
|
|
|
var su = _sequentialService.Find<SysSequentialDetails>(SequentialDetail.Number);
|
|
|
|
|
|
Number = su.Number;
|
2024-04-12 09:47:43 +00:00
|
|
|
|
SequenceGroup = su.SequenceGroup;
|
2024-04-09 08:17:44 +00:00
|
|
|
|
SensorID = su.SensorID;
|
2024-04-11 09:49:43 +00:00
|
|
|
|
WorkTime = su.WorkTime;
|
2024-04-09 08:17:44 +00:00
|
|
|
|
DurationTime = su.DurationTime;
|
2024-04-13 03:38:55 +00:00
|
|
|
|
Device = SensorID;
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
DeviceNodes = _deviceSvice.GetDevices().ToList();
|
2024-03-27 13:49:16 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void DoSave()
|
|
|
|
|
|
{
|
2024-04-09 08:17:44 +00:00
|
|
|
|
try
|
|
|
|
|
|
{
|
2024-04-12 09:47:43 +00:00
|
|
|
|
//非空校验
|
|
|
|
|
|
if (string.IsNullOrEmpty(SequenceGroup))
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show("配置不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (string.IsNullOrEmpty(SensorID))
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show("传感器设备不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (string.IsNullOrEmpty(WorkTime))
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show("工作时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
else if (string.IsNullOrEmpty(DurationTime))
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show("循环时长不能为空", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-04-15 10:06:19 +00:00
|
|
|
|
var data = _sequentialService.GetSequentials(kind).ToList();
|
|
|
|
|
|
if (data.Count != 0)
|
2024-04-12 09:47:43 +00:00
|
|
|
|
{
|
2024-04-15 10:06:19 +00:00
|
|
|
|
var data1 = _sequentialService.GetSequentials(kind).First();
|
|
|
|
|
|
if (data1.StartTime == startTime && data1.EndTime == endTime)
|
2024-04-13 03:38:55 +00:00
|
|
|
|
{
|
2024-04-15 10:06:19 +00:00
|
|
|
|
//编辑情况下
|
|
|
|
|
|
if (Number != 0)
|
2024-04-13 03:38:55 +00:00
|
|
|
|
{
|
2024-04-15 10:06:19 +00:00
|
|
|
|
if (Device != SensorID)
|
|
|
|
|
|
{
|
|
|
|
|
|
//传感器是否已存在校验
|
2024-06-17 10:12:16 +00:00
|
|
|
|
var selectFirst = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == SensorID && m.Sequential == kind && m.IsDelete == 0).ToList();
|
2024-04-15 10:06:19 +00:00
|
|
|
|
if (selectFirst.Count != 0)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
foreach (var item in selectFirst)
|
|
|
|
|
|
{
|
|
|
|
|
|
System.Windows.Forms.MessageBox.Show(kind + "- 配置" + item.SequenceGroup + "中,已配置" + SensorID + "!!!"+" 请重新配置。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-04-15 10:06:19 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//传感器是否已存在校验
|
2024-06-17 10:12:16 +00:00
|
|
|
|
var select = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == SensorID && m.Sequential == kind && m.IsDelete == 0).ToList();
|
2024-04-15 10:06:19 +00:00
|
|
|
|
if (select.Count != 0)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
foreach (var item in select)
|
|
|
|
|
|
{
|
|
|
|
|
|
System.Windows.Forms.MessageBox.Show(kind + "- 配置" + item.SequenceGroup + "中,已配置" + SensorID + "!!!" + " 请重新配置。", "警告", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
|
|
|
|
|
|
return;
|
|
|
|
|
|
}
|
2024-04-15 10:06:19 +00:00
|
|
|
|
}
|
2024-04-13 03:38:55 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
|
|
|
|
|
///循环时长校验
|
|
|
|
|
|
if (data1.StartTime == startTime && data1.EndTime == endTime)
|
2024-04-13 03:38:55 +00:00
|
|
|
|
{
|
2024-04-15 10:06:19 +00:00
|
|
|
|
var SysSequentialdata1 = _sequentialService.GetSequentialSequenceGroup(SequenceGroup, kind, data1.Number);
|
|
|
|
|
|
if (SysSequentialdata1 != null)
|
|
|
|
|
|
{
|
|
|
|
|
|
if (DurationTime != SysSequentialdata1.DurationTime)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show(kind + "- 配置" + SequenceGroup + " 已存在循环时长:" + SysSequentialdata1.DurationTime + "s" + ",无法修改", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-15 10:06:19 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-04-13 03:38:55 +00:00
|
|
|
|
}
|
2024-04-12 09:47:43 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
///工作时长是否已超过传感器预设时间
|
|
|
|
|
|
workTime = _deviceSvice.GetDeviceByDeviceName(SensorID);
|
|
|
|
|
|
if (workTime == "无")
|
2024-04-11 09:49:43 +00:00
|
|
|
|
{
|
2024-04-12 09:47:43 +00:00
|
|
|
|
workTime = "0";
|
|
|
|
|
|
}
|
|
|
|
|
|
workInt = Convert.ToInt64(workTime) * 60 * 60;
|
|
|
|
|
|
switch (SensorID)
|
|
|
|
|
|
{
|
|
|
|
|
|
case "气相色谱仪":
|
|
|
|
|
|
if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长超过传感器本身最大工作时长,为:" + workTime + "h/ " + workInt + "s", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "质谱仪":
|
|
|
|
|
|
if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长超过传感器本身最大工作时长,为:" + workTime + "h/ " + workInt + "s", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "二氧化碳同位素分析仪":
|
|
|
|
|
|
if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长超过传感器本身最大工作时长,为:" + workTime + "h/ " + workInt + "s", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "基因测序仪":
|
|
|
|
|
|
if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长超过传感器本身最大工作时长,为:" + workTime + "h/ " + workInt + "s", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
case "甲烷同位素分析仪":
|
|
|
|
|
|
if (Convert.ToInt64(WorkTime) > workInt)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show(SensorID + "设置的工作时长超过传感器本身最大工作时长,为:" + workTime + "h/ " + workInt + "s", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-12 09:47:43 +00:00
|
|
|
|
return;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
2024-06-17 10:12:16 +00:00
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
//保存时 首次去查询 data == null 说明数据库中无数据 为第一次插入
|
|
|
|
|
|
if (data.Count() == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
_sequentialService.Insert(new SysSequential
|
|
|
|
|
|
{
|
|
|
|
|
|
StartTime = startTime,
|
|
|
|
|
|
EndTime = endTime,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
2024-06-17 10:12:16 +00:00
|
|
|
|
Status = "已生成未下发",
|
2024-04-09 08:17:44 +00:00
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
var Squential = _sequentialService.Query<SysSequential>(m => m.Sequential == kind).OrderByDescending(n => n.CreateTime).First();
|
|
|
|
|
|
_sequentialService.Insert(new SysSequentialDetails
|
|
|
|
|
|
{
|
|
|
|
|
|
SysSquentialID = Squential.Number,
|
|
|
|
|
|
SensorID = SensorID,
|
|
|
|
|
|
DurationTime = DurationTime,
|
2024-04-11 09:49:43 +00:00
|
|
|
|
WorkTime = WorkTime,
|
|
|
|
|
|
SequenceGroup = SequenceGroup,
|
2024-04-09 08:17:44 +00:00
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
|
|
|
|
|
//向时序总表中插入相应的数据
|
|
|
|
|
|
_sequentialService.Insert(new SysSequentialTotal
|
|
|
|
|
|
{
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
StartTime = startTime,
|
|
|
|
|
|
EndTime = endTime,
|
|
|
|
|
|
SensorID = SensorID,
|
|
|
|
|
|
DurationTime = DurationTime,
|
|
|
|
|
|
WorkTime = WorkTime,
|
|
|
|
|
|
SequenceGroup = SequenceGroup,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
2024-06-17 10:12:16 +00:00
|
|
|
|
Status = "已生成未下发",
|
2024-04-15 10:06:19 +00:00
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
//判断查询的当前时序开始和结束时间与打开的窗口传值是否有变化
|
|
|
|
|
|
//无变化说明是在当前时序下新增传感器运行时间配置
|
|
|
|
|
|
var data1 = _sequentialService.GetSequentials(kind).First();
|
|
|
|
|
|
if (data1.StartTime == startTime && data1.EndTime == endTime)
|
|
|
|
|
|
{
|
|
|
|
|
|
//新增传感器配置
|
|
|
|
|
|
if (Number == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
_sequentialService.Insert(new SysSequentialDetails
|
|
|
|
|
|
{
|
|
|
|
|
|
SysSquentialID = data1.Number,
|
|
|
|
|
|
SensorID = SensorID,
|
|
|
|
|
|
DurationTime = DurationTime,
|
2024-04-12 09:47:43 +00:00
|
|
|
|
WorkTime = WorkTime,
|
|
|
|
|
|
SequenceGroup = SequenceGroup,
|
2024-04-09 08:17:44 +00:00
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
|
|
|
|
|
//向时序总表中插入相应的数据
|
|
|
|
|
|
_sequentialService.Insert(new SysSequentialTotal
|
|
|
|
|
|
{
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
StartTime = startTime,
|
|
|
|
|
|
EndTime = endTime,
|
|
|
|
|
|
SensorID = SensorID,
|
|
|
|
|
|
DurationTime = DurationTime,
|
|
|
|
|
|
WorkTime = WorkTime,
|
|
|
|
|
|
SequenceGroup = SequenceGroup,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
2024-06-17 10:12:16 +00:00
|
|
|
|
Status = "已生成未下发",
|
2024-04-15 10:06:19 +00:00
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//修改传感器配置
|
|
|
|
|
|
var ssd = _sequentialService.Find<SysSequentialDetails>(Number);
|
|
|
|
|
|
ssd.SensorID = SensorID;
|
|
|
|
|
|
ssd.DurationTime = DurationTime;
|
2024-04-11 09:49:43 +00:00
|
|
|
|
ssd.WorkTime = WorkTime;
|
|
|
|
|
|
ssd.SequenceGroup = SequenceGroup;
|
2024-04-09 08:17:44 +00:00
|
|
|
|
_sequentialService.Update(ssd);
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
|
|
|
|
|
//修改时序总表中的相应的数据
|
|
|
|
|
|
var ssm = _sequentialService.Find<SysSequentialTotal>(Number);
|
|
|
|
|
|
ssm.SensorID = SensorID;
|
|
|
|
|
|
ssm.DurationTime = DurationTime;
|
|
|
|
|
|
ssm.WorkTime = WorkTime;
|
|
|
|
|
|
ssm.SequenceGroup = SequenceGroup;
|
|
|
|
|
|
_sequentialService.Update(ssd);
|
|
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//新的时序
|
|
|
|
|
|
_sequentialService.Insert(new SysSequential
|
|
|
|
|
|
{
|
|
|
|
|
|
StartTime = startTime,
|
|
|
|
|
|
EndTime = endTime,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
2024-06-17 10:12:16 +00:00
|
|
|
|
Status = "已生成未下发",
|
2024-04-09 08:17:44 +00:00
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
var Squential = _sequentialService.Query<SysSequential>(m => m.Sequential == kind).OrderByDescending(n => n.CreateTime).First();
|
|
|
|
|
|
_sequentialService.Insert(new SysSequentialDetails
|
|
|
|
|
|
{
|
|
|
|
|
|
SysSquentialID = Squential.Number,
|
|
|
|
|
|
SensorID = SensorID,
|
|
|
|
|
|
DurationTime = DurationTime,
|
2024-04-11 09:49:43 +00:00
|
|
|
|
WorkTime = WorkTime,
|
|
|
|
|
|
SequenceGroup = SequenceGroup,
|
2024-04-09 08:17:44 +00:00
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2024-04-15 10:06:19 +00:00
|
|
|
|
|
|
|
|
|
|
//向时序总表中插入相应的数据
|
|
|
|
|
|
_sequentialService.Insert(new SysSequentialTotal
|
|
|
|
|
|
{
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
StartTime = startTime,
|
|
|
|
|
|
EndTime = endTime,
|
|
|
|
|
|
SensorID = SensorID,
|
|
|
|
|
|
DurationTime = DurationTime,
|
|
|
|
|
|
WorkTime = WorkTime,
|
|
|
|
|
|
SequenceGroup = SequenceGroup,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
2024-06-17 10:12:16 +00:00
|
|
|
|
Status = "已生成未下发",
|
2024-04-15 10:06:19 +00:00
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
}
|
2024-04-11 09:49:43 +00:00
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
base.DoSave();
|
2024-03-27 13:49:16 +00:00
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
2024-06-17 10:12:16 +00:00
|
|
|
|
System.Windows.Forms.MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
2024-03-27 13:49:16 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|