DeviceManager/TsSFCDevice.Client.Launch/Maintain/ucMaintenance.cs

229 lines
10 KiB
C#
Raw Permalink Normal View History

2024-07-27 01:44:19 +00:00
using DeviceRepair.Models;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using TsSFCDevice.Client.Biz.Base.Utils;
using TsSFCDevice.Client.Biz.Impl;
namespace TsSFCDevice.Client.Launch.Maintain
{
public partial class ucMaintenance : UserControl
{
DeviceWarrantyRequestFormView RequestForm;
Dictionary<int, string> _UserMapping;
Dictionary<int, string> UserMapping
{
get
{
if (_UserMapping == null)
{
try
{
_UserMapping = Utility.SystemRuntimeInfo.CurrentUsersCaches?.ToList().ToDictionary(x => x.Id, x => x.UserName);
}
catch (Exception ex)
{
XtraMessageBoxHelper.Error(ex.Message);
}
}
return _UserMapping;
}
}
2024-08-07 05:57:10 +00:00
public ucMaintenance() : this(null)
{
}
2024-07-27 01:44:19 +00:00
public ucMaintenance(DeviceWarrantyRequestFormView requestForm)
{
InitializeComponent();
2024-08-07 05:57:10 +00:00
if (requestForm != null)
RequestForm = requestForm;
2024-07-27 01:44:19 +00:00
this.Load += UcMaintenance_Load;
}
private void UcMaintenance_Load(object sender, EventArgs e)
{
foreach (var item in this.layoutControlGroup1.Items)
{
if (item is DevExpress.XtraLayout.LayoutControlItem && (item != layoutControlItem5 || item != labelControl13))
{
(item as DevExpress.XtraLayout.LayoutControlItem).CustomDraw += PageMaintainView_CustomDraw;
}
}
layoutControlGroup1.ViewInfo.OwnerILayoutControl.AllowCustomizationMenu = false;
layoutControlGroup2.ViewInfo.OwnerILayoutControl.AllowCustomizationMenu = false;
layoutControlGroup3.ViewInfo.OwnerILayoutControl.AllowCustomizationMenu = false;
InitializeDataDisplay();
}
#region
private void PageMaintainView_CustomDraw(object sender, DevExpress.XtraLayout.ItemCustomDrawEventArgs e)
{
if ((sender as DevExpress.XtraLayout.LayoutControlItem).ControlName == labelControl13.Name)
{
Point plt = new Point(e.Bounds.X, e.Bounds.Y);
Point plb = new Point(e.Bounds.X, e.Bounds.Y + e.Bounds.Height);
Point prt = new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y);
Point prb = new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height);
e.Graphics.DrawLine(Pens.Gray, new Point(e.Bounds.X, e.Bounds.Y), new Point(e.Bounds.X, e.Bounds.Y + e.Bounds.Height)); // 左
e.Graphics.DrawLine(Pens.Gray, new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y), new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height)); // 右
e.Graphics.DrawLine(Pens.Gray, new Point(e.Bounds.X, e.Bounds.Y), new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y)); // 上
}
else if ((sender as DevExpress.XtraLayout.LayoutControlItem).ControlName == layoutControlItem15.Name || (sender as DevExpress.XtraLayout.LayoutControlItem).ControlName == disInProduction.Name)
{
e.Graphics.DrawLine(Pens.Gray, new Point(e.Bounds.X, e.Bounds.Y), new Point(e.Bounds.X, e.Bounds.Y + e.Bounds.Height)); // 左
e.Graphics.DrawLine(Pens.Gray, new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y), new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height)); // 右
e.Graphics.DrawLine(Pens.Gray, new Point(e.Bounds.X, e.Bounds.Y + e.Bounds.Height), new Point(e.Bounds.X + e.Bounds.Width, e.Bounds.Y + e.Bounds.Height)); // 上
}
else
{
e.Graphics.DrawRectangle(Pens.Gray, e.Bounds);
}
}
#endregion
void InitializeDataDisplay()
{
2024-08-07 05:57:10 +00:00
if (RequestForm == null)
return;
2024-07-27 01:44:19 +00:00
disCreatDeptName.Text = "生产部 - " + RequestForm.CreatorName;
disCreatOn.Text = RequestForm.CreatOn.HasValue ? RequestForm.CreatOn.Value.ToString("yyyy/MM/dd HH:mm:ss") : "";
disEquipmentID.Text += RequestForm.EquipmentID;
disEquipmentName.Text += RequestForm.EquipmentName;
disFaultSymptoms.Text = RequestForm.FaultSymptoms;
if (RequestForm.InProduction)
{
disInProduction.Text = $"Yes, Product Lot/Testing Order产品批号/检测任务号\r\n{RequestForm.Batch}";
}
else
{
disInProduction.Text = $"No";
}
disReceivingDep.Text = RequestForm.ReceivingDep;
if (RequestForm.EvaluatorItems != null && RequestForm.EvaluatorItems.Count > 0)
{
var PEItem = RequestForm.EvaluatorItems.Where(x => x.EvaluatorCode == "PE").FirstOrDefault();
if (PEItem != null)
{
disEvaluatorName_QA.Text = $"{PEItem.Description} - {PEItem.CreatorName}";
}
var QEItem = RequestForm.EvaluatorItems.Where(x => x.EvaluatorCode == "QE").FirstOrDefault();
if (QEItem != null)
{
disEvaluatorName_EA.Text = $"{QEItem.Description} - {QEItem.CreatorName}";
}
}
if (disEvaluatorName_QA.Text.Length == 0)
disEvaluatorName_QA.Text = "N/A";
if (disEvaluatorName_EA.Text.Length == 0)
disEvaluatorName_EA.Text = "N/A";
// 故障发生地
disLocation.Text = RequestForm.LocationName;
if (RequestForm.MaintaionItems != null && RequestForm.MaintaionItems.SubmitBy > 0)
{
2024-11-09 04:25:57 +00:00
//string[] fieldCodes = new string[] { "SymptomlDistinction", "Maintenance", "Accessories" };
//IList<FieldsInfo> SelectionDatas = CustomFieldRepository.Instance.GetDatas(fieldCodes);
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
//if (SelectionDatas != null)
//{
// Dictionary<int, FieldsInfo> keyValuePairs = SelectionDatas.ToDictionary(x => x.AutoID, x => x);
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// // 现象区分
// labelControl8.Text = keyValuePairs.ContainsKey(RequestForm.MaintaionItems.SymptomlDistinction) ? keyValuePairs[RequestForm.MaintaionItems.SymptomlDistinction].FieldText : "";
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// // 维修方式
// labelControl11.Text = keyValuePairs.ContainsKey(RequestForm.MaintaionItems.Maintenance) ? keyValuePairs[RequestForm.MaintaionItems.Maintenance].FieldText : "";
//}
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 现象区分
labelControl8.Text = RequestForm.MaintaionItems.SymptomlDistinctionText;
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 维修方式
labelControl11.Text = RequestForm.MaintaionItems.MaintenanceText;
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 开始时间
labelControl14.Text = RequestForm.MaintaionItems.MaintainStartTime.ToString("yyyy/MM/dd HH:mm:ss");
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 结束时间
labelControl15.Text = RequestForm.MaintaionItems.MaintainEndTime.ToString("yyyy/MM/dd HH:mm:ss");
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 故障原因
labelControl29.Text = RequestForm.MaintaionItems.MaintainCause;
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 维修内容
labelControl30.Text = RequestForm.MaintaionItems.MaintainContent;
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
//配件
if (RequestForm.MaintaionItems.AccessoriesItems != null && RequestForm.MaintaionItems.AccessoriesItems.Count > 0)
{
System.Text.StringBuilder builder = new System.Text.StringBuilder();
foreach (DeviceWarrantyRequestAccessoriesInfo item in RequestForm.MaintaionItems.AccessoriesItems)
2024-07-27 01:44:19 +00:00
{
2024-11-09 04:25:57 +00:00
builder.Append($"{item.FieldName} x {item.AccessoriesCount};");
2024-07-27 01:44:19 +00:00
}
2024-11-09 04:25:57 +00:00
labelControl31.Text = builder.ToString();
}
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 维修人
labelControl32.Text = UserMapping.ContainsKey(RequestForm.MaintaionItems.SubmitBy) ? UserMapping[RequestForm.MaintaionItems.SubmitBy] : "";
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 是否需要验证
if (RequestForm.MaintaionItems.BeValidate)
{
labelControl33.Text = $"Yes 需要Validation ID验证编号<u>{RequestForm.MaintaionItems.ValidateNo}</u>";
}
else
{
labelControl33.Text = $"No 不需要, Rational理由<u>{RequestForm.MaintaionItems.Reason}</u>";
}
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
if (RequestForm.MaintaionItems.ValidateBy != 0)
{
// 设备恢复确认
string ValidateText = $"{UserMapping[RequestForm.MaintaionItems.ValidateBy]} / {RequestForm.MaintaionItems.ValidateOn.ToString("yyyy-MM-dd HH:mm:ss")} ";
if (RequestForm.MaintaionItems.Validate2By != 0)
ValidateText += $"{UserMapping[RequestForm.MaintaionItems.Validate2By]} / {RequestForm.MaintaionItems.Validate2On.ToString("yyyy-MM-dd HH:mm:ss")}";
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
labelControl34.Text = ValidateText;
}
2024-07-27 01:44:19 +00:00
2024-11-09 04:25:57 +00:00
// 生产部 - 设备恢复确认
if (RequestForm.RestorationConfirmationBy > 0)
{
labelControl35.Text = $"{RequestForm.RestorationConfirmationOnName} / {RequestForm.RestorationConfirmationOn.Value.ToString("yyyy-MM-dd HH:mm:ss")}";
2024-07-27 01:44:19 +00:00
}
2024-11-09 04:25:57 +00:00
DateTime FormSubDate = RequestForm.CreatOn.Value;
TimeSpan timeDifference = RequestForm.MaintaionItems.MaintainEndTime - RequestForm.MaintaionItems.MaintainStartTime;
// 总修复时间
labelControl26.Text = $"{timeDifference.Days}天/{(timeDifference.Hours)}小时/{(timeDifference.Minutes)}分钟/{timeDifference.Seconds}秒";
// 总停机时间
timeDifference = RequestForm.MaintaionItems.MaintainEndTime - FormSubDate;
labelControl27.Text = $"{timeDifference.Days}天/{(timeDifference.Hours)}小时/{(timeDifference.Minutes)}分钟/{timeDifference.Seconds}秒";
2024-07-27 01:44:19 +00:00
}
}
}
}