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