桌面端快检记录新增列表及同步mes

This commit is contained in:
2026-06-22 17:38:49 +08:00
parent 3bce685f3a
commit efcd73a565
37 changed files with 2481 additions and 416 deletions

View File

@@ -0,0 +1,104 @@
using LiveChartsCore;
using LiveChartsCore.Defaults;
using LiveChartsCore.SkiaSharpView;
using Prism.Mvvm;
using System.Collections.ObjectModel;
using YY.Admin.Core.Entity;
namespace YY.Admin.ViewModels.RubberQuickTest;
public class RubberQuickTestRecordDetailDialogViewModel : BindableBase
{
private MesXslRubberQuickTestRecord? _record;
public MesXslRubberQuickTestRecord? Record
{
get => _record;
private set => SetProperty(ref _record, value);
}
private string? _inspectResultDisplay;
public string? InspectResultDisplay
{
get => _inspectResultDisplay;
private set => SetProperty(ref _inspectResultDisplay, value);
}
public ObservableCollection<MesXslRubberQuickTestRecordStdLine> StdLines { get; } = new();
public ObservableCollection<MesXslRubberQuickTestRecordRawLine> RawLines { get; } = new();
public ObservableCollection<ISeries> TemperatureSeries { get; }
public ObservableCollection<ISeries> TorqueSeries { get; }
public ObservableCollection<ObservablePoint> UpperTempValues { get; } = new();
public ObservableCollection<ObservablePoint> LowerTempValues { get; } = new();
public ObservableCollection<ObservablePoint> TorqueValues { get; } = new();
public Axis[] TemperatureXAxes { get; } = BuildTimeAxis();
public Axis[] TemperatureYAxes { get; } = BuildTempYAxis();
public Axis[] TorqueXAxes { get; } = BuildTimeAxis();
public Axis[] TorqueYAxes { get; } = BuildTorqueYAxis();
public RubberQuickTestRecordDetailDialogViewModel()
{
TemperatureSeries = new ObservableCollection<ISeries>
{
new LineSeries<ObservablePoint> { Name = "上模温度", Values = UpperTempValues, GeometrySize = 4, LineSmoothness = 0.3 },
new LineSeries<ObservablePoint> { Name = "下模温度", Values = LowerTempValues, GeometrySize = 4, LineSmoothness = 0.3 }
};
TorqueSeries = new ObservableCollection<ISeries>
{
new LineSeries<ObservablePoint> { Name = "S'(dNm)", Values = TorqueValues, GeometrySize = 4, LineSmoothness = 0.3 }
};
}
public void Initialize(MesXslRubberQuickTestRecord record)
{
Record = record;
InspectResultDisplay = record.InspectResult switch
{
"1" => "合格",
"0" => "不合格",
_ => record.InspectResultText ?? record.InspectResult ?? ""
};
StdLines.Clear();
foreach (var line in record.StdLineList ?? [])
StdLines.Add(line);
RawLines.Clear();
foreach (var line in record.RawLineList ?? [])
RawLines.Add(line);
UpperTempValues.Clear();
LowerTempValues.Clear();
TorqueValues.Clear();
foreach (var p in (record.ChartPointList ?? []).OrderBy(x => x.SortNo ?? 0))
{
var time = (double)(p.TimeMin ?? 0);
UpperTempValues.Add(new ObservablePoint(time, (double)(p.UpperTemp ?? 0)));
LowerTempValues.Add(new ObservablePoint(time, (double)(p.LowerTemp ?? 0)));
TorqueValues.Add(new ObservablePoint(time, (double)(p.TorqueS ?? 0)));
}
}
private static Axis[] BuildTimeAxis() => new[]
{
new Axis { Name = "时间(min)", MinLimit = 0, MaxLimit = 2, Labeler = v => v.ToString("0.0#") }
};
private static Axis[] BuildTempYAxis() => new[]
{
new Axis { Name = "温度(℃)", MinLimit = 189, MaxLimit = 201 }
};
private static readonly double[] TorqueYTicks = { 0.0, 3.0, 5.9, 8.9, 11.8, 14.8 };
private static Axis[] BuildTorqueYAxis() => new[]
{
new Axis
{
Name = "S'(dNm)",
MinLimit = 0,
MaxLimit = 14.8,
CustomSeparators = TorqueYTicks
}
};
}