DeviceManager/TsSFCDevice.Client.Launch/PreserveTemplate/TemplateIndexV2.cs
2024-07-27 09:44:19 +08:00

113 lines
5.2 KiB
C#

using DevExpress.Spreadsheet;
using DevExpress.Utils.Menu;
using DevExpress.XtraSpreadsheet.Menu;
using DeviceRepair.Models;
using DeviceRepair.Models.Enum;
using DeviceRepair.Utils;
using System;
using System.Linq;
namespace TsSFCDevice.Client.Launch.PreserveTemplate
{
public class TemplateIndexV2 : BaseTemplate
{
public new delegate void WriteValueEventHandler(EnumMaintenanceCellType CellType, string value, bool IsException = false);
internal override SpreadsheetPopupMenu popupContent
{
get
{
if (_popupContent == null)
{
_popupContent = new SpreadsheetPopupMenu()
{
Caption = "正文",
Items =
{
new DXMenuItem("正常",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "√"); }),
new DXMenuItem("紧固",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "N"); }),
new DXMenuItem("给油",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "U"); }),
new DXMenuItem("清洁",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "C"); }),
new DXMenuItem("修理",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "R"); }),
new DXMenuItem("调整",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "T"); }),
new DXMenuItem("替换",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "H"); }),
new DXMenuItem("有问题/异常",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "X", EnumMaintenanceOperationType.Write,true);} ),
new DXMenuItem("不适用或无生产",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "N/A"); }),
new DXMenuItem("清空",(s,e)=>{WriteValue(EnumMaintenanceCellType.Content, "", EnumMaintenanceOperationType.Clear); }),
}
};
}
return _popupContent;
}
}
public TemplateIndexV2() : base()
{
}
public TemplateIndexV2(Worksheet ws) : base(ws)
{
try
{
SheetDataItem FrequencyItem = new SheetDataItem();
DeviceSpecification.Add(new SheetDataItem { ColumnIndex = 3, RowIndex = 0 });
EquipmentID.Add(new SheetDataItem { ColumnIndex = 3, RowIndex = 2 });
Cell cell = worksheet.Cells[4, 2];
if (cell.Value.TextValue?.ToString() == "频次")
{
FrequencyItem.RowIndex = 4;
FrequencyItem.ColumnIndex = 2;
}
for (int rowIndex = 5; rowIndex < LastUsedRowIndex; rowIndex++)
{
cell = worksheet.Cells[rowIndex, 2];
if (cell.Value.IsEmpty)
{
if (cell.IsMerged)
{
//获取主单元格位置
int top = (worksheet.Cells[rowIndex, 2].GetMergedRanges()[0]).TopRowIndex;
int left = (worksheet.Cells[rowIndex, 2].GetMergedRanges()[0]).LeftColumnIndex;
if (worksheet.Cells[top, left].Value.TextValue?.Replace("\n", "")?.Trim() == "异常处理备注")
{
ExceptionDescription.Add(new SheetDataItem { ColumnIndex = 3, RowIndex = rowIndex, MaintenanceType = EnumMaintenanceType.None });
continue;
}
}
else
{
continue;
}
}
string FrequencyType = worksheet.Cells[rowIndex, FrequencyItem.ColumnIndex].Value.TextValue;
EnumMaintenanceType type = EnumMaintenanceTypeHelper.MatchToEnum(FrequencyType);
string FrequencyValue = worksheet.Cells[rowIndex, 2].Value.IsText
? worksheet.Cells[rowIndex, 2].Value.TextValue
: worksheet.Cells[rowIndex, 2].Value.NumericValue + "";
for (int colIndex = 6; colIndex < LastUsedColumnIndex; colIndex++)
{
Content.Add(new SheetDataItem { ColumnIndex = colIndex, RowIndex = rowIndex, MaintenanceType = type, MaintenanceTypeValue = FrequencyValue });
if (!Operation.Any(x => x.ColumnIndex == colIndex))
{
Operation.Add(new SheetDataItem { RowIndex = 3, ColumnIndex = colIndex, MaintenanceType = type, MaintenanceTypeValue = FrequencyValue });
OperationDate.Add(new SheetDataItem { RowIndex = 2, ColumnIndex = colIndex, MaintenanceType = type, MaintenanceTypeValue = FrequencyValue });
}
}
}
}
catch (Exception ex)
{
throw;
}
}
}
}