修改时序时间变动无法保存问题

This commit is contained in:
MoYue 2024-04-15 18:06:19 +08:00
parent 7dbb24ceb9
commit b4a89effd9
6 changed files with 185 additions and 41 deletions

View File

@ -0,0 +1,75 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace InSituLaboratory.Entities
{
/// <summary>
/// 时序记录表-总表 供于清单列表查询
/// </summary>
public class SysSequentialTotal
{
/// <summary>
/// 时序主键ID
/// </summary>
[Key]
public int ID { get; set; }
/// <summary>
/// 开始时间
/// </summary>
public DateTime? StartTime { get; set; }
/// <summary>
/// 结束时间
/// </summary>
public DateTime? EndTime { get; set; }
/// <summary>
/// 配置号
/// </summary>
public string? SequenceGroup { get; set; }
/// <summary>
/// 传感器ID
/// </summary>
public string? SensorID { get; set; }
/// <summary>
/// 工作时长
/// </summary>
public string? WorkTime { get; set; }
/// <summary>
/// 循环时长
/// </summary>
public string? DurationTime { get; set; }
/// <summary>
/// 创建时间
/// </summary>
public DateTime? CreateTime { get; set; }
/// <summary>
/// 当前时序
/// </summary>
public string? Sequential { get; set; }
/// <summary>
/// 是否删除 0-未删除 1-已删除
/// </summary>
public int? IsDelete { get; set; }
}
}

View File

@ -7,7 +7,7 @@ using System.Threading.Tasks;
namespace InSituLaboratory.IService namespace InSituLaboratory.IService
{ {
public interface ISysSequentialService : IBaseService public interface ISysSequentialService : IBaseService
{ {
/// <summary> /// <summary>
@ -35,14 +35,15 @@ namespace InSituLaboratory.IService
IEnumerable<SysSequentialDetails> GetSequentialDetailList(int key); IEnumerable<SysSequentialDetails> GetSequentialDetailList(int key);
/// <summary> /// <summary>
/// 根据序组、时序号查询循环时间 /// 根据序组、时序号、母表ID查询循环时间
/// </summary> /// </summary>
/// <param name="SequenceGroup"></param> /// <param name="SequenceGroup"></param>
/// <param name="Sequential"></param> /// <param name="Sequential"></param>
/// <param name="kind"></param> /// <param name="key"></param>
/// <returns></returns> /// <returns></returns>
SysSequentialDetails GetSequentialSequenceGroup(string SequenceGroup,string Sequential); SysSequentialDetails GetSequentialSequenceGroup(string SequenceGroup, string Sequential, int key);
} }

View File

@ -68,5 +68,6 @@ namespace InSituLaboratory.ORM
public virtual DbSet<SysSequential> SysSequential { get; set; } public virtual DbSet<SysSequential> SysSequential { get; set; }
public virtual DbSet<SysSequentialDetails> SysSequentialDetails { get; set; } public virtual DbSet<SysSequentialDetails> SysSequentialDetails { get; set; }
public virtual DbSet<SysDevice> SysDevice { get; set; } public virtual DbSet<SysDevice> SysDevice { get; set; }
public virtual DbSet<SysSequentialTotal> SysSequentialTotal { get; set; }
} }
} }

View File

