feat: resultPage add Detail View

master
Tongg 3 months ago
parent d80400253e
commit b6ae92c46b
  1. 2
      App.config
  2. 5
      App.xaml.cs
  3. 8
      MainWindow.xaml.cs
  4. BIN
      Resource/Images/UIResource/cut_mst_dtl.png
  5. 2
      SparkClient.csproj
  6. 128
      ViewModel/Grading/GradingResultVM.cs
  7. 1011
      Views/Grading/GradingResult.xaml
  8. 14
      Views/Grading/GradingResult.xaml.cs
  9. 10
      Views/UserControl/Viewport3D.xaml.cs
  10. 4
      Views/UserControl/ViewportData/Helper/ViewportManager.cs

@ -18,7 +18,7 @@
<add key="ProgressTime" value="50000"/>
<add key="RunModel" value="0" />
<add key="AppVersion" value="1.0.20250318" />
<add key="AppVersion" value="1.0.20250325" />
</appSettings>
<connectionStrings>
<add name="" connectionString=""/>

@ -54,6 +54,11 @@ public partial class App : Application
Logger.Info($"Load RunMode is {Common.RunMode}");
Logger.Info("App Client Start: App Initialize Succeed !!!");
DispatcherUnhandledException += (s, ex) =>
{
MessageBox.Show($"致命错误: {ex.Exception.Message}");
ex.Handled = true;
};
Logger.Info("==== ==== ==== ==== ==== ==== ==== ====");
}
}

