コード例 #1
0
        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);
        }
コード例 #2
0
 private void biDelete_Click(object sender, EventArgs e)
 {
     if (dgvData.SelectedRows.Count > 0)
     {
         if (MessageBox.Show("确定删除选择对象?", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK)
         {
             List <Maticsoft.Model.SMT_TIMESCALE_INFO> mscs = new List <Maticsoft.Model.SMT_TIMESCALE_INFO>();
             List <DataGridViewRow> rows = new List <DataGridViewRow>();
             foreach (DataGridViewRow item in dgvData.SelectedRows)
             {
                 mscs.Add((Maticsoft.Model.SMT_TIMESCALE_INFO)item.Tag);
                 rows.Add(item);
             }
             CtrlWaiting waiting = new CtrlWaiting(() =>
             {
                 try
                 {
                     Maticsoft.BLL.SMT_TIMESCALE_INFO scBll = new Maticsoft.BLL.SMT_TIMESCALE_INFO();
                     foreach (var item in mscs)
                     {
                         scBll.Delete(item.ID);
                         SmtLog.InfoFormat("配置", "删除定时任务,编号:{0},名称:{1}", item.TIME_NO, item.TIME_NAME);
                     }
                     this.Invoke(new Action(() =>
                     {
                         foreach (var item in rows)
                         {
                             dgvData.Rows.Remove(item);
                         }
                         DoUpload();
                     }));
                 }
                 catch (Exception ex)
                 {
                     WinInfoHelper.ShowInfoWindow(this, "删除对象异常:" + ex.Message);
                     log.Error("删除对象异常:", ex);
                 }
             });
             waiting.Show(this);
         }
     }
 }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }