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 batteryList = new List(); private ObservableCollection cellList; public ObservableCollection CellList { get => cellList ?? (cellList = new ObservableCollection()); set { SetProperty(ref cellList, value); } } public DelegateCommand ExportCommand => new DelegateCommand((x) => { if (batteryList.Count == 0) { return; } Common.Core.CSVHelper.WriteMap(batteryList); //Common.Core.CSVHelper.WriteDataTableToCsv(batteryList, new List { "Id","BatteryCode", "PalletCode", "BatteryStatus", // "PositionX", "PositionY", "LoadingBegingTime","ScanTime","LoadingOverTime", "BakingPosition", "BakingBeginTime", "BakingOverTime","UnLoadingBegingTime", "UnLoadingOverTime", "WaterValue"}, new List { "序号", "电芯条码", "托盘条码", "电芯状态", "行号", "列号", "上料开始时间","扫码时间", "上料结束时间", "所属烤箱", "烘烤开始时间", // "烘烤结束时间", "下料开始时间", "下料结束时间", "不含量结果"}); }); public DelegateCommand QueryCommand => new DelegateCommand((x) => { CellList.Clear(); if ((EndDatetime - StartDatetime).TotalDays > 5) { HandyControl.Controls.MessageBox.Warning("查询时间差在 5 天以内!"); return; } if (string.IsNullOrEmpty(Code)) { batteryList = _unityContainer.Resolve().Query(StartDatetime, EndDatetime); } else { batteryList = _unityContainer.Resolve().Query(Code); } if (0 != batteryList.Count) { batteryList.ForEach(item => CellList.Add(item)); Growl.Success("查询完成!"); } else { Growl.Success("没有数据!"); } }); public DelegateCommand DeleteCommand => new DelegateCommand((x) => { }); } }