You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AUCMA_SCADA/Aucma.Core.BoxFoam/ViewModels/FoamMonitorPageViewModel.cs

291 lines
8.8 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using LiveCharts.Defaults;
using LiveCharts.Wpf;
using LiveCharts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
1 year ago
using System.Collections.ObjectModel;
1 year ago
using Admin.Core.IService;
using Admin.Core.Service;
using Microsoft.Extensions.DependencyInjection;
using Admin.Core.Common;
using Admin.Core.Tasks;
namespace Aucma.Core.BoxFoam.ViewModels
{
public partial class FoamMonitorPageViewModel : ObservableObject
{
1 year ago
private readonly IBoxFoamDataServices _boxFoamDataServices;
public FoamMonitorPageViewModel()
{
1 year ago
_boxFoamDataServices = App.ServiceProvider.GetService<IBoxFoamDataServices>();
Job_BoxFoamData_Quartz.RefreshBoxFoamDataDelegateEvent += InitData;
1 year ago
Task.WaitAll(InitEveryDayMethod(), InitData());
1 year ago
}
#region 日产量
/// <summary>
/// 每日生产
/// </summary>
/// <returns></returns>
private Task InitEveryDayMethod()
{
#region 按时间统计
ChartValues<ObservablePoint> achievement = new ChartValues<ObservablePoint>
{
new ObservablePoint(0, 12),
new ObservablePoint(1, 14),
new ObservablePoint(2, 28),
1 year ago
new ObservablePoint(3, 2),
new ObservablePoint(4, 29),
new ObservablePoint(5, 29),
new ObservablePoint(6, 7),
new ObservablePoint(7, 31),
new ObservablePoint(8, 13),
new ObservablePoint(9, 11),
new ObservablePoint(10, 8),
1 year ago
new ObservablePoint(11, 5)
};
var column = new ColumnSeries();
column.DataLabels = true;
column.Title = "当日小时产量统计";
column.Values = achievement;
column.Foreground = Brushes.White;
//柱子宽度
//column.Width = 30;
//column.MaxColumnWidth = 30;
//column.LabelsPosition = BarLabelPosition.Perpendicular;
//column.Fill = new SolidColorBrush(Color.FromRgb(34, 139, 34)); //柱状图颜色填充
//column.LabelPoint = p => p.Y.ToString(); //柱状图数据显示位置
ProductionHourList = new List<string>()
{
1 year ago
"7:30", "8:30", "9:30", "10:30", "11:30", "12:30", "13:30", "14:30", "15:30", "16:30", "17:30", "18:30"
};
//Formatter = value => value.ToString("N");
Achievement.Add(column);
#endregion
#region 按类型统计
ChartValues<double> achievement2 = new ChartValues<double>();
Random random2 = new Random();
for (int i = 0; i < 2; i++)
{
1 year ago
achievement2.Add(random2.Next(0,50));
}
var column2 = new ColumnSeries();
column2.DataLabels = true;
column2.Title = "当日型号产量统计";
column2.Values = achievement2;
column2.Foreground = Brushes.White;
ModelStatistics.Add(column2);
MaterialNameList = new List<string>()
{
"玻璃门,SC-439", "玻璃门,SC-439,AC"
};
#endregion
1 year ago
//await InitExecMethod();
return Task.CompletedTask;
}
#endregion
#region 日产量柱状图X轴日期
/// <summary>
/// 日产量柱状图X轴日期
/// </summary>
private List<string> productionHourList;
public List<string> ProductionHourList
{
get { return productionHourList; }
set { productionHourList = value; }
}
#endregion
#region 型号统计
#region 型号统计柱状图x轴物料类型
/// <summary>
/// 型号统计柱状图x轴物料类型
/// </summary>
private List<string> materialNameList;
public List<string> MaterialNameList
{
get { return materialNameList; }
set { materialNameList = value; }
}
#endregion
#region 型号统计柱状图
/// <summary>
/// 型号统计柱状图
/// </summary>
private SeriesCollection modelStatistics = new SeriesCollection();
public SeriesCollection ModelStatistics
{
get { return modelStatistics; }
set { modelStatistics = value; }
}
#endregion
#endregion
#region 日产量柱状图
/// <summary>
/// 日产量柱状图
/// </summary>
private SeriesCollection achievement = new SeriesCollection();
public SeriesCollection Achievement
{
get { return achievement; }
set { achievement = value; }
1 year ago
}
#endregion
#region 颜色
/// <summary>
/// 颜色
/// </summary>
private ObservableCollection<string> _color = new ObservableCollection<string>();
public ObservableCollection<string> Color
{
get => _color;
set => SetProperty(ref _color, value);
}
#endregion
1 year ago
#region 总计
private int _totle = 0;
public int Totle
{
get => _totle;
set => SetProperty(ref _totle, value);
}
#endregion
#region 夹具状态
private ObservableCollection<string> _statusColor = new ObservableCollection<string>();
public ObservableCollection<string> StatusColor
{
get => _statusColor;
set => SetProperty(ref _statusColor, value);
}
#endregion
#region 夹具名称
private ObservableCollection<string> _fixtureName = new ObservableCollection<string>();
public ObservableCollection<string> FixtureName
{
get => _fixtureName;
set => SetProperty(ref _fixtureName, value);
}
#endregion
#region 夹具产量
/// <summary>
///夹具产量
/// </summary>
private ObservableCollection<string> _production = new ObservableCollection<string>();
public ObservableCollection<string> Production
{
get => _production;
set => SetProperty(ref _production, value);
}
#endregion
#region 发泡量
/// <summary>
/// 发泡量
/// </summary>
private ObservableCollection<int> _foamVolume = new ObservableCollection<int>();
public ObservableCollection<int> FoamVolume
{
get => _foamVolume;
set => SetProperty(ref _foamVolume, value);
}
#endregion
#region 内侧温度
private ObservableCollection<string> _internalTemperature = new ObservableCollection<string>();
public ObservableCollection<string> InternalTemperature
{
get => _internalTemperature;
set => SetProperty(ref _internalTemperature, value);
}
#endregion
#region 侧板温度温度
private ObservableCollection<string> _outsideTemperature = new ObservableCollection<string>();
public ObservableCollection<string> OutsideTemperature
{
get => _outsideTemperature;
set => SetProperty(ref _outsideTemperature, value);
}
#endregion
#region 夹具节拍
private ObservableCollection<int> _beat = new ObservableCollection<int>();
public ObservableCollection<int> Beat
{
get => _beat;
set => SetProperty(ref _beat, value);
}
#endregion
1 year ago
#region 初始化发泡数据
1 year ago
/// <summary>
/// 初始化发泡数据
/// </summary>
/// <returns></returns>
public async Task InitData()
{
1 year ago
try
1 year ago
{
1 year ago
int total = 0;
var list = await _boxFoamDataServices.QueryAsync();
if (list == null) return;
1 year ago
foreach (var item in list)
{
1 year ago
if (item.Fixturestatus == 1) StatusColor.Add("Green");
if (item.Fixturestatus == 0) StatusColor.Add("Red");
1 year ago
1 year ago
FixtureName.Add(item.Fixtureboxtype);
Production.Add(item.Production.ToString());
//FoamVolume.Add(item.v);
//InternalTemperature.Add(item.BoxClosebetatemperature.ToString());
//OutsideTemperature.Add(item.BoxFixturesideplate.ToString());
1 year ago
Beat.Add(item.BoxBeat);
1 year ago
total += item.Production;
1 year ago
}
Totle = total;
}
catch
{
1 year ago
}
1 year ago
}
#endregion
}
}