using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Reflection;
namespace TsSFCDeivceClient.Model.DeviceWarrantyRequest
{
///
/// 设备维修申请单
///
public class DeviceWarrantyRequestForm
{
///
/// 主键编号
///
public int AutoID { get; set; }
///
/// 唯一编号
///
public Guid GUID { get; set; }
///
/// 设备表主键编号
///
public int EquipmentPK { get; set; }
///
/// 设备编号
///
public string EquipmentID { get; set; }
///
/// 设备名称
///
public string EquipmentName { get; set; }
///
/// 发生地点
///
public int Location { get; set; }
///
/// 发生地点
///
public string LocationName { get; set; }
///
/// 是否有在途生产单
///
public bool InProduction { get; set; }
public string InProductionText { get { return InProduction ? "是" : "否"; } }
///
/// 批次号
///
public string Batch { get; set; }
///
/// 故障现象
///
public string FaultSymptoms { get; set; }
///
/// 设备设施部
///
public string ReceivingDep { get; set; }
///
/// 是否停机状态
///
public bool IsDown { get; set; }
public string IsDownText { get { return IsDown ? "停机" : "非停机"; } }
///
/// 表单编号(版本)
///
public int FormVer { get; set; }
///
/// 申请时间
///
public DateTime? CreatOn { get; set; }
///
/// 申请人
///
public int? CreatBy { get; set; }
public string CreatorName { get; set; }
///
/// 申请部门
///
public int? CreatDept { get; set; }
///
/// 申请部门名称
///
public string CreatDeptName { get; set; }
///
/// 修改时间
///
public DateTime? ModifyOn { get; set; }
///
/// 修改人
///
public int? ModifyBy { get; set; }
///
/// 修改人姓名
///
public string ModifyByName { get; set; }
public DeviceWarrantyRequestMaintaionInfo MaintaionItems { get; set; }
public List EvaluatorItems { get; set; }
[JsonIgnore]
public DateTime? EvaluatorTimePE { get { return EvaluatorItems.FirstOrDefault(x => x.EvaluatorCode == "PE")?.CreatOn; } }
[JsonIgnore]
public DateTime? EvaluatorTimeQE { get { return EvaluatorItems.FirstOrDefault(x => x.EvaluatorCode == "QE")?.CreatOn; } }
[JsonIgnore]
public string EvaluatorPE { get { return EvaluatorItems.FirstOrDefault(x => x.EvaluatorCode == "PE")?.CreatorName; } }
[JsonIgnore]
public string EvaluatorQE { get { return EvaluatorItems.FirstOrDefault(x => x.EvaluatorCode == "QE")?.CreatorName; } }
public DateTime? RestorationConfirmationOn { get; set; }
public int RestorationConfirmationBy { get; set; }
public string RestorationConfirmationOnName { get; set; }
public DeviceWarrantyRequestFormStatus FormStatus
{
get
{
if (MaintaionItems == null || MaintaionItems.SubmitBy == 0)
{
return DeviceWarrantyRequestFormStatus.AwaitingRepair;
}
else if (MaintaionItems.SubmitBy > 0)
{
if (RestorationConfirmationBy > 0)
{
return DeviceWarrantyRequestFormStatus.BeComplate;
}
return DeviceWarrantyRequestFormStatus.AwaitingApproval;
}
return DeviceWarrantyRequestFormStatus.AwaitingRepair;
}
}
public string FormStatusText
{
get
{
return ToDescription(FormStatus);
}
}
public string toJson()
{
return JsonConvert.SerializeObject(this);
}
///
/// 获取枚举类型的描述
///
///
///
public string ToDescription(DeviceWarrantyRequestFormStatus enumeration)
{
Type type = enumeration.GetType();
MemberInfo[] memInfo = type.GetMember(enumeration.ToString());
if (null != memInfo && memInfo.Length > 0)
{
object[] attrs = memInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);
if (null != attrs && attrs.Length > 0)
return ((DescriptionAttribute)attrs[0]).Description;
}
return enumeration.ToString();
}
}
}