150 lines
4.2 KiB
C#
150 lines
4.2 KiB
C#
|
using Aitex.Core.Util;
|
|||
|
using DocumentFormat.OpenXml.Bibliography;
|
|||
|
using DocumentFormat.OpenXml.Drawing.Diagrams;
|
|||
|
using DocumentFormat.OpenXml.Wordprocessing;
|
|||
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.Linq;
|
|||
|
using System.Runtime.InteropServices.ComTypes;
|
|||
|
using System.Runtime.Serialization;
|
|||
|
using System.ServiceModel;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
|
|||
|
namespace MECF.Framework.Common.Aitex.Core.RT.EMS
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 维护项相关信息
|
|||
|
/// </summary>
|
|||
|
[Serializable]
|
|||
|
[DataContract]
|
|||
|
public class MaintainanceItem:ICloneable
|
|||
|
{
|
|||
|
#region Constructors
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 此构造函数无法添加子项,Add函数不可用
|
|||
|
/// </summary>
|
|||
|
public MaintainanceItem()
|
|||
|
{
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 此构造函数用于构造有子项的维护项
|
|||
|
/// </summary>
|
|||
|
/// <param name="mname"></param>
|
|||
|
/// <param name="description"></param>
|
|||
|
/// <param name="enable"></param>
|
|||
|
/// <param name="latest"></param>
|
|||
|
/// <param name="subitems"></param>
|
|||
|
/// <param name="filepath"></param>
|
|||
|
public MaintainanceItem(string mname,int id,int index,string description,string defaultrecord,bool enable,DateTime latest,List<MaintainanceItem> subitems,string filepath = "")
|
|||
|
{
|
|||
|
Name = mname;
|
|||
|
Id = id;
|
|||
|
Index = index;
|
|||
|
Description = description;
|
|||
|
DefaultRecord = defaultrecord;
|
|||
|
_maintaineddate = latest;
|
|||
|
_subitems = subitems;
|
|||
|
Enable = enable;
|
|||
|
FilePath = filepath;
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
#region Properties
|
|||
|
|
|||
|
DateTime _maintaineddate;
|
|||
|
bool _ismaintained = false;
|
|||
|
[DataMember]
|
|||
|
List<MaintainanceItem> _subitems = null;
|
|||
|
|
|||
|
[DataMember]
|
|||
|
public string Name { get; set; }
|
|||
|
|
|||
|
[DataMember]
|
|||
|
public int Id { get; set; }
|
|||
|
|
|||
|
[DataMember]
|
|||
|
public int Index { get; set; }
|
|||
|
|
|||
|
[DataMember]
|
|||
|
public string Description { get; set; }
|
|||
|
|
|||
|
[DataMember]
|
|||
|
public string DefaultRecord { get; set; }
|
|||
|
|
|||
|
[DataMember]
|
|||
|
public string FilePath { get; set; }
|
|||
|
|
|||
|
[DataMember]
|
|||
|
public bool Enable { get; set; }
|
|||
|
|
|||
|
[Subscription("IsMaintained")]
|
|||
|
public bool IsMaintained => _ismaintained;
|
|||
|
|
|||
|
[Subscription("MaintainedDate")]
|
|||
|
public DateTime MaintainedDate => _maintaineddate;
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region Methods
|
|||
|
|
|||
|
public List<MaintainanceItem> GetAllMaintainanceItems()
|
|||
|
{
|
|||
|
return _subitems == null ? new List<MaintainanceItem>() : _subitems;
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 更新项目及子项目的维护时间
|
|||
|
/// </summary>
|
|||
|
public bool Maintained(DateTime date,bool isMaintainSubItem = true)
|
|||
|
{
|
|||
|
if (Enable)
|
|||
|
{
|
|||
|
_maintaineddate = date;
|
|||
|
if (_subitems!=null&&isMaintainSubItem)
|
|||
|
{
|
|||
|
_subitems.ForEach(i => {
|
|||
|
if (i.Enable)
|
|||
|
{
|
|||
|
_maintaineddate = date;
|
|||
|
}
|
|||
|
});
|
|||
|
}
|
|||
|
return true;
|
|||
|
}
|
|||
|
return false;
|
|||
|
}
|
|||
|
|
|||
|
public bool CheckMaintained(DateTime start)
|
|||
|
{
|
|||
|
_ismaintained = _maintaineddate.CompareTo(start) > 0;//晚于起始时间即为已保养
|
|||
|
return IsMaintained;
|
|||
|
}
|
|||
|
|
|||
|
public object Clone()
|
|||
|
{
|
|||
|
if (_subitems == null)
|
|||
|
{
|
|||
|
return new MaintainanceItem(Name, Id, Index, Description,DefaultRecord ,Enable, MaintainedDate, null, FilePath);
|
|||
|
}
|
|||
|
var clonelist = new List<MaintainanceItem>();
|
|||
|
foreach (var item in GetAllMaintainanceItems())
|
|||
|
{
|
|||
|
clonelist.Add((MaintainanceItem)item.Clone());
|
|||
|
}
|
|||
|
return new MaintainanceItem(Name, Id, Index, Description, DefaultRecord, Enable, MaintainedDate, clonelist, FilePath);
|
|||
|
}
|
|||
|
|
|||
|
public void Add(MaintainanceItem item)
|
|||
|
{
|
|||
|
_subitems?.Add(item);
|
|||
|
}
|
|||
|
#endregion
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
}
|