首次提交:添加src文件夹代码
This commit is contained in:
95
Cowain.Bake.UI/DataQuery/ViewModels/BatteryInfoViewModel.cs
Normal file
95
Cowain.Bake.UI/DataQuery/ViewModels/BatteryInfoViewModel.cs
Normal file
@@ -0,0 +1,95 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Model;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Unity;
|
||||
using Prism.Commands;
|
||||
using System.Windows;
|
||||
using HandyControl.Controls;
|
||||
using Cowain.Bake.Model.Entity;
|
||||
using Cowain.Bake.UI.CsvMap;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
public class BatteryInfoViewModel : ViewModelBase
|
||||
{
|
||||
private DateTime _startTime = DateTime.Now.AddDays(-1);
|
||||
public DateTime StartDatetime
|
||||
{
|
||||
get { return _startTime; }
|
||||
set { SetProperty(ref _startTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
private DateTime _endTime = DateTime.Now.AddHours(1);
|
||||
public DateTime EndDatetime
|
||||
{
|
||||
get { return _endTime; }
|
||||
set { SetProperty(ref _endTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
|
||||
public BatteryInfoViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
this.PageTitle = "电池追踪";
|
||||
}
|
||||
|
||||
public List<BatteryInfoEntity> batteryList = new List<BatteryInfoEntity>();
|
||||
|
||||
private ObservableCollection<TBatteryInfo> cellList;
|
||||
public ObservableCollection<TBatteryInfo> CellList
|
||||
{
|
||||
get => cellList ?? (cellList = new ObservableCollection<TBatteryInfo>());
|
||||
set { SetProperty(ref cellList, value); }
|
||||
}
|
||||
|
||||
public DelegateCommand<object> ExportCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (batteryList.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
Common.Core.CSVHelper.WriteMap<BatteryInfoEntity, BatteryInfoDetailMap>(batteryList);
|
||||
//Common.Core.CSVHelper.WriteDataTableToCsv(batteryList, new List<string> { "Id","BatteryCode", "PalletCode", "BatteryStatus",
|
||||
// "PositionX", "PositionY", "LoadingBegingTime","ScanTime","LoadingOverTime", "BakingPosition", "BakingBeginTime", "BakingOverTime","UnLoadingBegingTime", "UnLoadingOverTime", "WaterValue"}, new List<string> { "序号", "电芯条码", "托盘条码", "电芯状态", "行号", "列号", "上料开始时间","扫码时间", "上料结束时间", "所属烤箱", "烘烤开始时间",
|
||||
// "烘烤结束时间", "下料开始时间", "下料结束时间", "不含量结果"});
|
||||
});
|
||||
public DelegateCommand<object> QueryCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
CellList.Clear();
|
||||
|
||||
if ((EndDatetime - StartDatetime).TotalDays > 5)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Warning("查询时间差在 5 天以内!");
|
||||
return;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(Code))
|
||||
{
|
||||
batteryList = _unityContainer.Resolve<BatteryInfoService>().Query(StartDatetime, EndDatetime);
|
||||
}
|
||||
else
|
||||
{
|
||||
batteryList = _unityContainer.Resolve<BatteryInfoService>().Query(Code);
|
||||
}
|
||||
|
||||
if (0 != batteryList.Count)
|
||||
{
|
||||
batteryList.ForEach(item => CellList.Add(item));
|
||||
Growl.Success("查询完成!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Success("没有数据!");
|
||||
}
|
||||
});
|
||||
public DelegateCommand<object> DeleteCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
365
Cowain.Bake.UI/DataQuery/ViewModels/CurveViewModel.cs
Normal file
365
Cowain.Bake.UI/DataQuery/ViewModels/CurveViewModel.cs
Normal file
@@ -0,0 +1,365 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Common.Core;
|
||||
using Cowain.Bake.UI.CommonView.Views;
|
||||
using LiveCharts;
|
||||
using LiveCharts.Wpf;
|
||||
using Prism.Commands;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Media;
|
||||
using Unity;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
public enum EChartType
|
||||
{
|
||||
Temp = 1,
|
||||
Vacuum = 2,
|
||||
PID = 3
|
||||
}
|
||||
public class DemoDataModel
|
||||
{
|
||||
public int Index { get; set; }
|
||||
|
||||
public string Name { get; set; } = string.Empty;
|
||||
|
||||
public bool IsSelected { get; set; }
|
||||
}
|
||||
public class CurveViewModel : ViewModelBase
|
||||
{
|
||||
//private DataTable _dtChartTemp;
|
||||
private DataTable _dtTemp;
|
||||
|
||||
private ObservableCollection<DemoDataModel> _dataList;
|
||||
public ObservableCollection<DemoDataModel> DataList
|
||||
{
|
||||
get => _dataList;
|
||||
set => SetProperty(ref _dataList, value);
|
||||
}
|
||||
|
||||
public DataTable DtTemp
|
||||
{
|
||||
get => _dtTemp;
|
||||
set => SetProperty(ref _dtTemp, value);
|
||||
}
|
||||
|
||||
private DataTable _dtPID;
|
||||
public DataTable DtPID
|
||||
{
|
||||
get => _dtPID;
|
||||
set => SetProperty(ref _dtPID, value);
|
||||
}
|
||||
public ChartValues<string> TimeLine { get; set; }
|
||||
public string XName { get; set; }
|
||||
public string YName { get; set; }
|
||||
public SeriesCollection SeriesCollection { get; set; }
|
||||
private int _stepId = 1;
|
||||
public int StepId
|
||||
{
|
||||
get => _stepId;
|
||||
set => SetProperty(ref _stepId, value);
|
||||
}
|
||||
|
||||
private string _selectOneItem;
|
||||
public string SelectOneItem
|
||||
{
|
||||
get => _selectOneItem;
|
||||
set => SetProperty(ref _selectOneItem, value);
|
||||
}
|
||||
|
||||
private DateTime _curveStartDateTime = DateTime.Now.AddHours(-23);
|
||||
public DateTime CurveStartDateTime
|
||||
{
|
||||
get { return _curveStartDateTime; }
|
||||
set { SetProperty(ref _curveStartDateTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
private DateTime _curveEndDateTime = DateTime.Now;
|
||||
public DateTime CurveEndDateTime
|
||||
{
|
||||
get { return _curveEndDateTime; }
|
||||
set { SetProperty(ref _curveEndDateTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
|
||||
|
||||
public CurveViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
DtTemp = null;
|
||||
DtPID = null;;
|
||||
DataList = new ObservableCollection<DemoDataModel>();
|
||||
|
||||
SetCheckCombox();
|
||||
TimeLine = new ChartValues<string>();
|
||||
SeriesCollection = new SeriesCollection();
|
||||
this.PageTitle = "曲线图表";
|
||||
}
|
||||
|
||||
private void SetCheckCombox()
|
||||
{
|
||||
for (int i = 1; i <= 8; i++)
|
||||
{
|
||||
DataList.Add(new DemoDataModel()
|
||||
{
|
||||
Index = i,
|
||||
Name = "温度" + i.ToString(),
|
||||
IsSelected = true,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
void GetTempChartData(DataTable table)
|
||||
{
|
||||
for (int i = 2; i < table.Columns.Count; i++)
|
||||
{
|
||||
var columnName = table.Columns[i].ColumnName;
|
||||
|
||||
var model = DataList.Where(x => x.IsSelected && x.Name == columnName).FirstOrDefault();
|
||||
if (null == model)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
ChartValues<double> chartValues = new ChartValues<double>();
|
||||
table.AsEnumerable().Select(item => item.Field<double>(columnName)).ToList().ForEach(item => chartValues.Add(item));
|
||||
|
||||
var lineSeries = new LineSeries
|
||||
{
|
||||
Title = columnName,
|
||||
Values = chartValues,
|
||||
StrokeThickness = 1,
|
||||
LineSmoothness = 0,
|
||||
Fill = Brushes.Transparent,
|
||||
PointGeometry = null // 不画圆点
|
||||
};
|
||||
|
||||
SeriesCollection.Add(lineSeries);
|
||||
}
|
||||
}
|
||||
|
||||
void GetVacuumChartData(DataTable table)
|
||||
{
|
||||
var columnName = table.Columns[2].ColumnName;
|
||||
ChartValues<double> chartValues = new ChartValues<double>();
|
||||
table.AsEnumerable().Select(item => item.Field<float>(columnName)).ToList().ForEach(item => chartValues.Add(Math.Round(item,2)));
|
||||
|
||||
var lineSeries = new LineSeries
|
||||
{
|
||||
Title = columnName,
|
||||
Values = chartValues,
|
||||
StrokeThickness = 1,
|
||||
LineSmoothness = 0,
|
||||
Fill = Brushes.Transparent,
|
||||
PointGeometry = null // 不画圆点
|
||||
};
|
||||
SeriesCollection.Add(lineSeries);
|
||||
}
|
||||
|
||||
void GetPIDChartData(DataTable table)
|
||||
{
|
||||
for (int i = 2; i < table.Columns.Count; i++)
|
||||
{
|
||||
var columnName = table.Columns[i].ColumnName;
|
||||
ChartValues<double> chartValues = new ChartValues<double>();
|
||||
table.AsEnumerable().Select(item => item.Field<double>(columnName)).ToList().ForEach(item => chartValues.Add(item));
|
||||
|
||||
var lineSeries = new LineSeries
|
||||
{
|
||||
Title = columnName,
|
||||
Values = chartValues,
|
||||
StrokeThickness = 1,
|
||||
LineSmoothness = 0,
|
||||
Fill = Brushes.Transparent,
|
||||
PointGeometry = null // 不画圆点
|
||||
};
|
||||
|
||||
SeriesCollection.Add(lineSeries);
|
||||
}
|
||||
}
|
||||
|
||||
private void UpdateSeries(DataTable table, EChartType chartType)
|
||||
{
|
||||
if (null == table
|
||||
|| 0 == table.Rows.Count)
|
||||
{
|
||||
HandyControl.Controls.Growl.Warning("请点【查询】数据,或查询数据为空!");
|
||||
return;
|
||||
}
|
||||
StepId = table.Rows.Count / 10;
|
||||
System.Threading.SynchronizationContext.SetSynchronizationContext(new
|
||||
System.Windows.Threading.DispatcherSynchronizationContext(System.Windows.Application.Current.Dispatcher));
|
||||
System.Threading.SynchronizationContext.Current.Post(p1 =>
|
||||
{
|
||||
TimeLine.Clear();
|
||||
SeriesCollection.Clear();
|
||||
|
||||
if (chartType == EChartType.Vacuum)
|
||||
{
|
||||
GetVacuumChartData(table);
|
||||
}
|
||||
else if (chartType == EChartType.Temp)
|
||||
{
|
||||
GetTempChartData(table);
|
||||
}
|
||||
else
|
||||
{
|
||||
GetPIDChartData(table);
|
||||
}
|
||||
|
||||
SetXAxis(table);
|
||||
}, null);
|
||||
}
|
||||
|
||||
private void SetXAxis(DataTable table)
|
||||
{
|
||||
XName = table.Columns[0].ColumnName;
|
||||
table.AsEnumerable().Select(item => item.Field<string>(XName)).ToList().ForEach(item => TimeLine.Add(item));
|
||||
}
|
||||
|
||||
public DelegateCommand QueryTempCommand { get => new DelegateCommand(async () => await QueryTemp()); }
|
||||
|
||||
public async Task QueryTemp()
|
||||
{
|
||||
DtTemp = null;
|
||||
if (!IsAccord("温度曲线(℃)"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
ProgressBarView dlg = new ProgressBarView();
|
||||
dlg.Show();
|
||||
string sql = $@"CALL ProcGetTemperatureAndPressureData('{CurveStartDateTime.ToString("yyyy-MM-dd HH:mm:ss")}'
|
||||
,'{CurveEndDateTime.ToString("yyyy-MM-dd HH:mm:ss")}','{Code}')";
|
||||
await Task.Run(new Action(() =>
|
||||
{
|
||||
DtTemp = _unityContainer.Resolve<StoveSctualPatrolService>().GetDataTable(sql);
|
||||
}));
|
||||
dlg.Close();
|
||||
Tip(DtTemp);
|
||||
}
|
||||
|
||||
void Tip(DataTable dt)
|
||||
{
|
||||
if (0 == dt.Rows.Count)
|
||||
{
|
||||
HandyControl.Controls.Growl.Warning("查询数据为空!");
|
||||
}
|
||||
else
|
||||
{
|
||||
HandyControl.Controls.Growl.Success("查询数据成功!");
|
||||
}
|
||||
}
|
||||
public DelegateCommand ChartTempCommand => new DelegateCommand(async() =>
|
||||
{
|
||||
await WaitChartTemp(DtTemp, EChartType.Temp);
|
||||
});
|
||||
|
||||
|
||||
public async Task AsyncChart(DataTable table, EChartType chartType)
|
||||
{
|
||||
Task queryTask = Task.Run(() => UpdateSeries(table, chartType));
|
||||
var timeouttask = Task.Delay(30 * 1000);
|
||||
|
||||
var completedTask = await Task.WhenAny(queryTask, timeouttask);
|
||||
if (completedTask == timeouttask)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Warning("查询超时!");
|
||||
}
|
||||
}
|
||||
|
||||
public DelegateCommand ChartVacuumCommand => new DelegateCommand(async() =>
|
||||
{
|
||||
if (!IsAccord("真空压力"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
await WaitChartTemp(DtTemp, EChartType.Vacuum);
|
||||
});
|
||||
|
||||
//public DelegateCommand QueryPIDCommand { get => new DelegateCommand(QueryPID); }
|
||||
public DelegateCommand QueryPIDCommand { get => new DelegateCommand(async() => await QueryPID()); }
|
||||
public async Task QueryPID()
|
||||
{
|
||||
if (!IsAccord("PID"))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
ProgressBarView dlg = new ProgressBarView();
|
||||
dlg.Show();
|
||||
string sql = $@"CALL ProcGetPidData ('{CurveStartDateTime.ToString("yyyy-MM-dd HH:mm:ss")}'
|
||||
,'{CurveEndDateTime.ToString("yyyy-MM-dd HH:mm:ss")}','{Code}')";
|
||||
|
||||
await Task.Run(new Action(() =>
|
||||
{
|
||||
DtPID = _unityContainer.Resolve<StoveSctualPatrolService>().GetDataTable(sql);
|
||||
}));
|
||||
dlg.Close();
|
||||
Tip(DtPID);
|
||||
}
|
||||
|
||||
public DelegateCommand ChartPIDCommand => new DelegateCommand(async() =>
|
||||
{
|
||||
await WaitChartTemp(DtPID, EChartType.PID);
|
||||
});
|
||||
|
||||
public async Task WaitChartTemp(DataTable table, EChartType eChart)
|
||||
{
|
||||
ProgressBarView dlg = new ProgressBarView();
|
||||
dlg.Show();
|
||||
await AsyncChart(table, eChart);
|
||||
dlg.Close();
|
||||
}
|
||||
|
||||
public DelegateCommand<object> ExportTempCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (null == DtTemp)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Error("温度数据为空!", "操作提示");
|
||||
return;
|
||||
}
|
||||
|
||||
CSVHelper.WriteDataTableToCsv(DtTemp);
|
||||
});
|
||||
|
||||
public DelegateCommand<object> ExportPIDCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (null == DtPID)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Error("温度数据为空!", "操作提示");
|
||||
return;
|
||||
}
|
||||
|
||||
CSVHelper.WriteDataTableToCsv(DtPID);
|
||||
});
|
||||
|
||||
bool IsAccord(string headName)
|
||||
{
|
||||
YName = headName;
|
||||
if (string.IsNullOrWhiteSpace(Code))
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Error("请输入条码", "操作提示");
|
||||
return false;
|
||||
}
|
||||
|
||||
var p = _unityContainer.Resolve<PalletInfoService>().GetPalletInfo(Code);
|
||||
if (p == null)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Error("没有该托盘码", "操作提示");
|
||||
return false;
|
||||
}
|
||||
|
||||
TimeSpan timeSpan = CurveEndDateTime - CurveStartDateTime;
|
||||
if (timeSpan.TotalHours > 24)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Error("请选择时间区间小于24小时的数据", "操作提示");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
65
Cowain.Bake.UI/DataQuery/ViewModels/DummyInfoViewModel.cs
Normal file
65
Cowain.Bake.UI/DataQuery/ViewModels/DummyInfoViewModel.cs
Normal file
@@ -0,0 +1,65 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Model.Entity;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Model;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using Unity;
|
||||
using Prism.Commands;
|
||||
using HandyControl.Controls;
|
||||
using Newtonsoft.Json;
|
||||
using Cowain.Bake.Model.Models;
|
||||
using System.Linq;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
public class DummyInfoViewModel:ViewModelBase
|
||||
{
|
||||
public DummyInfoViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
this.PageTitle = "电池追踪";
|
||||
|
||||
}
|
||||
|
||||
private ObservableCollection<BatteryInfoEntity> cellList;
|
||||
public ObservableCollection<BatteryInfoEntity> CellList
|
||||
{
|
||||
get => cellList ?? (cellList = new ObservableCollection<BatteryInfoEntity>());
|
||||
set { SetProperty(ref cellList, value); }
|
||||
}
|
||||
|
||||
public DelegateCommand<object> DummyQueryCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
CellList.Clear();
|
||||
if (string.IsNullOrWhiteSpace(Code))
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Error($@"没有数据!请输入正确的条码", "操作提示");
|
||||
return;
|
||||
}
|
||||
|
||||
BatteryInfoEntity batteryInfo = _unityContainer.Resolve<BatteryInfoService>().QueryBatteryWaterValue(Code);
|
||||
if(null == batteryInfo)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Error($@"没有数据到所属托盘或没有此电芯!", "警告");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!string.IsNullOrEmpty(batteryInfo.WaterValue))
|
||||
{
|
||||
List<WaterModel> waterModelList = JsonConvert.DeserializeObject<List<WaterModel>>(batteryInfo.WaterValue);
|
||||
WaterModel waterModel = waterModelList.OrderByDescending(w=>w.Id).FirstOrDefault();
|
||||
batteryInfo.SeptumValue = waterModel.SeptumWaterValue;
|
||||
batteryInfo.AnodeValue = waterModel.AnodeWaterValue;
|
||||
batteryInfo.CathodeValue = waterModel.CathodeWaterValue;
|
||||
}
|
||||
|
||||
CellList.Add(batteryInfo);
|
||||
Growl.Success("查询完成!");
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
192
Cowain.Bake.UI/DataQuery/ViewModels/GetMesLogViewModel.cs
Normal file
192
Cowain.Bake.UI/DataQuery/ViewModels/GetMesLogViewModel.cs
Normal file
@@ -0,0 +1,192 @@
|
||||
using Cowain.Bake.Model.Entity;
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Common.Enums;
|
||||
using Cowain.Bake.Common.Interface;
|
||||
using Cowain.Bake.Model;
|
||||
using HandyControl.Controls;
|
||||
using Microsoft.Win32;
|
||||
using Prism.Commands;
|
||||
using Prism.Mvvm;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Data;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Unity;
|
||||
using Cowain.Bake.Common.CsvMap;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
|
||||
public class GetMesLogViewModel : ViewModelBase, INavigationAware
|
||||
{
|
||||
TimeSpan intervalDateTime;
|
||||
private bool isChecked;
|
||||
public bool IsChecked
|
||||
{
|
||||
get => isChecked;
|
||||
set => SetProperty(ref isChecked, value);
|
||||
}
|
||||
|
||||
private string batteryCode;
|
||||
public string BatteryCode
|
||||
{
|
||||
get => batteryCode;
|
||||
set => SetProperty(ref batteryCode, value);
|
||||
}
|
||||
|
||||
private string mesClass;
|
||||
public string MesClass
|
||||
{
|
||||
get => mesClass;
|
||||
set => SetProperty(ref mesClass, value);
|
||||
}
|
||||
private ObservableCollection<MesDataEntity> mesDataList;
|
||||
public ObservableCollection<MesDataEntity> MesDataList
|
||||
{
|
||||
get => mesDataList;
|
||||
set => SetProperty(ref mesDataList, value);
|
||||
}
|
||||
private List<string> mesClassList;
|
||||
public List<string> MesClassList
|
||||
{
|
||||
get => mesClassList;
|
||||
set => SetProperty(ref mesClassList, value);
|
||||
}
|
||||
|
||||
private DateTime _startTime = DateTime.Now.AddDays(-2);
|
||||
public DateTime StartDatetime
|
||||
{
|
||||
get { return _startTime; }
|
||||
set { SetProperty(ref _startTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
private DateTime _endTime = DateTime.Now;
|
||||
public DateTime EndDatetime
|
||||
{
|
||||
get { return _endTime; }
|
||||
set { SetProperty(ref _endTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
public GetMesLogViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
BatteryCode = "";
|
||||
_unityContainer = unityContainer;
|
||||
SetPalletStatusCombox();
|
||||
MesDataList = new ObservableCollection<MesDataEntity>();
|
||||
}
|
||||
|
||||
private void SetPalletStatusCombox()
|
||||
{
|
||||
mesClassList = new List<string>();
|
||||
foreach (EMesLogClass eMesLogClass in System.Enum.GetValues(typeof(EMesLogClass)))
|
||||
{
|
||||
mesClassList.Add(eMesLogClass.GetDescription());
|
||||
}
|
||||
|
||||
MesClass = EMesLogClass.EnterStation.GetDescription();
|
||||
}
|
||||
|
||||
public DelegateCommand AutoUploadCommand => new DelegateCommand(() =>
|
||||
{
|
||||
foreach (var item in MesDataList)
|
||||
{
|
||||
if (item.IsCheck)
|
||||
{
|
||||
_unityContainer.Resolve<MesDataService>().ModifySendFlag(item.Id, (sbyte)EMesUpLoadStatus.Wait);
|
||||
}
|
||||
}
|
||||
QueryMesStation();
|
||||
});
|
||||
|
||||
bool QueryMesStation()
|
||||
{
|
||||
MesDataList.Clear();
|
||||
List<MesDataEntity> dataList = null;
|
||||
if (!ExecuttableOrNot())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (IsChecked)
|
||||
{
|
||||
if (string.IsNullOrEmpty(BatteryCode))
|
||||
{
|
||||
Growl.Warning("电芯条码为空!");
|
||||
return false;
|
||||
}
|
||||
dataList = _unityContainer.Resolve<MesDataService>().GetMesDataCellState(BatteryCode, StartDatetime, EndDatetime);
|
||||
dataList.AddRange(_unityContainer.Resolve<MesDataService>().GetMesDataBakingOutput(BatteryCode, StartDatetime, EndDatetime));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.IsNullOrEmpty(MesClass))
|
||||
{
|
||||
Growl.Warning("Mes信息类别为空!");
|
||||
return false;
|
||||
}
|
||||
|
||||
var Cmd = EnumHelper.GetValueByDescription<EMesLogClass>(MesClass);
|
||||
dataList = _unityContainer.Resolve<MesDataService>().GetMesDataList(Cmd, StartDatetime, EndDatetime);
|
||||
}
|
||||
|
||||
dataList.ForEach(item => MesDataList.Add(item));
|
||||
return true;
|
||||
}
|
||||
|
||||
public DelegateCommand<object> QueryCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (!QueryMesStation())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (MesDataList.Count == 0)
|
||||
{
|
||||
Growl.Warning("没有数据!");
|
||||
return;
|
||||
}
|
||||
});
|
||||
public DelegateCommand<object> GetMesCvsCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (MesDataList == null
|
||||
|| MesDataList.Count == 0)
|
||||
{
|
||||
Growl.Warning("没有数据!");
|
||||
return;
|
||||
}
|
||||
|
||||
Common.Core.CSVHelper.WriteMap<MesDataEntity, MesDataMap>(MesDataList);
|
||||
//Common.Core.CSVHelper.WriteDataTableToCsv(MesDataList, new List<string>() {"CreateTime", "SendTime", "RecvTime", "Content", "RecvContent", "BatteryCode" },
|
||||
// new List<string>() {"创建时间", "发送时间", "接收时间", "发送信息", "接收信息" , "电芯条码"});
|
||||
});
|
||||
|
||||
void INavigationAware.OnNavigatedTo(NavigationContext navigationContext)
|
||||
{
|
||||
// 导航到当前页面时的处理逻辑,先执行构造方法,再执行本方法
|
||||
}
|
||||
|
||||
bool INavigationAware.IsNavigationTarget(NavigationContext navigationContext)
|
||||
{
|
||||
return false; //false:表示每次导航都创建新实例,不重用旧实例; true:用旧实例,不会执行构造方法
|
||||
}
|
||||
|
||||
void INavigationAware.OnNavigatedFrom(NavigationContext navigationContext)
|
||||
{
|
||||
//相当于析构方法,退出时(切换时)再执行。
|
||||
// 在这里添加释放旧视图实例资源的代码
|
||||
}
|
||||
|
||||
private bool ExecuttableOrNot()
|
||||
{
|
||||
intervalDateTime = EndDatetime - StartDatetime;
|
||||
if (intervalDateTime.TotalDays > 10)
|
||||
{
|
||||
Growl.Warning("请选择时间区间小于10天的数据!");
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
146
Cowain.Bake.UI/DataQuery/ViewModels/IncomingCellInfoViewModel.cs
Normal file
146
Cowain.Bake.UI/DataQuery/ViewModels/IncomingCellInfoViewModel.cs
Normal file
@@ -0,0 +1,146 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Model;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Unity;
|
||||
using Prism.Commands;
|
||||
using System.Windows;
|
||||
using HandyControl.Controls;
|
||||
using Cowain.Bake.UI.CsvMap;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
public class IncomingCellInfoViewModel : ViewModelBase
|
||||
{
|
||||
private DateTime _startTime = DateTime.Now.AddDays(-1);
|
||||
public DateTime StartDatetime
|
||||
{
|
||||
get { return _startTime; }
|
||||
set { SetProperty(ref _startTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
private DateTime _endTime = DateTime.Now.AddHours(1);
|
||||
public DateTime EndDatetime
|
||||
{
|
||||
get { return _endTime; }
|
||||
set { SetProperty(ref _endTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
|
||||
List<TBatteryInfo> batteryList = new List<TBatteryInfo>();
|
||||
|
||||
public IncomingCellInfoViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
this.PageTitle = "来料查询";
|
||||
|
||||
}
|
||||
|
||||
private ObservableCollection<TBatteryInfo> cellList;
|
||||
public ObservableCollection<TBatteryInfo> CellList
|
||||
{
|
||||
get => cellList ?? (cellList = new ObservableCollection<TBatteryInfo>());
|
||||
set { SetProperty(ref cellList, value); }
|
||||
}
|
||||
|
||||
public void AsyncRefreshTask()
|
||||
{
|
||||
Application.Current?.Dispatcher?.Invoke(new Action(() =>
|
||||
{
|
||||
Refresh();
|
||||
}));
|
||||
}
|
||||
|
||||
public async override void Refresh()
|
||||
{
|
||||
CellList.Clear();
|
||||
batteryList.Clear();
|
||||
|
||||
batteryList = await System.Threading.Tasks.Task.Run(() =>
|
||||
{
|
||||
var cellInfoService = _unityContainer.Resolve<BatteryInfoService>();
|
||||
//从数据库查询任务
|
||||
return cellInfoService.GetIncomingCell();
|
||||
});
|
||||
|
||||
batteryList.ForEach(x => CellList.Add(x));
|
||||
}
|
||||
|
||||
public DelegateCommand<object> DeleteCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
var result = HandyControl.Controls.MessageBox.Ask($@"确定删除?", "操作提示");
|
||||
if (result == System.Windows.MessageBoxResult.Cancel)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var t = x as TBatteryInfo;
|
||||
if (t != null)
|
||||
{
|
||||
int delCount = _unityContainer.Resolve<BatteryInfoService>().Delete(t);
|
||||
cellList.Remove(t);
|
||||
if (delCount > 0)
|
||||
{
|
||||
Growl.Success("删除成功!");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Fatal("删除失败!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Fatal("删除失败!");
|
||||
}
|
||||
});
|
||||
|
||||
public DelegateCommand<object> ExportCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (batteryList.Count == 0)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Show("没有数据!");
|
||||
return;
|
||||
}
|
||||
|
||||
Common.Core.CSVHelper.WriteMap<TBatteryInfo, BatteryInfoMap>(batteryList);
|
||||
});
|
||||
|
||||
public DelegateCommand<object> QueryCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
CellList.Clear();
|
||||
batteryList.Clear();
|
||||
if ((EndDatetime - StartDatetime).TotalDays > 5)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Warning("查询时间差在 5 天以内!");
|
||||
return;
|
||||
}
|
||||
|
||||
var cellService = _unityContainer.Resolve<BatteryInfoService>();
|
||||
|
||||
if (string.IsNullOrWhiteSpace(Code))
|
||||
{
|
||||
batteryList = cellService.QueryIncomingCell(StartDatetime, EndDatetime);
|
||||
}
|
||||
else
|
||||
{
|
||||
batteryList = cellService.QueryIncomingCellByCode(Code);
|
||||
|
||||
}
|
||||
if (0 != batteryList.Count)
|
||||
{
|
||||
batteryList.ForEach(item => CellList.Add(item));
|
||||
Growl.Success("查询完成!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Success("没有数据!");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
179
Cowain.Bake.UI/DataQuery/ViewModels/NGCellInfoViewModel.cs
Normal file
179
Cowain.Bake.UI/DataQuery/ViewModels/NGCellInfoViewModel.cs
Normal file
@@ -0,0 +1,179 @@
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Model;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Unity;
|
||||
using Prism.Commands;
|
||||
using System.Windows;
|
||||
using HandyControl.Controls;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using Newtonsoft.Json;
|
||||
using Cowain.Bake.Common.Core;
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Model.Entity;
|
||||
using Cowain.Bake.Common.CsvMap;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
public class NGCellInfoViewModel:ViewModelBase
|
||||
{
|
||||
private DateTime _startTime = DateTime.Now.AddDays(-1);
|
||||
public DateTime StartDatetime
|
||||
{
|
||||
get { return _startTime; }
|
||||
set { SetProperty(ref _startTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
private DateTime _endTime = DateTime.Now.AddHours(1);
|
||||
public DateTime EndDatetime
|
||||
{
|
||||
get { return _endTime; }
|
||||
set { SetProperty(ref _endTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
public NGCellInfoViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
this.PageTitle = "烘烤NG电芯查询";
|
||||
|
||||
}
|
||||
|
||||
private ObservableCollection<TBatteryNG> cellList;
|
||||
public ObservableCollection<TBatteryNG> CellList
|
||||
{
|
||||
get => cellList ?? (cellList = new ObservableCollection<TBatteryNG>());
|
||||
set { SetProperty(ref cellList, value); }
|
||||
}
|
||||
|
||||
public void AsyncRefreshTask()
|
||||
{
|
||||
Application.Current?.Dispatcher?.Invoke(new Action(() =>
|
||||
{
|
||||
Refresh();
|
||||
}));
|
||||
}
|
||||
|
||||
public async override void Refresh()
|
||||
{
|
||||
CellList.Clear();
|
||||
|
||||
var listCell = await System.Threading.Tasks.Task.Run(() =>
|
||||
{
|
||||
//从数据库查询任务
|
||||
return _unityContainer.Resolve<BatteryNGService>().GetAllNGCell();
|
||||
});
|
||||
|
||||
listCell = ExtractJson(listCell);
|
||||
listCell.ForEach(x => CellList.Add(x));
|
||||
}
|
||||
|
||||
public DelegateCommand<object> ExportCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (0 == CellList.Count)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Warning("没有数据,导出失败!");
|
||||
return;
|
||||
}
|
||||
|
||||
Common.Core.CSVHelper.WriteMap<TBatteryNG, FailBatteryMap>(CellList);
|
||||
//Common.Core.CSVHelper.WriteDataTableToCsv(CellList, new List<string> { "Id","BatteryCode", "PalletCode", "ChannelNo",
|
||||
// "Desc", "CreateTime"}, new List<string> { "序号", "电芯条码", "托盘条码", "报警通道", "报警描述","报警时间"});
|
||||
});
|
||||
|
||||
public DelegateCommand<object> QueryCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
CellList.Clear();
|
||||
|
||||
if ((EndDatetime - StartDatetime).TotalDays > 5)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Warning("查询时间差在 5 天以内!");
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
List<TBatteryNG> queryCell = _unityContainer.Resolve<BatteryNGService>().QueryNGCell(StartDatetime, EndDatetime, Code); //出可以直接在数据库中查询得到 SELECT `Desc`->>'$.Info.MOMMessage' cmd FROM TBatteryNG;
|
||||
queryCell = ExtractJson(queryCell);
|
||||
if (0 != queryCell.Count)
|
||||
{
|
||||
queryCell.ForEach(item => CellList.Add(item));
|
||||
Growl.Success("查询完成!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Success("没有数据!");
|
||||
}
|
||||
});
|
||||
|
||||
/// <summary>
|
||||
/// JSON 字符串截取
|
||||
/// </summary>
|
||||
/// <param name="failBatterys"></param>
|
||||
/// <returns></returns>
|
||||
List<TBatteryNG> ExtractJson(List<TBatteryNG> failBatterys)
|
||||
{
|
||||
try
|
||||
{
|
||||
foreach (var item in failBatterys)
|
||||
{
|
||||
if (!IsValidJson(item.Desc))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
JObject jsonObject = JObject.Parse(item.Desc);
|
||||
string keyValue = (string)jsonObject["Info"]["MOMMessage"]; //为什么加try,怕没有MOMMessage
|
||||
item.Desc = keyValue; // 更新为Key的值
|
||||
}
|
||||
}
|
||||
catch(Exception ex)
|
||||
{
|
||||
LogHelper.Instance.Info($"NG电芯,解析JSON失败:{ex.Message}");
|
||||
}
|
||||
|
||||
return failBatterys;
|
||||
}
|
||||
|
||||
bool IsValidJson(string input)
|
||||
{
|
||||
try
|
||||
{
|
||||
JsonConvert.DeserializeObject(input);
|
||||
//JsonDocument.Parse(input);
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
public DelegateCommand<object> DeleteCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
var result = HandyControl.Controls.MessageBox.Ask($@"确定删除?", "操作提示");
|
||||
if (result == System.Windows.MessageBoxResult.Cancel)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var t = x as TBatteryNG;
|
||||
if (t != null)
|
||||
{
|
||||
int delCount = _unityContainer.Resolve<BatteryNGService>().Delete(t);
|
||||
cellList.Remove(t);
|
||||
if (delCount > 0)
|
||||
{
|
||||
Growl.Success("删除成功!");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Fatal("删除失败!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Fatal("删除失败!");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
133
Cowain.Bake.UI/DataQuery/ViewModels/PalletInfoViewModel.cs
Normal file
133
Cowain.Bake.UI/DataQuery/ViewModels/PalletInfoViewModel.cs
Normal file
@@ -0,0 +1,133 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Model;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using Unity;
|
||||
using Prism.Commands;
|
||||
using System.Windows;
|
||||
using HandyControl.Controls;
|
||||
using Cowain.Bake.UI.CsvMap;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
public class PalletInfoViewModel:ViewModelBase
|
||||
{
|
||||
private DateTime _startTime = DateTime.Now.AddDays(-1);
|
||||
public DateTime StartDatetime
|
||||
{
|
||||
get { return _startTime; }
|
||||
set { SetProperty(ref _startTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
private DateTime _endTime = DateTime.Now.AddHours(1);
|
||||
public DateTime EndDatetime
|
||||
{
|
||||
get { return _endTime; }
|
||||
set { SetProperty(ref _endTime, DateTime.Parse(value.ToString("yyyy-MM-dd HH:mm:ss"))); }
|
||||
}
|
||||
|
||||
public PalletInfoViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
this.PageTitle = "托盘追踪";
|
||||
}
|
||||
|
||||
private ObservableCollection<TPalletInfo> palletList;
|
||||
public ObservableCollection<TPalletInfo> PalletList
|
||||
{
|
||||
get => palletList ?? (palletList = new ObservableCollection<TPalletInfo>());
|
||||
set { SetProperty(ref palletList, value); }
|
||||
}
|
||||
|
||||
List<TPalletInfo> SaveList = new List<TPalletInfo>();
|
||||
public void AsyncRefreshTask()
|
||||
{
|
||||
Application.Current?.Dispatcher?.Invoke(new Action(() =>
|
||||
{
|
||||
Refresh();
|
||||
}));
|
||||
}
|
||||
|
||||
public async override void Refresh()
|
||||
{
|
||||
PalletList.Clear();
|
||||
SaveList.Clear();
|
||||
SaveList = await System.Threading.Tasks.Task.Run(() =>
|
||||
{
|
||||
//从数据库查询任务
|
||||
return _unityContainer.Resolve<PalletInfoService>().GetAll();
|
||||
});
|
||||
|
||||
SaveList.ForEach(x => PalletList.Add(x));
|
||||
}
|
||||
|
||||
public DelegateCommand<object> ExportCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
if (SaveList.Count == 0)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Show("没有数据!");
|
||||
return;
|
||||
}
|
||||
|
||||
Common.Core.CSVHelper.WriteMap<TPalletInfo, PalletInfoMap>(SaveList);
|
||||
//Common.Core.CSVHelper.WriteDataTableToCsv(SaveList, new List<string> { "Id","PalletCode", "PalletStatus",
|
||||
// "BatteryQty", "BakingCount","BakingPosition", "ScanTime", "LoadingOverTime","InStoveTime","BakingBeginTime","BakingOverTime","OutStoveTime","JobNum"},
|
||||
// new List<string> { "序号", "托盘条码", "托盘状态", "电芯数量", "烘烤次数", "烘烤位置", "扫码时间", "上料完成时间", "入炉时间", "开始烘烤时间", "烘烤完成时间", "出炉时间", "工单号"});
|
||||
});
|
||||
|
||||
public DelegateCommand<object> QueryCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
PalletList.Clear();
|
||||
SaveList.Clear();
|
||||
if ((EndDatetime - StartDatetime).TotalDays > 30)
|
||||
{
|
||||
HandyControl.Controls.MessageBox.Warning("查询时间差在 30 天以内!");
|
||||
return;
|
||||
}
|
||||
|
||||
var palletInfoService = _unityContainer.Resolve<PalletInfoService>();
|
||||
SaveList = palletInfoService.Query(StartDatetime, EndDatetime, Code);
|
||||
|
||||
if (0 != SaveList.Count)
|
||||
{
|
||||
SaveList.ForEach(item => PalletList.Add(item));
|
||||
Growl.Success("查询完成!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Success("没有数据!");
|
||||
}
|
||||
});
|
||||
public DelegateCommand<object> DeleteCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
var result = HandyControl.Controls.MessageBox.Ask($@"确定删除?", "操作提示");
|
||||
if (result == System.Windows.MessageBoxResult.Cancel)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
var t = x as TPalletInfo;
|
||||
if (t != null)
|
||||
{
|
||||
int delCount = _unityContainer.Resolve<PalletInfoService>().Delete(t);
|
||||
palletList.Remove(t);
|
||||
if (delCount > 0)
|
||||
{
|
||||
Growl.Success("删除成功!");
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Fatal("删除失败!");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Fatal("删除失败!");
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Model.Entity;
|
||||
using Cowain.Bake.Common;
|
||||
using Cowain.Bake.Model;
|
||||
using Prism.Regions;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using Unity;
|
||||
using Prism.Commands;
|
||||
using System.Windows;
|
||||
using HandyControl.Controls;
|
||||
using Cowain.Bake.Common.Core;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.ViewModels
|
||||
{
|
||||
public class ProductionsInfoViewModel:ViewModelBase
|
||||
{
|
||||
public ProductionsInfoViewModel(IUnityContainer unityContainer, IRegionManager regionManager) : base(unityContainer, regionManager)
|
||||
{
|
||||
this.PageTitle = "产量查询";
|
||||
|
||||
}
|
||||
private ObservableCollection<OutputEntity> productionList;
|
||||
public ObservableCollection<OutputEntity> ProductionList
|
||||
{
|
||||
get => productionList ?? (productionList = new ObservableCollection<OutputEntity>());
|
||||
set { SetProperty(ref productionList, value); }
|
||||
}
|
||||
|
||||
void ExecuteQuery()
|
||||
{
|
||||
List<OutputEntity> query = null;
|
||||
var cellService = _unityContainer.Resolve<BatteryInfoService>();
|
||||
|
||||
if (5 < (EndDateTime - StartDateTime).Days)
|
||||
{
|
||||
Growl.Fatal("查询日期间隔不能大于5天!");
|
||||
return;
|
||||
}
|
||||
|
||||
var task = System.Threading.Tasks.Task.Factory.StartNew(() =>
|
||||
{
|
||||
query = cellService.GetProductionOutPut(StartDateTime, EndDateTime);
|
||||
});
|
||||
|
||||
task.Wait();
|
||||
|
||||
if (null == query)
|
||||
{
|
||||
Growl.Fatal("查询失败,请重新查询!");
|
||||
return;
|
||||
}
|
||||
|
||||
productionList.Clear();
|
||||
|
||||
if (0 != query.Count)
|
||||
{
|
||||
query.ForEach(item => ProductionList.Add(item));
|
||||
Growl.Success("查询完成!");
|
||||
}
|
||||
else
|
||||
{
|
||||
Growl.Success("没有数据!");
|
||||
}
|
||||
}
|
||||
|
||||
public DelegateCommand<object> QueryCommand => new DelegateCommand<object>((x) =>
|
||||
{
|
||||
ExecuteQuery();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
76
Cowain.Bake.UI/DataQuery/Views/BatteryInfoView.xaml
Normal file
76
Cowain.Bake.UI/DataQuery/Views/BatteryInfoView.xaml
Normal file
@@ -0,0 +1,76 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.BatteryInfoView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:Cowain.Bake.UI.DataQuery.Views"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:convertor="clr-namespace:Cowain.Bake.Common.Converter;assembly=Cowain.Bake.Common"
|
||||
xmlns:convertorBll="clr-namespace:Cowain.Bake.BLL.Converter;assembly=Cowain.Bake.BLL"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="450" d:DesignWidth="900">
|
||||
<UserControl.Resources>
|
||||
<convertor:BatteryStatusConvertor x:Key="cellStatusConvertor"></convertor:BatteryStatusConvertor>
|
||||
<convertorBll:CavityInfoIdConverter x:Key="CavityInfoIdConverter">
|
||||
</convertorBll:CavityInfoIdConverter>
|
||||
<Style TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="FontSize" Value="15"/>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="60"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="0,10,0,10" HorizontalAlignment="Center" Width="880" >
|
||||
|
||||
<TextBlock VerticalAlignment="Center" Margin="4">日期时间:</TextBlock>
|
||||
<hc:DateTimePicker x:Name="StartTime" Text="{Binding StartDatetime,Mode=TwoWay}" Margin="5,5,0,0" Width="163"/>
|
||||
<TextBlock VerticalAlignment="Center">-</TextBlock>
|
||||
<hc:DateTimePicker x:Name="EndTime" Text="{Binding EndDatetime,Mode=TwoWay}" Width="163"></hc:DateTimePicker>
|
||||
<TextBlock Text="电芯条码:" VerticalAlignment="Center" Margin="60,4,4,4"/>
|
||||
<hc:TextBox Width="201" Height="30" Margin="0,0,10,0" Text="{Binding Code,Mode=TwoWay}"></hc:TextBox>
|
||||
<!--<TextBlock Text="托盘条码:" VerticalAlignment="Center" Margin="4"/>
|
||||
<hc:TextBox Width="93" Height="30" Margin="0,0,10,0" Text="{Binding PalletCode,Mode=TwoWay}"></hc:TextBox>-->
|
||||
<Button Content="查询" Click="Button_Click_1" Style="{StaticResource ButtonSuccess}" Margin="4" Width="58" Command="{Binding QueryCommand}"/>
|
||||
<Button Content="导出" Style="{StaticResource ButtonPrimary}" Margin="4" Width="58" Command="{Binding ExportCommand}"/>
|
||||
</StackPanel>
|
||||
|
||||
<DataGrid hc:DataGridAttach.CanUnselectAllWithBlankArea="True" HeadersVisibility="All" x:Name="dgvStation" Grid.Row="1"
|
||||
CanUserSortColumns="False" SelectionMode="Single" Margin="4" IsReadOnly="True"
|
||||
RowHeaderWidth="0" AutoGenerateColumns="False" ItemsSource="{Binding CellList,UpdateSourceTrigger=PropertyChanged}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding BatteryCode}" Header="电芯条码"/>
|
||||
<DataGridTextColumn Width="90" CanUserResize="False" Binding="{Binding PalletVirtualId}" Header="托盘虚拟码"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding PalletCode}" Header="托盘条码"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding BatteryStatus, Converter={StaticResource cellStatusConvertor}}" Header="电芯状态"/>
|
||||
<DataGridTextColumn Width="55" CanUserResize="False" Binding="{Binding PositionX}" Header="行号"/>
|
||||
<DataGridTextColumn Width="55" CanUserResize="False" Binding="{Binding PositionY}" Header="列号"/>
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding LoadingBegingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="上料开始时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding ScanTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="扫码时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding LoadingOverTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="上料结束时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding BakingPosition,Converter={StaticResource CavityInfoIdConverter}}" Header="所属烤箱" />
|
||||
<DataGridTextColumn Width="55" CanUserResize="False" Binding="{Binding BakingCount}" Header="烘烤次数"/>
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding BakingBeginTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="烘烤开始时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding BakingOverTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="烘烤结束时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding UnLoadingBegingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="下料开始时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding UnLoadingOverTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="下料结束时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding CoolTemp}" Header="下料温度" />
|
||||
<DataGridTextColumn Width="100" CanUserResize="False" Binding="{Binding WaterValue}" Header="水含量结果"/>
|
||||
<!--<DataGridTemplateColumn Header="操作" Width="80">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal">
|
||||
<TextBlock Margin="3,0" >
|
||||
<Hyperlink Foreground="Red" Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding}">删除</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>-->
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
33
Cowain.Bake.UI/DataQuery/Views/BatteryInfoView.xaml.cs
Normal file
33
Cowain.Bake.UI/DataQuery/Views/BatteryInfoView.xaml.cs
Normal file
@@ -0,0 +1,33 @@
|
||||
using HandyControl.Tools.Extension;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// CellInfoView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class BatteryInfoView : UserControl
|
||||
{
|
||||
public BatteryInfoView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
private void Button_Click_1(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
140
Cowain.Bake.UI/DataQuery/Views/CurveView.xaml
Normal file
140
Cowain.Bake.UI/DataQuery/Views/CurveView.xaml
Normal file
@@ -0,0 +1,140 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.CurveView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:convertor="clr-namespace:Cowain.Bake.BLL.Converter;assembly=Cowain.Bake.BLL"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="530" d:DesignWidth="950">
|
||||
<UserControl.Resources>
|
||||
<convertor:CavityInfoIdConverter x:Key="CavityInfoIdConverter"/>
|
||||
</UserControl.Resources>
|
||||
|
||||
<Grid>
|
||||
<TabControl VerticalAlignment="Stretch">
|
||||
<TabItem Header="曲线图" >
|
||||
<hc:SimplePanel>
|
||||
<hc:DrawerContainer>
|
||||
<Grid Background="#FFE5E5E5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal">
|
||||
<Label Content="时间:" Foreground="Black" Style="{StaticResource BaseStyle}" Margin="10,10,0,0" />
|
||||
<hc:DateTimePicker Text="{Binding CurveStartDateTime,Mode=TwoWay}" Width="169" Height="30"/>
|
||||
<TextBlock VerticalAlignment="Center" Margin="5,0,0,0">-</TextBlock>
|
||||
<hc:DateTimePicker Text="{Binding CurveEndDateTime,Mode=TwoWay}" Margin="5,0,0,0" Width="169" Height="30"/>
|
||||
<Label Height="30" Content="托盘条码:" Foreground="Black" Style="{StaticResource BaseStyle}" Margin="20,10,0,0" VerticalAlignment="Top" Width="60" />
|
||||
<hc:TextBox Width="100" Height="30" Text="{Binding Code,Mode=TwoWay}" Margin="0,0,20,0"></hc:TextBox>
|
||||
|
||||
<Button Content="查询温度" Style="{StaticResource ButtonSuccess}" Margin="4" Width="80" Command="{Binding QueryTempCommand}"/>
|
||||
<Button Content="查询PID" Style="{StaticResource ButtonSuccess}" Margin="4,4,60,4" Width="80" Command="{Binding QueryPIDCommand}"/>
|
||||
<Button Content="压力曲线" Style="{StaticResource ButtonSuccess}" Margin="4" Width="80" Command="{Binding ChartVacuumCommand}"/>
|
||||
<Button Content="温度曲线" Style="{StaticResource ButtonSuccess}" Margin="4" Width="80" Command="{Binding ChartTempCommand}"/>
|
||||
<Button Content="PID曲线" Style="{StaticResource ButtonSuccess}" Margin="4" Width="80" Command="{Binding ChartPIDCommand}"/>
|
||||
<ToggleButton Content="选择" IsChecked="{Binding IsOpen,ElementName=DrawerTopInContainer}" Margin="30,0,0,0"/>
|
||||
</StackPanel>
|
||||
|
||||
<hc:Drawer Name="DrawerTopInContainer" Dock="Top" ShowMode="Press">
|
||||
<Border Background="{DynamicResource RegionBrush}" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" BorderBrush="{DynamicResource BorderBrush}">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="20"/>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
|
||||
|
||||
<DataGrid Grid.Row="1" Grid.Column="0" hc:DataGridAttach.CanUnselectAllWithBlankArea="True" HeadersVisibility="Column" RowHeaderWidth="60" AutoGenerateColumns="False" ItemsSource="{Binding DataList}" Margin="8">
|
||||
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Binding="{Binding Name}" Header="温度类型"/>
|
||||
<DataGridCheckBoxColumn Width="100" CanUserResize="False" Binding="{Binding IsSelected,Mode=TwoWay}" Header="查询"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
<Button Command="hc:ControlCommands.Close" Grid.Row="0" HorizontalAlignment="Right" Foreground="{DynamicResource PrimaryTextBrush}" Style="{StaticResource ButtonIcon}" hc:IconElement.Geometry="{StaticResource DeleteFillCircleGeometry}"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</hc:Drawer>
|
||||
|
||||
<lvc:CartesianChart Series="{Binding SeriesCollection}" Grid.Row="1" LegendLocation="Right"
|
||||
DisableAnimations="True"
|
||||
Hoverable="False"
|
||||
DataTooltip="{x:Null}">
|
||||
<lvc:CartesianChart.AxisX>
|
||||
<lvc:Axis Title="{Binding XName}" FontSize="12" Labels="{Binding TimeLine}">
|
||||
<lvc:Axis.Separator>
|
||||
<lvc:Separator Step="{Binding StepId}" />
|
||||
</lvc:Axis.Separator>
|
||||
</lvc:Axis>
|
||||
</lvc:CartesianChart.AxisX>
|
||||
|
||||
<lvc:CartesianChart.AxisY>
|
||||
<lvc:Axis Title="{Binding YName}" FontSize="12"/>
|
||||
</lvc:CartesianChart.AxisY>
|
||||
</lvc:CartesianChart>
|
||||
</Grid>
|
||||
</hc:DrawerContainer>
|
||||
</hc:SimplePanel>
|
||||
</TabItem>
|
||||
|
||||
<TabItem Header="温度数据" >
|
||||
<Grid Background="#FFE5E5E5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" >
|
||||
<Button Content="导出" Style="{StaticResource ButtonInfo}" Command="{Binding ExportTempCommand}" Margin="20,0,0,0" Width="80" />
|
||||
</StackPanel>
|
||||
<DataGrid Style="{StaticResource DataGrid.Small}" AutoGenerateColumns="False" ItemsSource="{Binding DtTemp,UpdateSourceTrigger=PropertyChanged}"
|
||||
Height="Auto" Width="Auto" Grid.Row="1">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="时间" Width="170" Binding="{Binding CreateTime}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="烘烤位置" Width="120" Binding="{Binding CavityId,Converter={StaticResource CavityInfoIdConverter}}"/>
|
||||
<DataGridTextColumn Header="压力" Width="80" Binding="{Binding Vacuum}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度1" Width="80" Binding="{Binding 温度1}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度2" Width="80" Binding="{Binding 温度2}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度3" Width="80" Binding="{Binding 温度3}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度4" Width="80" Binding="{Binding 温度4}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度5" Width="80" Binding="{Binding 温度5}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度6" Width="80" Binding="{Binding 温度6}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度7" Width="80" Binding="{Binding 温度7}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="温度8" Width="80" Binding="{Binding 温度8}"></DataGridTextColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</TabItem>
|
||||
|
||||
<TabItem Header="PID数据" >
|
||||
<Grid Background="#FFE5E5E5">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="50"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Left" >
|
||||
<Button Content="导出" Style="{StaticResource ButtonInfo}" Command="{Binding ExportPIDCommand}" Margin="20,0,0,0" Width="80" />
|
||||
</StackPanel>
|
||||
<DataGrid Style="{StaticResource DataGrid.Small}" AutoGenerateColumns="False" ItemsSource="{Binding DtPID,UpdateSourceTrigger=PropertyChanged}"
|
||||
Height="Auto" Width="Auto" Grid.Row="1" >
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="时间" Width="170" Binding="{Binding CreateTime}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="烘烤位置" Width="120" Binding="{Binding CavityId,Converter={StaticResource CavityInfoIdConverter}}"/>
|
||||
<DataGridTextColumn Header="PID1" Width="80" Binding="{Binding PID1}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="PID2" Width="80" Binding="{Binding PID2}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="PID3" Width="80" Binding="{Binding PID3}"></DataGridTextColumn>
|
||||
<DataGridTextColumn Header="PID4" Width="80" Binding="{Binding PID4}"></DataGridTextColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</TabItem>
|
||||
|
||||
</TabControl>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
29
Cowain.Bake.UI/DataQuery/Views/CurveView.xaml.cs
Normal file
29
Cowain.Bake.UI/DataQuery/Views/CurveView.xaml.cs
Normal file
@@ -0,0 +1,29 @@
|
||||
using Cowain.Bake.BLL;
|
||||
using Cowain.Bake.Common.Core;
|
||||
using System;
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using Unity;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// Curve.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class CurveView : UserControl
|
||||
{
|
||||
private IUnityContainer _unityContainer;
|
||||
public CurveView(IUnityContainer unityContainer)
|
||||
{
|
||||
InitializeComponent();
|
||||
_unityContainer = unityContainer;
|
||||
}
|
||||
|
||||
private void CheckComboBox_Selected(object sender, RoutedEventArgs e)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
47
Cowain.Bake.UI/DataQuery/Views/DummyInfoView.xaml
Normal file
47
Cowain.Bake.UI/DataQuery/Views/DummyInfoView.xaml
Normal file
@@ -0,0 +1,47 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.DummyInfoView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:Cowain.Bake.UI.DataQuery.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:convertor="clr-namespace:Cowain.Bake.Common.Converter;assembly=Cowain.Bake.Common"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
d:DesignHeight="450" d:DesignWidth="950">
|
||||
<UserControl.Resources>
|
||||
<convertor:BatteryStatusConvertor x:Key="cellStatusConvertor"></convertor:BatteryStatusConvertor>
|
||||
<Style TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="FontSize" Value="15"/>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="60"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="2,10,10,10" HorizontalAlignment="Right" >
|
||||
<TextBlock Text="电芯条码:" VerticalAlignment="Center" Margin="4"/>
|
||||
<hc:TextBox Width="150" Height="30" Margin="0,0,10,0" Text="{Binding Code,Mode=TwoWay}"></hc:TextBox>
|
||||
<Button Content="查询" Style="{StaticResource ButtonSuccess}" Margin="4" Width="100" Command="{Binding DummyQueryCommand}"/>
|
||||
</StackPanel>
|
||||
|
||||
<DataGrid hc:DataGridAttach.CanUnselectAllWithBlankArea="True" HeadersVisibility="All" x:Name="dgvStation" Grid.Row="1"
|
||||
CanUserSortColumns="False" SelectionMode="Single" Margin="4" IsReadOnly="True"
|
||||
RowHeaderWidth="0" AutoGenerateColumns="False" ItemsSource="{Binding CellList,UpdateSourceTrigger=PropertyChanged}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="150" CanUserResize="False" Binding="{Binding ScanTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Header="扫码时间"/>
|
||||
<DataGridTextColumn Width="210" CanUserResize="False" Binding="{Binding BatteryCode}" Header="电芯条码"/>
|
||||
<DataGridTextColumn Width="100" CanUserResize="False" Binding="{Binding PalletCode}" Header="托盘条码"/>
|
||||
<DataGridTextColumn Width="150" Binding="{Binding BakingLocation}" Header="烘烤位置" />
|
||||
<DataGridTextColumn Width="150" Binding="{Binding BakingBeginTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Header="烘烤开始时间" Visibility="Visible"/>
|
||||
<DataGridTextColumn Width="150" Binding="{Binding BakingOverTime, StringFormat=yyyy-MM-dd HH:mm:ss}" Header="烘烤结束时间" Visibility="Visible"/>
|
||||
<DataGridTextColumn Width="80" CanUserResize="False" Binding="{Binding AnodeValue}" Header="正极水分"/>
|
||||
<DataGridTextColumn Width="80" CanUserResize="False" Binding="{Binding SeptumValue}" Header="隔膜水分"/>
|
||||
<DataGridTextColumn Width="80" CanUserResize="False" Binding="{Binding CathodeValue}" Header="负极水分"/>
|
||||
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
28
Cowain.Bake.UI/DataQuery/Views/DummyInfoView.xaml.cs
Normal file
28
Cowain.Bake.UI/DataQuery/Views/DummyInfoView.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// DummyInfoView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class DummyInfoView : UserControl
|
||||
{
|
||||
public DummyInfoView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
56
Cowain.Bake.UI/DataQuery/Views/GetMesLogView.xaml
Normal file
56
Cowain.Bake.UI/DataQuery/Views/GetMesLogView.xaml
Normal file
@@ -0,0 +1,56 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.GetMesLogView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:local="clr-namespace:Cowain.Bake.UI.DataQuery.Views"
|
||||
xmlns:convertor="clr-namespace:Cowain.Bake.Common.Converter;assembly=Cowain.Bake.Common"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
mc:Ignorable="d"
|
||||
Height="auto" Width="auto">
|
||||
<UserControl.Resources>
|
||||
<convertor:SendFlagConvertor x:Key="sendFlagConvertor"></convertor:SendFlagConvertor>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="55"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<WrapPanel >
|
||||
<TextBlock VerticalAlignment="Center" Margin="5,10,0,0">日期时间:</TextBlock>
|
||||
<hc:DateTimePicker x:Name="StartTime" Text="{Binding StartDatetime,Mode=TwoWay}" Margin="5,10,0,0" Width="160"/>
|
||||
<TextBlock VerticalAlignment="Center" Margin="0,10,0,0">-</TextBlock>
|
||||
<hc:DateTimePicker x:Name="EndTime" Text="{Binding EndDatetime,Mode=TwoWay}" Margin="0,10,0,0" Width="160"></hc:DateTimePicker>
|
||||
<TextBlock Text="MOM信息类别:" VerticalAlignment="Center" Margin="4,10,0,0"/>
|
||||
<ComboBox x:Name="palletCode" SelectedValue="{Binding MesClass,Mode=TwoWay}" ItemsSource="{Binding MesClassList}" Margin="5,10,0,0" FontWeight="Bold" IsReadOnly="True" HorizontalAlignment="Left" Height="25" VerticalAlignment="Top" Width="120"/>
|
||||
<CheckBox IsChecked="{Binding IsChecked, Mode=TwoWay}" FontWeight="Bold" Margin="10,10,0,0" Content="条码(时间组合)"/>
|
||||
<TextBlock Text="电芯条码:" VerticalAlignment="Center" Margin="0,10,0,0"/>
|
||||
<TextBox Text="{Binding BatteryCode,Mode=TwoWay}" Margin="5,10,0,0" Width="190"/>
|
||||
<Button Content="查询" Style="{StaticResource ButtonSuccess}" Margin="4,10,0,0" Width="45" Command="{Binding QueryCommand}"/>
|
||||
<Button Content="导出" Style="{StaticResource ButtonPrimary}" Margin="4,10,0,0" Width="45" Command="{Binding GetMesCvsCommand}"/>
|
||||
<Button Content="自动上传" Visibility="Collapsed" Command="{Binding AutoUploadCommand}" Style="{StaticResource ButtonSuccess}" VerticalAlignment="Top" Width="68" Margin="4,10,0,0"/>
|
||||
</WrapPanel>
|
||||
|
||||
|
||||
<DataGrid HorizontalAlignment="Left" Grid.Row="1" AutoGenerateColumns="False" IsReadOnly="True"
|
||||
ItemsSource="{Binding MesDataList,Mode=TwoWay}" Height="auto" VerticalAlignment="Top" Width="auto">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding CreateTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="创建时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding SendTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="发送时间" />
|
||||
<DataGridTextColumn Width="160" Binding="{Binding BatteryCode}" Header="电芯条码" />
|
||||
<DataGridTextColumn Binding="{Binding Content}" Width="*" Header="发送信息" />
|
||||
<DataGridTextColumn Binding="{Binding RecvContent}" Width="350" Header="接收信息"/>
|
||||
<DataGridTextColumn Header="上传状态" Width="auto" Binding="{Binding SendFlag, Converter={StaticResource sendFlagConvertor}}"></DataGridTextColumn>
|
||||
<DataGridTemplateColumn Header="上传勾选">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<CheckBox IsChecked="{Binding Path=IsCheck, UpdateSourceTrigger=PropertyChanged}" />
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
28
Cowain.Bake.UI/DataQuery/Views/GetMesLogView.xaml.cs
Normal file
28
Cowain.Bake.UI/DataQuery/Views/GetMesLogView.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// GetMesLog.xaml µÄ½»»¥Âß¼
|
||||
/// </summary>
|
||||
public partial class GetMesLogView : UserControl
|
||||
{
|
||||
public GetMesLogView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Cowain.Bake.UI/DataQuery/Views/IncomingCellInfoView.xaml
Normal file
67
Cowain.Bake.UI/DataQuery/Views/IncomingCellInfoView.xaml
Normal file
@@ -0,0 +1,67 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.IncomingCellInfoView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:bllConverter="clr-namespace:Cowain.Bake.BLL.Converter;assembly=Cowain.Bake.BLL"
|
||||
xmlns:CommonConverter="clr-namespace:Cowain.Bake.Common.Converter;assembly=Cowain.Bake.Common"
|
||||
xmlns:local="clr-namespace:Cowain.Bake.UI.DataQuery.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
|
||||
<UserControl.Resources>
|
||||
<bllConverter:PalletVirtualIdConverter x:Key="CPalletCode"/>
|
||||
<CommonConverter:BatteryStatusConvertor x:Key="CBatteryStatus"/>
|
||||
<Style TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="FontSize" Value="15"/>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="60"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="2,10,10,10" HorizontalAlignment="Right" >
|
||||
<TextBlock VerticalAlignment="Center" Margin="4">日期时间:</TextBlock>
|
||||
<hc:DateTimePicker x:Name="StartTime" Text="{Binding StartDatetime,Mode=TwoWay}" Margin="10,5,0,0" Width="163"/>
|
||||
<TextBlock VerticalAlignment="Center">-</TextBlock>
|
||||
<hc:DateTimePicker x:Name="EndTime" Text="{Binding EndDatetime,Mode=TwoWay}" Width="163"></hc:DateTimePicker>
|
||||
<TextBlock Text="电芯条码:" VerticalAlignment="Center" Margin="60,4,4,4"/>
|
||||
<hc:TextBox Width="150" Height="30" Margin="0,0,10,0" Text="{Binding Code,Mode=TwoWay}"></hc:TextBox>
|
||||
|
||||
<Button Content="查询" Style="{StaticResource ButtonSuccess}" Margin="4" Width="100" Command="{Binding QueryCommand}"/>
|
||||
<Button Content="导出" Style="{StaticResource ButtonPrimary}" Margin="4" Width="100" Command="{Binding ExportCommand}"/>
|
||||
</StackPanel>
|
||||
|
||||
<DataGrid hc:DataGridAttach.CanUnselectAllWithBlankArea="True" HeadersVisibility="All" x:Name="dgvStation" Grid.Row="1"
|
||||
CanUserSortColumns="False" SelectionMode="Single" Margin="4" IsReadOnly="True"
|
||||
RowHeaderWidth="0" AutoGenerateColumns="False" ItemsSource="{Binding CellList,UpdateSourceTrigger=PropertyChanged}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding Id}" Header="序号"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding BatteryCode}" Header="电芯条码"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding BatteryStatus,Converter={StaticResource CBatteryStatus}}" Header="电芯状态"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding PalletVirtualId ,Converter={StaticResource CPalletCode}}" Header="夹具条码"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding PositionX}" Header="夹具行号"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding PositionY}" Header="夹具列号"/>
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding ScanTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="扫码时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding BindingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="绑定时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding UnbindingTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="解绑时间" />
|
||||
<DataGridTextColumn Width="auto" Binding="{Binding DummyFlag}" Header="假电芯" />
|
||||
<DataGridTemplateColumn Header="操作" Width="80">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal">
|
||||
<TextBlock Margin="3,0" >
|
||||
<Hyperlink Foreground="Red" Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding}">删除</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
28
Cowain.Bake.UI/DataQuery/Views/IncomingCellInfoView.xaml.cs
Normal file
28
Cowain.Bake.UI/DataQuery/Views/IncomingCellInfoView.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// IncomingCellInfoView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class IncomingCellInfoView : UserControl
|
||||
{
|
||||
public IncomingCellInfoView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
60
Cowain.Bake.UI/DataQuery/Views/NGCellInfoView.xaml
Normal file
60
Cowain.Bake.UI/DataQuery/Views/NGCellInfoView.xaml
Normal file
@@ -0,0 +1,60 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.NGCellInfoView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:Cowain.Bake.UI.DataQuery.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<UserControl.Resources>
|
||||
<Style TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="FontSize" Value="15"/>
|
||||
</Style>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="60"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="2,10,10,10" HorizontalAlignment="Right" >
|
||||
<TextBlock VerticalAlignment="Center" Margin="4">日期时间:</TextBlock>
|
||||
<hc:DateTimePicker Height="30" x:Name="StartTime" Text="{Binding StartDatetime,Mode=TwoWay}" Width="163"></hc:DateTimePicker>
|
||||
<TextBlock VerticalAlignment="Center">-</TextBlock>
|
||||
<hc:DateTimePicker Height="30" x:Name="EndTime" Text="{Binding EndDatetime,Mode=TwoWay}" Width="163"></hc:DateTimePicker>
|
||||
<TextBlock Text="电芯条码:" VerticalAlignment="Center" Margin="30,4,4,4"/>
|
||||
<hc:TextBox Width="150" Height="30" Margin="0,0,10,0" Text="{Binding Code,Mode=TwoWay}"></hc:TextBox>
|
||||
<TextBlock Text="托盘条码:" VerticalAlignment="Center" Margin="30,4,4,4"/>
|
||||
<hc:TextBox Width="150" Height="30" Margin="0,0,10,0" Text="{Binding PalletCode,Mode=TwoWay}"></hc:TextBox>
|
||||
<Button Content="查询" Style="{StaticResource ButtonSuccess}" Margin="4" Width="100" Command="{Binding QueryCommand}"/>
|
||||
<Button Content="导出" Style="{StaticResource ButtonSuccess}" Margin="4" Width="100" Command="{Binding ExportCommand}"/>
|
||||
</StackPanel>
|
||||
|
||||
<DataGrid hc:DataGridAttach.CanUnselectAllWithBlankArea="True" HeadersVisibility="All" x:Name="dgvStation" Grid.Row="1"
|
||||
CanUserSortColumns="False" SelectionMode="Single" Margin="4" IsReadOnly="True"
|
||||
RowHeaderWidth="0" AutoGenerateColumns="False" ItemsSource="{Binding CellList,UpdateSourceTrigger=PropertyChanged}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="50" CanUserResize="False" Binding="{Binding Id}" Header="序号"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding BatteryCode}" Header="电芯条码"/>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding PalletCode}" Header="托盘条码"/>
|
||||
|
||||
<DataGridTextColumn Binding="{Binding Desc}" Width="auto" Header="描述"/>
|
||||
<DataGridTextColumn Width="*" Binding="{Binding CreateTime,StringFormat=yyyy-MM-dd HH:mm:ss}" Header="报警时间" />
|
||||
<DataGridTemplateColumn Header="操作" Width="80">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal">
|
||||
<TextBlock Margin="3,0" >
|
||||
<Hyperlink Foreground="Red" Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding}">删除</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
|
||||
</Grid>
|
||||
</UserControl>
|
||||
28
Cowain.Bake.UI/DataQuery/Views/NGCellInfoView.xaml.cs
Normal file
28
Cowain.Bake.UI/DataQuery/Views/NGCellInfoView.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// NGCellInfoView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class NGCellInfoView : UserControl
|
||||
{
|
||||
public NGCellInfoView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
72
Cowain.Bake.UI/DataQuery/Views/PalletInfoView.xaml
Normal file
72
Cowain.Bake.UI/DataQuery/Views/PalletInfoView.xaml
Normal file
@@ -0,0 +1,72 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.PalletInfoView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:Cowain.Bake.UI.DataQuery.Views"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
mc:Ignorable="d"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:convertor="clr-namespace:Cowain.Bake.BLL.Converter;assembly=Cowain.Bake.BLL"
|
||||
xmlns:commonConvertor="clr-namespace:Cowain.Bake.Common.Converter;assembly=Cowain.Bake.Common"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<UserControl.Resources>
|
||||
<Style TargetType="{x:Type TextBlock}">
|
||||
<Setter Property="FontSize" Value="15"/>
|
||||
</Style>
|
||||
<commonConvertor:DummyStatusConvertor x:Key="DummyStatusConvertor"/>
|
||||
<commonConvertor:PalletStatusConvertor x:Key="PalletStatusConvertor"/>
|
||||
<convertor:CavityInfoIdConverter x:Key="CavityInfoIdConverter"/>
|
||||
</UserControl.Resources>
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="60"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="2,10,10,10" HorizontalAlignment="Right" >
|
||||
<TextBlock VerticalAlignment="Center" Margin="4">日期时间:</TextBlock>
|
||||
<hc:DateTimePicker Height="30" x:Name="StartTime" Text="{Binding StartDatetime,Mode=TwoWay}" Width="163"></hc:DateTimePicker>
|
||||
<TextBlock VerticalAlignment="Center">-</TextBlock>
|
||||
<hc:DateTimePicker Height="30" x:Name="EndTime" Text="{Binding EndDatetime,Mode=TwoWay}" Width="163"></hc:DateTimePicker>
|
||||
<TextBlock Text="托盘条码:" VerticalAlignment="Center" Margin="4"/>
|
||||
<hc:TextBox Width="150" Height="30" Margin="0,0,10,0" Text="{Binding Code,Mode=TwoWay}"></hc:TextBox>
|
||||
|
||||
<Button Content="查询" Style="{StaticResource ButtonSuccess}" Margin="4" Width="100" Command="{Binding QueryCommand}"/>
|
||||
<Button Content="导出" Style="{StaticResource ButtonPrimary}" Margin="4" Width="100" Command="{Binding ExportCommand}"/>
|
||||
</StackPanel>
|
||||
|
||||
<DataGrid hc:DataGridAttach.CanUnselectAllWithBlankArea="True" HeadersVisibility="All" x:Name="dgvStation" Grid.Row="1"
|
||||
CanUserSortColumns="False" SelectionMode="Single" Margin="4" IsReadOnly="True"
|
||||
RowHeaderWidth="0" AutoGenerateColumns="False" ItemsSource="{Binding PalletList,UpdateSourceTrigger=PropertyChanged}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Width="auto" CanUserResize="False" Binding="{Binding Id}" Header="序号"/>
|
||||
<DataGridTextColumn Header="托盘条码" Width="auto" Binding="{Binding PalletCode}"/>
|
||||
<DataGridTextColumn Header="托盘状态" Width="100" Binding="{Binding PalletStatus,Converter={StaticResource PalletStatusConvertor}}" />
|
||||
<!--<DataGridTextColumn Header="带水状态" Width="100" Binding="{Binding DummyStatus,Converter={StaticResource DummyStatusConvertor}}"/>-->
|
||||
<DataGridTextColumn Header="电芯数量" Width="80" Binding="{Binding BatteryQty}"/>
|
||||
<DataGridTextColumn Header="烘烤次数" Width="80" Binding="{Binding BakingCount}"/>
|
||||
<DataGridTextColumn Header="烘烤位置" Width="150" Binding="{Binding BakingPosition,Converter={StaticResource CavityInfoIdConverter}}"/>
|
||||
<DataGridTextColumn Header="扫码时间" Width="auto" Binding="{Binding ScanTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
|
||||
<DataGridTextColumn Header="上料完成时间" Width="auto" Binding="{Binding LoadingOverTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
|
||||
<DataGridTextColumn Header="入炉时间" Width="auto" Binding="{Binding InStoveTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
|
||||
<DataGridTextColumn Header="开始烘烤时间" Width="auto" Binding="{Binding BakingBeginTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
|
||||
<DataGridTextColumn Header="烘烤完成时间" Width="auto" Binding="{Binding BakingOverTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
|
||||
<DataGridTextColumn Header="出炉时间" Width="150" Binding="{Binding OutStoveTime,StringFormat='{}{0:yyyy-MM-dd HH:mm:ss}'}"/>
|
||||
<DataGridTextColumn Header="工单号" Width="auto" Binding="{Binding JobNum}"/>
|
||||
|
||||
<DataGridTemplateColumn Header="操作" Width="80">
|
||||
<DataGridTemplateColumn.CellTemplate>
|
||||
<DataTemplate>
|
||||
<StackPanel Grid.Column="4" VerticalAlignment="Center" HorizontalAlignment="Center" Orientation="Horizontal">
|
||||
<TextBlock Margin="3,0" >
|
||||
<Hyperlink Foreground="Red" Command="{Binding DataContext.DeleteCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}}" CommandParameter="{Binding}">删除</Hyperlink>
|
||||
</TextBlock>
|
||||
</StackPanel>
|
||||
</DataTemplate>
|
||||
</DataGridTemplateColumn.CellTemplate>
|
||||
</DataGridTemplateColumn>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
28
Cowain.Bake.UI/DataQuery/Views/PalletInfoView.xaml.cs
Normal file
28
Cowain.Bake.UI/DataQuery/Views/PalletInfoView.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// PalletInfoView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class PalletInfoView : UserControl
|
||||
{
|
||||
public PalletInfoView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
42
Cowain.Bake.UI/DataQuery/Views/ProductionsInfoView.xaml
Normal file
42
Cowain.Bake.UI/DataQuery/Views/ProductionsInfoView.xaml
Normal file
@@ -0,0 +1,42 @@
|
||||
<UserControl x:Class="Cowain.Bake.UI.DataQuery.Views.ProductionsInfoView"
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:Cowain.Bake.UI.DataQuery.Views"
|
||||
mc:Ignorable="d"
|
||||
xmlns:hc="https://handyorg.github.io/handycontrol"
|
||||
xmlns:sys="clr-namespace:System;assembly=mscorlib"
|
||||
d:DesignHeight="450" d:DesignWidth="800">
|
||||
<Grid>
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition Height="60"/>
|
||||
<RowDefinition/>
|
||||
</Grid.RowDefinitions>
|
||||
<Border Background="#EEE" Margin="4" CornerRadius="6" BorderThickness="1"/>
|
||||
<StackPanel Orientation="Horizontal" Margin="2,10,10,10" HorizontalAlignment="Right" >
|
||||
<TextBlock VerticalAlignment="Center" Margin="4">时间:</TextBlock>
|
||||
<hc:DateTimePicker Height="30" Width="170" Text="{Binding StartDateTime,Mode=OneWayToSource}" DateTimeFormat="yyyy-MM-dd"></hc:DateTimePicker>
|
||||
<TextBlock VerticalAlignment="Center">-</TextBlock>
|
||||
<hc:DateTimePicker Height="30" Width="170" Text="{Binding EndDateTime,Mode=OneWayToSource}" DateTimeFormat="yyyy-MM-dd"></hc:DateTimePicker>
|
||||
<Button Content="查询" Style="{StaticResource ButtonSuccess}" Margin="4" Width="100" Command="{Binding QueryCommand}"/>
|
||||
</StackPanel>
|
||||
<DataGrid hc:DataGridAttach.CanUnselectAllWithBlankArea="True" HeadersVisibility="All" x:Name="dgvStation" Grid.Row="1"
|
||||
CanUserSortColumns="False" SelectionMode="Single" Margin="4" IsReadOnly="True"
|
||||
RowHeaderWidth="0" AutoGenerateColumns="False" ItemsSource="{Binding ProductionList,UpdateSourceTrigger=PropertyChanged}">
|
||||
<DataGrid.Columns>
|
||||
<DataGridTextColumn Header="日期" Width="100" Binding="{Binding ProductionDate}"/>
|
||||
<DataGridTextColumn Header="白班产量" Width="120" Binding="{Binding DayOutput}"/>
|
||||
<DataGridTextColumn Header="白班投入" Width="120" Binding="{Binding DayInput}"/>
|
||||
<DataGridTextColumn Header="白班NG" Width="120" Binding="{Binding DayNG}"/>
|
||||
<DataGridTextColumn Header="白班合格率(%)" Width="120" Binding="{Binding DayNGRate}"/>
|
||||
<DataGridTextColumn Header="晚班产量" Width="120" Binding="{Binding NightOutput}"/>
|
||||
<DataGridTextColumn Header="晚班投入" Width="120" Binding="{Binding NightInput}"/>
|
||||
<DataGridTextColumn Header="晚班NG" Width="120" Binding="{Binding NightNG}"/>
|
||||
<DataGridTextColumn Header="晚班合格率(%)" Width="120" Binding="{Binding NightNGRate}"/>
|
||||
<DataGridTextColumn Header="白班时间段" Width="300" Binding="{Binding DayWorkTime}"/>
|
||||
<DataGridTextColumn Header="晚班时间段" Width="300" Binding="{Binding NightWorkTime}"/>
|
||||
</DataGrid.Columns>
|
||||
</DataGrid>
|
||||
</Grid>
|
||||
</UserControl>
|
||||
28
Cowain.Bake.UI/DataQuery/Views/ProductionsInfoView.xaml.cs
Normal file
28
Cowain.Bake.UI/DataQuery/Views/ProductionsInfoView.xaml.cs
Normal file
@@ -0,0 +1,28 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
|
||||
namespace Cowain.Bake.UI.DataQuery.Views
|
||||
{
|
||||
/// <summary>
|
||||
/// ProductionsInfoView.xaml 的交互逻辑
|
||||
/// </summary>
|
||||
public partial class ProductionsInfoView : UserControl
|
||||
{
|
||||
public ProductionsInfoView()
|
||||
{
|
||||
InitializeComponent();
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user