@ -46,15 +46,15 @@ namespace InSituLaboratory.Service
/// <summary> /// <summary>
/// 根据序组、时序号查询循环时间 /// 根据序组、时序号、母表ID查询循环时间
/// </summary> /// </summary>
/// <param name="SequenceGroup"></param> /// <param name="SequenceGroup"></param>
/// <param name="Sequential"></param> /// <param name="Sequential"></param>
/// <param name="kind"></param> /// <param name="kind"></param>
/// <returns></returns> /// <returns></returns>
public SysSequentialDetails GetSequentialSequenceGroup(string SequenceGroup, string Sequential) public SysSequentialDetails GetSequentialSequenceGroup(string SequenceGroup, string Sequential,int key)
{ {
var list = this.Query<SysSequentialDetails>(m => m.SequenceGroup == SequenceGroup && m.Sequential == Sequential && m.IsDelete == 0).ToList(); var list = this.Query<SysSequentialDetails>(m => m.SequenceGroup == SequenceGroup && m.Sequential == Sequential && m.IsDelete == 0 && m.SysSquentialID == key).ToList();
if (list.Count == 0) if (list.Count == 0)
{ {
return null; return null;

View File

@ -369,29 +369,50 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
System.Windows.MessageBox.Show("循环时长不能为空", "提示"); System.Windows.MessageBox.Show("循环时长不能为空", "提示");
return; return;
} }
var data = _sequentialService.GetSequentials(kind).ToList();
//编辑情况下 if (data.Count != 0)
if (Number != 0)
{ {
if (Device != SensorID) var data1 = _sequentialService.GetSequentials(kind).First();
if (data1.StartTime == startTime && data1.EndTime == endTime)
{ {
//传感器是否已存在校验 //编辑情况下
var selectFirst = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == SensorID && m.SequenceGroup == SequenceGroup && m.Sequential == kind && m.IsDelete == 0).ToList(); if (Number != 0)
if (selectFirst.Count != 0)
{ {
System.Windows.MessageBox.Show(kind + "- 配置" + SequenceGroup + "中已存在" + SensorID, "提示"); if (Device != SensorID)
return; {
//传感器是否已存在校验
var selectFirst = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == SensorID && m.SequenceGroup == SequenceGroup && m.Sequential == kind && m.IsDelete == 0).ToList();
if (selectFirst.Count != 0)
{
System.Windows.MessageBox.Show(kind + "- 配置" + SequenceGroup + "中已存在" + SensorID, "提示");
return;
}
}
}
else
{
//传感器是否已存在校验
var select = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == SensorID && m.SequenceGroup == SequenceGroup && m.Sequential == kind && m.IsDelete == 0).ToList();
if (select.Count != 0)
{
System.Windows.MessageBox.Show(kind + "- 配置" + SequenceGroup + "中已存在" + SensorID, "提示");
return;
}
} }
} }
}
else ///循环时长校验
{ if (data1.StartTime == startTime && data1.EndTime == endTime)
//传感器是否已存在校验
var select = _sequentialService.Query<SysSequentialDetails>(m => m.SensorID == SensorID && m.SequenceGroup == SequenceGroup && m.Sequential == kind && m.IsDelete == 0).ToList();
if (select.Count != 0)
{ {
System.Windows.MessageBox.Show(kind + "- 配置" + SequenceGroup + "中已存在" + SensorID, "提示"); var SysSequentialdata1 = _sequentialService.GetSequentialSequenceGroup(SequenceGroup, kind, data1.Number);
return; if (SysSequentialdata1 != null)
{
if (DurationTime != SysSequentialdata1.DurationTime)
{
System.Windows.MessageBox.Show(kind + "- 配置" + SequenceGroup + " 已存在循环时长:" + SysSequentialdata1.DurationTime + "s" + ",无法修改", "提示");
return;
}
}
} }
} }
@ -407,7 +428,7 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
case "气相色谱仪": case "气相色谱仪":
if (Convert.ToInt64(WorkTime) > workInt) if (Convert.ToInt64(WorkTime) > workInt)
{ {
System.Windows.MessageBox.Show(SensorID + "设置的工作时长超过传感器本身最大工作时长,为:" + workTime +"h/ " + workInt +"s", "提示"); System.Windows.MessageBox.Show(SensorID + "设置的工作时长超过传感器本身最大工作时长,为:" + workTime + "h/ " + workInt + "s", "提示");
return; return;
} }
break; break;
@ -443,18 +464,6 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
break; break;
} }
///循环时长校验
var SysSequentialdata1 = _sequentialService.GetSequentialSequenceGroup(SequenceGroup, kind);
if (SysSequentialdata1 != null)
{
if (DurationTime != SysSequentialdata1.DurationTime)
{
System.Windows.MessageBox.Show(kind + "- 配置"+ SequenceGroup + " 已存在循环时长:" + SysSequentialdata1.DurationTime + "s" + ",无法修改", "提示");
return;
}
}
var data = _sequentialService.GetSequentials(kind).ToList();
//保存时 首次去查询 data == null 说明数据库中无数据 为第一次插入 //保存时 首次去查询 data == null 说明数据库中无数据 为第一次插入
if (data.Count() == 0) if (data.Count() == 0)
{ {
@ -478,6 +487,21 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
Sequential = kind, Sequential = kind,
IsDelete = 0 IsDelete = 0
}); });
//向时序总表中插入相应的数据
_sequentialService.Insert(new SysSequentialTotal
{
Sequential = kind,
StartTime = startTime,
EndTime = endTime,
SensorID = SensorID,
DurationTime = DurationTime,
WorkTime = WorkTime,
SequenceGroup = SequenceGroup,
CreateTime = DateTime.Now,
IsDelete = 0
});
} }
else else
{ {
@ -501,6 +525,20 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
Sequential = kind, Sequential = kind,
IsDelete = 0 IsDelete = 0
}); });
//向时序总表中插入相应的数据
_sequentialService.Insert(new SysSequentialTotal
{
Sequential = kind,
StartTime = startTime,
EndTime = endTime,
SensorID = SensorID,
DurationTime = DurationTime,
WorkTime = WorkTime,
SequenceGroup = SequenceGroup,
CreateTime = DateTime.Now,
IsDelete = 0
});
} }
else else
{ {
@ -511,6 +549,15 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
ssd.WorkTime = WorkTime; ssd.WorkTime = WorkTime;
ssd.SequenceGroup = SequenceGroup; ssd.SequenceGroup = SequenceGroup;
_sequentialService.Update(ssd); _sequentialService.Update(ssd);
//修改时序总表中的相应的数据
var ssm = _sequentialService.Find<SysSequentialTotal>(Number);
ssm.SensorID = SensorID;
ssm.DurationTime = DurationTime;
ssm.WorkTime = WorkTime;
ssm.SequenceGroup = SequenceGroup;
_sequentialService.Update(ssd);
} }
} }
else else
@ -537,6 +584,21 @@ namespace InSituLaboratory.ViewModels.Pages.Dialogs
IsDelete = 0 IsDelete = 0
}); });
//向时序总表中插入相应的数据
_sequentialService.Insert(new SysSequentialTotal
{
Sequential = kind,
StartTime = startTime,
EndTime = endTime,
SensorID = SensorID,
DurationTime = DurationTime,
WorkTime = WorkTime,
SequenceGroup = SequenceGroup,
CreateTime = DateTime.Now,
IsDelete = 0
});
} }
} }

View File

@ -251,6 +251,11 @@ namespace InSituLaboratory.ViewModels.Pages
_sysSequentialService.Update(SysSequential); _sysSequentialService.Update(SysSequential);
} }
///更新时序总表
var data1 = _sysSequentialService.Find<SysSequentialTotal>((model as SysSequentialDetails).Number);
data1.IsDelete = 1;
_sysSequentialService.Update(data1);
MessageBox.Show("删除完成!", "提示"); MessageBox.Show("删除完成!", "提示");
this.RefreshS1(); this.RefreshS1();
} }