using Furion.TaskScheduler; using iWare.Wms.Core; using iWare.Wms.Core.Enum; using iWare.Wms.Core.Util.LowCode.Dto; using Microsoft.EntityFrameworkCore; using StackExchange.Profiling.Internal; using System; using System.ComponentModel; namespace iWare.Wms.Application { /// /// 在制品监控输出参数 /// public class WorkPieceInfoOutput { /// /// 颜色类型 /// 检测工件: 1 黄色 ///正常工件:2 绿色 ///不合格工件: 3 红色 ///测量间检测工件:4 灰色 ///下线工件: 5 /// public int CololType { get { if (QualityState.HasValue&& ((EnumQuantityState)(QualityState))== EnumQuantityState.Fault) {//不合格工件 return 3; } if(WorkPieceState.HasValue&&((EnumWorkPieceState)WorkPieceState)== EnumWorkPieceState.FinishedProducts) {//下线工件 return 5; } if (!string.IsNullOrEmpty(WorkPieceCurrentPosition)&& WorkPieceCurrentPosition.Contains("SPC")) { return 1; } return 2; } } /// /// 工件号 /// public string WorkPieceID { get; set; } /// /// 工件OP80码 /// public string OP80NewCode { get; set; } /// /// 当前工序 /// public string WorkingProcedureCurrent { get; set; } /// /// 工件下线时间 /// public DateTime? WorkPieceLastOfflineTime { get; set; } /// /// 工件下线时间处理 /// public string WorkPieceLastOfflineTimeHand { get { if(WorkPieceLastOfflineTime.HasValue) { return WorkPieceLastOfflineTime.Value.ToString("yyyy-MM"); }else { return ""; } } } /// /// 工件下线时间处理 /// public string WorkPieceLastOfflineTimeDayHand { get { if (WorkPieceLastOfflineTime.HasValue) { return WorkPieceLastOfflineTime.Value.ToString("yyyy-MM-dd"); } else { return ""; } } } /// /// 工序开始时间 /// public DateTime? WorkingProcedureStartTime { get; set; } /// /// 工序结束时间 /// public DateTime? WorkingProcedureEndTime { get; set; } /// /// 当前工序加工时长 /// public string ProcessingDurationForCurrent { get { if (!WorkingProcedureStartTime.HasValue|| WorkingProcedureStartTime<=DateTime.MinValue) { return ""; } TimeSpan ts=new TimeSpan(); if (!WorkingProcedureEndTime.HasValue || WorkingProcedureEndTime <= DateTime.MinValue) { ts = DateTime.Now - Convert.ToDateTime(WorkingProcedureStartTime); } else { ts = WorkingProcedureEndTime.Value - WorkingProcedureStartTime.Value; } return Convert.ToInt32(ts.TotalMinutes).ToString() + "min"; } } /// /// 工件状态 /// public int? WorkPieceState { get; set; } /// /// 工件状态 /// public string WorkPieceStateName { get { return WorkPieceState == null ? "" : EnumUtil.GetDescription((WorkPieceState)(WorkPieceState)); } } /// /// 当前设备 /// public string EquipmentID { get; set; } /// /// 设备名称 /// public string EquipmentName { get; set; } /// /// 当前状态 /// public string EquipmentCurrentState { get; set; } /// /// 当前状态名字 /// public string EquipmentCurrentStateName { get { return string.IsNullOrEmpty(EquipmentCurrentState) ? "" : EnumUtil.GetDescription((EnumEquipmentCurrentState)(Convert.ToInt32(EquipmentCurrentState))); } } //public string EquipmentCurrentStateName { get; set; } /// /// 工件当前位置序号 /// public int WorkPieceCurrentPositionOrder { get; set; } /// /// 工件当前位置 /// public string WorkPieceCurrentPosition { get; set; } /// /// 当前已完成工序流程 /// public string WorkingProcedureCompleted { get; set; } /// /// 计划工序流程 /// public string WorkingProcedurePlan { get; set; } /// /// 总加工时长 /// public int ProcessingDurationTotal { get; set; } private DateTime? m_EndTime = null; /// /// 首工序上线时间 /// public DateTime? WorkPieceinitOnlineTime { get; set; } //{ // get // { // if (m_EndTime.HasValue && m_EndTime.Value.Date == DateTime.Parse("0001-01-01")) // { // return null; // } // else // { // return m_EndTime; // } // } // set { m_EndTime = value; } //} ///// ///// 首工序上线时间 ///// //public DateTime WorkPieceinitOnlineTime { get; set; } /// /// 当前时长 /// public string WorkPieceCurr { get { if (!WorkPieceinitOnlineTime.HasValue || WorkPieceinitOnlineTime.Value<= Convert.ToDateTime("0001-01-01")) { return ""; } TimeSpan ts = new TimeSpan(); if (!WorkPieceLastOfflineTime.HasValue || WorkPieceLastOfflineTime.Value <= Convert.ToDateTime("0001-01-01")) { ts = DateTime.Now - WorkPieceinitOnlineTime.Value; } else { ts = WorkPieceLastOfflineTime.Value - WorkPieceinitOnlineTime.Value; } return Convert.ToInt32(ts.TotalMinutes).ToString() + "min"; } } /// /// 数量 /// public int Number { get; set; } /// /// 供应商 /// public string WorkPieceIDTo1 { get; set; } /// /// 零件设计尾号 /// public string WorkPieceIDTo2 { get; set; } /// /// 年月日 /// public string WorkPieceIDTo3 { get; set; } /// /// 班次 /// public string WorkPieceIDTo4 { get; set; } /// /// 流水号 /// public string WorkPieceIDTo5 { get; set; } /// /// 模具号 /// public string WorkPieceIDTo6 { get; set; } /// /// 炉号 /// public string WorkPieceIDTo7 { get; set; } /// /// 质量状态 /// public int? QualityState { get; set; } /// /// 质量状态名称 /// public string QualityStateName { get { return QualityState == null ? "" : EnumUtil.GetDescription((EnumQuantityState)(QualityState)); } } /// /// 质量不合格原因 /// public string QualityErrorInfo { get; set; } /// /// 质量状态变更人 /// public string QualityStateUpdateUser { get; set; } /// /// 质量状态变更时间 /// public DateTime QualityStateUpdateTime { get; set; } /// /// 质量状态变更方式 /// public string QualityStateUpdateMode { get; set; } /// /// 告警类型 /// public int AlertType { get; set; } /// /// 告警内容 /// public string AlertMsg { get; set; } /// /// 备注 /// public string Remarks { get; set; } /// /// Log添加时间 /// public DateTime LogAddTime { get; set; } /// /// Log新增备注 /// public string LogAddRemark { get; set; } /// /// Id主键 /// public long Id { get; set; } } /// /// 导出Excel文件中字段 /// [Description("在制品监控信息")] public class WorkPieceInfoExcelOutput { /// /// 工件号 /// [Description("工件ID")] public string WorkPieceID { get; set; } ///// ///// 设备名称 ///// //[Description("设备名称")] //public string EquipmentName { get; set; } /// /// 工件当前位置 /// [Description("工件当前位置")] public string WorkPieceCurrentPosition { get; set; } /// /// 当前工序 /// [Description("当前工序")] public string WorkingProcedureCurrent { get; set; } /// /// 首工序上线时间 /// [Description("首工序上线时间")] public DateTime? WorkPieceinitOnlineTime { get; set; } /// /// 工序开始时间 /// [Description("当前工序开始时间")] public DateTime? WorkingProcedureStartTime { get; set; } /// /// 工序结束时间 /// [Description("当前工序结束时间")] public DateTime? WorkingProcedureEndTime { get; set; } /// /// 当前工序加工时长 /// [Description("当前工序加工时长")] public string ProcessingDurationForCurrent {get;set; } ///// ///// 质量状态 ///// //public int? QualityState { get; set; } /// /// 质量状态名称 /// [Description("质量状态")] public string QualityStateName {get;set; } ///// ///// 工件状态 ///// //public int? WorkPieceState { get; set; } /// /// 工件状态 /// [Description("工件状态")] public string WorkPieceStateName {get;set; } /// /// Id主键 /// public long Id { get; set; } } }