using HighWayIot.Log4net; using HighWayIot.Repository.domain; using HighWayIot.Repository.service; using HighWayIot.Winform.Business; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Timer = System.Threading.Timer; namespace HighWayIot.Winform.UserControlPages { public partial class MonitorMainPage : UserControl { LogHelper logHelper = LogHelper.Instance; /// /// 班次服务类 /// private SysShiftTimeService _shiftTimeService = SysShiftTimeService.Instance; /// /// 报表服务类 /// private ZxDailyReportService _zxDailyReportService = ZxDailyReportService.Instance; /// /// datagridview 数据源 /// 必须使用BindingList, 如果使用LIST,无法实现更改,添加、删除数据源自动更新datagridview /// private BindingList _monitorDataSources = new BindingList(); public MonitorMainPage() { InitializeComponent(); MonitorDataGridView.AutoGenerateColumns = false; DateTimeRefresh(); MonitorDataGridView.DataSource = null; MonitorDataGridView.DataSource = _monitorDataSources; } /// /// TImer事件 /// /// /// private void DataRefresh_Tick(object sender, EventArgs e) { if(DateTime.Now.Second == 0) { DateTimeRefresh(); } BindData(); } /// /// 白夜班时间,现在时间控件刷新 /// private void DateTimeRefresh() { var timeList = _shiftTimeService.GetShiftInfos(); var morningShift = timeList.Where(x => x.ShiftName == "早").FirstOrDefault(); var midShift = timeList.Where(x => x.ShiftName == "中").FirstOrDefault(); var nightShift = timeList.Where(x => x.ShiftName == "夜").FirstOrDefault(); if(morningShift == null || midShift == null || nightShift == null) { logHelper.Error("检查班次数据库是否早中夜班配置齐全!"); return; } string dayString = morningShift.ShiftStartTime.Substring(0, 5) + "-" + midShift.ShiftEndTime.Substring(0, 5); string nightString = nightShift.ShiftStartTime.Substring(0, 5) + "-" + nightShift.ShiftEndTime.Substring(0, 5); DayTimeLabel.Text = dayString; NightTimeLabel.Text = nightString; NowDateProductNumLabel.Text = DateTime.Now.ToString("MM 月 dd 日 产量"); } /// /// 数据刷新 /// private void BindData() { List dailyEntity = _zxDailyReportService.Get25DailyReportInfos(); _monitorDataSources.Clear(); for(int i = 0; i < dailyEntity.Count; i++) { _monitorDataSources.Add(new MonitorDataSource() { No = i + 1, VulcanizationNo = dailyEntity[i].VulcanizationNo, StartTime = dailyEntity[i].StartTime.ToString("MM月dd日 HH:mm:ss"), RecipeName = dailyEntity[i].RecipeName, RecipeCode = dailyEntity[i].RecipeCode, SpecCode = dailyEntity[i].SpecCode, DeviceNo = dailyEntity[i].DeviceNo, RawTireWeight = dailyEntity[i].RawTireWeight ?? 0, BaseRubTimeSpan = GeneralUtils.DateTimeToString(dailyEntity[i].StartTime, dailyEntity[i].BaseEndTime), MidRubTimeSpan = GeneralUtils.DateTimeToString(dailyEntity[i].StartTime, dailyEntity[i].MidEndTime), FaceRubTimeSpan = GeneralUtils.DateTimeToString(dailyEntity[i].StartTime, dailyEntity[i].FaceEndTime), }); } } } }