|
|
@ -111,18 +111,42 @@ public class GradingResultVM : BaseViewModel |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
|
public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } } |
|
|
|
public DataTable GradeList { get { return _gradeList; } set { _gradeList = value; OnPropertyChanged(nameof(GradeList)); } } |
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
|
/// 活性 |
|
|
|
/// 保存和导出的按钮可用性 |
|
|
|
/// </summary> |
|
|
|
/// </summary> |
|
|
|
public bool IsEnabled { get{ return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } } |
|
|
|
public bool IsEnabled { get{ return _isEnabled; } set { _isEnabled = value; OnPropertyChanged(nameof(IsEnabled)); } } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 格式为小数点后一位 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private readonly static string digitsFormat = "f1"; |
|
|
|
private readonly static string digitsFormat = "f1"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 切工总等级(辅助计算用) |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private int totalCutGrade = 0; |
|
|
|
private int totalCutGrade = 0; |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 对称行总等级(辅助计算用) |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private decimal totalSymGrade = 0; |
|
|
|
private decimal totalSymGrade = 0; |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 计算数据 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private AlgorithmResultEntity algorithmResult; |
|
|
|
private AlgorithmResultEntity algorithmResult; |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 用户名 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private string username = ""; |
|
|
|
private string username = ""; |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 机器号 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private string machine = ""; |
|
|
|
private string machine = ""; |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 形状id |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private string shapeId = string.Empty; |
|
|
|
private string shapeId = string.Empty; |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// 规则id |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
private string ruleId = string.Empty; |
|
|
|
private string ruleId = string.Empty; |
|
|
|
/// <summary> |
|
|
|
/// <summary> |
|
|
|
/// 构造 |
|
|
|
/// 构造 |
|
|
@ -130,30 +154,38 @@ public class GradingResultVM : BaseViewModel |
|
|
|
/// <param name="result">检测结果</param> |
|
|
|
/// <param name="result">检测结果</param> |
|
|
|
public GradingResultVM(object result) |
|
|
|
public GradingResultVM(object result) |
|
|
|
{ |
|
|
|
{ |
|
|
|
SaveAsCommand = new RelayCommand(SaveAs); |
|
|
|
try |
|
|
|
SaveFileCommand = new RelayCommand(SaveFile); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (result != null) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
algorithmResult = result as AlgorithmResultEntity?? new AlgorithmResultEntity(); |
|
|
|
SaveAsCommand = new RelayCommand(SaveAs); |
|
|
|
InitView(algorithmResult); |
|
|
|
SaveFileCommand = new RelayCommand(SaveFile); |
|
|
|
machine = algorithmResult.DeviceId; |
|
|
|
|
|
|
|
username = Settings.SelectValueById("PERMISSIONS"); |
|
|
|
if (result != null) |
|
|
|
if (ruleId.StartsWith("IGI")) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
IsEnabled = true; |
|
|
|
algorithmResult = result as AlgorithmResultEntity?? new AlgorithmResultEntity(); |
|
|
|
|
|
|
|
InitView(algorithmResult); |
|
|
|
|
|
|
|
machine = algorithmResult.DeviceId; |
|
|
|
|
|
|
|
username = Settings.SelectValueById("PERMISSIONS"); |
|
|
|
|
|
|
|
if (ruleId.StartsWith("IGI")) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
IsEnabled = true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
IsEnabled = false; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
DS = "NA"; |
|
|
|
|
|
|
|
if (IsEnabled) |
|
|
|
{ |
|
|
|
{ |
|
|
|
IsEnabled = false; |
|
|
|
AutoSave(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
SaveTestResult(SaveStatus.AutoSave); |
|
|
|
} |
|
|
|
} |
|
|
|
DS = "NA"; |
|
|
|
catch (Exception ex) |
|
|
|
if (IsEnabled) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
AutoSave(); |
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
} |
|
|
|
} |
|
|
|
SaveTestResult(SaveStatus.AutoSave); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#region 画面初始化相关操作 |
|
|
|
#region 画面初始化相关操作 |
|
|
@ -213,37 +245,45 @@ public class GradingResultVM : BaseViewModel |
|
|
|
|
|
|
|
|
|
|
|
private void InitView(AlgorithmResultEntity result) |
|
|
|
private void InitView(AlgorithmResultEntity result) |
|
|
|
{ |
|
|
|
{ |
|
|
|
InitViewportData(result); |
|
|
|
try |
|
|
|
totalCutGrade = 0; |
|
|
|
{ |
|
|
|
totalSymGrade = 0; |
|
|
|
InitViewportData(result); |
|
|
|
ruleId = getRuleId(); |
|
|
|
totalCutGrade = 0; |
|
|
|
Standard = result.Standard; |
|
|
|
totalSymGrade = 0; |
|
|
|
shapeId = result.Shape; |
|
|
|
ruleId = getRuleId(); |
|
|
|
InitCombobox(); |
|
|
|
Standard = result.Standard; |
|
|
|
Shape = GetName(result.Shape); |
|
|
|
shapeId = result.Shape; |
|
|
|
CrownType = result.CrownType; |
|
|
|
InitCombobox(); |
|
|
|
PavType = result.PavType; |
|
|
|
Shape = GetName(result.Shape); |
|
|
|
DiamondCode = result.DiamondCode; |
|
|
|
CrownType = result.CrownType; |
|
|
|
CalWight(result); |
|
|
|
PavType = result.PavType; |
|
|
|
DtResults = new List<DataInfo>(); |
|
|
|
DiamondCode = result.DiamondCode; |
|
|
|
var testItemList = GetTestItemList(); |
|
|
|
CalWight(result); |
|
|
|
Type type = this.GetType(); |
|
|
|
DtResults = new List<DataInfo>(); |
|
|
|
foreach (var testItem in testItemList) |
|
|
|
var testItemList = GetTestItemList(); |
|
|
|
{ |
|
|
|
Type type = this.GetType(); |
|
|
|
string methodName = "get" + testItem; |
|
|
|
foreach (var testItem in testItemList) |
|
|
|
MethodInfo? methodInfo = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic); |
|
|
|
|
|
|
|
if (methodInfo != null) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
object[] parameters = new object[] { result }; |
|
|
|
string methodName = "get" + testItem; |
|
|
|
DataInfo? dataInfo = methodInfo.Invoke(this, parameters) as DataInfo; |
|
|
|
MethodInfo? methodInfo = type.GetMethod(methodName, BindingFlags.Instance | BindingFlags.NonPublic); |
|
|
|
if (dataInfo != null) |
|
|
|
if (methodInfo != null) |
|
|
|
{ |
|
|
|
{ |
|
|
|
dataInfo.GradeList = GradeList; |
|
|
|
object[] parameters = new object[] { result }; |
|
|
|
DtResults.Add(dataInfo); |
|
|
|
DataInfo? dataInfo = methodInfo.Invoke(this, parameters) as DataInfo; |
|
|
|
|
|
|
|
if (dataInfo != null) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
dataInfo.GradeList = GradeList; |
|
|
|
|
|
|
|
DtResults.Add(dataInfo); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
CutLevelTotal = GetGradeName(totalCutGrade); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
} |
|
|
|
} |
|
|
|
CutLevelTotal = GetGradeName(totalCutGrade); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
private string getRuleId() |
|
|
|
private string getRuleId() |
|
|
|
{ |
|
|
|
{ |
|
|
@ -317,52 +357,60 @@ public class GradingResultVM : BaseViewModel |
|
|
|
} |
|
|
|
} |
|
|
|
private int calGrade(string item ,double value) |
|
|
|
private int calGrade(string item ,double value) |
|
|
|
{ |
|
|
|
{ |
|
|
|
decimal cValue = Convert.ToDecimal(value); |
|
|
|
|
|
|
|
List<CalGradeInfo> calGrades = GetCalGradeInfos(item); |
|
|
|
|
|
|
|
if (calGrades == null || calGrades.Count == 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
int order = 1; |
|
|
|
int order = 1; |
|
|
|
foreach (CalGradeInfo gradeInfo in calGrades) |
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
bool isThisGrade = true; |
|
|
|
decimal cValue = Convert.ToDecimal(value); |
|
|
|
|
|
|
|
List<CalGradeInfo> calGrades = GetCalGradeInfos(item); |
|
|
|
if (gradeInfo.Max!= null) { |
|
|
|
if (calGrades == null || calGrades.Count == 0) |
|
|
|
if ( gradeInfo.isMaxExist == 1 && cValue.CompareTo(gradeInfo.Max)<=0) |
|
|
|
{ |
|
|
|
{ |
|
|
|
return 0; |
|
|
|
}else if(gradeInfo.isMaxExist == 0 && cValue.CompareTo(gradeInfo.Max) < 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
isThisGrade = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
if (gradeInfo.Min != null) |
|
|
|
foreach (CalGradeInfo gradeInfo in calGrades) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (gradeInfo.isMinExist == 1 && cValue.CompareTo(gradeInfo.Min) >= 0) |
|
|
|
bool isThisGrade = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (gradeInfo.Max!= null) { |
|
|
|
|
|
|
|
if ( gradeInfo.isMaxExist == 1 && cValue.CompareTo(gradeInfo.Max)<=0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
}else if(gradeInfo.isMaxExist == 0 && cValue.CompareTo(gradeInfo.Max) < 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
isThisGrade = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (gradeInfo.Min != null) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
if (gradeInfo.isMinExist == 1 && cValue.CompareTo(gradeInfo.Min) >= 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (gradeInfo.isMinExist == 0 && cValue.CompareTo(gradeInfo.Min) > 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
isThisGrade = false; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else if (gradeInfo.isMinExist == 0 && cValue.CompareTo(gradeInfo.Min) > 0) |
|
|
|
if (isThisGrade) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
order = gradeInfo.gradeOrder; |
|
|
|
|
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
isThisGrade = false; |
|
|
|
order = gradeInfo.gradeOrder; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (isThisGrade) |
|
|
|
totalCutGrade = Math.Max(order, totalCutGrade); |
|
|
|
{ |
|
|
|
} |
|
|
|
order = gradeInfo.gradeOrder; |
|
|
|
catch (Exception ex) |
|
|
|
break; |
|
|
|
{ |
|
|
|
} |
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
else |
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
{ |
|
|
|
|
|
|
|
order = gradeInfo.gradeOrder; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
totalCutGrade = Math.Max(order, totalCutGrade); |
|
|
|
|
|
|
|
return order; |
|
|
|
return order; |
|
|
|
} |
|
|
|
} |
|
|
|
private string calGrade_TOTAL_DEPTH(double avg) |
|
|
|
private string calGrade_TOTAL_DEPTH(double avg) |
|
|
@ -736,48 +784,56 @@ public class GradingResultVM : BaseViewModel |
|
|
|
#region 文件导出相关 |
|
|
|
#region 文件导出相关 |
|
|
|
public void SaveAs(object param) |
|
|
|
public void SaveAs(object param) |
|
|
|
{ |
|
|
|
{ |
|
|
|
if (string.IsNullOrEmpty(DiamondCode)) |
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
MessageBox messageBox = new MessageBox(); |
|
|
|
if (string.IsNullOrEmpty(DiamondCode)) |
|
|
|
MessageBoxResult boxResult = messageBox.ShowInput(MultilingualHelper.getString("UpdateDiamondCode"), out string inputStr, |
|
|
|
|
|
|
|
MultilingualHelper.getString("ok"), |
|
|
|
|
|
|
|
MultilingualHelper.getString("Cancel") |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (boxResult == MessageBoxResult.OK && inputStr.Length > 0) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
this.DiamondCode = inputStr; |
|
|
|
MessageBox messageBox = new MessageBox(); |
|
|
|
} |
|
|
|
MessageBoxResult boxResult = messageBox.ShowInput(MultilingualHelper.getString("UpdateDiamondCode"), out string inputStr, |
|
|
|
else |
|
|
|
MultilingualHelper.getString("ok"), |
|
|
|
{ |
|
|
|
MultilingualHelper.getString("Cancel") |
|
|
|
return; |
|
|
|
); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (boxResult == MessageBoxResult.OK && inputStr.Length > 0) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
this.DiamondCode = inputStr; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
using (var folderBrowserDlg = new FolderBrowserDialog()) |
|
|
|
using (var folderBrowserDlg = new FolderBrowserDialog()) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
// 创建SaveFileDialog实例 |
|
|
|
|
|
|
|
SaveFileDialog saveFileDialog = new() |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
Filter = "所有文件 (*.*)|*.*", // 文件类型过滤器 |
|
|
|
// 创建SaveFileDialog实例 |
|
|
|
FileName = this.DiamondCode // 默认文件名 |
|
|
|
SaveFileDialog saveFileDialog = new() |
|
|
|
}; |
|
|
|
{ |
|
|
|
|
|
|
|
Filter = "所有文件 (*.*)|*.*", // 文件类型过滤器 |
|
|
|
|
|
|
|
FileName = this.DiamondCode // 默认文件名 |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
// 显示对话框并检查结果 |
|
|
|
// 显示对话框并检查结果 |
|
|
|
bool? result = saveFileDialog.ShowDialog(); |
|
|
|
bool? result = saveFileDialog.ShowDialog(); |
|
|
|
if (result == true) |
|
|
|
if (result == true) |
|
|
|
{ |
|
|
|
|
|
|
|
// 获取用户选择的文件路径 |
|
|
|
|
|
|
|
string filePath = saveFileDialog.FileName; |
|
|
|
|
|
|
|
if (!saveFileDialog.CheckPathExists) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
new MessageBox().Show(MultilingualHelper.getString("FilePathNotExists")); |
|
|
|
// 获取用户选择的文件路径 |
|
|
|
return; |
|
|
|
string filePath = saveFileDialog.FileName; |
|
|
|
|
|
|
|
if (!saveFileDialog.CheckPathExists) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
new MessageBox().Show(MultilingualHelper.getString("FilePathNotExists")); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
//ExportFile(filePath); |
|
|
|
|
|
|
|
TxtFile(filePath); |
|
|
|
} |
|
|
|
} |
|
|
|
//ExportFile(filePath); |
|
|
|
|
|
|
|
TxtFile(filePath); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
SaveTestResult(SaveStatus.SaveAs); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
} |
|
|
|
} |
|
|
|
SaveTestResult(SaveStatus.SaveAs); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
private async void ExportFile(string filePath) |
|
|
|
private async void ExportFile(string filePath) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -866,116 +922,140 @@ public class GradingResultVM : BaseViewModel |
|
|
|
} |
|
|
|
} |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// txt文件导出 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
|
|
|
|
/// <param name="filePath"></param> |
|
|
|
private void TxtFile(string filePath) |
|
|
|
private void TxtFile(string filePath) |
|
|
|
{ |
|
|
|
{ |
|
|
|
string fileName = filePath + ".txt"; |
|
|
|
try |
|
|
|
using (var file = File.Create(fileName)) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
Measurements info = algorithmResult.measurements; |
|
|
|
string fileName = filePath + ".txt"; |
|
|
|
StreamWriter stream = new StreamWriter(file); |
|
|
|
using (var file = File.Create(fileName)) |
|
|
|
stream.WriteLine($"IGI REPORT NUMBER={DiamondCode}"); |
|
|
|
{ |
|
|
|
stream.WriteLine($"SARIN WEIGHT={Wight}"); |
|
|
|
Measurements info = algorithmResult.measurements; |
|
|
|
stream.WriteLine($"M1={info.M1}"); |
|
|
|
StreamWriter stream = new StreamWriter(file); |
|
|
|
stream.WriteLine($"M2={info.M2}"); |
|
|
|
stream.WriteLine($"IGI REPORT NUMBER={DiamondCode}"); |
|
|
|
stream.WriteLine($"M3={info.M3}"); |
|
|
|
stream.WriteLine($"SARIN WEIGHT={Wight}"); |
|
|
|
stream.WriteLine($"TABLE={info.TABLE*100}"); |
|
|
|
stream.WriteLine($"M1={info.M1}"); |
|
|
|
stream.WriteLine($"TABLE MIN={info.TABLE_MIN * 100}"); |
|
|
|
stream.WriteLine($"M2={info.M2}"); |
|
|
|
stream.WriteLine($"TABLE MAX={info.TABLE_MAX * 100}"); |
|
|
|
stream.WriteLine($"M3={info.M3}"); |
|
|
|
stream.WriteLine($"CROWN HEIGHT={info.CROWN_HEIGHT * 100}"); |
|
|
|
stream.WriteLine($"TABLE={info.TABLE*100}"); |
|
|
|
stream.WriteLine($"CROWN H MIN={info.CROWN_H_MIN * 100}"); |
|
|
|
stream.WriteLine($"TABLE MIN={info.TABLE_MIN * 100}"); |
|
|
|
stream.WriteLine($"CROWN H MAX={info.CROWN_H_MAX * 100}"); |
|
|
|
stream.WriteLine($"TABLE MAX={info.TABLE_MAX * 100}"); |
|
|
|
stream.WriteLine($"CROWN ANGLE={info.CROWN_ANGLE}"); |
|
|
|
stream.WriteLine($"CROWN HEIGHT={info.CROWN_HEIGHT * 100}"); |
|
|
|
stream.WriteLine($"CROWN ANGLE MIN={info.CROWN_ANGLE_MIN}"); |
|
|
|
stream.WriteLine($"CROWN H MIN={info.CROWN_H_MIN * 100}"); |
|
|
|
stream.WriteLine($"CROWN ANGLE MAX={info.CROWN_ANGLE_MAX}"); |
|
|
|
stream.WriteLine($"CROWN H MAX={info.CROWN_H_MAX * 100}"); |
|
|
|
stream.WriteLine($"PAV DEPTH={info.PAV_DEPTH * 100}"); |
|
|
|
stream.WriteLine($"CROWN ANGLE={info.CROWN_ANGLE}"); |
|
|
|
stream.WriteLine($"PAV DEPTH MIN={info.PAV_DEPTH_MIN * 100}"); |
|
|
|
stream.WriteLine($"CROWN ANGLE MIN={info.CROWN_ANGLE_MIN}"); |
|
|
|
stream.WriteLine($"PAV DEPTH MAX={info.PAV_DEPTH_MAX * 100}"); |
|
|
|
stream.WriteLine($"CROWN ANGLE MAX={info.CROWN_ANGLE_MAX}"); |
|
|
|
stream.WriteLine($"PAV ANGLE={info.PAV_ANGLE}"); |
|
|
|
stream.WriteLine($"PAV DEPTH={info.PAV_DEPTH * 100}"); |
|
|
|
stream.WriteLine($"PAV ANGLE MIN={info.PAV_ANGLE_MIN}"); |
|
|
|
stream.WriteLine($"PAV DEPTH MIN={info.PAV_DEPTH_MIN * 100}"); |
|
|
|
stream.WriteLine($"PAV ANGLE MAX={info.PAV_ANGLE_MAX}"); |
|
|
|
stream.WriteLine($"PAV DEPTH MAX={info.PAV_DEPTH_MAX * 100}"); |
|
|
|
stream.WriteLine($"GIRDLE={info.GIRDLE * 100}"); |
|
|
|
stream.WriteLine($"PAV ANGLE={info.PAV_ANGLE}"); |
|
|
|
stream.WriteLine($"GIRDLE MIN={info.GIRDLE_MIN * 100}"); |
|
|
|
stream.WriteLine($"PAV ANGLE MIN={info.PAV_ANGLE_MIN}"); |
|
|
|
stream.WriteLine($"GIRDLE MAX={info.GIRDLE_MAX * 100}"); |
|
|
|
stream.WriteLine($"PAV ANGLE MAX={info.PAV_ANGLE_MAX}"); |
|
|
|
stream.WriteLine($"TOTAL DEPTH={info.TOTAL_DEPTH * 100}"); |
|
|
|
stream.WriteLine($"GIRDLE={info.GIRDLE * 100}"); |
|
|
|
stream.WriteLine($"CULET={info.CULET*100}"); |
|
|
|
stream.WriteLine($"GIRDLE MIN={info.GIRDLE_MIN * 100}"); |
|
|
|
stream.WriteLine($"MACHINE={machine}"); |
|
|
|
stream.WriteLine($"GIRDLE MAX={info.GIRDLE_MAX * 100}"); |
|
|
|
stream.WriteLine($"CUTGRADE={GetGradeEnName(totalCutGrade.ToString())}"); |
|
|
|
stream.WriteLine($"TOTAL DEPTH={info.TOTAL_DEPTH * 100}"); |
|
|
|
stream.WriteLine($"LW RATIO={info.LW_RATIO}"); |
|
|
|
stream.WriteLine($"CULET={info.CULET*100}"); |
|
|
|
stream.WriteLine($"DS={DS}"); |
|
|
|
stream.WriteLine($"MACHINE={machine}"); |
|
|
|
stream.WriteLine($"COC={info.COC * 100}"); |
|
|
|
stream.WriteLine($"CUTGRADE={GetGradeEnName(totalCutGrade.ToString())}"); |
|
|
|
stream.WriteLine($"USER={username}"); |
|
|
|
stream.WriteLine($"LW RATIO={info.LW_RATIO}"); |
|
|
|
string TABLE_GRADE = DtResults.Where(x => "TABLE".Equals(x.TestItemId)).Select(x=>x.CutLevel).First()??""; |
|
|
|
stream.WriteLine($"DS={DS}"); |
|
|
|
stream.WriteLine($"TABLE GRADE={GetGradeEnName(GetGradeOrder(TABLE_GRADE))}"); |
|
|
|
stream.WriteLine($"COC={info.COC * 100}"); |
|
|
|
string CROWN_H_GRADE = DtResults.Where(x => "CROWN_HEIGHT".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
stream.WriteLine($"USER={username}"); |
|
|
|
stream.WriteLine($"CROWN H GRADE={GetGradeEnName(GetGradeOrder(CROWN_H_GRADE))}"); |
|
|
|
string TABLE_GRADE = DtResults.Where(x => "TABLE".Equals(x.TestItemId)).Select(x=>x.CutLevel).First()??""; |
|
|
|
string CROWN_ANGLE_GRADE = DtResults.Where(x => "CROWN_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
stream.WriteLine($"TABLE GRADE={GetGradeEnName(GetGradeOrder(TABLE_GRADE))}"); |
|
|
|
stream.WriteLine($"CROWN ANGLE GRADE={GetGradeEnName(GetGradeOrder(CROWN_ANGLE_GRADE))}"); |
|
|
|
string CROWN_H_GRADE = DtResults.Where(x => "CROWN_HEIGHT".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
string PAV_DEPTH_GRADE = DtResults.Where(x => "PAV_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
stream.WriteLine($"CROWN H GRADE={GetGradeEnName(GetGradeOrder(CROWN_H_GRADE))}"); |
|
|
|
stream.WriteLine($"PAV DEPTH GRADE={GetGradeEnName(GetGradeOrder(PAV_DEPTH_GRADE))}"); |
|
|
|
string CROWN_ANGLE_GRADE = DtResults.Where(x => "CROWN_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
string PAV_ANGLE_GRADE = DtResults.Where(x => "PAV_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
stream.WriteLine($"CROWN ANGLE GRADE={GetGradeEnName(GetGradeOrder(CROWN_ANGLE_GRADE))}"); |
|
|
|
stream.WriteLine($"PAV ANGLE GRADE={GetGradeEnName(GetGradeOrder(PAV_ANGLE_GRADE))}"); |
|
|
|
string PAV_DEPTH_GRADE = DtResults.Where(x => "PAV_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
string TD_GRADE = DtResults.Where(x => "TOTAL_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
stream.WriteLine($"PAV DEPTH GRADE={GetGradeEnName(GetGradeOrder(PAV_DEPTH_GRADE))}"); |
|
|
|
stream.WriteLine($"TD GRADE={GetGradeEnName(GetGradeOrder(TD_GRADE))}"); |
|
|
|
string PAV_ANGLE_GRADE = DtResults.Where(x => "PAV_ANGLE".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
stream.WriteLine($"TA={info.TA}"); |
|
|
|
stream.WriteLine($"PAV ANGLE GRADE={GetGradeEnName(GetGradeOrder(PAV_ANGLE_GRADE))}"); |
|
|
|
stream.WriteLine($"LGF={info.LGF * 100}"); |
|
|
|
string TD_GRADE = DtResults.Where(x => "TOTAL_DEPTH".Equals(x.TestItemId)).Select(x => x.CutLevel).First() ?? ""; |
|
|
|
stream.WriteLine($"STAR={info.STAR * 100}"); |
|
|
|
stream.WriteLine($"TD GRADE={GetGradeEnName(GetGradeOrder(TD_GRADE))}"); |
|
|
|
stream.Close(); |
|
|
|
stream.WriteLine($"TA={info.TA}"); |
|
|
|
|
|
|
|
stream.WriteLine($"LGF={info.LGF * 100}"); |
|
|
|
|
|
|
|
stream.WriteLine($"STAR={info.STAR * 100}"); |
|
|
|
|
|
|
|
stream.Close(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception ex) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// excel文件导出 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
|
|
|
|
/// <param name="filePath"></param> |
|
|
|
private void ExcelFile(string filePath) |
|
|
|
private void ExcelFile(string filePath) |
|
|
|
{ |
|
|
|
{ |
|
|
|
string fileName = filePath + ".xlsx"; |
|
|
|
try |
|
|
|
IWorkbook workbook = new XSSFWorkbook(); |
|
|
|
{ |
|
|
|
ISheet sheet = workbook.CreateSheet("Sheet1"); |
|
|
|
string fileName = filePath + ".xlsx"; |
|
|
|
|
|
|
|
IWorkbook workbook = new XSSFWorkbook(); |
|
|
|
|
|
|
|
ISheet sheet = workbook.CreateSheet("Sheet1"); |
|
|
|
|
|
|
|
|
|
|
|
int col = 0; |
|
|
|
int col = 0; |
|
|
|
int row = 0; |
|
|
|
int row = 0; |
|
|
|
var dataRow = sheet.CreateRow(row); |
|
|
|
var dataRow = sheet.CreateRow(row); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Measurement1"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Measurement1"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Measurement2"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Measurement2"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Measurement3"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Measurement3"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Table"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Table"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Crown Height"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Crown Height"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Pavilion Depth"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Pavilion Depth"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Total Depth"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Total Depth"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Crown Angle"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Crown Angle"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Pavilion Angle"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Pavilion Angle"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Culet Size"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Culet Size"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Girdle Percent"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Girdle Percent"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Girdle Name"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("Girdle Name"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("POL or Pol/Sym"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("POL or Pol/Sym"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("SYM"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("SYM"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("CUT-PROP"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue("CUT-PROP"); |
|
|
|
row++; |
|
|
|
row++; |
|
|
|
col = 0; |
|
|
|
col = 0; |
|
|
|
dataRow = sheet.CreateRow(row); |
|
|
|
dataRow = sheet.CreateRow(row); |
|
|
|
Measurements info = algorithmResult.measurements; |
|
|
|
Measurements info = algorithmResult.measurements; |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M1)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M1)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M2)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M2)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M3)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.M3)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TABLE)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TABLE)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.CROWN_HEIGHT)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.CROWN_HEIGHT)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.PAV_DEPTH)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.PAV_DEPTH)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TOTAL_DEPTH)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.TOTAL_DEPTH)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CROWN_ANGLE)}°"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CROWN_ANGLE)}°"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.PAV_ANGLE)}°"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.PAV_ANGLE)}°"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CULET_SIZE)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_A(info.CULET_SIZE)}(mm)"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.GIRDLE)}%"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{FormatDouble_P(info.GIRDLE)}%"); |
|
|
|
// 腰部厚度英文 |
|
|
|
// 腰部厚度英文 |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{calGirdleName(info)}"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{calGirdleName(info)}"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($""); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($""); |
|
|
|
string sysmlevel = ""; |
|
|
|
string sysmlevel = ""; |
|
|
|
if (!string.IsNullOrEmpty(SymLevelTotal)) |
|
|
|
if (!string.IsNullOrEmpty(SymLevelTotal)) |
|
|
|
{ |
|
|
|
{ |
|
|
|
sysmlevel = GetGradeEnName(GetGradeOrder(SymLevelTotal ?? "")); |
|
|
|
sysmlevel = GetGradeEnName(GetGradeOrder(SymLevelTotal ?? "")); |
|
|
|
} |
|
|
|
} |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{sysmlevel}"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{sysmlevel}"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{GetGradeEnName(GetGradeOrder(CutLevelTotal))}"); |
|
|
|
dataRow.CreateCell(col++).SetCellValue($"{GetGradeEnName(GetGradeOrder(CutLevelTotal))}"); |
|
|
|
|
|
|
|
|
|
|
|
// 保存Excel文件 |
|
|
|
// 保存Excel文件 |
|
|
|
using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) |
|
|
|
using (FileStream stream = new FileStream(fileName, FileMode.Create, FileAccess.Write)) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
workbook.Write(stream); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception ex) |
|
|
|
{ |
|
|
|
{ |
|
|
|
workbook.Write(stream); |
|
|
|
new MessageBox().Show($"{MultilingualHelper.getString("ApplicationError")}{ex.Message}"); |
|
|
|
|
|
|
|
Logger.Error($"全局异常捕获:{ex.Message}", ex); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|