Пример #1
0
        /// <summary>
        /// 获取LED设置
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public static PositionLED GetLED(string sql)
        {
            DataSet     dataset = LinQBaseDao.Query(sql);
            PositionLED pLED    = new PositionLED();

            foreach (DataRow dr in dataset.Tables[0].Rows)
            {
                pLED.PositionLED_Position_ID  = int.Parse(dr["PositionLED_Position_Id"].ToString());
                pLED.PositionLED_Type         = int.Parse(dr["PositionLED_Type"].ToString());
                pLED.PositionLED_ID           = int.Parse(dr["PositionLED_ID"].ToString());
                pLED.PositionLED_ScreenHeight = int.Parse(dr["PositionLED_ScreenHeight"].ToString());
                pLED.PositionLED_ScreenWeight = int.Parse(dr["PositionLED_ScreenWeight"].ToString());
                pLED.PositionLED_X            = int.Parse(dr["PositionLED_X"].ToString());
                pLED.PositionLED_Y            = int.Parse(dr["PositionLED_Y"].ToString());
                //pLED.PositionLED_IntervalX = int.Parse(dr["PositionLED_IntervalX"].ToString());
                //pLED.PositionLED_IntervalY = int.Parse(dr["PositionLED_IntervalY"].ToString());
                pLED.PositionLED_Count   = int.Parse(dr["PositionLED_Count"].ToString());
                pLED.PositionLED_Remark  = dr["PositionLED_Remark"].ToString();
                pLED.PositionLED_Content = dr["PositionLED_Content"].ToString();
                //pLED.PositionLED_PassageState = dr["PositionLED_PassageState"].ToString();
                pLED.PositionLED_State    = dr["PositionLED_State"].ToString();
                pLED.PositionLED_Font     = dr["PositionLED_Font"].ToString();
                pLED.PositionLED_FontSize = dr["PositionLED_FontSize"].ToString();
                pLED.PositionLED_Color    = dr["PositionLED_Color"].ToString();
                pLED.PositionLED_Operate  = dr["PositionLED_Operate"].ToString();
                pLED.PositionLED_Time     = Convert.ToDateTime(dr["PositionLED_Time"].ToString());
            }
            return(pLED);
        }
