|
@@ -1,9 +1,17 @@
|
|
-using LiveCharts;
|
|
|
|
|
|
+using AutoMapper;
|
|
|
|
+using BizService;
|
|
|
|
+using LiveCharts;
|
|
using LiveCharts.Defaults;
|
|
using LiveCharts.Defaults;
|
|
using LiveCharts.Wpf;
|
|
using LiveCharts.Wpf;
|
|
|
|
+using Microsoft.Extensions.Logging;
|
|
|
|
+using Model.Dto;
|
|
|
|
+using Model.Entities;
|
|
|
|
+using Prism.Commands;
|
|
using Prism.Mvvm;
|
|
using Prism.Mvvm;
|
|
|
|
+using Prism.Services.Dialogs;
|
|
using System;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Collections.Generic;
|
|
|
|
+using System.Collections.ObjectModel;
|
|
using System.Linq;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Text;
|
|
using System.Threading.Tasks;
|
|
using System.Threading.Tasks;
|
|
@@ -12,18 +20,141 @@ namespace BlankApp1.ViewModels
|
|
{
|
|
{
|
|
public class StatisticsViewModel:BindableBase
|
|
public class StatisticsViewModel:BindableBase
|
|
{
|
|
{
|
|
- public StatisticsViewModel()
|
|
|
|
|
|
+ private readonly IDialogService _dialog;
|
|
|
|
+ private readonly IOptionConfigService _optionConfigService;
|
|
|
|
+ private readonly IBasicPlcTestSchemeService _basicPlcTestSchemeService;
|
|
|
|
+ private readonly IBasicPlcTestSchemeDtlService _basicPlcTestSchemeDtlService;
|
|
|
|
+ private readonly IBizTestRecordDtlService _iBizTestRecordDtlService;
|
|
|
|
+ private readonly ILogger _logger;
|
|
|
|
+ private readonly IMapper _mapper;
|
|
|
|
+ private List<SchDtlWithResultModel> allConfigList = new List<SchDtlWithResultModel>();//所有方案
|
|
|
|
+ private List<SchDtlWithResultModel> conditionConfig = new List<SchDtlWithResultModel>();//符合条件的方案
|
|
|
|
+ public StatisticsViewModel(IDialogService dialog, IMenuService menuService, IOptionConfigService optionConfigService, IBasicPlcTestSchemeService basicPlcTestSchemeService, IBasicPlcTestSchemeDtlService basicPlcTestSchemeDtlService, IBizTestRecordDtlService iBizTestRecordDtlService, IMapper mapper, ILogger logger)
|
|
{
|
|
{
|
|
|
|
+ _dialog = dialog;
|
|
|
|
+ _optionConfigService = optionConfigService;
|
|
|
|
+ _basicPlcTestSchemeService = basicPlcTestSchemeService;
|
|
|
|
+ _basicPlcTestSchemeDtlService = basicPlcTestSchemeDtlService;
|
|
|
|
+ _iBizTestRecordDtlService = iBizTestRecordDtlService;
|
|
|
|
+ _logger = logger;
|
|
|
|
+ _mapper = mapper;
|
|
PieSeriesCollectionDone = new SeriesCollection();
|
|
PieSeriesCollectionDone = new SeriesCollection();
|
|
PieSeriesCollectionFail= new SeriesCollection();
|
|
PieSeriesCollectionFail= new SeriesCollection();
|
|
PieSeriesCollectionEveryday = new SeriesCollection();
|
|
PieSeriesCollectionEveryday = new SeriesCollection();
|
|
PieSeriesCollectionPLC = new SeriesCollection();
|
|
PieSeriesCollectionPLC = new SeriesCollection();
|
|
|
|
+ OnLoadCommand = new DelegateCommand(OnLoad);
|
|
GetPieSeriesDone();
|
|
GetPieSeriesDone();
|
|
GetPieSeriesPLC();
|
|
GetPieSeriesPLC();
|
|
GetPieSeriesEveryDay();
|
|
GetPieSeriesEveryDay();
|
|
GetPieSeriesFail();
|
|
GetPieSeriesFail();
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ private void OnLoad()
|
|
|
|
+ {
|
|
|
|
+ GetContent();
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 获取解决方案
|
|
|
|
+ /// </summary>
|
|
|
|
+ private void GetContent()
|
|
|
|
+ {
|
|
|
|
+ //所有测试方案
|
|
|
|
+ var schlist = _basicPlcTestSchemeService.QueryList();
|
|
|
|
+ var configList = _mapper.Map<List<bas_plc_test_scheme>, List<BasicPlcTestSchemeDto>>(schlist);
|
|
|
|
+ //清空集合
|
|
|
|
+ BaseConfigList.Clear();
|
|
|
|
+ allConfigList.Clear();
|
|
|
|
+ conditionConfig.Clear();
|
|
|
|
+ //查找测试项名称
|
|
|
|
+ foreach (var sch in configList)
|
|
|
|
+ {
|
|
|
|
+ long schId = sch.SchemeId;
|
|
|
|
+ //在解决方案详细表中查找所有的测试项
|
|
|
|
+ var items = _basicPlcTestSchemeDtlService.FindAllBySchId(schId);
|
|
|
|
+ foreach (var item in items)
|
|
|
|
+ {
|
|
|
|
+ //上面是测试方案明细
|
|
|
|
+ SchDtlWithResultModel basicPlcTestSchemeDto = new SchDtlWithResultModel();
|
|
|
|
+ basicPlcTestSchemeDto.SchemeId = item.scheme_dtl_id;
|
|
|
|
+ basicPlcTestSchemeDto.SchemeName = sch.SchemeName;
|
|
|
|
+ basicPlcTestSchemeDto.DeviceName = sch.DeviceName;
|
|
|
|
+ switch (item.item_type)
|
|
|
|
+ {
|
|
|
|
+ case 0:
|
|
|
|
+ basicPlcTestSchemeDto.ItemType = "前置项";
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ basicPlcTestSchemeDto.ItemType = "PLC点位测试项";
|
|
|
|
+ break;
|
|
|
|
+ case 2:
|
|
|
|
+ basicPlcTestSchemeDto.ItemType = "Robot动作测试";
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ basicPlcTestSchemeDto.ItemName = item.item_name;
|
|
|
|
+ basicPlcTestSchemeDto.CreateBy = sch.CreateBy;
|
|
|
|
+ basicPlcTestSchemeDto.CreateTime = sch.CreateTime;
|
|
|
|
+ //这里是测试项 结果和 测试记录明细状态
|
|
|
|
+ var recordDetail = _iBizTestRecordDtlService.FindRecordDetailBySchDtlID(item.scheme_dtl_id);
|
|
|
|
+ if (recordDetail != null)
|
|
|
|
+ {
|
|
|
|
+ basicPlcTestSchemeDto.StartTestTime = recordDetail.start_test_time.Value;
|
|
|
|
+ basicPlcTestSchemeDto.FinishTestTime = recordDetail.finish_test_time.Value;
|
|
|
|
+ basicPlcTestSchemeDto.TestMode = recordDetail.test_mode;
|
|
|
|
+ switch (recordDetail.test_result)
|
|
|
|
+ {
|
|
|
|
+ case 0:
|
|
|
|
+ basicPlcTestSchemeDto.TestResult = "不通过";
|
|
|
|
+ break;
|
|
|
|
+ case 1:
|
|
|
|
+ basicPlcTestSchemeDto.TestResult = "通过";
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ switch (recordDetail.status)
|
|
|
|
+ {
|
|
|
|
+ case 0:
|
|
|
|
+ basicPlcTestSchemeDto.TestStatus = "未测试";
|
|
|
|
+ break;
|
|
|
|
+ case 99:
|
|
|
|
+ basicPlcTestSchemeDto.TestStatus = "已测试";
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ allConfigList.Add(basicPlcTestSchemeDto);
|
|
|
|
+ conditionConfig.Add(basicPlcTestSchemeDto);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ //默认显示的第一页
|
|
|
|
+ Getpage();
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 获取页面
|
|
|
|
+ /// </summary>
|
|
|
|
+ private void Getpage()
|
|
|
|
+ {
|
|
|
|
+ CurrentPage = 1;
|
|
|
|
+ TotalCount = conditionConfig.Count;
|
|
|
|
+ CurrentPageChanged();
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 页面变化
|
|
|
|
+ /// </summary>
|
|
|
|
+ private void CurrentPageChanged()
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ BaseConfigList.Clear();
|
|
|
|
+
|
|
|
|
+ foreach (var i in conditionConfig.Skip((CurrentPage - 1) * CountPerPage).Take(CountPerPage))
|
|
|
|
+ {
|
|
|
|
+ BaseConfigList.Add(i);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
private void GetPieSeriesDone()
|
|
private void GetPieSeriesDone()
|
|
{
|
|
{
|
|
ChartValues<int> chartvalue = new ChartValues<int>();
|
|
ChartValues<int> chartvalue = new ChartValues<int>();
|
|
@@ -99,6 +230,10 @@ namespace BlankApp1.ViewModels
|
|
PieSeriesCollectionEveryday.Add(series2);
|
|
PieSeriesCollectionEveryday.Add(series2);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ #region 数据绑定
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 图标数据
|
|
/// 图标数据
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -129,5 +264,43 @@ namespace BlankApp1.ViewModels
|
|
get { return pieSeriesCollectionFail; }
|
|
get { return pieSeriesCollectionFail; }
|
|
set { pieSeriesCollectionFail = value; RaisePropertyChanged(); }
|
|
set { pieSeriesCollectionFail = value; RaisePropertyChanged(); }
|
|
}
|
|
}
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 总条数
|
|
|
|
+ /// </summary>
|
|
|
|
+ private int totalCount;
|
|
|
|
+ public int TotalCount
|
|
|
|
+ {
|
|
|
|
+ get { return totalCount; }
|
|
|
|
+ set { totalCount = value; RaisePropertyChanged(); CurrentPageChanged(); }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 每页数量
|
|
|
|
+ /// </summary>
|
|
|
|
+ private int countPerPage = 1;
|
|
|
|
+ public int CountPerPage
|
|
|
|
+ {
|
|
|
|
+ get { return countPerPage; }
|
|
|
|
+ set { countPerPage = value; RaisePropertyChanged(); CurrentPageChanged(); }
|
|
|
|
+ }
|
|
|
|
+ /// <summary>
|
|
|
|
+ /// 单前页
|
|
|
|
+ /// </summary>
|
|
|
|
+ private int currentPage = 1;
|
|
|
|
+ public int CurrentPage
|
|
|
|
+ {
|
|
|
|
+ get { return currentPage; }
|
|
|
|
+ set { currentPage = value; RaisePropertyChanged(); CurrentPageChanged(); }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private ObservableCollection<SchDtlWithResultModel> baseConfigList = new ObservableCollection<SchDtlWithResultModel>();
|
|
|
|
+ public ObservableCollection<SchDtlWithResultModel> BaseConfigList
|
|
|
|
+ {
|
|
|
|
+ get { return baseConfigList; }
|
|
|
|
+ set { SetProperty(ref baseConfigList, value); }
|
|
|
|
+ }
|
|
|
|
+ #endregion
|
|
|
|
+ #region 命令绑定
|
|
|
|
+ public DelegateCommand OnLoadCommand { set; get; }
|
|
|
|
+ #endregion
|
|
}
|
|
}
|
|
}
|
|
}
|