@ -143,7 +143,7 @@ public partial class MainWindow
}
private async void MainWindow_OnClosing(object? sender, CancelEventArgs e)
private void MainWindow_OnClosing(object? sender, CancelEventArgs e)
{
var message = MultilingualHelper.getString("ExitAsk");
var title = MultilingualHelper.getString("ExitAskTitle");
@ -153,10 +153,12 @@ public partial class MainWindow
if (result == MessageBoxResult.OK)
{
await SOCClientService.Service.OpenPump(false);
SOCClientService.Service.OpenPump(false);
DataBaseHelper.CloseConnection();
// this.Close();
Environment.Exit(0);
//Environment.Exit(0);
Console.WriteLine("Shutdown");
Application.Current.Shutdown();
}
e.Cancel = true;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

@ -224,6 +224,8 @@
<None Update="Resource\ResultReport.xlsx">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Remove="Resource\Images\UIResource\cut_mst_dtl.png" />
<Resource Include="Resource\Images\UIResource\cut_mst_dtl.png" />
</ItemGroup>
<ItemGroup>

@ -717,6 +717,14 @@ public class GradingResultVM : BaseViewModel
info.Max = FormatDouble_D(result.measurements.M2);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
info.Dtl1 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_1);
info.Dtl2 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_2);
info.Dtl3 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_3);
info.Dtl4 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_4);
info.Dtl5 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_5);
info.Dtl6 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_6);
info.Dtl7 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_7);
info.Dtl8 = FormatDouble_D(data.DIAMETER_DETAIL.DIAMETER_8);
info.SymLevel = calGradeSym("DIAMETER", calSymValue(data.M1, data.M2, data.DIAMETER,false));
return info;
}
@ -743,6 +751,11 @@ public class GradingResultVM : BaseViewModel
info.Max = FormatDouble_P(result.measurements.TABLE_MAX);
info.CutLevel = calGrade_TABLE(result.measurements.TABLE_MIN, result.measurements.TABLE_MAX);
info.isEnabled = false;
var data = result.measurements;
info.Dtl1 = FormatDouble_P(data.TABLE_DETAIL.TABLE_1);
info.Dtl2 = FormatDouble_P(data.TABLE_DETAIL.TABLE_2);
info.Dtl3 = FormatDouble_P(data.TABLE_DETAIL.TABLE_3);
info.Dtl4 = FormatDouble_P(data.TABLE_DETAIL.TABLE_4);
return info;
}
@ -759,6 +772,14 @@ public class GradingResultVM : BaseViewModel
info.CutLevel = calGrade_CROWN_ANGLE(result.measurements.CROWN_ANGLE_MIN, result.measurements.CROWN_ANGLE_MAX);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
info.Dtl1 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_1);
info.Dtl2 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_2);
info.Dtl3 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_3);
info.Dtl4 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_4);
info.Dtl5 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_5);
info.Dtl6 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_6);
info.Dtl7 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_7);
info.Dtl8 = FormatDouble_A(data.CROWN_ANGLE_DETAIL.CROWN_ANGLE_8);
info.SymLevel = calGradeSym(info.TestItemId, calSymValue(data.CROWN_ANGLE_MIN, data.CROWN_ANGLE_MAX, data.CROWN_ANGLE,false));
return info;
}
@ -776,6 +797,14 @@ public class GradingResultVM : BaseViewModel
info.CutLevel = calGrade_CROWN_HEIGHT(result.measurements.CROWN_H_MIN, result.measurements.CROWN_H_MAX);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
info.Dtl1 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_1);
info.Dtl2 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_2);
info.Dtl3 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_3);
info.Dtl4 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_4);
info.Dtl5 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_5);
info.Dtl6 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_6);
info.Dtl7 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_7);
info.Dtl8 = FormatDouble_P(data.CROWN_HEIGHT_DETAIL.CROWN_HEIGHT_8);
info.SymLevel = calGradeSym(info.TestItemId, calSymValue(data.CROWN_H_MIN, data.CROWN_H_MAX, data.CROWN_HEIGHT));
return info;
}
@ -792,6 +821,14 @@ public class GradingResultVM : BaseViewModel
info.Max = FormatDouble_P(result.measurements.GIRDLE_BEZEL_MAX);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
info.Dtl1 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_1);
info.Dtl2 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_2);
info.Dtl3 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_3);
info.Dtl4 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_4);
info.Dtl5 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_5);
info.Dtl6 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_6);
info.Dtl7 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_7);
info.Dtl8 = FormatDouble_P(data.GIRDLE_BEZEL_DETAIL.GIRDLE_BEZEL_8);
info.SymLevel = calGradeSym(info.TestItemId, calSymValue(data.GIRDLE_BEZEL_MIN, data.GIRDLE_BEZEL_MAX, data.GIRDLE_BEZEL));
return info;
}
@ -806,6 +843,15 @@ public class GradingResultVM : BaseViewModel
info.Min = FormatDouble_P(result.measurements.GIRDLE_BONE_MIN);
info.Max = FormatDouble_P(result.measurements.GIRDLE_BONE_MAX);
info.isEnabled = false;
var data = result.measurements;
info.Dtl1 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_1);
info.Dtl2 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_2);
info.Dtl3 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_3);
info.Dtl4 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_4);
info.Dtl5 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_5);
info.Dtl6 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_6);
info.Dtl7 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_7);
info.Dtl8 = FormatDouble_P(data.GIRDLE_BONE_DETAIL.GIRDLE_BONE_8);
return info;
}
@ -822,6 +868,33 @@ public class GradingResultVM : BaseViewModel
info.CutLevel = calGrade_GIRDLE(result.measurements.GIRDLE_VALLEY_MIN, result.measurements.GIRDLE_VALLEY_MAX);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
List<double> doubles = new List<double>();
var girdleValleyDetail = data.GIRDLE_VALLEY_DETAIL;
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_1);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_2);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_3);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_4);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_5);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_6);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_7);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_8);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_9);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_10);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_11);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_12);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_13);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_14);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_15);
doubles.Add(girdleValleyDetail.GIRDLE_VALLEY_16);
doubles.Sort();
info.Dtl1= FormatDouble_P2(doubles[0]);
info.Dtl2 = FormatDouble_P2(doubles[1]);
info.Dtl3 = FormatDouble_P2(doubles[2]);
info.Dtl4 = FormatDouble_P2(doubles[3]);
info.Dtl5 = FormatDouble_P2(doubles[12]);
info.Dtl6 = FormatDouble_P2(doubles[13]);
info.Dtl7 = FormatDouble_P2(doubles[14]);
info.Dtl8 = FormatDouble_P2(doubles[15]);
info.SymLevel = calGradeSym(info.TestItemId, calSymValue(data.GIRDLE_VALLEY_MIN, data.GIRDLE_VALLEY_MAX, data.GIRDLE_VALLEY));
return info;
}
@ -839,6 +912,14 @@ public class GradingResultVM : BaseViewModel
info.CutLevel = calGrade_PAV_ANGLE(result.measurements.PAV_ANGLE_MIN, result.measurements.PAV_ANGLE_MAX);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
info.Dtl1 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_1);
info.Dtl2 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_2);
info.Dtl3 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_3);
info.Dtl4 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_4);
info.Dtl5 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_5);
info.Dtl6 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_6);
info.Dtl7 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_7);
info.Dtl8 = FormatDouble_A(data.PAV_ANGLE_DETAIL.PAV_ANGLE_8);
info.SymLevel = calGradeSym(info.TestItemId, calSymValue(data.PAV_ANGLE_MIN, data.PAV_ANGLE_MAX, data.PAV_ANGLE, false));
return info;
}
@ -856,6 +937,14 @@ public class GradingResultVM : BaseViewModel
info.CutLevel = calGrade_PAV_DEPTH(result.measurements.PAV_DEPTH_MIN, result.measurements.PAV_DEPTH_MAX);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
info.Dtl1 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_1);
info.Dtl2 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_2);
info.Dtl3 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_3);
info.Dtl4 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_4);
info.Dtl5 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_5);
info.Dtl6 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_6);
info.Dtl7 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_7);
info.Dtl8 = FormatDouble_P(data.PAV_DEPTH_DETAIL.PAV_DEPTH_8);
info.SymLevel = calGradeSym(info.TestItemId, calSymValue(data.PAV_DEPTH_MIN, data.PAV_DEPTH_MAX, data.PAV_DEPTH));
return info;
}
@ -871,6 +960,15 @@ public class GradingResultVM : BaseViewModel
info.Max = FormatDouble_P(result.measurements.STAR_MAX);
info.CutLevel = calGrade_STAR(result.measurements.STAR_MIN, result.measurements.STAR_MAX);
info.isEnabled = false;
var data = result.measurements;
info.Dtl1 = FormatDouble_P(data.STAR_DETAIL.STAR_1);
info.Dtl2 = FormatDouble_P(data.STAR_DETAIL.STAR_2);
info.Dtl3 = FormatDouble_P(data.STAR_DETAIL.STAR_3);
info.Dtl4 = FormatDouble_P(data.STAR_DETAIL.STAR_4);
info.Dtl5 = FormatDouble_P(data.STAR_DETAIL.STAR_5);
info.Dtl6 = FormatDouble_P(data.STAR_DETAIL.STAR_6);
info.Dtl7 = FormatDouble_P(data.STAR_DETAIL.STAR_7);
info.Dtl8 = FormatDouble_P(data.STAR_DETAIL.STAR_8);
return info;
}
@ -885,6 +983,15 @@ public class GradingResultVM : BaseViewModel
info.Max = FormatDouble_P(result.measurements.LOWER_HALVES_RATIO_MAX);
info.CutLevel = calGrade_LOWER_HALVES_RATIO(result.measurements.LOWER_HALVES_RATIO_MIN, result.measurements.LOWER_HALVES_RATIO_MAX);
info.isEnabled = false;
var data = result.measurements;
info.Dtl1 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_1);
info.Dtl2 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_2);
info.Dtl3 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_3);
info.Dtl4 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_4);
info.Dtl5 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_5);
info.Dtl6 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_6);
info.Dtl7 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_7);
info.Dtl8 = FormatDouble_P(data.LOWER_HALVES_RATIO_DETAIL.LOWER_HALVES_RATIO_8);
return info;
}
@ -897,6 +1004,7 @@ public class GradingResultVM : BaseViewModel
info.Avg = FormatDouble_Avg(result.measurements.CULET * 100, Accuracy.ZD1);
info.CutLevel = calGrade_CULET(result.measurements.CULET);
info.isEnabled = false;
return info;
}
@ -909,6 +1017,7 @@ public class GradingResultVM : BaseViewModel
info.Avg = FormatDouble_Avg(result.measurements.TOC * 100, Accuracy.ZD1);
var data = result.measurements;
info.SymLevel = calGradeSym(info.TestItemId, data.TOC * 100);
return info;
}
@ -922,6 +1031,7 @@ public class GradingResultVM : BaseViewModel
var data = result.measurements;
info.SymLevel = calGradeSym(info.TestItemId, data.COC * 100);
return info;
}
[Log]
@ -936,6 +1046,14 @@ public class GradingResultVM : BaseViewModel
info.Max = FormatDouble_A(result.measurements.TWIST_MAX);
info.Dev = calDev(info.Max, info.Min);
var data = result.measurements;
info.Dtl1 = FormatDouble_A(data.TWIST_DETAIL.TWIST_1);
info.Dtl2 = FormatDouble_A(data.TWIST_DETAIL.TWIST_2);
info.Dtl3 = FormatDouble_A(data.TWIST_DETAIL.TWIST_3);
info.Dtl4 = FormatDouble_A(data.TWIST_DETAIL.TWIST_4);
info.Dtl5 = FormatDouble_A(data.TWIST_DETAIL.TWIST_5);
info.Dtl6 = FormatDouble_A(data.TWIST_DETAIL.TWIST_6);
info.Dtl7 = FormatDouble_A(data.TWIST_DETAIL.TWIST_7);
info.Dtl8 = FormatDouble_A(data.TWIST_DETAIL.TWIST_8);
info.SymLevel = calGradeSym(info.TestItemId, calSymValue(data.TWIST_MIN, data.TWIST_MAX, data.TWIST));
return info;
}
@ -2606,6 +2724,16 @@ public class DataInfo
public string? Dev { get; set; }
public string? Min { get; set; }
public string? Max { get; set; }
public string Dtl1 { get; set; } = string.Empty;
public string Dtl2 { get; set; } = string.Empty;
public string Dtl3 { get; set; } = string.Empty;
public string Dtl4 { get; set; } = string.Empty;
public string Dtl5 { get; set; } = string.Empty;
public string Dtl6 { get; set; } = string.Empty;
public string Dtl7 { get; set; } = string.Empty;
public string Dtl8 { get; set; } = string.Empty;
public string? CutLevel { get; set; }
private Int64? _symLevel;
//public int? SymLevel { get; set; }

