20230201_145_upperpc/InSituLaboratory/ViewModels/Pages/SequentialDistributionViewModel.cs

752 lines
30 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using InSituLaboratory.Entities;
using InSituLaboratory.IService;
using InSituLaboratory.Models;
using InSituLaboratory.Service;
using Microsoft.EntityFrameworkCore.Query.Internal;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace InSituLaboratory.ViewModels.Pages
{
public class SequentialDistributionViewModel : ViewModelBase
{
#region
public ObservableCollection<SysSequentialDetails> sysSequentialDetailsListS1 { get; set; } = new ObservableCollection<SysSequentialDetails>();
public ObservableCollection<SysSequentialDetails> sysSequentialDetailsListS2 { get; set; } = new ObservableCollection<SysSequentialDetails>();
public ObservableCollection<SysSequentialDetails> sysSequentialDetailsListS3 { get; set; } = new ObservableCollection<SysSequentialDetails>();
public ObservableCollection<SysSequentialDetails> sysSequentialDetailsListS4 { get; set; } = new ObservableCollection<SysSequentialDetails>();
public ObservableCollection<SysSequentialDetails> sysSequentialDetailsListS5 { get; set; } = new ObservableCollection<SysSequentialDetails>();
/// <summary>
/// 时序1 开始时间
/// </summary>
private DateTime? sequentialStartTime1;
public DateTime? SequentialStartTime1
{
get { return sequentialStartTime1; }
set { SetProperty(ref sequentialStartTime1, value); }
}
/// <summary>
/// 时序1 结束时间
/// </summary>
private DateTime? sequentialEndTime1;
public DateTime? SequentialEndTime1
{
get { return sequentialEndTime1; }
set { SetProperty(ref sequentialEndTime1, value); }
}
/// <summary>
/// 时序2 开始时间
/// </summary>
private DateTime? sequentialStartTime2;
public DateTime? SequentialStartTime2
{
get { return sequentialStartTime2; }
set { SetProperty(ref sequentialStartTime2, value); }
}
/// <summary>
/// 时序2 结束时间
/// </summary>
private DateTime? sequentialEndTime2;
public DateTime? SequentialEndTime2
{
get { return sequentialEndTime2; }
set { SetProperty(ref sequentialEndTime2, value); }
}
/// <summary>
/// 时序3 开始时间
/// </summary>
private DateTime? sequentialStartTime3;
public DateTime? SequentialStartTime3
{
get { return sequentialStartTime3; }
set { SetProperty(ref sequentialStartTime3, value); }
}
/// <summary>
/// 时序3 结束时间
/// </summary>
private DateTime? sequentialEndTime3;
public DateTime? SequentialEndTime3
{
get { return sequentialEndTime3; }
set { SetProperty(ref sequentialEndTime3, value); }
}
/// <summary>
/// 时序4 开始时间
/// </summary>
private DateTime? sequentialStartTime4;
public DateTime? SequentialStartTime4
{
get { return sequentialStartTime4; }
set { SetProperty(ref sequentialStartTime4, value); }
}
/// <summary>
/// 时序4 结束时间
/// </summary>
private DateTime? sequentialEndTime4;
public DateTime? SequentialEndTime4
{
get { return sequentialEndTime4; }
set { SetProperty(ref sequentialEndTime4, value); }
}
/// <summary>
/// 时序5 开始时间
/// </summary>
private DateTime? sequentialStartTime5;
public DateTime? SequentialStartTime5
{
get { return sequentialStartTime5; }
set { SetProperty(ref sequentialStartTime5, value); }
}
/// <summary>
/// 时序5 结束时间
/// </summary>
private DateTime? sequentialEndTime5;
public DateTime? SequentialEndTime5
{
get { return sequentialEndTime5; }
set { SetProperty(ref sequentialEndTime5, value); }
}
#endregion
IDialogService _dialogService;
ISysSequentialService _sysSequentialService;
public SequentialDistributionViewModel(IRegionManager regionManager, IDialogService dialogService, ISysSequentialService sysSequentialService) : base(regionManager)
{
this.PageTitle = "时序下发";
_dialogService = dialogService;
_sysSequentialService = sysSequentialService;
RefreshS1();
RefreshS2();
RefreshS3();
RefreshS4();
RefreshS5();
}
#region 1
public override void RefreshS1()
{
int num = 1;
SearchKey = "时序1";
sysSequentialDetailsListS1.Clear();
var list = _sysSequentialService.GetSequentials(SearchKey).ToList();
if (list.Count != 0)
{
var data = _sysSequentialService.GetSequentials(SearchKey).First();
var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList();
foreach (var item in dataDetails)
{
SysSequentialDetails sysSequentialDetail = new SysSequentialDetails();
sysSequentialDetail.Number = item.Number;
sysSequentialDetail.DurationTime = item.DurationTime;
sysSequentialDetail.SensorID = item.SensorID;
sysSequentialDetail.WorkTime = item.WorkTime;
sysSequentialDetail.SequenceGroup = item.SequenceGroup;
sysSequentialDetail.CreateTime = item.CreateTime;
sysSequentialDetail.Sequential = item.Sequential;
sysSequentialDetail.SysSquentialID = item.SysSquentialID;
sysSequentialDetail.IsDelete = item.IsDelete;
sysSequentialDetail.num = num;
sysSequentialDetailsListS1.Add(sysSequentialDetail);
num++;
}
SequentialStartTime1 = data.StartTime;
SequentialEndTime1 = data.EndTime;
}
}
/// <summary>
/// 编辑或者新增
/// </summary>
/// <param name="model"></param>
public override void DoModifyS1(object model)
{
if (SequentialStartTime1 == null || SequentialEndTime1 == null)
{
MessageBox.Show("时序1:开始时间和结束时间不能为空!", "提示");
}
else
{
DateTime expirationDate = (DateTime)SequentialStartTime1;
DateTime expirationDate1 = (DateTime)SequentialEndTime1;
DateTime dateTime = DateTime.Now;
if (expirationDate < dateTime)
{
MessageBox.Show("时序1:开始时间不得早于当前时间!", "提示");
}
else if (expirationDate1 < dateTime)
{
MessageBox.Show("时序1:结束时间不得早于当前时间!", "提示");
}
else if (expirationDate >= expirationDate1)
{
MessageBox.Show("时序1:结束时间不得早于开始时间!", "提示");
}
else
{
DialogParameters ps = new DialogParameters();
ps.Add("model", model);
ps.Add("sequentialStartTime", SequentialStartTime1);
ps.Add("sequentialEndTime", SequentialEndTime1);
ps.Add("kind", "时序1");
_dialogService.ShowDialog("ModifySequentialView", ps, result =>
{
// 判断子窗口的返回状态如果OK刷新当前页面否则不管
if (result.Result == ButtonResult.OK)
{
this.RefreshS1();
}
});
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="model"></param>
public override void DoDeleteS1(object model)
{
try
{
if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) ==
MessageBoxResult.Yes)
{
// 软删除
var data = _sysSequentialService.Find<SysSequentialDetails>((model as SysSequentialDetails).Number);
data.IsDelete = 1;
_sysSequentialService.Update(data);
//查询删除后子表是否还存在时序配置
var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
//若子表不存在当前时序下配置信息,则删除对应的母表时序
if (list.Count() == 0)
{
var SysSequential = _sysSequentialService.Find<SysSequential>(data.SysSquentialID);
SysSequential.IsDelete = 1;
_sysSequentialService.Update(SysSequential);
}
///更新时序总表
var data1 = _sysSequentialService.Find<SysSequentialTotal>((model as SysSequentialDetails).Number);
data1.IsDelete = 1;
_sysSequentialService.Update(data1);
MessageBox.Show("删除完成!", "提示");
this.RefreshS1();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
#endregion
#region 2
public override void RefreshS2()
{
int num = 1;
SearchKey = "时序2";
sysSequentialDetailsListS2.Clear();
var list = _sysSequentialService.GetSequentials(SearchKey).ToList();
if (list.Count != 0)
{
var data = _sysSequentialService.GetSequentials(SearchKey).First();
var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList();
foreach (var item in dataDetails)
{
SysSequentialDetails sysSequentialDetail = new SysSequentialDetails();
sysSequentialDetail.Number = item.Number;
sysSequentialDetail.DurationTime = item.DurationTime;
sysSequentialDetail.SensorID = item.SensorID;
sysSequentialDetail.WorkTime = item.WorkTime;
sysSequentialDetail.SequenceGroup = item.SequenceGroup;
sysSequentialDetail.CreateTime = item.CreateTime;
sysSequentialDetail.Sequential = item.Sequential;
sysSequentialDetail.SysSquentialID = item.SysSquentialID;
sysSequentialDetail.IsDelete = item.IsDelete;
sysSequentialDetail.num = num;
sysSequentialDetailsListS2.Add(sysSequentialDetail);
num++;
}
SequentialStartTime2 = data.StartTime;
SequentialEndTime2 = data.EndTime;
}
}
/// <summary>
/// 编辑或者新增
/// </summary>
/// <param name="model"></param>
public override void DoModifyS2(object model)
{
if (SequentialStartTime2 == null || SequentialEndTime2 == null)
{
MessageBox.Show("时序2:开始时间和结束时间不能为空!", "提示");
}
else
{
DateTime expirationDate = (DateTime)SequentialStartTime2;
DateTime expirationDate1 = (DateTime)SequentialEndTime2;
DateTime dateTime = DateTime.Now;
if (expirationDate < dateTime)
{
MessageBox.Show("时序2:开始时间不得早于当前时间!", "提示");
}
else if (expirationDate1 < dateTime)
{
MessageBox.Show("时序2:结束时间不得早于当前时间!", "提示");
}
else if (expirationDate >= expirationDate1)
{
MessageBox.Show("时序2:结束时间不得早于开始时间!", "提示");
}
else
{
DialogParameters ps = new DialogParameters();
ps.Add("model", model);
ps.Add("sequentialStartTime", SequentialStartTime2);
ps.Add("sequentialEndTime", SequentialEndTime2);
ps.Add("kind", "时序2");
_dialogService.ShowDialog("ModifySequentialView", ps, result =>
{
// 判断子窗口的返回状态如果OK刷新当前页面否则不管
if (result.Result == ButtonResult.OK)
{
this.RefreshS2();
}
});
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="model"></param>
public override void DoDeleteS2(object model)
{
try
{
if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) ==
MessageBoxResult.Yes)
{
// 软删除
var data = _sysSequentialService.Find<SysSequentialDetails>((model as SysSequentialDetails).Number);
data.IsDelete = 1;
_sysSequentialService.Update(data);
//查询删除后子表是否还存在时序配置
var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
//若子表不存在当前时序下配置信息,则删除对应的母表时序
if (list.Count() == 0)
{
var SysSequential = _sysSequentialService.Find<SysSequential>(data.SysSquentialID);
SysSequential.IsDelete = 1;
_sysSequentialService.Update(SysSequential);
}
MessageBox.Show("删除完成!", "提示");
this.RefreshS2();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
#endregion
#region 3
public override void RefreshS3()
{
int num = 1;
SearchKey = "时序3";
sysSequentialDetailsListS3.Clear();
var list = _sysSequentialService.GetSequentials(SearchKey).ToList();
if (list.Count != 0)
{
var data = _sysSequentialService.GetSequentials(SearchKey).First();
var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList();
foreach (var item in dataDetails)
{
SysSequentialDetails sysSequentialDetail = new SysSequentialDetails();
sysSequentialDetail.Number = item.Number;
sysSequentialDetail.DurationTime = item.DurationTime;
sysSequentialDetail.SensorID = item.SensorID;
sysSequentialDetail.WorkTime = item.WorkTime;
sysSequentialDetail.SequenceGroup = item.SequenceGroup;
sysSequentialDetail.CreateTime = item.CreateTime;
sysSequentialDetail.Sequential = item.Sequential;
sysSequentialDetail.SysSquentialID = item.SysSquentialID;
sysSequentialDetail.IsDelete = item.IsDelete;
sysSequentialDetail.num = num;
sysSequentialDetailsListS3.Add(sysSequentialDetail);
num++;
}
SequentialStartTime3 = data.StartTime;
SequentialEndTime3 = data.EndTime;
}
}
/// <summary>
/// 编辑或者新增
/// </summary>
/// <param name="model"></param>
public override void DoModifyS3(object model)
{
if (SequentialStartTime3 == null || SequentialEndTime3 == null)
{
MessageBox.Show("时序3:开始时间和结束时间不能为空!", "提示");
}
else
{
DateTime expirationDate = (DateTime)SequentialStartTime3;
DateTime expirationDate1 = (DateTime)SequentialEndTime3;
DateTime dateTime = DateTime.Now;
if (expirationDate < dateTime)
{
MessageBox.Show("时序3:开始时间不得早于当前时间!", "提示");
}
else if (expirationDate1 < dateTime)
{
MessageBox.Show("时序3:结束时间不得早于当前时间!", "提示");
}
else if (expirationDate >= expirationDate1)
{
MessageBox.Show("时序3:结束时间不得早于开始时间!", "提示");
}
else
{
DialogParameters ps = new DialogParameters();
ps.Add("model", model);
ps.Add("sequentialStartTime", SequentialStartTime3);
ps.Add("sequentialEndTime", SequentialEndTime3);
ps.Add("kind", "时序3");
_dialogService.ShowDialog("ModifySequentialView", ps, result =>
{
// 判断子窗口的返回状态如果OK刷新当前页面否则不管
if (result.Result == ButtonResult.OK)
{
this.RefreshS3();
}
});
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="model"></param>
public override void DoDeleteS3(object model)
{
try
{
if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) ==
MessageBoxResult.Yes)
{
// 软删除
var data = _sysSequentialService.Find<SysSequentialDetails>((model as SysSequentialDetails).Number);
data.IsDelete = 1;
_sysSequentialService.Update(data);
//查询删除后子表是否还存在时序配置
var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
//若子表不存在当前时序下配置信息,则删除对应的母表时序
if (list.Count() == 0)
{
var SysSequential = _sysSequentialService.Find<SysSequential>(data.SysSquentialID);
SysSequential.IsDelete = 1;
_sysSequentialService.Update(SysSequential);
}
MessageBox.Show("删除完成!", "提示");
this.RefreshS3();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
#endregion
#region 4
public override void RefreshS4()
{
int num = 1;
SearchKey = "时序4";
sysSequentialDetailsListS4.Clear();
var list = _sysSequentialService.GetSequentials(SearchKey).ToList();
if (list.Count != 0)
{
var data = _sysSequentialService.GetSequentials(SearchKey).First();
var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList();
foreach (var item in dataDetails)
{
SysSequentialDetails sysSequentialDetail = new SysSequentialDetails();
sysSequentialDetail.Number = item.Number;
sysSequentialDetail.DurationTime = item.DurationTime;
sysSequentialDetail.SensorID = item.SensorID;
sysSequentialDetail.WorkTime = item.WorkTime;
sysSequentialDetail.SequenceGroup = item.SequenceGroup;
sysSequentialDetail.CreateTime = item.CreateTime;
sysSequentialDetail.Sequential = item.Sequential;
sysSequentialDetail.SysSquentialID = item.SysSquentialID;
sysSequentialDetail.IsDelete = item.IsDelete;
sysSequentialDetail.num = num;
sysSequentialDetailsListS4.Add(sysSequentialDetail);
num++;
}
SequentialStartTime4 = data.StartTime;
SequentialEndTime4 = data.EndTime;
}
}
/// <summary>
/// 编辑或者新增
/// </summary>
/// <param name="model"></param>
public override void DoModifyS4(object model)
{
if (SequentialStartTime4 == null || SequentialEndTime4 == null)
{
MessageBox.Show("时序4:开始时间和结束时间不能为空!", "提示");
}
else
{
DateTime expirationDate = (DateTime)SequentialStartTime4;
DateTime expirationDate1 = (DateTime)SequentialEndTime4;
DateTime dateTime = DateTime.Now;
if (expirationDate < dateTime)
{
MessageBox.Show("时序4:开始时间不得早于当前时间!", "提示");
}
else if (expirationDate1 < dateTime)
{
MessageBox.Show("时序4:结束时间不得早于当前时间!", "提示");
}
else if (expirationDate >= expirationDate1)
{
MessageBox.Show("时序4:结束时间不得早于开始时间!", "提示");
}
else
{
DialogParameters ps = new DialogParameters();
ps.Add("model", model);
ps.Add("sequentialStartTime", SequentialStartTime4);
ps.Add("sequentialEndTime", SequentialEndTime4);
ps.Add("kind", "时序4");
_dialogService.ShowDialog("ModifySequentialView", ps, result =>
{
// 判断子窗口的返回状态如果OK刷新当前页面否则不管
if (result.Result == ButtonResult.OK)
{
this.RefreshS4();
}
});
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="model"></param>
public override void DoDeleteS4(object model)
{
try
{
if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) ==
MessageBoxResult.Yes)
{
// 软删除
var data = _sysSequentialService.Find<SysSequentialDetails>((model as SysSequentialDetails).Number);
data.IsDelete = 1;
_sysSequentialService.Update(data);
//查询删除后子表是否还存在时序配置
var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
//若子表不存在当前时序下配置信息,则删除对应的母表时序
if (list.Count() == 0)
{
var SysSequential = _sysSequentialService.Find<SysSequential>(data.SysSquentialID);
SysSequential.IsDelete = 1;
_sysSequentialService.Update(SysSequential);
}
MessageBox.Show("删除完成!", "提示");
this.RefreshS4();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
#endregion
#region 5
public override void RefreshS5()
{
int num = 1;
SearchKey = "时序5";
sysSequentialDetailsListS5.Clear();
var list = _sysSequentialService.GetSequentials(SearchKey).ToList();
if (list.Count != 0)
{
var data = _sysSequentialService.GetSequentials(SearchKey).First();
var dataDetails = _sysSequentialService.GetSequentialDetails(data.Number).ToList();
foreach (var item in dataDetails)
{
SysSequentialDetails sysSequentialDetail = new SysSequentialDetails();
sysSequentialDetail.Number = item.Number;
sysSequentialDetail.DurationTime = item.DurationTime;
sysSequentialDetail.SensorID = item.SensorID;
sysSequentialDetail.WorkTime = item.WorkTime;
sysSequentialDetail.SequenceGroup = item.SequenceGroup;
sysSequentialDetail.CreateTime = item.CreateTime;
sysSequentialDetail.Sequential = item.Sequential;
sysSequentialDetail.SysSquentialID = item.SysSquentialID;
sysSequentialDetail.IsDelete = item.IsDelete;
sysSequentialDetail.num = num;
sysSequentialDetailsListS5.Add(sysSequentialDetail);
num++;
}
SequentialStartTime5 = data.StartTime;
SequentialEndTime5 = data.EndTime;
}
}
/// <summary>
/// 编辑或者新增
/// </summary>
/// <param name="model"></param>
public override void DoModifyS5(object model)
{
if (SequentialStartTime5 == null || SequentialEndTime5 == null)
{
MessageBox.Show("时序5:开始时间和结束时间不能为空!", "提示");
}
else
{
DateTime expirationDate = (DateTime)SequentialStartTime5;
DateTime expirationDate1 = (DateTime)SequentialEndTime5;
DateTime dateTime = DateTime.Now;
if (expirationDate < dateTime)
{
MessageBox.Show("时序5:开始时间不得早于当前时间!", "提示");
}
else if (expirationDate1 < dateTime)
{
MessageBox.Show("时序5:结束时间不得早于当前时间!", "提示");
}
else if (expirationDate >= expirationDate1)
{
MessageBox.Show("时序5:结束时间不得早于开始时间!", "提示");
}
else
{
DialogParameters ps = new DialogParameters();
ps.Add("model", model);
ps.Add("sequentialStartTime", SequentialStartTime5);
ps.Add("sequentialEndTime", SequentialEndTime5);
ps.Add("kind", "时序5");
_dialogService.ShowDialog("ModifySequentialView", ps, result =>
{
// 判断子窗口的返回状态如果OK刷新当前页面否则不管
if (result.Result == ButtonResult.OK)
{
this.RefreshS5();
}
});
}
}
}
/// <summary>
/// 删除
/// </summary>
/// <param name="model"></param>
public override void DoDeleteS5(object model)
{
try
{
if (MessageBox.Show("是否确定删除此项?", "提示", MessageBoxButton.YesNo) ==
MessageBoxResult.Yes)
{
// 软删除
var data = _sysSequentialService.Find<SysSequentialDetails>((model as SysSequentialDetails).Number);
data.IsDelete = 1;
_sysSequentialService.Update(data);
//查询删除后子表是否还存在时序配置
var list = _sysSequentialService.GetSequentialDetails(data.SysSquentialID).ToList();
//若子表不存在当前时序下配置信息,则删除对应的母表时序
if (list.Count() == 0)
{
var SysSequential = _sysSequentialService.Find<SysSequential>(data.SysSquentialID);
SysSequential.IsDelete = 1;
_sysSequentialService.Update(SysSequential);
}
MessageBox.Show("删除完成!", "提示");
this.RefreshS5();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "提示");
}
}
#endregion
}
}