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; private List monitorEntity = new List(); public MonitorMainPage() { InitializeComponent(); MonitorDataGridView.AutoGenerateColumns = false; DateTimeRefresh(); } /// /// 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.Get50DailyReportInfos(); monitorEntity.Clear(); for(int i = 0; i < dailyEntity.Count; i++) { monitorEntity.Add(new MonitorDataSource() { No = i + 1, VulcanizationNo = dailyEntity[i].VulcanizationNo, StartTime = dailyEntity[i].StartTime.ToString("MM月dd日 HH:mm:ss"), RecipeName = dailyEntity[i].RecipeName, SpecName = dailyEntity[i].SpecName, 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), }); } MonitorDataGridView.DataSource = null; MonitorDataGridView.DataSource = monitorEntity; } } }