private void Init() { this.dgvData.Rows.Clear(); CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_TIMESCALE_INFO tsBll = new Maticsoft.BLL.SMT_TIMESCALE_INFO(); var models = tsBll.GetModelList(""); this.Invoke(new Action(() => { foreach (var item in models) { AddData(item); } })); } catch (Exception ex) { log.Error("加载列表异常:" + ex.Message); WinInfoHelper.ShowInfoWindow(this, "加载列表异常:" + ex.Message); } }); waiting.Show(this); }
private void InitTimeNum() { CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_TIMESCALE_INFO tsBll = new Maticsoft.BLL.SMT_TIMESCALE_INFO(); var models = tsBll.GetModelList(""); this.Invoke(new Action(() => { cbTimeNum.Items.Add(new ComboBoxItem("任意时间段", "任意时间段")); foreach (var item in models) { var cbi = new ComboBoxItem(item.TIME_NO + "(" + item.TIME_NAME + ")", item.TIME_NO + "(" + item.TIME_NAME + ")"); cbi.Tag = item; cbTimeNum.Items.Add(cbi); } if (staffInfo != null) { this.Invoke(new Action(() => { DoSetTimeNum(); })); } else { cbTimeNum.SelectedIndex = 0; } })); } catch (Exception ex) { log.Error("加载列表异常:" + ex.Message); WinInfoHelper.ShowInfoWindow(this, "加载列表异常:" + ex.Message); } }); waiting.Show(this); }
private void DoUpload() { CtrlWaiting waiting = new CtrlWaiting(() => { var ctrls = ControllerHelper.GetList("1=1"); if (ctrls.Count == 0) { WinInfoHelper.ShowInfoWindow(this, "没有控制器!"); return; } Maticsoft.BLL.SMT_TIMESCALE_INFO tsBll = new Maticsoft.BLL.SMT_TIMESCALE_INFO(); var models = tsBll.GetModelList(""); models = models.OrderBy(m => m.TIME_NO).ToList();//时段升序 Maticsoft.BLL.SMT_WEEKEX_INFO wbll = new Maticsoft.BLL.SMT_WEEKEX_INFO(); var weekexs = wbll.GetModelList(""); SmtLog.Info("设置", "上传时间段设置"); FrmDetailInfo.Show(false); FrmDetailInfo.AddOneMsg(string.Format("开始上传控制器时段:控制器数={0},时段数={1} ...", ctrls.Count, models.Count)); List <ManualResetEvent> eventList = new List <ManualResetEvent>(); foreach (var item in ctrls) { ManualResetEvent evt = new ManualResetEvent(false); eventList.Add(evt); ThreadPool.QueueUserWorkItem(new WaitCallback((o) => { try { var ctrl = ControllerHelper.ToController(item); using (IAccessCore acc = new WGAccess()) { if (acc.ClearTimeScales(ctrl)) { FrmDetailInfo.AddOneMsg(string.Format("清除控制器时间段成功:SN={0},IP={1},开始上传控制器时间段...", ctrl.sn, ctrl.ip)); foreach (var model in models) { var m = TimeScaleHelper.ToTimeScale(model); bool ret = acc.SetTimeScales(ctrl, m); if (!ret) { FrmDetailInfo.AddOneMsg(string.Format("上传控制器时间段失败:时段号={0},控制器IP={1}", model.TIME_NO, ctrl.ip), isRed: true); } else { FrmDetailInfo.AddOneMsg(string.Format("上传控制器时间段成功:时段号={0},控制器IP={1}", model.TIME_NO, ctrl.ip)); } } } else { FrmDetailInfo.AddOneMsg(string.Format("清除控制器时间段失败:SN={0},IP={1},结束该控制器上传...", ctrl.sn, ctrl.ip), isRed: true); } if (acc.SetHoliday(ctrl, new HolidayPrm() { IsClear = true, startDate = DateTime.Now, endDate = DateTime.Now.AddDays(1) })) { FrmDetailInfo.AddOneMsg(string.Format("清除控制器假期约束成功:SN={0},IP={1},开始上传假期约束...", ctrl.sn, ctrl.ip)); foreach (var w in weekexs) { bool ret = acc.SetHoliday(ctrl, new HolidayPrm() { IsClear = false, IsOnDuty = w.WEEKEX_ON_DUTY, startDate = w.WEEKEX_START_DATE, endDate = w.WEEKEX_END_DATE }); if (!ret) { FrmDetailInfo.AddOneMsg(string.Format("上传控制器假期约束失败:约束={0},起止时间={1}~{2},控制器IP={3}", w.WEEKEX_ON_DUTY ? "上班" : "假期", w.WEEKEX_START_DATE, w.WEEKEX_END_DATE, ctrl.ip), isRed: true); } else { FrmDetailInfo.AddOneMsg(string.Format("上传控制器假期约束成功:约束={0},起止时间={1}~{2},控制器IP={3}", w.WEEKEX_ON_DUTY ? "上班" : "假期", w.WEEKEX_START_DATE, w.WEEKEX_END_DATE, ctrl.ip)); } } } else { FrmDetailInfo.AddOneMsg(string.Format("清除控制器假期约束失败:SN={0},IP={1}", ctrl.sn, ctrl.ip), isRed: true); } } } catch (Exception ex) { FrmDetailInfo.AddOneMsg(string.Format("上传控制器时间段失败:SN={0},IP={1},异常信息:{2},结束该控制器上传...", item.SN_NO, item.IP, ex.Message), isRed: true); log.Error("上传控制器时间段失败,", ex); SmtLog.ErrorFormat("设置", "上传控制器时间段失败:SN={0},IP={1},异常信息:{2},结束该控制器上传...", item.SN_NO, item.IP, ex.Message); } finally { evt.Set(); } })); } foreach (var item in eventList) { item.WaitOne(60000); } FrmDetailInfo.AddOneMsg("结束控制器时段上传!"); }); waiting.Show(this); }
private void btnOk_Click(object sender, EventArgs e) { if (!CheckInput()) { return; } if (_timeScaleInfo == null) { _timeScaleInfo = new Maticsoft.Model.SMT_TIMESCALE_INFO(); _timeScaleInfo.ID = -1; } _timeScaleInfo.TIME_NAME = tbName.Text.Trim(); _timeScaleInfo.TIME_NO = (int)cbTimeNo.SelectedItem; _timeScaleInfo.TIME_NEXT_NO = (int)cbNextTimeNo.SelectedItem; _timeScaleInfo.TIME_DATE_START = dtpStartDate.Value.Date; _timeScaleInfo.TIME_DATE_END = dtpEndDate.Value.Date; _timeScaleInfo.TIME_WEEK_DAY1 = cbWeek1.Checked; _timeScaleInfo.TIME_WEEK_DAY2 = cbWeek2.Checked; _timeScaleInfo.TIME_WEEK_DAY3 = cbWeek3.Checked; _timeScaleInfo.TIME_WEEK_DAY4 = cbWeek4.Checked; _timeScaleInfo.TIME_WEEK_DAY5 = cbWeek5.Checked; _timeScaleInfo.TIME_WEEK_DAY6 = cbWeek6.Checked; _timeScaleInfo.TIME_WEEK_DAY7 = cbWeek7.Checked; _timeScaleInfo.TIME_RANGE_START1 = dtiTimeAreaStart1.Value.TimeOfDay; _timeScaleInfo.TIME_RANGE_END1 = dtiTimeAreaEnd1.Value.TimeOfDay; _timeScaleInfo.TIME_RANGE_START2 = dtiTimeAreaStart2.Value.TimeOfDay; _timeScaleInfo.TIME_RANGE_END2 = dtiTimeAreaEnd2.Value.TimeOfDay; _timeScaleInfo.TIME_RANGE_START3 = dtiTimeAreaStart3.Value.TimeOfDay; _timeScaleInfo.TIME_RANGE_END3 = dtiTimeAreaEnd3.Value.TimeOfDay; CtrlWaiting waiting = new CtrlWaiting(() => { try { Maticsoft.BLL.SMT_TIMESCALE_INFO scBll = new Maticsoft.BLL.SMT_TIMESCALE_INFO(); if (_timeScaleInfo.ID == -1) { var ss = scBll.GetModelList("TIME_NO=" + _timeScaleInfo.TIME_NO); if (ss.Count > 0) { WinInfoHelper.ShowInfoWindow(this, "已存在同一时区的规则!"); return; } _timeScaleInfo.ID = scBll.Add(_timeScaleInfo); SmtLog.Info("配置", "添加时区,编号:" + _timeScaleInfo.TIME_NO + ",名称:" + _timeScaleInfo.TIME_NAME); } else { scBll.Update(_timeScaleInfo); SmtLog.Info("配置", "更新时区,编号:" + _timeScaleInfo.TIME_NO + ",名称:" + _timeScaleInfo.TIME_NAME); } this.Invoke(new Action(() => { this.DialogResult = System.Windows.Forms.DialogResult.OK; this.Close(); })); } catch (Exception ex) { WinInfoHelper.ShowInfoWindow(this, "保存异常:" + ex.Message); log.Error("保存异常:", ex); } }); waiting.Show(this); }