File diff suppressed because it is too large Load Diff

@ -295,4 +295,18 @@ public partial class GradingResult
image.Source = new BitmapImage(new Uri(@"pack://application:,,,/Resource/Images/UIResource/01-8-1.png"));
}
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
if (TabItemDefault.IsSelected == true)
{
TabItemDetail.IsSelected = true;
TabItemDefault.IsSelected = false;
}
else
{
TabItemDetail.IsSelected = false;
TabItemDefault.IsSelected = true;
}
}
}

@ -17,6 +17,7 @@ using SharpDX.Direct3D11;
using SharpDX.DXGI;
using MathNet.Numerics;
using System.Windows.Media;
using NPOI.SS.Formula.Functions;
using SparkClient.Model.Services;
using MessageBox = SparkClient.Views.Dialog.MessageBox;
using ObjExporter = SparkClient.Views.UserControl.ViewportData.Helper.ObjExporter;
@ -105,6 +106,15 @@ public partial class Viewport3D
}
ViewportManager.ShowMainModel3DByType(false);
ViewportManager.ShowMainModel3D(false);
ViewportManager.ShowMainModelLines(false);
ViewportManager.ShowMainModelLines(true);
ViewportManager.ShowMainModel3D(true);
ViewportManager.ShowMainModel3DByType(true);
}

@ -393,8 +393,8 @@ public class ViewportManager
camera.Position = new Point3D(center.X, center.Y - distance, center.Z); // 从底部看,Y轴负方向
camera.UpDirection = new Vector3D(0, 0, -1);
camera.LookDirection = new Vector3D(center.X - camera.Position.X, center.Y - camera.Position.Y, center.Z - camera.Position.Z);
_viewport.RenderHost.MSAA = MSAALevel.Maximum;
// TODO:
_viewport.RenderHost.MSAA = MSAALevel.Maximum;
InitMeshLines();
}

Loading…
Cancel
Save