Пример #2
0
        /// <summary>
        /// 添加一条LED信息
        /// </summary>
        /// <param name="pLED">LED实体</param>
        /// <returns>返回执行结果 true or false</returns>
        public static bool InsertPositionLED(PositionLED pLED)
        {
            bool rbool = true;

            using (DCCarManagementDataContext db = new DCCarManagementDataContext())
            {
                try
                {
                    rbool = LinQBaseDao.InsertOne(db, pLED);
                }
                catch
                {
                    rbool = false;
                }
                finally { db.Connection.Close(); }
            }
            return(rbool);
        }
        /// <summary>
        /// 保存用户操作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnAdd_Click(object sender, EventArgs e)
        {
            try
            {
                isUpdate = 1;
                if (!ChkContent())
                {
                    return;
                }
                //判断是否修改

                //添加数据到数据库
                PositionLED pLED = new PositionLED();

                #region 获取页面的数据
                pLED.PositionLED_Position_ID = int.Parse(chkPositionLED_Position_Id.SelectedValue.ToString());
                if (cboleixing.Text == "排队信息")
                {
                    pLED.PositionLED_Type = 1;
                }
                else if (cboleixing.Text == "欢迎语")
                {
                    pLED.PositionLED_Type = 2;
                }
                pLED.PositionLED_ScreenHeight = int.Parse(txtPositionLED_ScreenHeight.Text.Trim());
                pLED.PositionLED_ScreenWeight = int.Parse(txtPositionLED_ScreenWeight.Text.Trim());
                pLED.PositionLED_X            = int.Parse(txtPositionLED_X.Text.Trim());
                pLED.PositionLED_Y            = int.Parse(txtPositionLED_Y.Text.Trim());
                pLED.PositionLED_Count        = int.Parse(cbotiaoshu.Text.Trim());
                pLED.PositionLED_Remark       = txtPositionLED_Remark.Text.Trim();
                //pLED.PositionLED_PassageState = chkboxLEDPassState.Text.ToString();


                //保存选择的字体设置项目
                pLED.PositionLED_Font     = fontdlgFont.Font.Name.ToString();
                pLED.PositionLED_FontSize = fontdlgFont.Font.Size.ToString();
                pLED.PositionLED_Color    = colordlgFont.Color.ToString();

                if (cboleixing.Text == "欢迎语")
                {
                    pLED.PositionLED_Content = "";
                    pLED.PositionLED_Operate = CommonalityEntity.USERNAME;
                    pLED.PositionLED_Time    = CommonalityEntity.GetServersTime();
                    #endregion
                    pLED.PositionLED_State = chkboxLEDState.Text.Trim();
                    if (chkboxLEDState.Text.Trim() == "启动")
                    {
                        if (ChkPositionLEDState())
                        {
                            DialogResult dlgResult = MessageBox.Show("已经存在启动状态的设置,是否替换?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                            if (dlgResult == DialogResult.OK)
                            {
                                //修改条件
                                Expression <Func <PositionLED, bool> > fun = n => n.PositionLED_State == "启动" && n.PositionLED_Position_ID == int.Parse(chkPositionLED_Position_Id.SelectedValue.ToString());
                                //需要修改的内容
                                Action <PositionLED> action = p =>
                                {
                                    p.PositionLED_State = "暂停";
                                };
                                //执行更新
                                PositionLEDDAL.UpdatePositionLED(fun, action);
                                PositionLEDDAL.InsertPositionLED(pLED);
                            }
                            else
                            {
                                pLED.PositionLED_State = "暂停";
                                PositionLEDDAL.InsertPositionLED(pLED);
                            }
                        }
                        else
                        {
                            PositionLEDDAL.InsertPositionLED(pLED);
                        }
                    }
                    else
                    {
                        PositionLEDDAL.InsertPositionLED(pLED);
                    }
                    DataTable dt             = dt = LinQBaseDao.Query("select PositionLED_ID,PositionLED_State from PositionLED order by PositionLED_ID desc").Tables[0];
                    string    positionled_id = dt.Rows[0][0].ToString();
                    string    state          = dt.Rows[0][1].ToString();
                    if (state == "启动")
                    {
                        CommonalityEntity.WriteLogData("新增", "新增并启动编号为:" + positionled_id + "的LED显示信息", CommonalityEntity.USERNAME);//添加操作日志
                    }
                    else
                    {
                        CommonalityEntity.WriteLogData("新增", "新增编号为:" + positionled_id + "的LED显示信息", CommonalityEntity.USERNAME);//添加操作日志
                    }
                }
                else if (cboleixing.Text == "排队信息")
                {
                    string serialnumber = "";
                    string carType      = "";
                    string carNumber    = "";
                    if (chkCarNumber.Checked)
                    {
                        carNumber = chkCarNumber.Text.Trim() + ",";
                    }
                    if (chkCarType.Checked)
                    {
                        carType = chkCarType.Text.Trim() + ",";
                    }
                    if (chkSerialnumber.Checked)
                    {
                        serialnumber = "distinct(" + chkSerialnumber.Text.Trim() + "),";
                    }
                    string chklists = "";
                    if (list.Count() > 1)
                    {
                        foreach (var item in list)
                        {
                            chklists += (item.ToString() + ",");
                        }
                        list.Clear();
                    }
                    string listsql = serialnumber + carNumber + carType + chklists;
                    listsql = listsql.TrimEnd(',');
                    //限定选择的显示内容只能为3个
                    string[] split = listsql.Split(',');
                    int      num   = 0;
                    for (int i = 0; i < split.Length; i++)
                    {
                        num++;
                    }
                    if (num > 3)
                    {
                        MessageBox.Show("排队信息显示的项目最多选择3项", "错误提示");
                        return;
                    }
                    else
                    {
                        string sql = "Select " + listsql + " from View_LEDShow_zj";
                        pLED.PositionLED_Content = sql;
                        pLED.PositionLED_Operate = CommonalityEntity.USERNAME;
                        pLED.PositionLED_Time    = CommonalityEntity.GetServersTime();
                        pLED.PositionLED_State   = chkboxLEDState.Text.Trim();
                        if (chkboxLEDState.Text.Trim() == "启动")
                        {
                            if (ChkPositionLEDState())
                            {
                                DialogResult dlgResult = MessageBox.Show("已经存在启动状态的设置,是否替换?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                                if (dlgResult == DialogResult.OK)
                                {
                                    //修改条件
                                    Expression <Func <PositionLED, bool> > fun = n => n.PositionLED_State == "启动" && n.PositionLED_Position_ID == int.Parse(chkPositionLED_Position_Id.SelectedValue.ToString());
                                    //需要修改的内容
                                    Action <PositionLED> action = p =>
                                    {
                                        p.PositionLED_State = "暂停";
                                    };
                                    //执行更新
                                    PositionLEDDAL.UpdatePositionLED(fun, action);
                                    PositionLEDDAL.InsertPositionLED(pLED);
                                }
                                else
                                {
                                    pLED.PositionLED_State = "暂停";
                                    PositionLEDDAL.InsertPositionLED(pLED);
                                }
                            }
                            else
                            {
                                PositionLEDDAL.InsertPositionLED(pLED);
                            }
                        }
                        else
                        {
                            PositionLEDDAL.InsertPositionLED(pLED);
                        }
                        DataTable dt             = dt = LinQBaseDao.Query("select PositionLED_ID,PositionLED_State from PositionLED order by PositionLED_ID desc").Tables[0];
                        string    positionled_id = dt.Rows[0][0].ToString();
                        string    state          = dt.Rows[0][1].ToString();
                        if (state == "启动")
                        {
                            CommonalityEntity.WriteLogData("新增", "新增并启动编号为:" + positionled_id + "的LED显示信息", CommonalityEntity.USERNAME);//添加操作日志
                        }
                        else
                        {
                            CommonalityEntity.WriteLogData("新增", "新增编号为:" + positionled_id + "的LED显示信息", CommonalityEntity.USERNAME);//添加操作日志
                        }
                    }
                }
            }
            catch
            {
                //记录错误日志
                CommonalityEntity.WriteTextLog("LEDSetForm btnAdd_Click()");
            }
            finally
            {
                GetGriddataviewLoad("");//绑定列表
                Empty();
            }
        }
        /// <summary>
        /// 加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LEDPreviewForm_Load(object sender, EventArgs e)
        {
            try
            {
                DataTable dts = LinQBaseDao.Query("select CarType_ID,CarType_DriSName from CarType where CarType_State='启动'").Tables[0];
                if (dts.Rows.Count > 0)
                {
                    for (int i = 0; i < dts.Rows.Count; i++)
                    {
                        int kk = Convert.ToInt32(LinQBaseDao.GetSingle("select count(0) from  ManagementStrategy where ManagementStrategy_DriSName='" + dts.Rows[i][1].ToString() + "' and ManagementStrategy_ControlInfo_ID in(select ControlInfo_ID from ControlInfo where ControlInfo_Name='排队') and ManagementStrategy_State='启动' ").ToString());
                        if (kk == 0)
                        {
                            cartypeid += dts.Rows[i][0].ToString() + ",";
                        }
                    }
                }
                cartypeid = cartypeid.TrimEnd(',');

                //读取LED配置项
                string sql = "select * from PositionLED where PositionLED_State='启动' and PositionLED_Position_ID=" + SystemClass.PositionID + "";
                pled = PositionLEDDAL.GetLED(sql);

                //加载时将窗体显示位置修改到指定位置
                int X = Convert.ToInt32(pled.PositionLED_X);
                int Y = Convert.ToInt32(pled.PositionLED_Y);
                this.Location = new Point(X, Y);
                fontsize      = Convert.ToInt32(pled.PositionLED_FontSize);

                //判断当前门岗是否有LED的配置信息
                if (pled.PositionLED_ID <= 0)
                {
                    lbltishi.Visible         = true;
                    lblleixingting.Visible   = false;
                    lblleixingzhi.Visible    = false;
                    lblChePaiting.Visible    = false;
                    lblpaiduihaoting.Visible = false;
                    lblMenGangting.Visible   = false;
                    lblTongDaoting.Visible   = false;
                    lbltishi.Text            = "当前登录门岗\r\n暂无LED显示配置信息,\r\n请先配置对应门岗显示信息!!!";
                    return;
                }
                else
                {
                    try
                    {
                        //读取配置的高宽(高度与宽度是反的)
                        int weight = Convert.ToInt32(pled.PositionLED_ScreenWeight);
                        int heifht = Convert.ToInt32(pled.PositionLED_ScreenHeight);
                        this.Size = new Size(weight, heifht);

                        //读取配置的字体颜色
                        string s  = pled.PositionLED_Color;
                        int    cd = s.Length - 8;
                        yanse = s.Substring(7, cd);

                        if (pled.PositionLED_Type == 1)
                        {
                            timer1.Enabled = true;

                            BindCountting();
                            BindTypeting();
                            Bindting();
                        }
                        else if (pled.PositionLED_Type == 2)
                        {
                            lblhuanyingyu.Visible    = true;
                            lblleixingting.Visible   = false;
                            lblleixingzhi.Visible    = false;
                            lblChePaiting.Visible    = false;
                            lblpaiduihaoting.Visible = false;
                            lblMenGangting.Visible   = false;
                            lblTongDaoting.Visible   = false;
                            lblhuanyingyu.Text       = pled.PositionLED_Remark.ToString();
                            return;
                        }
                    }
                    catch
                    {
                        //将类型的循环标识加1
                        typecountting = typecountting + 1;
                        if (typecountting >= typeting)
                        {
                            typecountting = 0;
                        }
                        BindTypeting();
                        Bindting();
                    }
                }
            }
            catch
            {
            }
        }
        /// <summary>
        /// 加载
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void LEDPreviewForm_Load(object sender, EventArgs e)
        {
            //读取LED配置项
            string sql = "select * from PositionLED where PositionLED_State='启动' and PositionLED_Position_ID=" + SystemClass.PositionID + "";

            pLED = PositionLEDDAL.GetLED(sql);

            //加载时将窗体显示位置修改到指定位置
            int X = Convert.ToInt32(pLED.PositionLED_X);
            int Y = Convert.ToInt32(pLED.PositionLED_Y);

            this.Location = new Point(X, Y);

            //判断当前门岗是否有LED的配置信息
            if (pLED.PositionLED_ID <= 0)
            {
                lbltishi.Visible = true;
                lbltishi.Text    = "当前登录门岗\r\n暂无LED显示配置信息,\r\n请先配置对应门岗显示信息";
                return;
            }
            else
            {
                DataTable dts = LinQBaseDao.Query("select CarType_ID from CarType where CarType_State='启动'").Tables[0];
                if (dts.Rows.Count > 0)
                {
                    for (int i = 0; i < dts.Rows.Count; i++)
                    {
                        // and ManagementStrategy_State='启动'
                        int kk = Convert.ToInt32(LinQBaseDao.GetSingle("select count(0) from  ManagementStrategy where ManagementStrategy_CarType_ID=" + dts.Rows[i][0].ToString() + " and ManagementStrategy_ControlInfo_ID in(select ControlInfo_ID from ControlInfo where ControlInfo_Name='排队')").ToString());
                        if (kk == 0)
                        {
                            cartypeid += dts.Rows[i][0].ToString() + ",";
                        }
                    }
                }
                cartypeid = cartypeid.TrimEnd(',');

                //读取配置的高宽(高度与宽度是反的)
                int weight = Convert.ToInt32(pLED.PositionLED_ScreenWeight);
                int heifht = Convert.ToInt32(pLED.PositionLED_ScreenHeight);
                this.Size = new Size(weight, heifht);

                //读取配置的字体颜色
                string s  = pLED.PositionLED_Color;
                int    cd = s.Length - 8;
                yanse = s.Substring(7, cd);

                if (pLED.PositionLED_Type == 1)//1为显示排队信息
                {
                    try
                    {
                        BindCount();
                        if (type == 0)
                        {
                            lbltishi.Visible = true;
                            lbltishi.Text    = "一级防火单位,严禁将烟火带入厂区,否则引发事故将移送公安机关处理!!!";
                        }
                        else
                        {
                            BindType();
                            timer1.Enabled   = false; //将刷类型的闹钟关闭
                            lbltishi.Visible = false; //将提示语的LBL关闭
                            TimerLED.Enabled = true;  //只有在显示排队信息时才将闹钟打开
                        }
                    }
                    catch
                    {
                        count = count + 1;
                        if (count == type)
                        {
                            count = 0;
                        }
                        BindType();
                    }
                }
                else if (pLED.PositionLED_Type == 2)//2为显示欢迎语
                {
                    lblhuanyingyu.Visible = true;
                    lblhuanyingyu.Text    = pLED.PositionLED_Remark;
                }
            }
        }