2024-04-09 08:17:44 +00:00
|
|
|
|
using InSituLaboratory.Entities;
|
|
|
|
|
|
using InSituLaboratory.IService;
|
|
|
|
|
|
using InSituLaboratory.Models;
|
|
|
|
|
|
using InSituLaboratory.Service;
|
|
|
|
|
|
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-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-09 08:17:44 +00:00
|
|
|
|
public List<SysDevice> DeviceNodes { get; set; } = new List<SysDevice>();
|
|
|
|
|
|
|
|
|
|
|
|
public DateTime? startTime { get; set; }
|
|
|
|
|
|
public DateTime? endTime { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
public int Number { get; set; }
|
|
|
|
|
|
public string SensorID { get; set; }
|
|
|
|
|
|
public string DurationTime { get; set; }
|
|
|
|
|
|
public string kind { get; set; }
|
|
|
|
|
|
|
|
|
|
|
|
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-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");
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (SequentialDetail == null)
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Title = "新增时序配置";
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
this.Title = "编辑时序配置";
|
|
|
|
|
|
var su = _sequentialService.Find<SysSequentialDetails>(SequentialDetail.Number);
|
|
|
|
|
|
Number = su.Number;
|
|
|
|
|
|
SensorID = su.SensorID;
|
|
|
|
|
|
DurationTime = su.DurationTime;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
{
|
|
|
|
|
|
var data = _sequentialService.GetSequentials(kind).ToList();
|
|
|
|
|
|
//保存时 首次去查询 data == null 说明数据库中无数据 为第一次插入
|
|
|
|
|
|
if (data.Count() == 0)
|
|
|
|
|
|
{
|
|
|
|
|
|
_sequentialService.Insert(new SysSequential
|
|
|
|
|
|
{
|
|
|
|
|
|
StartTime = startTime,
|
|
|
|
|
|
EndTime = endTime,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
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,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
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,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//修改传感器配置
|
|
|
|
|
|
var ssd = _sequentialService.Find<SysSequentialDetails>(Number);
|
|
|
|
|
|
ssd.SensorID = SensorID;
|
|
|
|
|
|
ssd.DurationTime = DurationTime;
|
|
|
|
|
|
_sequentialService.Update(ssd);
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
else
|
|
|
|
|
|
{
|
|
|
|
|
|
//新的时序
|
|
|
|
|
|
_sequentialService.Insert(new SysSequential
|
|
|
|
|
|
{
|
|
|
|
|
|
StartTime = startTime,
|
|
|
|
|
|
EndTime = endTime,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
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,
|
|
|
|
|
|
CreateTime = DateTime.Now,
|
|
|
|
|
|
Sequential = kind,
|
|
|
|
|
|
IsDelete = 0
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
base.DoSave();
|
2024-03-27 13:49:16 +00:00
|
|
|
|
|
2024-04-09 08:17:44 +00:00
|
|
|
|
}
|
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
|
{
|
|
|
|
|
|
MessageBox.Show(ex.Message, "提示");
|
|
|
|
|
|
}
|
2024-03-27 13:49:16 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|