158 lines
4.3 KiB
C#
158 lines
4.3 KiB
C#
using DocumentFormat.OpenXml.Office2013.PowerPoint;
|
|
using DocumentFormat.OpenXml.Spreadsheet;
|
|
using DocumentFormat.OpenXml.Wordprocessing;
|
|
using SciChart.Core.Extensions;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Runtime.Serialization;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MECF.Framework.Common.Aitex.Core.RT.EMS
|
|
{
|
|
|
|
/// <summary>
|
|
/// 帮助Maintainer管理 维护项
|
|
/// </summary>
|
|
[DataContract]
|
|
public class MaintainerItemCollection
|
|
{
|
|
#region Variables
|
|
|
|
[DataMember]
|
|
Dictionary<string, List<MaintainerItem>> _itemsdic = new();
|
|
|
|
int _unmaintaincount = 0;
|
|
|
|
public int Count
|
|
{
|
|
get
|
|
{
|
|
int count = 0;
|
|
foreach (var item in _itemsdic.Values)
|
|
{
|
|
count += item.Count;
|
|
}
|
|
return count;
|
|
}
|
|
}
|
|
|
|
public int UnMaintainCount => _unmaintaincount;
|
|
|
|
#endregion
|
|
|
|
#region Functions
|
|
|
|
public void CheckAllItemMaintained(DateTime date)
|
|
{
|
|
int count = 0;
|
|
foreach (var item in _itemsdic.Values)
|
|
{
|
|
foreach (var i in item)
|
|
{
|
|
if (!i.CheckMaintained(date) && i.Enable)
|
|
{
|
|
count++;
|
|
}
|
|
}
|
|
}
|
|
_unmaintaincount = count;
|
|
}
|
|
|
|
public bool SetMaintain(string parentname, string name, int itemid, DateTime date)
|
|
{
|
|
if (_itemsdic.ContainsKey(parentname))
|
|
{
|
|
int index = _itemsdic[parentname].FindIndex(i => i.Name == name && i.Id == itemid);
|
|
if (index == -1)
|
|
{
|
|
return false;
|
|
}
|
|
return _itemsdic[parentname][index].Maintained(date);
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public bool SetMaintainerItemEnable(string parentname, string name, int itemid, bool enable)
|
|
{
|
|
if (_itemsdic.ContainsKey(parentname))
|
|
{
|
|
int index = _itemsdic[parentname].FindIndex(i => i.Name == name && i.Id == itemid);
|
|
if (index == -1)
|
|
{
|
|
return false;
|
|
}
|
|
_itemsdic[parentname][index].Enable = enable;
|
|
return true;
|
|
}
|
|
else
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
public void AddMaintainerItem(string parentname, MaintainerItem item)
|
|
{
|
|
if (_itemsdic.ContainsKey(parentname))
|
|
{
|
|
_itemsdic[parentname].Add(item);
|
|
//顺序不用添加
|
|
}
|
|
else
|
|
{
|
|
_itemsdic.Add(parentname, new List<MaintainerItem>() { item });
|
|
}
|
|
}
|
|
|
|
public void RemoveMaintainerItem(string parentname, string itemname,int id)
|
|
{
|
|
if (_itemsdic.ContainsKey(parentname))
|
|
{
|
|
var item = _itemsdic[parentname].Find(i=>i.Name == itemname && i.Id == id);
|
|
if (item != null)
|
|
{
|
|
_itemsdic[parentname].RemoveIfContains(item);
|
|
|
|
if (_itemsdic[parentname].Count == 0)
|
|
{
|
|
_itemsdic.Remove(parentname);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
public void AddMaintainerItemList(string parentname, List<MaintainerItem> items)
|
|
{
|
|
if (_itemsdic.ContainsKey(parentname))
|
|
{
|
|
//判断重复性
|
|
items.ForEach(i =>
|
|
{
|
|
int index = _itemsdic[parentname].FindIndex(j => j.Name == i.Name && j.Id == i.Id);
|
|
if (index == -1)
|
|
{
|
|
_itemsdic[parentname].Add(i);
|
|
}
|
|
});
|
|
}
|
|
else
|
|
{
|
|
_itemsdic.Add(parentname, items);
|
|
}
|
|
}
|
|
|
|
|
|
public Dictionary<string, List<MaintainerItem>> GetAllItemsDic()
|
|
{
|
|
return _itemsdic;
|
|
}
|
|
|
|
#endregion
|
|
|
|
}
|
|
}
|