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; }
}
}