Пример #1
0
        protected override void DoEnter()
        {
            if (string.IsNullOrEmpty(ToolingIdTxt.Text) || string.IsNullOrEmpty(ToolingNameTxt.Text) || string.IsNullOrEmpty(ToolingTypeTxt.Text))
            {
                FrmDialog.ShowDialog(this, "工量具信息不准确,请重新扫码");
                return;
            }
            if (string.IsNullOrEmpty(ShelvesNameTxt.Text) || string.IsNullOrEmpty(ShelvesIdTxt.Text))
            {
                FrmDialog.ShowDialog(this, "货架信息不准确,请重新扫码");
                return;
            }

            var dialogResult = FrmDialog.ShowDialog(this, "是否确认绑定?", "确认", true);

            if (dialogResult == DialogResult.OK)
            {
                BindingTooling();
            }

            FrmDialog.ShowDialog(this, "绑定成功!");
            Close();
            serialPort1.Close();
        }
Пример #2
0
        private void btnOK_BtnClick(object sender, EventArgs e)
        {
            if (FrmDialog.ShowDialog(this, "保存后需要重新启动系统,是否要保存?", "保存提示", true, true, true, true) == DialogResult.OK)
            {
                try
                {
                    TcpPackConfig.ReceiveBufferSize = int.Parse(ucReceiveBufferSize.InputText);
                    TcpPackConfig.SendBufferSize    = int.Parse(ucSendBufferSize.InputText);
                    TcpPackConfig.ReceiveTimeout    = int.Parse(ucReceiveTimeout.InputText);
                    TcpPackConfig.SendTimeout       = int.Parse(ucSendTimeout.InputText);
                    TcpPackConfig.HeartBeat         = tbHeart.Text;
                    TcpPackConfig.HeadPack          = tbHead.Text;
                    TcpPackConfig.TailPack          = tbTail.Text;
                    TcpPackConfig.DelayTime         = int.Parse(ucDelayTime.InputText);

                    IOCenterManager.IOProject.ServerConfig.WriteConfig();
                    this.DialogResult = DialogResult.OK;
                }
                catch (Exception ex)
                {
                    IOCenterManager.QueryFormManager.DisplyException(ex);
                }
            }
        }
Пример #3
0
        protected override void DoEnter()
        {
            if (string.IsNullOrEmpty(ProductNameTxt.Text) || string.IsNullOrEmpty(ProductBornCodeTxt.Text))
            {
                FrmDialog.ShowDialog(this, "产品信息不准确,请重新扫码");
                return;
            }
            if (string.IsNullOrEmpty(ShelvesNameTxt.Text) || string.IsNullOrEmpty(ShelvesIdTxt.Text))
            {
                FrmDialog.ShowDialog(this, "货架信息不准确,请重新扫码");
                return;
            }

            if (AlreadyInJudge())
            {
                BeginInvoke(new Action((() =>
                {
                    ProductBornCodeTxt.Clear();
                    ProductNameTxt.Clear();
                    ShelvesNameTxt.Clear();
                    ShelvesIdTxt.Clear();
                })));
                return;
            }

            var dialogResult = FrmDialog.ShowDialog(this, "是否确认入库?", "确认", true);

            if (dialogResult == DialogResult.OK)
            {
                PutIn();
            }

            FrmDialog.ShowDialog(this, "入库成功!");
            Close();
            serialPort1.Close();
        }
Пример #4
0
 public override void btnOK_BtnClick(object sender, EventArgs e)
 {
     if (ProjectTitle.Trim() == "")
     {
         FrmDialog.ShowDialog(this, "请输入工程名称!");
         return;
     }
     if (Password.Trim() == "")
     {
         FrmDialog.ShowDialog(this, "请输入工程加密密码!");
         return;
     }
     if (Password.Trim() != this.tbConfirm.Text.Trim())
     {
         FrmDialog.ShowDialog(this, "密码和确认密码不一致!");
         return;
     }
     if (FileFullName == "")
     {
         FrmDialog.ShowDialog(this, "请选择存储位置!");
         return;
     }
     this.DialogResult = DialogResult.OK;
 }
Пример #5
0
        void submit()
        {
            //上
            if (ucNumTextBox3.Num != 0)
            {
                double value = (double)ucNumTextBox3.Num;
                u.SetValue(4, value);
            }
            if (ucNumTextBox9.Num != 1)
            {
                double value = (double)ucNumTextBox9.Num;
                u.SetValue(10, value);
            }

            //中
            if (ucNumTextBox1.Num != 1)
            {
                double value = (double)ucNumTextBox1.Num;
                u.SetValue(2, value);
            }
            if (ucNumTextBox2.Num != 1)
            {
                double value = (double)ucNumTextBox2.Num;
                u.SetValue(1, value);
            }
            //13
            if (ucNumTextBox6.Num != 1)
            {
                double value = (double)ucNumTextBox6.Num;
                u.SetValue(8, value);
            }
            if (ucNumTextBox8.Num != 1)
            {
                double value = (double)ucNumTextBox8.Num;
                u.SetValue(9, value);
            }
            if (ucNumTextBox10.Num != 1)
            {
                double value = (double)ucNumTextBox10.Num;
                u.SetValue(11, value);
            }
            //31
            if (ucNumTextBox4.Num != 1)
            {
                double value = (double)ucNumTextBox4.Num;
                u.SetValue(5, value);
            }
            if (ucNumTextBox5.Num != 1)
            {
                double value = (double)ucNumTextBox5.Num;
                u.SetValue(7, value);
            }

            //下
            if (ucNumTextBox14.Num != 1)
            {
                double value = (double)ucNumTextBox14.Num;
                u.SetValue(12, value);
            }
            if (ucNumTextBox13.Num != 1)
            {
                double value = (double)ucNumTextBox13.Num;
                u.SetValue(13, value);
            }
            if (ucNumTextBox12.Num != 1)
            {
                double value = (double)ucNumTextBox12.Num;
                u.SetValue(14, value);
            }

            try
            {
                if (ucTextBoxEx2.InputText.Length != 0)
                {
                    double value = double.Parse(ucTextBoxEx2.InputText);
                    if (value != 0)
                    {
                        u.SetValue(3, value);
                    }
                }
            }
            catch (Exception ex)
            {
                FrmDialog.ShowDialog(this, "存在非法输入\n" + ex.Message, "输入提示");
            }

            if (ucCombox1.SelectedText.Equals("泥浆泵1"))
            {
                u.SetValue(6, 1.0);
            }
            else if (ucCombox1.SelectedText.Equals("泥浆泵2"))
            {
                u.SetValue(6, 2.0);
            }
            else if (ucCombox1.SelectedText.Equals("泥浆泵3"))
            {
                u.SetValue(6, 3.0);
            }
        }
        private void InputSelfItem()
        {
            //判断产品质量数据表中有没有原始数据
            //如果有的话就是更新操作
            using (var context = new Model())
            {
                //在产品质量数据表中根据产品出生证和工序号/检验结果为空 来获得录入过的数据
                var cProductQualityDatas = context.C_ProductQualityData.Where(s =>
                                                                              s.ProductBornCode == _productBornCode && s.ProcedureCode == _cProductProcessing.ProcedureCode &&
                                                                              s.CheckResult == null).OrderBy(s => s.ItemID).ToList();
                if (cProductQualityDatas.Count > 0)
                {
                    foreach (var cProductQualityData in cProductQualityDatas)
                    {
                        var trim = panel3.Controls[$"{cProductQualityData.ItemCode}txt"].Text.Trim();
                        decimal.TryParse(trim, out var txtDecimalValue);
                        if (string.IsNullOrEmpty(trim))
                        {
                            cProductQualityData.CollectValue = null;
                        }
                        else
                        {
                            cProductQualityData.CollectValue = txtDecimalValue;
                        }

                        cProductQualityData.CreateTime = context.GetServerDate();
                    }
                    context.SaveChanges();
                    FrmDialog.ShowDialog(this, "自检项录入成功", "录入成功");
                    ChangeBgColor();
                    Close();
                }
                else
                {
                    //构建产品加工过程表和产品质量数据表的映射关系
                    var mapperConfiguration = new MapperConfiguration(cfg =>
                                                                      cfg.CreateMap <C_ProductProcessing, C_ProductQualityData>());

                    //构建工序自检项配置表和产品质量数据表的映射关系
                    var mapperConfiguration1 = new MapperConfiguration(cfg =>
                                                                       cfg.CreateMap <A_ProcedureSelfCheckingConfig, C_ProductQualityData>());

                    foreach (var aProcedureSelfCheckingConfig in _aProcedureSelfCheckingConfigs)
                    {
                        //automapper
                        var mapper1             = mapperConfiguration1.CreateMapper();
                        var cProductQualityData = mapper1.Map <C_ProductQualityData>(aProcedureSelfCheckingConfig);
                        //automapper
                        var mapper             = mapperConfiguration.CreateMapper();
                        var productQualityData = mapper.Map <C_ProductProcessing, C_ProductQualityData>(_cProductProcessing, cProductQualityData);

                        //录入值
                        var txtValue = panel3.Controls.Find(aProcedureSelfCheckingConfig.ItemCode + "txt", false).First().Text.Trim();
                        var tryParse = decimal.TryParse(txtValue, out var txtDecimalValue);
                        if (string.IsNullOrEmpty(txtValue))
                        {
                            productQualityData.CollectValue = null;
                        }
                        else if (tryParse)
                        {
                            productQualityData.CollectValue = txtDecimalValue;
                        }
                        else
                        {
                            FrmDialog.ShowDialog(this, "输入数据格式不正确", "格式异常");
                            return;
                        }

                        //(补充信息)
                        productQualityData.CheckType      = (int?)CheckType.SelfCheck;
                        productQualityData.ItemID         = aProcedureSelfCheckingConfig.ID;
                        productQualityData.CheckStaffCode = _staffCode;
                        productQualityData.CheckStaffName = _staffName;
                        productQualityData.CreateTime     = context.GetServerDate();

                        context.C_ProductQualityData.Add(productQualityData);
                    }

                    context.SaveChanges();
                    FrmDialog.ShowDialog(this, "自检项录入成功", "录入成功");
                    ChangeBgColor();
                    Close();
                }
            }
        }
Пример #7
0
        private bool IsCheckResult()
        {
            using (var context = new Model())
            {
                //在产品加工过程表中根据产品出生证  获取元数据
                _cProductProcessing =
                    context.C_ProductProcessing.Where(s => s.ProductBornCode == _productBornCode)
                    .OrderByDescending(s => s.OnlineTime).FirstOrDefault();
                //在产品加工档案表中 根据设备号/计划号/产品id/工序号/下线时间排序 获取紧前产品
                var cProductProcessingDocument = context.C_ProductProcessingDocument.Where(s => s.EquipmentID.ToString() == _equipmentId &&
                                                                                           s.ProductID == _cProductProcessing.ProductID && s.ProcedureID == _cProductProcessing
                                                                                           .ProcedureID && s.PlanID == _cProductProcessing.PlanID
                                                                                           ).OrderByDescending(s => s.OfflineTime).FirstOrDefault();
                if (cProductProcessingDocument != null)
                {
                    var apsProcedureTaskDetail = context.APS_ProcedureTaskDetail.First(s =>
                                                                                       s.ProductBornCode == cProductProcessingDocument.ProductBornCode && s.ProcedureCode == cProductProcessingDocument.ProcedureCode &&
                                                                                       s.IsAvailable == true && s.EquipmentID == _cProductProcessing.EquipmentID);
                    //如果是送检的话
                    if (apsProcedureTaskDetail.IsInspect == 1)
                    {
                        //在产品检验档案表中根据出生证/检验类型(三坐标)/工序编号/计划号/设备编号 获取产品检验档案数据
                        var cCheckProcessingDocument = context.C_CheckProcessingDocument.FirstOrDefault(s =>
                                                                                                        s.ProductBornCode == cProductProcessingDocument.ProductBornCode && s.CheckType == (decimal?)CheckType.ThreeCoordinate &&
                                                                                                        s.ProcedureCode == cProductProcessingDocument.ProcedureCode &&
                                                                                                        s.PlanID == cProductProcessingDocument.PlanID);

                        if (cCheckProcessingDocument.Offline_type == null)
                        {
                            FrmDialog.ShowDialog(this, "紧前产品送检结果未生成", "提示");
                            return(false);
                        }

                        // //在产品质量数据表中判断是否有结果了(这里要检索的是质检类型为三坐标的质检任务是否有结果了)
                        // var cProductQualityDatas = context.C_ProductQualityData.Where(s =>
                        //     s.ProductBornCode == cProductProcessingDocument.ProductBornCode && s.ProductID == _cProductProcessing.ProductID
                        //     && s.PlanID == _cProductProcessing.PlanID && s.ProcedureID == _cProductProcessing.ProcedureID && s.CheckType == (int?)CheckType.ThreeCoordinate).ToList();
                        // if (cProductQualityDatas.Any())
                        // {
                        //     foreach (var cProductQualityData in cProductQualityDatas)
                        //     {
                        //         if (cProductQualityData.CheckResult == null)
                        //         {
                        //             FrmDialog.ShowDialog(this, "紧前产品送检结果未生成", "提示");
                        //             return false;
                        //         }
                        //     }
                        // }
                        // else
                        // {
                        //     //如果为空 , 就说明该工序的三坐标质检任务没有结果
                        //     FrmDialog.ShowDialog(this, "紧前产品送检结果未生成", "提示");
                        //     return false;
                        // }
                    }

                    // //如果不送检的话 就要判断是否有不良下机
                    // if (cProductProcessingDocument.Offline_type == 3)
                    // {
                    //     //在产品质量数据表中判断是否有结果了
                    //     var cProductQualityData = context.C_ProductQualityData.First(s =>
                    //         s.ProductBornCode == cProductProcessingDocument.ProductBornCode);
                    //     if (cProductQualityData.CheckResult == null)
                    //     {
                    //         FrmDialog.ShowDialog(this, "紧前产品送检结果未生成", "提示");
                    //         return false;
                    //     }
                    // }
                    //
                    // //在检验档案表里 根据紧前产品的工序号/下线时间排序获得检验数据
                    // var cCheckProcessingDocument = context.C_CheckProcessingDocument.Where(s =>
                    //         s.ProductBornCode == cProductProcessingDocument.ProductBornCode
                    //         && s.ProcedureCode == cProductProcessingDocument.ProcedureCode)
                    //     .OrderByDescending(s => s.OfflineTime).FirstOrDefault();
                    // //如果不送检的话 就要判断是否有返修
                    // if (cCheckProcessingDocument != null)
                    // {
                    //     if (cCheckProcessingDocument.Offline_type == 3)
                    //     {
                    //         //在产品质量数据表中判断是否有结果了
                    //         var cProductQualityData = context.C_ProductQualityData.First(s =>
                    //             s.ProductBornCode == cProductProcessingDocument.ProductBornCode);
                    //         if (cProductQualityData.CheckResult == null)
                    //         {
                    //             FrmDialog.ShowDialog(this, "紧前产品送检结果未生成", "提示");
                    //             return false;
                    //         }
                    //     }
                    // }
                    return(true);
                }
                return(true);
            }
        }
Пример #8
0
        /// <summary>
        /// 登录按钮被点击
        /// </summary>
        private void ucBtnExt_Login_BtnClick(object sender, EventArgs e)
        {
            ucBtnExt_Login.FillColor = Color.FromArgb(155, 155, 155);
            ucBtnExt_Login.Enabled   = false;

            string ret = Verify.Login(ucTextBoxEx_Key.InputText, localVersion, IpConfig.GetMac());

            if (ret.Length == 32)//登录成功
            {
                //登录按钮消失,进度条取代,进行必要的变量的声明
                ucBtnExt_Login.Visible = false;
                ucProcessLine.Visible  = true;
                ucProcessLine.Location = ucBtnExt_Login.Location;
                string expiredTimeS     = null;
                string diskSerialNumber = SystemConfig.GetDiskSerialNumber();
                bool   isDownload       = false;

                Thread loginSuccessThread = new Thread(() =>
                {
                    //对userLoginData进行赋值
                    userLoginData.Key          = ucTextBoxEx_Key.InputText;
                    userLoginData.StatusCode   = ret;
                    expiredTimeS               = Verify.GetExpired(userLoginData.Key);
                    userLoginData.ExpiredTimeS = expiredTimeS;
                    DateTime expiredTime       = Convert.ToDateTime(userLoginData.ExpiredTimeS);
                    userLoginData.ExpiredTime  = expiredTime;

                    //取到期时间的时间间隔
                    TimeSpan ts = expiredTime.Subtract(Convert.ToDateTime(GetData.GetNetDateTime()));   //用网络时间进行计算

                    label_Status.ForeColor = Color.FromArgb(66, 66, 66);
                    label_Status.Text      = String.Format("{0}{1}天{2}时{3}分", "卡密剩余时间:", ts.Days.ToString(), ts.Hours.ToString(), ts.Minutes.ToString());

                    //写配置文件保存卡密
                    OperateIniFile.WriteIniData("Ares", "Key", Encrypt.DES(userLoginData.Key, "areskeys"), "logindata.ini");

                    //核心数据取COS下载数据并解析
                    string appCode = Verify.GetAppCore(userLoginData.StatusCode, userLoginData.Key);
                    if (appCode == "-1")
                    {
                        FrmDialog.ShowDialog(this, "Ares无法下载核心云端数据\n\n点击\"确定\"按钮退出Ares软件", "Ares - 致命错误");
                        Environment.Exit(0);
                    }
                    if (appCode.Length <= 10)
                    {
                        FrmDialog.ShowDialog(this, "Ares下载的核心云端数据不合法\n\n点击\"确定\"按钮退出Ares软件", "Ares - 致命错误");
                        Environment.Exit(0);
                    }
                    DllDownloadData dllDownloadData = JsonConvert.DeserializeObject <DllDownloadData>(appCode);

                    //判断文档中的 TencentCos 文件夹是否存在,不存在就新建一个
                    if (Directory.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + diskSerialNumber) != true)
                    {
                        try
                        {
                            Directory.CreateDirectory(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + diskSerialNumber);
                        }
                        catch
                        {
                            FrmDialog.ShowDialog(this, "Ares申请的读写目录权限申请失败\n\n点击\"确定\"按钮退出Ares软件", "Ares - 致命错误");
                            Environment.Exit(0);
                        }
                        Console.WriteLine("TencentCos文件夹不存在,已经新建完毕");
                    }

                    //文件是否已经存在,存在就不再下载,节省流量
                    if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + diskSerialNumber + "\\" + Decrypt.DES(dllDownloadData.LocalFileName, Decrypt.DES(webApiUrlData.Key, "actingnb"))) == true)
                    {
                        //文件存在,进行MD5校验,校验通过就不重新下载了
                        string existFileMD5 = MD5.GetMD5HashFromFile(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + diskSerialNumber + "\\" + Decrypt.DES(dllDownloadData.LocalFileName, Decrypt.DES(webApiUrlData.Key, "actingnb")));
                        if (existFileMD5 != "-1")                                                                             //验证是否成功取到MD5
                        {
                            if (existFileMD5 == Decrypt.DES(dllDownloadData.MD5, Decrypt.DES(webApiUrlData.Key, "actingnb"))) //验证MD5是否与服务器的相符
                            {
                                isDownload          = false;                                                                  //MD5相符,不需要重新下载
                                ucProcessLine.Value = 100;
                                Console.WriteLine("MD5相符,不需要重新下载");
                            }
                            else
                            {
                                isDownload = true;//MD5不符,需要重新下载
                                Console.WriteLine("MD5不符,需要重新下载");
                            }
                        }
                    }
                    else
                    {
                        isDownload = true;//文件不存在,进行下载
                        Console.WriteLine("文件不存在,进行下载");
                    }

                    //云下载DLL
                    if (isDownload == true)
                    {
                        string secretId  = Decrypt.DES(dllDownloadData.SecretId, Decrypt.DES(webApiUrlData.Key, "actingnb"));  // API SecretId
                        string secretKey = Decrypt.DES(dllDownloadData.SecretKey, Decrypt.DES(webApiUrlData.Key, "actingnb")); // API SecretKey
                        string region    = Decrypt.DES(dllDownloadData.Region, Decrypt.DES(webApiUrlData.Key, "actingnb"));    // 存储桶所在地域

                        CosXmlConfig config = new CosXmlConfig.Builder()                                                       //普通初始化方式
                                              .IsHttps(true)                                                                   //设置默认 HTTPS 请求
                                              .SetRegion(region)
                                              .SetDebugLog(true)
                                              .Build();

                        long durationSecond = 600;  //每次请求签名有效时长,单位为秒
                        QCloudCredentialProvider cosCredentialProvider = new DefaultQCloudCredentialProvider(secretId, secretKey, durationSecond);

                        CosXml cosXml = new CosXmlServer(config, cosCredentialProvider);

                        try
                        {
                            string bucket            = Decrypt.DES(dllDownloadData.Bucket, Decrypt.DES(webApiUrlData.Key, "actingnb"));            //存储桶,格式:BucketName-APPID
                            string key               = Decrypt.DES(dllDownloadData.Key, Decrypt.DES(webApiUrlData.Key, "actingnb"));               //对象键
                            string localDir          = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + diskSerialNumber; //下载到的目录 不需要文件名
                            string localFileName     = Decrypt.DES(dllDownloadData.LocalFileName, Decrypt.DES(webApiUrlData.Key, "actingnb"));     //指定本地保存的文件名
                            GetObjectRequest request = new GetObjectRequest(bucket, key, localDir, localFileName);
                            //设置进度回调
                            request.SetCosProgressCallback(delegate(long completed, long total)
                            {
                                //Console.WriteLine(String.Format("progress = {0:##.##}%", completed * 100.0 / total));
                                ucProcessLine.Value = Convert.ToInt32(completed * 100.0 / total);
                            });
                            //执行请求
                            GetObjectResult result = cosXml.GetObject(request);
                            //请求成功
                            Console.WriteLine(result.GetResultInfo());
                        }
                        catch (CosClientException clientEx)
                        {
                            //请求失败
                            //MessageBox.Show("CosClientException: " + clientEx);
                            FrmDialog.ShowDialog(this, "Ares无法下载核心云端文件\n\n点击\"确定\"按钮退出Ares软件" + "CosClientException: " + clientEx, "Ares - 致命错误");
                            Environment.Exit(0);
                        }
                        catch (CosServerException serverEx)
                        {
                            //请求失败
                            //MessageBox.Show("CosServerException: " + serverEx.GetInfo());
                            FrmDialog.ShowDialog(this, "Ares无法下载核心云端文件\n\n点击\"确定\"按钮退出Ares软件" + "CosServerException: " + serverEx.GetInfo(), "Ares - 致命错误");
                            Environment.Exit(0);
                        }

                        //下载完成后判断文件是否已经存在,不存在就是下载失败
                        if (File.Exists(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + diskSerialNumber + "\\" + Decrypt.DES(dllDownloadData.LocalFileName, Decrypt.DES(webApiUrlData.Key, "actingnb"))) == true)
                        {
                            //文件存在,进行MD5校验,校验通过就不重新下载了
                            string existFileMD5 = MD5.GetMD5HashFromFile(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "\\" + diskSerialNumber + "\\" + Decrypt.DES(dllDownloadData.LocalFileName, Decrypt.DES(webApiUrlData.Key, "actingnb")));
                            if (existFileMD5 != "-1")                                                                             //验证是否成功取到MD5
                            {
                                if (existFileMD5 != Decrypt.DES(dllDownloadData.MD5, Decrypt.DES(webApiUrlData.Key, "actingnb"))) //验证MD5是否与服务器的相符
                                {
                                    FrmDialog.ShowDialog(this, "Ares下载的核心云端文件与服务器不符\n\n点击\"确定\"按钮退出Ares软件", "Ares - 致命错误");
                                    Console.WriteLine("下载的文件MD5不符");
                                    Environment.Exit(0);
                                }
                            }
                        }
                        else
                        {
                            FrmDialog.ShowDialog(this, "Ares未能成功下载核心云端文件\n\n点击\"确定\"按钮退出Ares软件", "Ares - 致命错误"); //下载的文件不存在
                            Console.WriteLine("下载的文件不存在");
                            Environment.Exit(0);
                        }
                    }
                    //设置用户数据,上传用户的QQ和硬件信息
                    List <string> onlineQQList = GetQQNumber.GetOnlineQQ();//获取在线QQ
                    string onlineQQ            = string.Empty;
                    if (onlineQQList.Count > 0)
                    {
                        foreach (string i in onlineQQList)
                        {
                            onlineQQ = onlineQQ + i + "  ";
                        }
                    }
                    else
                    {
                        onlineQQ = "None";
                    }

                    UserUpdateData userUpdateData = new UserUpdateData()
                    {
                        OnlineQQ         = onlineQQ,
                        DiskSerialNumber = SystemConfig.GetDiskSerialNumber(),
                        CpuID            = SystemConfig.GetCpuID(),
                        BoardId          = SystemConfig.GetBoardId()
                    };
                    string setRetCode = Verify.SetUserData(userLoginData.StatusCode, userLoginData.Key, JsonConvert.SerializeObject(userUpdateData));


                    //载入主窗口
                    this.Visible = false;
                    Application.Run(new MainForm(userLoginData));
                });
                loginSuccessThread.Start();
            }
            else
            {
                //登录失败
                if (ret == "-402")//判断是否需要解绑
                {
                    if (FrmDialog.ShowDialog(this, "当前卡密未在绑定的电脑上登录\n\n点击\"确定\"按钮为您打开解绑窗口来解绑新的机器码\n\n点击\"取消\"按钮取消解绑操作并回到主界面", "Ares - 卡密解绑", true) == DialogResult.OK)
                    {
                        HwidResetForm hwidResetForm = new HwidResetForm(Verify, ucTextBoxEx_Key.InputText, Root.HwidResetContent.Replace("*", Environment.NewLine));
                        hwidResetForm.ShowDialog();
                        ucBtnExt_Login.FillColor = Color.FromArgb(221, 31, 50);
                        ucBtnExt_Login.Enabled   = true;
                    }
                    else
                    {
                        ucBtnExt_Login.FillColor = Color.FromArgb(221, 31, 50);
                        ucBtnExt_Login.Enabled   = true;
                        label_Status.ForeColor   = Color.FromArgb(239, 51, 42);
                        label_Status.Text        = "卡密未在绑定的电脑上登录且未解绑";
                    }
                }
                else
                {
                    ucBtnExt_Login.FillColor = Color.FromArgb(221, 31, 50);
                    ucBtnExt_Login.Enabled   = true;
                    label_Status.ForeColor   = Color.FromArgb(239, 51, 42);
                    label_Status.Text        = ErrorCodeTranslation.Get(ret);
                }
            }
        }
Пример #9
0
        private void tvMenu_AfterSelect(object sender, TreeViewEventArgs e)
        {
            panControl.Controls.Clear();
            string strName = e.Node.Text.Trim();

            this.Title = "HZHControls控件库DEMO--" + strName;
            switch (strName)
            {
            case "关于授权":
                AddControl(new UCShouQuan());
                break;

                #region 窗体    English:forms
            case "提示窗体":
                if (FrmDialog.ShowDialog(this, "是否再显示一个没有取消按钮的提示框?", "模式窗体测试", true) == System.Windows.Forms.DialogResult.OK)
                {
                    FrmDialog.ShowDialog(this, "这是一个没有取消按钮的提示框", "模式窗体测试");
                }
                break;

            case "多输入窗体":
                FrmInputs frm = new FrmInputs("动态多输入窗体测试",
                                              new string[] { "姓名", "电话", "身份证号", "住址" },
                                              new Dictionary <string, HZH_Controls.TextInputType>()
                {
                    { "电话", HZH_Controls.TextInputType.Regex }, { "身份证号", HZH_Controls.TextInputType.Regex }
                },
                                              new Dictionary <string, string>()
                {
                    { "电话", "^1\\d{0,10}$" }, { "身份证号", "^\\d{0,18}$" }
                },
                                              new Dictionary <string, KeyBoardType>()
                {
                    { "电话", KeyBoardType.UCKeyBorderNum }, { "身份证号", KeyBoardType.UCKeyBorderNum }
                },
                                              new List <string>()
                {
                    "姓名", "电话", "身份证号"
                });
                frm.ShowDialog(this);
                break;

            case "气泡提示窗体":
                FrmTips.ShowTipsError(this, "Error提示信息");
                FrmTips.ShowTipsInfo(this, "Info提示信息");
                FrmTips.ShowTipsSuccess(this, "Success提示信息");
                FrmTips.ShowTipsWarning(this, "Warning提示信息");
                FrmTips.ShowTips(this, "自定义提示信息", 2000, true, ContentAlignment.MiddleCenter, null, TipsSizeMode.Medium, new Size(300, 50), TipsState.Success);
                break;

            case "有返回的窗体":
                new FrmTestFrmBack().ShowDialog(this);
                break;

            case "等待窗体":
                ControlHelper.ThreadRunExt(this, () =>
                {
                    Thread.Sleep(5000);
                    ControlHelper.ThreadInvokerControl(this, () =>
                    {
                        FrmTips.ShowTipsSuccess(this, "FrmWaiting测试");
                    });
                }, null, this);
                break;

            case "仅有标题的窗体":
                new FrmWithTitleTest().ShowDialog(this);
                break;

            case "确定取消窗体1":
                new FrmOKCancel1Test().ShowDialog(this);
                break;

            case "确定取消窗体2":
                new FrmOKCancel2Test().ShowDialog(this);
                break;

            case "资源加载窗体":
                FrmTestLoading frmLoading = new FrmTestLoading();
                frmLoading.BackgroundWorkAction = delegate()
                {
                    try
                    {
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(1, "正在初始化配置...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(10, "正在加载第一个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(20, "正在加载第二个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(30, "正在加载第三个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(40, "正在加载第四个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(50, "正在加载第五个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(60, "正在加载第六个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(70, "正在加载第七个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(80, "正在加载第八个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(90, "正在加载第九个资源...");
                        Thread.Sleep(1000);
                        frmLoading.CurrentMsg = new KeyValuePair <int, string>(1000, "数据加载完成...");
                        Thread.Sleep(1000);
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("加载资源时出现错误");
                    }
                };
                frmLoading.ShowDialog();
                break;
                #endregion

                #region 控件    English:control
            case "表单控件":
                AddControl(new UC.UCTestForms());
                break;

            case "按钮":
                AddControl(new UC.UCTestBtns());
                break;

            case "选项卡":
                AddControl(new UC.UCTestTab());
                break;

            case "树":
                AddControl(new UC.UCTestTreeview()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "列表":
                AddControl(new UC.UCTestList()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "平铺列表":
                AddControl(new UC.UCTestListView()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "垂直导航":
                AddControl(new UC.UCTestMenu()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "横向列表":
                AddControl(new UC.UCTestHorizontalList());
                break;

            case "分页控件":
                AddControl(new UC.UCTestPage());
                break;

            case "表格":
                AddControl(new UC.UCTestGridTable());
                break;

            case "表格-自定义单元格":
                AddControl(new UC.UCTestGridTableCustom());
                break;

            case "树表格":
                AddControl(new UC.UCTestTreeGridTable());
                break;

            case "进度条":
                AddControl(new UC.UCTestProcess()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "步骤控件":
                AddControl(new UC.UCTestStep()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "面包屑导航":
                AddControl(new UC.UCTestNavigation()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "文字提示":
                AddControl(new UC.UCTestTips()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "滚动文字":
                AddControl(new UC.UCTestRollText()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "滑块":
                AddControl(new UC.UCTestTrackbar()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "水波":
                AddControl(new UC.UCTestWave()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "有标题的面板":
                AddControl(new UC.UCTestPanelTitle()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "图标":
                AddControl(new UC.UCTestIcon()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "滚动条":
                AddControl(new UC.UCTestScrollbar()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "控件水印":
                AddControl(new UC.UCTestGraphicalOverlay());
                break;

            case "表单验证":
                AddControl(new UC.UCTestVerification()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "图片采样控件":
                AddControl(new UC.UCTestSampling());
                break;

            case "倒影":
                AddControl(new UC.UCTestShadow());
                break;

            case "内置颜色":
                AddControl(new UC.UCTestColors());
                break;

            case "导航菜单":
                AddControl(new UC.UCTestNavigationMenu());
                break;

            case "扩展导航菜单":
                AddControl(new UC.UCTestNavigationMenuExt());
                break;

            case "类Office导航菜单":
                AddControl(new UC.UCTestNavigationMenuOffice());
                break;

            case "分割线标签":
                AddControl(new UC.UCTestSplitLabel());
                break;

            case "时间轴":
                AddControl(new UC.UCTestTimeLine()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "穿梭框":
                AddControl(new UC.UCTestTransfer());
                break;

            case "引用区块":
                AddControl(new UC.UCTestPanelQuote());
                break;

            case "右键菜单":
                AddControl(new UC.UCTestContextMenu());
                break;
                #endregion

                #region 图表    English:Chart
            case "组织结构图":
                AddControl(new UC.UCTestMindMapping()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "滚动图表":
                AddControl(new UC.UCTestWaveChart()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "雷达图":
                AddControl(new UC.UCTestRadarChart()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "金字塔图":
                AddControl(new UC.UCTestFunnelChart());
                break;

            case "Live Charts":
                AddControl(new UC.UCTestLiveCharts());
                break;
                #endregion

                #region 工业    English:Industry
            case "LED文字":
                AddControl(new UC.UCTestLED()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "仪表":
                AddControl(new UC.UCTestMeter());
                break;

            case "管道":
                AddControl(new UC.UCTestConduit());
                break;

            case "阀门":
                AddControl(new UC.UCTestValve());
                break;

            case "鼓风机":
                AddControl(new UC.UCTestBlower());
                break;

            case "传送带":
                AddControl(new UC.UCTestConveyor());
                break;

            case "警示灯":
                AddControl(new UC.UCTestSignalLamp());
                break;

            case "箭头":
                AddControl(new UC.UCTestArrow());
                break;

            case "温度计":
                AddControl(new UC.UCTestThermometer());
                break;

            case "转子":
                AddControl(new UC.UCTestRotor());
                break;

            case "多通道转盘":
                AddControl(new UC.UCTestDialAisle());
                break;

            case "转盘":
                AddControl(new UC.UCTestTurntable());
                break;
                #endregion
            }
        }
Пример #10
0
        private void UcDataGridView2_ItemClick(object sender, DataGridViewEventArgs e)
        {
            ProductionStatusInfoPanel.Controls.Find("control001", false).First().BackColor =
                Color.LightSlateGray;
            ProductionStatusInfoPanel.Controls.Find("control002", false).First().BackColor =
                Color.LightSlateGray;
            ProductionStatusInfoPanel.Controls.Find("control003", false).First().BackColor =
                Color.LightSlateGray;

            var controls = panel10.Controls.Find("scanOnlineForm", false);

            if (controls.Any())
            {
                controls[0].Dispose();
            }

            if (!HasExitProductTask())
            {
                ProductNameTxt.Clear();
                ProductIDTxt.Clear();
                CurrentProcessTxt.Clear();
                QCTimeTxt.Clear();

                var dataGridViewRow = ucDataGridView2.SelectRow;
                var dataSource      = dataGridViewRow.DataSource;
                if (dataSource is C_CheckTask checktask)
                {
                    var dialogResult = FrmDialog.ShowDialog(this, $"确定上线选中产品[{checktask.ProductBornCode}]吗", "手检上线", true);
                    if (dialogResult == DialogResult.OK)
                    {
                        if (!DoneAllThreeCoordinate(checktask.ProductBornCode))
                        {
                            FrmDialog.ShowDialog(this, "该产品尚有三坐标质检任务未完成,请先完成!");
                            return;
                        }
                        var scanOnlineForm = new ScanOnlineForm(_staffId, _staffCode, _staffName,
                                                                checktask.ProductBornCode, _workshopId, _workshopCode, _workshopName, _equipmentId,
                                                                _equipmentCode, _equipmentName)
                        {
                            DisplayInfoToMainPanel = (s1, s2, s3, s4) =>
                            {
                                ProductIDTxt.Text      = s1;
                                ProductNameTxt.Text    = s2;
                                CurrentProcessTxt.Text = s3;
                                QCTimeTxt.Text         = s4;
                            },
                            ChangeBgColor = () =>
                            {
                                ProductionStatusInfoPanel.Controls.Find("control001", false).First().BackColor =
                                    Color.MediumSeaGreen;
                                ProductionStatusInfoPanel.Controls.Find("control002", false).First().BackColor =
                                    Color.LightSlateGray;
                                ProductionStatusInfoPanel.Controls.Find("control003", false).First().BackColor =
                                    Color.LightSlateGray;
                            }
                        };
                        if (scanOnlineForm.CheckTaskValidity(checktask.ProcedureCode))
                        {
                            scanOnlineForm.AddCntLogicPro(checktask.ProcedureCode);
                            {
                                //操作人员确认
                                if (scanOnlineForm.WorkerConfirm())
                                {
                                    //转档  检验任务表=>检验过程表
                                    scanOnlineForm.CheckProcessTurnArchives();
                                    //完善检验任务表 诸如任务状态 ; 修改人修改时间
                                    scanOnlineForm.PerfectCheckTask();
                                    //控制点转档
                                    scanOnlineForm.CntLogicTurn();
                                    InialToDoTasks();
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                ProductionStatusInfoPanel.Controls.Find("control001", false).First().BackColor =
                    Color.MediumSeaGreen;
                ReportUploadJudge();
            }
        }
        private void button1_Click(object sender, EventArgs e)
        {
            string pwd         = "";
            var    md5         = MD5.Create();
            var    computeHash = md5.ComputeHash(Encoding.UTF8.GetBytes(PwdTxt.ToString()));

            foreach (var b in computeHash)
            {
                pwd += b.ToString();
            }

            using (var context = new Model())
            {
                // var connectionState = context.Database.Connection.State;
                // if (connectionState==ConnectionState.Closed||connectionState==ConnectionState.Broken)
                // {
                //     FrmDialog.ShowDialog(this, "服务器异常,请校正服务器状态后重试");
                //     return;
                // }
                var cStaffBaseInformation = context.C_StaffBaseInformation.FirstOrDefault(s => s.Account == AccountTxt.Text);
                if (cStaffBaseInformation != null)
                {
                    if (cStaffBaseInformation.Password == pwd)
                    {
                        FrmDialog.ShowDialog(this, "登陆成功,欢迎使用!", "登陆成功");
                        this.Hide();

                        string strIp = "";
                        foreach (var ipAddress in Dns.GetHostEntry(Dns.GetHostName()).AddressList)
                        {
                            strIp = ipAddress.ToString();
                        }

                        if (!cStaffBaseInformation.Account.Contains("admin"))
                        {
                            int.TryParse(_equipmentId, out var result);
                            //在登陆过程表中插入数据
                            var cLoginInProcessing = new C_LoginInProcessing()
                            {
                                StaffCode  = cStaffBaseInformation.StaffCode,
                                StaffID    = cStaffBaseInformation.StaffID,
                                StaffName  = cStaffBaseInformation.StaffName,
                                OnlineTime = context.GetServerDate(),
                                //设备id???
                                EquipmentID   = result,
                                EquipmentName = _equipmentName,
                                IP            = strIp,
                                Remarks       = "测试数据"
                            };

                            context.C_LoginInProcessing.Add(cLoginInProcessing);
                            context.SaveChanges();
                        }

                        new MainPanel(cStaffBaseInformation.StaffID, cStaffBaseInformation.StaffCode, cStaffBaseInformation.StaffName).Show();
                    }
                    else
                    {
                        FrmDialog.ShowDialog(this, "密码错误,请重试!", "登陆失败");
                    }
                }
                else
                {
                    FrmDialog.ShowDialog(this, "该用户不存在!", "登陆失败");
                }
            }
        }
Пример #12
0
        //基本参数设置
        private void ucBtnExt1_BtnClick_1(object sender, EventArgs e)
        {
            //泵设置
            try
            {
                if (ucTextBoxEx11.InputText.Length != 0)
                {
                    double gtzj1 = double.Parse(ucTextBoxEx11.InputText);
                    u.SetValue(16, gtzj1);
                }
                if (ucTextBoxEx12.InputText.Length != 0)
                {
                    double gtsl1 = double.Parse(ucTextBoxEx12.InputText);
                    u.SetValue(17, gtsl1);
                }
                if (ucTextBoxEx13.InputText.Length != 0)
                {
                    double cc1 = double.Parse(ucTextBoxEx13.InputText);
                    u.SetValue(18, cc1);
                }
                if (ucTextBoxEx16.InputText.Length != 0)
                {
                    double gtzj2 = double.Parse(ucTextBoxEx16.InputText);
                    u.SetValue(19, gtzj2);
                }
                if (ucTextBoxEx15.InputText.Length != 0)
                {
                    double gtsl2 = double.Parse(ucTextBoxEx15.InputText);
                    u.SetValue(20, gtsl2);
                }
                if (ucTextBoxEx14.InputText.Length != 0)
                {
                    double cc2 = double.Parse(ucTextBoxEx14.InputText);
                    u.SetValue(21, cc2);
                }
                if (ucTextBoxEx19.InputText.Length != 0)
                {
                    double gtzj3 = double.Parse(ucTextBoxEx19.InputText);
                    u.SetValue(22, gtzj3);
                }
                if (ucTextBoxEx18.InputText.Length != 0)
                {
                    double gtsl3 = double.Parse(ucTextBoxEx18.InputText);
                    u.SetValue(23, gtsl3);
                }
                if (ucTextBoxEx17.InputText.Length != 0)
                {
                    double cc3 = double.Parse(ucTextBoxEx17.InputText);
                    u.SetValue(24, cc3);
                }
            }
            catch (Exception excep) {
                FrmDialog.ShowDialog(this, "泵设置存在非法输入\n" + excep.Message, "输入提示");
                return;
            }


            //判断值设置
            try
            {
                if (ucTextBoxEx7.InputText.Length != 0)
                {
                    double njbgl = double.Parse(ucTextBoxEx7.InputText);
                    u.SetValue(25, njbgl);
                }
                if (ucTextBoxEx8.InputText.Length != 0)
                {
                    double qdsy = double.Parse(ucTextBoxEx8.InputText);
                    u.SetValue(27, qdsy);
                }
                if (ucTextBoxEx9.InputText.Length != 0)
                {
                    double tzjy = double.Parse(ucTextBoxEx9.InputText);
                    u.SetValue(26, tzjy);
                }
                if (ucTextBoxEx10.InputText.Length != 0)
                {
                    double llpd = double.Parse(ucTextBoxEx10.InputText);
                    u.SetValue(28, llpd);
                }
            }
            catch (Exception excep)
            {
                FrmDialog.ShowDialog(this, "判断值设置存在非法输入\n" + excep.Message, "输入提示");
            }
            FrmDialog.ShowDialog(this, "数据库更新成功", "输入提示");
        }
Пример #13
0
        //管柱设置
        private void ucBtnExt3_BtnClick(object sender, EventArgs e)
        {
            //环空容积
            try
            {
                if (ucTextBoxEx28.InputText.Length != 0)
                {
                    double hkrj = double.Parse(ucTextBoxEx28.InputText);
                    u.SetValue(37, hkrj);
                }
            }
            catch (Exception excep)
            {
                FrmDialog.ShowDialog(this, "环空容积设置存在非法输入\n" + excep.Message, "输入提示");
                return;
            }
            //裸眼段
            try
            {
                if (ucTextBoxEx27.InputText.Length != 0)
                {
                    double nj = double.Parse(ucTextBoxEx28.InputText);
                    u.SetValue(35, nj);
                }
                if (ucTextBoxEx26.InputText.Length != 0)
                {
                    double xs = double.Parse(ucTextBoxEx26.InputText);
                    u.SetValue(36, xs);
                }
            }
            catch (Exception excep)
            {
                FrmDialog.ShowDialog(this, "裸眼段存在非法输入\n" + excep.Message, "输入提示");
                return;
            }

            //套管
            try
            {
                UCTextBoxEx temp = null;
                foreach (Control ctrl in this.panelEx7.Controls)//在这个面板中找到最新的label
                {
                    int index = 200;
                    while (index <= 205)
                    {
                        if (string.Equals(ctrl.Name, "ucTextBoxEx" + index))
                        {
                            temp = (HZH_Controls.Controls.UCTextBoxEx)ctrl;

                            if (temp.InputText.Length != 0)
                            {
                                double value = double.Parse(temp.InputText);
                                u.SetValue(index - 171, value);
                            }
                        }
                        index++;
                    }
                }
            }
            catch (Exception excep)
            {
                FrmDialog.ShowDialog(this, "套管存在非法输入\n" + excep.Message, "输入提示");
                return;
            }

            //钻杆
            try
            {
                UCTextBoxEx temp = null;
                foreach (Control ctrl in this.panelEx5.Controls)//在这个面板中找到最新的label
                {
                    int index = 36;
                    while (index <= 45)
                    {
                        if (string.Equals(ctrl.Name, "ucTextBoxEx" + index))
                        {
                            temp = (HZH_Controls.Controls.UCTextBoxEx)ctrl;

                            if (temp.InputText.Length != 0)
                            {
                                double value = double.Parse(temp.InputText);
                                u.SetValue(index + 2, value);
                            }
                        }
                        index++;
                    }
                }
            }
            catch (Exception excep)
            {
                FrmDialog.ShowDialog(this, "钻杆存在非法输入\n" + excep.Message, "输入提示");
                return;
            }
            //钻铤
            try
            {
                UCTextBoxEx temp = null;
                foreach (Control ctrl in this.panelEx6.Controls)//在这个面板中找到最新的label
                {
                    int index = 100;
                    while (index <= 114)
                    {
                        if (string.Equals(ctrl.Name, "ucTextBoxEx" + index))
                        {
                            temp = (HZH_Controls.Controls.UCTextBoxEx)ctrl;

                            if (temp.InputText.Length != 0)
                            {
                                double value = double.Parse(temp.InputText);
                                u.SetValue(index - 52, value);
                            }
                        }
                        index++;
                    }
                }
            }
            catch (Exception excep)
            {
                FrmDialog.ShowDialog(this, "钻铤存在非法输入\n" + excep.Message, "输入提示");
                return;
            }
            FrmDialog.ShowDialog(this, "数据库更新成功", "输入提示");
            FrmDialog.ShowDialog(this, "按照之前的表,钻杆最多两个、钻铤和套管最多三个", "输入提示");
        }
Пример #14
0
        public static void  LoadProject(TreeView tree)
        {
            AppendLogItem("正在加载采集站工程......");
            MonitorDataBaseModel.InitBaseModel();
            AppendLogItem("正在加载驱动信息......");
            IOMonitorManager.InitMonitor();
            AppendLogItem("正在加载IO树......");

            Task.Run(() =>
            {
                try
                {
                    if (tree.Parent.IsHandleCreated)
                    {
                        tree.BeginInvoke(new EventHandler(delegate
                        {
                            tree.Nodes.Clear();

                            int num = MonitorDataBaseModel.IOCommunications.Count * MonitorDataBaseModel.IODevices.Count;

                            InitProgress(num);


                            IoServerTreeNode serverNode = new IoServerTreeNode();
                            serverNode.Server           = MonitorDataBaseModel.IOServer;
                            serverNode.InitNode();
                            List <Scada.Model.IO_COMMUNICATION> serverComms = MonitorDataBaseModel.IOCommunications.FindAll(x => x.IO_SERVER_ID == MonitorDataBaseModel.IOServer.SERVER_ID);
                            for (int c = 0; c < serverComms.Count; c++)  //通道
                            {
                                IoCommunicationTreeNode commNode = new IoCommunicationTreeNode();
                                commNode.Communication           = serverComms[c];
                                commNode.Server = MonitorDataBaseModel.IOServer;
                                commNode.InitNode();
                                List <Scada.Model.IO_DEVICE> commDevices = MonitorDataBaseModel.IODevices.FindAll(x => x.IO_SERVER_ID == MonitorDataBaseModel.IOServer.SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID);
                                for (int d = 0; d < commDevices.Count; d++)  //设备
                                {
                                    IoDeviceTreeNode deviceNode = new IoDeviceTreeNode();
                                    deviceNode.Device           = commDevices[d];
                                    deviceNode.Server           = MonitorDataBaseModel.IOServer;
                                    deviceNode.Communication    = serverComms[c];
                                    deviceNode.InitNode();
                                    commNode.Nodes.Add(deviceNode);
                                    SetProgress();
                                }
                                SetProgress();
                                serverNode.Nodes.Add(commNode);
                            }


                            serverNode.Expand();

                            EndProgress();
                            tree.Nodes.Add(serverNode);
                        }));
                    }
                }
                catch (Exception exm)
                {
                    DisplyException(exm);
                    FrmDialog.ShowDialog(MainForm, exm.Message);
                    EndProgress();
                }
            });
        }
Пример #15
0
        private void UcDataGridView2_ItemClick(object sender, DataGridViewEventArgs e)
        {
            ProductionStatusInfoPanel.Controls.Find("control001", false).First().BackColor =
                Color.LightSlateGray;
            ProductionStatusInfoPanel.Controls.Find("control002", false).First().BackColor =
                Color.LightSlateGray;

            var controls = panel10.Controls.Find("scanOnlineForm", false);

            if (controls.Any())
            {
                controls[0].Dispose();
            }

            if (!HasExitProductTask())
            {
                ProductNameTxt.Clear();
                ProductIDTxt.Clear();
                CurrentProcessTxt.Clear();
                OnlineTimeTxt.Clear();

                var dataGridViewRow = ucDataGridView2.SelectRow;
                var dataSource      = dataGridViewRow.DataSource;
                if (dataSource is APS_ProcedureTaskDetail apsProcedureTaskDetail)
                {
                    var dialogResult = FrmDialog.ShowDialog(this, $"确定上线选中产品[{apsProcedureTaskDetail.ProductBornCode}]吗", "热压上线", true);
                    if (dialogResult == DialogResult.OK)
                    {
                        var scanOnlineForm = new ScanOnlineForm(_staffId, _staffCode, _staffName, apsProcedureTaskDetail.ProductBornCode, _workshopId, _workshopCode, _workshopName, _equipmentId, _equipmentCode, _equipmentName)
                        {
                            DisplayInfoToMainPanel = (s1, s2, s3, s4) =>
                            {
                                ProductIDTxt.Text      = s1;
                                ProductNameTxt.Text    = s2;
                                CurrentProcessTxt.Text = s3;
                                OnlineTimeTxt.Text     = s4;
                            },
                            ChangeBgColor = () =>
                            {
                                ProductionStatusInfoPanel.Controls.Find("control001", false).First().BackColor =
                                    Color.MediumSeaGreen;
                                ProductionStatusInfoPanel.Controls.Find("control002", false).First().BackColor =
                                    Color.LightSlateGray;
                            }
                        };

                        if (scanOnlineForm.CheckTaskValidity(apsProcedureTaskDetail.ProcedureCode))
                        {
                            //判断机加工任务是否全部完成
                            var doneMachiningOrNot = DoneMachiningOrNot(apsProcedureTaskDetail);
                            if (!doneMachiningOrNot)
                            {
                                FrmDialog.ShowDialog(this, "尚有机加工环节未执行,请先执行机加工任务!");
                                return;
                            }
                            scanOnlineForm.AddCntLogicPro();
                            //先判断一下本产品出生证的有没有待检验的前序质检任务没做
                            // var hasSelfQcTask = scanOnlineForm.HasSelfQcTask();

                            //转档  工序任务明细表=>产品加工过程表
                            scanOnlineForm.ProcessTurnArchives();
                            //完善工序任务明细表中的数据 诸如任务状态 ; 修改人修改时间
                            scanOnlineForm.PerfectApsDetail();
                            //完善计划产品出生证表
                            // scanOnlineForm.PerfectPlanProductInfo();
                            //转档
                            scanOnlineForm.CntLogicTurn();
                            FrmDialog.ShowDialog(this, $"产品{ProductIDTxt.Text}热压上线成功!", "热压上线成功");

                            InialToDoTasks();
                        }
                    }
                }
            }
            else
            {
                ProductionStatusInfoPanel.Controls.Find("control001", false).First().BackColor =
                    Color.MediumSeaGreen;
            }
        }
Пример #16
0
 public Result ExecuteSVs()
 {
     //IL_0027: Unknown result type (might be due to invalid IL or missing references)
     checked
     {
         if (MB == null)
         {
             FrmDialog.ShowDialog((IWin32Window)this, "没有实例化MB通讯对象,不能更新" + AliasName + "电磁阀值!", "警告!");
         }
         else
         {
             int num  = SV.Length - 1;
             int num2 = 0;
             while (true)
             {
                 int num3 = num2;
                 int num4 = num;
                 if (num3 > num4)
                 {
                     break;
                 }
                 MCU.Dout[num2] = SV[num2].Value;
                 num2++;
             }
             if (MB.WriteMultiCoils(MBAddress, 8, (short)SV.Length, MCU.Dout) == ClassMB.Result.SUCCESS)
             {
                 int num5 = SV.Length - 1;
                 num2 = 0;
                 while (true)
                 {
                     int num6 = num2;
                     int num4 = num5;
                     if (num6 > num4)
                     {
                         break;
                     }
                     SV[num2].Valid = true;
                     num2++;
                 }
                 ExecuteSVsResult = Result.SUCCESS;
             }
             else
             {
                 int num7 = SV.Length - 1;
                 num2 = 0;
                 while (true)
                 {
                     int num8 = num2;
                     int num4 = num7;
                     if (num8 > num4)
                     {
                         break;
                     }
                     SV[num2].Valid = false;
                     num2++;
                 }
                 ExecuteSVsResult = Result.FAIL;
             }
         }
         Result result = default(Result);
         return(result);
     }
 }
Пример #17
0
        private void tvMenu_AfterSelect(object sender, TreeViewEventArgs e)
        {
            panControl.Controls.Clear();
            string strName = e.Node.Text.Trim();

            switch (strName)
            {
                #region 窗体    English:forms
            case "提示窗体":
                if (FrmDialog.ShowDialog(this, "是否再显示一个没有取消按钮的提示框?", "模式窗体测试", true) == System.Windows.Forms.DialogResult.OK)
                {
                    FrmDialog.ShowDialog(this, "这是一个没有取消按钮的提示框", "模式窗体测试");
                }
                break;

            case "多输入窗体":
                FrmInputs frm = new FrmInputs("动态多输入窗体测试",
                                              new string[] { "姓名", "电话", "身份证号", "住址" },
                                              new Dictionary <string, HZH_Controls.TextInputType>()
                {
                    { "电话", HZH_Controls.TextInputType.Regex }, { "身份证号", HZH_Controls.TextInputType.Regex }
                },
                                              new Dictionary <string, string>()
                {
                    { "电话", "^1\\d{0,10}$" }, { "身份证号", "^\\d{0,18}$" }
                },
                                              new Dictionary <string, KeyBoardType>()
                {
                    { "电话", KeyBoardType.UCKeyBorderNum }, { "身份证号", KeyBoardType.UCKeyBorderNum }
                },
                                              new List <string>()
                {
                    "姓名", "电话", "身份证号"
                });
                frm.ShowDialog(this);
                break;

            case "气泡提示窗体":
                FrmTips.ShowTipsError(this, "Error提示信息");
                FrmTips.ShowTipsInfo(this, "Info提示信息");
                FrmTips.ShowTipsSuccess(this, "Success提示信息");
                FrmTips.ShowTipsWarning(this, "Warning提示信息");
                FrmTips.ShowTips(this, "自定义提示信息", 2000, true, ContentAlignment.MiddleCenter, null, TipsSizeMode.Medium, new Size(300, 50), TipsState.Success);
                break;

            case "有返回的窗体":
                new FrmTestFrmBack().ShowDialog(this);
                break;

            case "等待窗体":
                ControlHelper.ThreadRunExt(this, () =>
                {
                    Thread.Sleep(5000);
                    ControlHelper.ThreadInvokerControl(this, () =>
                    {
                        FrmTips.ShowTipsSuccess(this, "FrmWaiting测试");
                    });
                }, null, this);
                break;

            case "仅有标题的窗体":
                new FrmWithTitleTest().ShowDialog(this);
                break;

            case "确定取消窗体1":
                new FrmOKCancel1Test().ShowDialog(this);
                break;

            case "确定取消窗体2":
                new FrmOKCancel2Test().ShowDialog(this);
                break;
                #endregion

                #region 控件    English:control
            case "表单控件":
                AddControl(new UC.UCTestForms());
                break;

            case "按钮":
                AddControl(new UC.UCTestBtns());
                break;

            case "选项卡":
                AddControl(new UC.UCTestTab());
                break;

            case "树":
                AddControl(new UC.UCTestTreeview()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "列表":
                AddControl(new UC.UCTestList()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "平铺列表":
                AddControl(new UC.UCTestListView()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "垂直导航":
                AddControl(new UC.UCTestMenu()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "横向列表":
                AddControl(new UC.UCTestHorizontalList());
                break;

            case "分页控件":
                AddControl(new UC.UCTestPage());
                break;

            case "表格":
                AddControl(new UC.UCTestGridTable()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "树表格":
                AddControl(new UC.UCTestTreeGridTable()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "进度条":
                AddControl(new UC.UCTestProcess()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "步骤控件":
                AddControl(new UC.UCTestStep()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "面包屑导航":
                AddControl(new UC.UCTestNavigation()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "文字提示":
                AddControl(new UC.UCTestTips()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "滚动文字":
                AddControl(new UC.UCTestRollText()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "滑块":
                AddControl(new UC.UCTestTrackbar()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "水波":
                AddControl(new UC.UCTestWave()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "有标题的面板":
                AddControl(new UC.UCTestPanelTitle()
                {
                    Dock = DockStyle.Left
                });
                break;

            case "图标":
                AddControl(new UC.UCTestIcon()
                {
                    Dock = DockStyle.Fill
                });
                break;

                #endregion

                #region 图表    English:Chart
            case "组织结构图":
                AddControl(new UC.UCTestMindMapping()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "柱状图":
                AddControl(new UC.UCTestBarcharts());
                break;

            case "滚动图表":
                AddControl(new UC.UCTestWaveChart()
                {
                    Dock = DockStyle.Fill
                });
                break;
                #endregion

                #region 工业    English:Industry
            case "LED文字":
                AddControl(new UC.UCTestLED()
                {
                    Dock = DockStyle.Fill
                });
                break;

            case "仪表":
                AddControl(new UC.UCTestMeter());
                break;

            case "管道":
                AddControl(new UC.UCTestConduit());
                break;

            case "阀门":
                AddControl(new UC.UCTestValve());
                break;

            case "鼓风机":
                AddControl(new UC.UCTestBlower());
                break;

            case "传送带":
                AddControl(new UC.UCTestConveyor());
                break;

            case "警示灯":
                AddControl(new UC.UCTestSignalLamp());
                break;

            case "箭头":
                AddControl(new UC.UCTestArrow());
                break;

            case "温度计":
                AddControl(new UC.UCTestThermometer());
                break;
                #endregion
            }
        }
Пример #18
0
        private void DM_Load(object sender, EventArgs e)
        {
            Properties.Settings.Default.StartTime = DateTime.Now;
            label7.Text                     = Assembly.GetExecutingAssembly().GetName().Version.ToString();
            this.MaximizeBox                = false;
            this.MinimumSize                = new Size(280, 563);
            this.Size                       = new Size(280, 563);
            this.FormBorderStyle            = FormBorderStyle.FixedSingle;
            splitContainer1.Panel1Collapsed = true;
            if (!System.IO.File.Exists(Application.StartupPath + "/Config.mdb"))
            {
                FrmTips.ShowTipsInfo(this, "检测不到中继数据库,正在生成,请稍候");
                //MessageBox.Show("检测不到数据库,自动生成,请重启程序后使用", "数据传输中继");
                byte[] config = Properties.Resources.Config;
                System.IO.File.WriteAllBytes(Application.StartupPath + "/Config.mdb", config);
                System.Diagnostics.Process.Start(System.Reflection.Assembly.GetExecutingAssembly().Location);
                System.Environment.Exit(0);
            }
            try
            {
                string      path = Application.ExecutablePath;
                RegistryKey rk   = Registry.LocalMachine;
                RegistryKey rk2  = rk.OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run");
                string[]    rest = rk2.GetValueNames();
                foreach (string line in rest)
                {
                    if (line == "JcShutdown")
                    {
                        设为开机启动ToolStripMenuItem.Checked = true;
                    }
                }
            }
            catch (Exception ex)
            {
                FrmTips.ShowTipsWarning(this, "请使用管理员模式运行");
                //MessageBox.Show(ex.Message, "请使用管理员模式运行本程序");
            }
            if (Properties.Settings.Default.LogsReserve != "0")
            {
                LogsCleaningTimer.Start();
            }
            CleaningTimer.Start();
            LogPathTimer.Start();
            TransModuleRefresh.Start();
            LogPathTimer_Tick(null, null);
            try
            {
                fsw = new FileStream(logpath, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.ReadWrite);
            }
            catch (Exception ex)
            {
                FrmDialog.ShowDialog(this, "写日志线程异常:" + ex.Message);
            }
            LogPrint("*************************************", 2);
            LogPrint("正在启动LIS系统网口仪器中继程序", 2);
            LogPrint("*************************************", 2);
            try
            {
                MachineName.Text               = Properties.Settings.Default.MachineName;
                MenuMachineName.Text           = "仪器:" + Properties.Settings.Default.MachineName;
                this.Text                      = Properties.Settings.Default.ProgramName;
                this.NotifyIcon.Text           = Properties.Settings.Default.ProgramName;
                this.NotifyIcon.BalloonTipText = Properties.Settings.Default.ProgramName;
                desktopenter                   = Properties.Settings.Default.ShortcutName;
                CleaningTimer.Interval         = int.Parse(Properties.Settings.Default.CleaningTimer);
                TransModuleRefresh.Interval    = int.Parse(Properties.Settings.Default.ApplyTimer);
                lisport            = Properties.Settings.Default.LISport.ToString();
                ConnectWay         = byte.Parse(Properties.Settings.Default.ConnectWay);
                serialportno       = Properties.Settings.Default.SerialPortNo.ToString();
                serialbaudrate     = Properties.Settings.Default.SerialBaudRate;
                serialparitycheck  = Properties.Settings.Default.SerialParityCheck;
                serialdatabit      = Properties.Settings.Default.SerialDataBit;
                serialstopbit      = Properties.Settings.Default.SerialStopBit;
                filenameextension  = Properties.Settings.Default.FileNameExtension;
                filepath           = Properties.Settings.Default.FilePath;
                filewritepath      = Properties.Settings.Default.FileWritePath;
                filewriteextension = Properties.Settings.Default.FileWriteExtension;
                clientport         = Properties.Settings.Default.ClientPort.ToString();
                serverport         = Properties.Settings.Default.ServerPort.ToString();
                timesleep          = int.Parse(Properties.Settings.Default.ClientTimer);
                FileTimer.Interval = int.Parse(Properties.Settings.Default.FileTimer);
                clientip           = IPAddress.Parse(Properties.Settings.Default.ClientIP.Replace(" ", ""));
            }
            catch (Exception ex)
            {
                FrmTips.ShowTipsError(this, "服务启动错误:" + ex.Message);
            }
            LogPrint("LIS连接IP:" + ip.ToString(), 0);
            LogPrint("LIS连接端口:" + lisport, 0);
            ConfigConsole terminal = new ConfigConsole(fsw);

            threadlis = new Thread(WaitLIS);
            threadlis.Start();
            terminal.start();

            ClearMemoryInfo.FlushMemory();

            switch (ConnectWay)
            {
            case 0:
                LogPrint("仪器连接方式:客户端连接", 1);
                LogPrint("仪器连接IP端口:" + ip + ":" + serverport, 1);
                threadmac = new Thread(WaitMac);
                threadmac.Start();
                LogPrint("*************************************", 2);
                break;

            case 1:
                LogPrint("仪器连接方式:服务端监听", 1);
                LogPrint("仪器监听IP端口:" + clientip + ":" + clientport, 1);
                threadmac = new Thread(ConnMac);
                threadmac.Start();
                LogPrint("*************************************", 2);
                break;

            case 2:
                LogPrint("仪器连接方式:串口连接", 1);
                LogPrint("仪器连接串口号:" + serialportno, 1);
                LogPrint("波特率:" + serialbaudrate, 1);
                LogPrint("校验:" + serialparitycheck, 1);
                LogPrint("数据位:" + serialdatabit, 1);
                LogPrint("停止位:" + serialstopbit, 1);
                LogPrint("RTS/CTS:" + Properties.Settings.Default.SerialRTSEnable, 1);
                threadmac = new Thread(SerialPort);
                threadmac.Start();
                LogPrint("*************************************", 2);
                break;

            case 3:
                LogPrint("仪器连接方式:读文件", 1);
                LogPrint("仪器数据目录:" + filepath + "\\*." + filenameextension, 1);
                LogPrint("写入数据目录:" + filewritepath + "\\*." + filewriteextension, 1);
                FileTimer.Start();
                ucWave1.WaveColor = Color.FromArgb(0, 155, 144);

                if (Properties.Settings.Default.FileConnectLIS)
                {
                    LogPrint("链接Cache模式", 1);
                    MACIP.Text = "读文件(链接Cache)模式";
                    Properties.Settings.Default.MacStatus = "读文件(链接Cache)模式";
                    string ret = operat.Login(Properties.Settings.Default.CacheHost, int.Parse(Properties.Settings.Default.CachePort), Properties.Settings.Default.CacheNamespace, Properties.Settings.Default.CacheUserID, Properties.Settings.Default.CachePassword);
                    if (ret == "Login Cache OK")
                    {
                        LogPrint("登录LIS数据库成功", 1);
                    }
                    else
                    {
                        LogPrint("登录LIS数据库失败:" + ret.Split(':')[1], 1);
                        FileTimer.Stop();
                        ucWave1.WaveColor = Color.FromArgb(255, 77, 59);
                    }
                }
                else
                {
                    LogPrint("转网络传输模式", 1);
                    MACIP.Text = "读文件(转网络)模式";
                    Properties.Settings.Default.MacStatus = "读文件(转网络)模式";
                }
                LogPrint("*************************************", 2);
                break;
            }
        }
Пример #19
0
        //保存数据
        private void ucBtnSave_BtnClick(object sender, EventArgs e)
        {
            //使用正则表达式验证修改信息
            var b1  = txtNameValidate.Verification();
            var b2  = txtBirthDayValidate.Verification();
            var b3  = txtClassIDValidate.Verification();
            int sex = 1;

            if (b1 == false || b2 == false || b3 == false)
            {
                return;
            }
            //进行保存
            t_stu.StuName      = txtStuName.Text;
            t_stu.StuBirthday  = txtBirthDay.Text;
            t_stu.StuSex_filed = ucRidMan.Checked ? true : false;
            sex           = ucRidMan.Checked ? 1 : 0;
            t_stu.ClassID = int.Parse(txtClassID.Text);
            //可以进行保存
            try
            {
                string         t_sql = "ModifyIntoStudentBasicInformation";
                SqlParameter[] pars  = new SqlParameter[] {
                    new SqlParameter("@StuID", SqlDbType.Int)
                    {
                        Value = txtStuID.Text
                    },
                    new SqlParameter("@StuName", SqlDbType.VarChar, 20)
                    {
                        Value = txtStuName.Text
                    },
                    new SqlParameter("@StuBirthday", SqlDbType.Date)
                    {
                        Value = txtBirthDay.Text
                    },
                    new SqlParameter("@StuSex", SqlDbType.Bit)
                    {
                        Value = sex
                    },
                    new SqlParameter("@ClassID", SqlDbType.Int)
                    {
                        Value = txtClassID.Text
                    }
                };
                T_StudentDal dal = new T_StudentDal();
                var          res = (int)dal.ExecuteScalar(t_sql, CommandType.StoredProcedure, pars);
                if (res == 1)
                {
                    FrmDialog.ShowDialog(this, "保存成功", "提示");
                }
                else
                {
                    throw new Exception();
                }
            }
            catch (Exception ex)
            {
                FrmDialog.ShowDialog(this, "保存失败", "提示");
                t_stu.ClassID      = copy.ClassID;
                t_stu.StuName      = copy.StuName;
                t_stu.StuBirthday  = copy.StuBirthday;
                t_stu.StuSex_filed = copy.StuSex_filed;
            }
            Close();
        }
Пример #20
0
        public void LoadIOProject(TreeView tree)
        {
            if (tree.FindForm() != null)
            {
                if (tree.Parent.IsHandleCreated)
                {
                    tree.BeginInvoke(new EventHandler(delegate
                    {
                        try
                        {
                            tree.Nodes.Clear();

                            int num                     = IOCenterManager.IOProject.Servers.Count + IOCenterManager.IOProject.Communications.Count + IOCenterManager.IOProject.Devices.Count;
                            TreeNode mainNode           = new TreeNode();
                            mainNode.ImageIndex         = 0;
                            mainNode.SelectedImageIndex = 0;
                            mainNode.Text               = PubConstant.Product;
                            InitProgress(num);
                            ///加载采集站
                            for (int i = 0; i < IOCenterManager.IOProject.Servers.Count; i++)
                            {
                                IoServerTreeNode serverNode = new IoServerTreeNode();
                                serverNode.Server           = IOCenterManager.IOProject.Servers[i];
                                serverNode.InitNode();
                                List <Scada.Model.IO_COMMUNICATION> serverComms = IOCenterManager.IOProject.Communications.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID);
                                for (int c = 0; c < serverComms.Count; c++)//通道
                                {
                                    IoCommunicationTreeNode commNode = new IoCommunicationTreeNode();
                                    commNode.Communication           = serverComms[c];
                                    commNode.Server = IOCenterManager.IOProject.Servers[i];
                                    commNode.InitNode();
                                    List <Scada.Model.IO_DEVICE> commDevices = IOCenterManager.IOProject.Devices.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID);
                                    for (int d = 0; d < commDevices.Count; d++)//设备
                                    {
                                        IoDeviceTreeNode deviceNode = new IoDeviceTreeNode();
                                        deviceNode.Device           = commDevices[d];
                                        deviceNode.Server           = IOCenterManager.IOProject.Servers[i];
                                        deviceNode.Communication    = serverComms[c];
                                        //挂载右键菜单
                                        deviceNode.ContextMenuStrip = Mediator.IOTreeForm.contextMenuStrip;
                                        deviceNode.InitNode();
                                        commNode.Nodes.Add(deviceNode);
                                        SetProgress();
                                    }
                                    SetProgress();
                                    serverNode.Nodes.Add(commNode);
                                }

                                mainNode.Nodes.Add(serverNode);
                                SetProgress();
                            }
                            mainNode.ExpandAll();
                            tree.Nodes.Add(mainNode);

                            EndProgress();
                        }
                        catch (Exception exm)
                        {
                            DisplyException(exm);
                            FrmDialog.ShowDialog(MainForm, exm.Message);
                            EndProgress();
                        }
                    }));
                }
            }
            else
            {
                try
                {
                    tree.Nodes.Clear();

                    int      num      = IOCenterManager.IOProject.Servers.Count + IOCenterManager.IOProject.Communications.Count + IOCenterManager.IOProject.Devices.Count;
                    TreeNode mainNode = new TreeNode();
                    mainNode.ImageIndex         = 0;
                    mainNode.SelectedImageIndex = 0;
                    mainNode.Text = PubConstant.Product;
                    InitProgress(num);
                    ///加载采集站
                    for (int i = 0; i < IOCenterManager.IOProject.Servers.Count; i++)
                    {
                        IoServerTreeNode serverNode = new IoServerTreeNode();
                        serverNode.Server = IOCenterManager.IOProject.Servers[i];
                        serverNode.InitNode();
                        List <Scada.Model.IO_COMMUNICATION> serverComms = IOCenterManager.IOProject.Communications.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID);
                        for (int c = 0; c < serverComms.Count; c++)//通道
                        {
                            IoCommunicationTreeNode commNode = new IoCommunicationTreeNode();
                            commNode.Communication = serverComms[c];
                            commNode.Server        = IOCenterManager.IOProject.Servers[i];
                            commNode.InitNode();
                            List <Scada.Model.IO_DEVICE> commDevices = IOCenterManager.IOProject.Devices.FindAll(x => x.IO_SERVER_ID == IOCenterManager.IOProject.Servers[i].SERVER_ID && x.IO_COMM_ID == serverComms[c].IO_COMM_ID);
                            for (int d = 0; d < commDevices.Count; d++)//设备
                            {
                                IoDeviceTreeNode deviceNode = new IoDeviceTreeNode();
                                deviceNode.Device        = commDevices[d];
                                deviceNode.Server        = IOCenterManager.IOProject.Servers[i];
                                deviceNode.Communication = serverComms[c];
                                //挂载右键菜单
                                deviceNode.ContextMenuStrip = Mediator.IOTreeForm.contextMenuStrip;
                                deviceNode.InitNode();
                                commNode.Nodes.Add(deviceNode);
                                SetProgress();
                            }
                            SetProgress();
                            serverNode.Nodes.Add(commNode);
                        }

                        mainNode.Nodes.Add(serverNode);
                        SetProgress();
                    }
                    mainNode.ExpandAll();
                    tree.Nodes.Add(mainNode);

                    EndProgress();
                }
                catch (Exception exm)
                {
                    DisplyException(exm);
                    FrmDialog.ShowDialog(MainForm, exm.Message);
                    EndProgress();
                }
            }
        }
Пример #21
0
 //捕获摄像机图像线程定时器
 private void picCapThread(object state)
 {
     if (!cap.IsOpened())
     {
         if (FrmDialog.ShowDialog(this, "双目相机连接失败", "Error") == DialogResult.OK)
         {
             //执行连接失败处理
             return;
         }
     }
     if (IS_DOUBLECAM_OPEN)          //摄像头打开
     {
         cap.Read(comImg);
         if (comImg.Data == null)
         {
             return;
         }
         if (!IS_SHOW_RECTIFYIMAGE)
         {
             leftImg  = new Mat(comImg, new Rect(0, 0, 640, 480)).Clone();        //深拷贝图像
             rightImg = new Mat(comImg, new Rect(640, 0, 640, 480)).Clone();      //深拷贝图像
         }
         if (IS_SHOW_RECTIFYIMAGE)                                                //立体校正
         {
             Mat _leftImg  = new Mat(comImg, new Rect(0, 0, 640, 480)).Clone();   //深拷贝图像
             Mat _rightImg = new Mat(comImg, new Rect(640, 0, 640, 480)).Clone(); //深拷贝图像
             Cv2.Remap(_leftImg, leftImg, ShareData.leftMap1, ShareData.leftMap2, InterpolationFlags.Linear);
             Cv2.Remap(_rightImg, rightImg, ShareData.rightMap1, ShareData.rightMap2, InterpolationFlags.Linear);
             //使用红线绘制出像素有效区域
             Cv2.Rectangle(leftImg, ShareData.PixROI1, new Scalar(0, 0, 255), 1);
             Cv2.Rectangle(rightImg, ShareData.PixROI2, new Scalar(0, 0, 255), 1);
         }
         if (IS_SHOW_RECTIFYLINE)
         {
             for (int i = 20; i < 480; i += 20)
             {
                 Cv2.Line(leftImg, new OpenCvSharp.Point(0, i), new OpenCvSharp.Point(640, i),
                          new Scalar(0, 0, 255));
                 Cv2.Line(rightImg, new OpenCvSharp.Point(0, i), new OpenCvSharp.Point(640, i),
                          new Scalar(0, 0, 255));
             }
         }
         //备份
         ShareData.LeftImg  = leftImg;
         ShareData.RightImg = rightImg;
         //显示图像
         if (this.pictureBoxIpl_left.Image != null)
         {
             this.pictureBoxIpl_left.Image.Dispose();
         }
         if (this.pictureBoxIpl_right.Image != null)
         {
             this.pictureBoxIpl_right.Image.Dispose();
         }
         this.pictureBoxIpl_left.ImageIpl  = leftImg;
         this.pictureBoxIpl_right.ImageIpl = rightImg;
     }
     else
     {
         //关闭摄像机
         if (!IS_DOUBLECAM_PAUSE)
         {
             this.pictureBoxIpl_left.ImageIpl  = null;
             this.pictureBoxIpl_right.ImageIpl = null;
             //摄像头关闭后清理缓存图片
             this.comImg   = new Mat();
             this.leftImg  = new Mat();
             this.rightImg = new Mat();
         }
     }
     //this.Invoke(new UpdateMainUI(updateMainUI), new object[] { });
 }
Пример #22
0
 public void ShowTime()
 {
     FrmDialog.ShowDialog(this, "展示时间", $"现在是{DateTime.Now}");
 }
Пример #23
0
        private async void ReadAlarmHistory()
        {
            try
            {
                if (Device == null)
                {
                    return;
                }
                this.listView.Items.Clear();
                IO_DEVICE copyDevice = this.Device.Copy();
                //获取读取历史数据
                InfluxDBHistoryData resultData = await IOCenterManager.QueryFormManager.ReadHistoryAlarmDevice(this.Server, this.Communication, copyDevice, this.search.StartDate, this.search.EndDate, this.search.AlarmType, this.search.AlarmLevel, this.ucPagerControl.PageSize, this.ucPagerControl.PageIndex);

                if (resultData == null || !resultData.ReturnResult)
                {
                    if (resultData != null)
                    {
                        FrmDialog.ShowDialog(this, resultData.Msg);
                    }
                    else
                    {
                        FrmDialog.ShowDialog(this, "查询失败");
                    }

                    return;
                }
                //设置页眉控件参数
                this.ucPagerControl.PageCount   = resultData.PageCount;
                this.ucPagerControl.RecordCount = resultData.RecordCount;
                //删除曲线


                //循环读取每个历史数据
                //首先构造ListColumn



                if (resultData.Seres.Count() > 0)
                {
                    //field_io_alarm_date
                    //field_io_alarm_disposalidea
                    //field_io_alarm_disposaluser
                    //field_io_alarm_level
                    //field_io_alarm_type
                    //field_io_alarm_value
                    //field_io_label
                    //field_io_name
                    Serie s = resultData.Seres.ElementAt(0);
                    //获取首个时间

                    for (int i = 0; i < s.Values.Count; i++)
                    {
                        int    timeindex = s.Columns.IndexOf("time");
                        string time      = UnixDateTimeConvert.ConvertDateTimeInt(Convert.ToDateTime(InfluxDbManager.GetInfluxdbValue(s.Values[i][timeindex]))).ToString();
                        int    dateindex = s.Columns.IndexOf("field_io_alarm_date");

                        string       date          = InfluxDbManager.GetInfluxdbValue(s.Values[i][dateindex]);
                        ListViewItem lvi           = new ListViewItem(time);
                        int          io_name_index = s.Columns.IndexOf("field_io_name");
                        if (io_name_index >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_name_index]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        ///
                        int io_name_label = s.Columns.IndexOf("field_io_label");
                        if (io_name_label >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_name_label]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        ///
                        int io_alarm_value = s.Columns.IndexOf("field_io_alarm_value");
                        if (io_alarm_value >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_alarm_value]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int io_alarm_date = s.Columns.IndexOf("field_io_alarm_date");
                        if (io_alarm_date >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_alarm_date]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int io_alarm_level = s.Columns.IndexOf("field_io_alarm_level");
                        if (io_alarm_level >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_alarm_level]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int io_alarm_type = s.Columns.IndexOf("field_io_alarm_type");
                        if (io_alarm_type >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_alarm_type]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int io_alarm_disposalidea = s.Columns.IndexOf("field_io_alarm_disposalidea");
                        if (io_alarm_disposalidea >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_alarm_disposalidea]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int io_alarm_disposaluser = s.Columns.IndexOf("field_io_alarm_disposaluser");
                        if (io_alarm_disposaluser >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][io_alarm_disposaluser]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        listView.Items.Add(lvi);
                    }
                }
            }
            catch (Exception ex)
            {
                IOCenterManager.QueryFormManager.DisplyException(ex);
            }
        }
Пример #24
0
        //插入数据
        private void Click_OpenInsertDataInforamtion(object sender, EventArgs e)
        {
            //进行插入数据的操作
            //打开多输入窗口
            FrmInputs input = new FrmInputs("插入学生数据", new string[] { "学号", "姓名", "出生年月", "性别", "班级编号" }, new Dictionary <string, HZH_Controls.TextInputType>()
            {
                { "学号", HZH_Controls.TextInputType.Regex }, { "性别", HZH_Controls.TextInputType.Regex }, { "班级编号", HZH_Controls.TextInputType.Regex }
            },
                                            new Dictionary <string, string>()
            {
                { "学号", @"^\d+$" }, { "性别", @"^[\u4e00-\u9fa5]{1}$" }, { "班级编号", @"^\d+$" }
            });

            input.ShowDialog();
            var values = input.Values;

            //确保所有数据已输入
            foreach (var item in values)
            {
                if (item == null || item.Trim() == string.Empty)
                {
                    return;
                }
            }
            //必须判断日期输入是否正确
            int sex = values[3] == "男" ? 1 : 0;
            var res = Regex.IsMatch(values[2], @"^(?!0000)[0-9]{4}-((0{0,1}[1-9]|1[0-2])-(0{0,1}[1-9]|1[0-9]|2[0-8])|(0{0,1}[13-9]|1[0-2])-(29|30)|(0{0,1}[13578]|1[02])-31)$");

            if (res == false)
            {
                return;
            }
            //插入数据存储过程
            string t_sql = "InserIntoStudentBasicInformation";

            SqlParameter[] pars = new SqlParameter[] {
                new SqlParameter("@StuID", SqlDbType.Int)
                {
                    Value = values[0]
                },
                new SqlParameter("@StuName", SqlDbType.VarChar, 20)
                {
                    Value = values[1]
                },
                new SqlParameter("@StuBirthday", SqlDbType.Date)
                {
                    Value = values[2]
                },
                new SqlParameter("@StuSex", SqlDbType.BigInt)
                {
                    Value = sex
                },
                new SqlParameter("@ClassID", SqlDbType.Int)
                {
                    Value = values[4]
                }
            };

            T_StudentDal dal = new T_StudentDal();

            //调用 Dal
            try
            {
                int resVal = (int)dal.ExecuteScalar(t_sql, CommandType.StoredProcedure, pars);
                if (resVal == 1)
                {
                    curIndex = 1;
                    classID  = int.Parse(values[4]);
                    dataGridView1.DataSource = dal.LoadStudents(curIndex, dataLength, classID);
                    FrmDialog.ShowDialog(this, "保存成功", "提示");
                }
                else
                {
                    throw new Exception("保存失败");
                }
            }
            catch (Exception ex)
            {
                FrmDialog.ShowDialog(this, "保存失败,请检查您输入的学号、班级编号输入正确", "提示");
            }
        }
Пример #25
0
        #pragma warning restore IDE0044

        #region 登录窗口载入
        /// <summary>
        /// 登录窗口载入
        /// </summary>
        public LoginForm()
        {
            InitializeComponent();

            //允许线程操作窗口控件
            Control.CheckForIllegalCrossThreadCalls = false;

            //设置窗口的拖动
            InitFormMove(this);
            InitFormMove(pictureBox);

            string cloudRoot = GetData.Get("https://download.3tme.cn/Ares/RootData.json", true);//获取WeiApi地址原始数据

            //判断取回数据是否有错,有错则报错然后结束进程
            if (cloudRoot == "Error" || cloudRoot == null)
            {
                this.Visible = false;
                this.Enabled = false;
                if (FrmDialog.ShowDialog(this, "Ares当前无法获取系统重要云端数据\n\n点击\"确定\"按钮为您打开相关解决方法的网页链接\n\n点击\"取消\"按钮退出Ares软件", "Ares - 致命错误", true) == DialogResult.OK)
                {
                    System.Diagnostics.Process.Start("https://tz.3tme.cn/error-information/server-connection-failed.html");
                }
                Environment.Exit(0);
            }
            Root          = JsonConvert.DeserializeObject <RootData>(cloudRoot); //解析Json数据
            webApiUrlData = Root.WebApiUrlData;                                  //提取Root中的WebApi部分
            Verify        = new VerifyFunction(webApiUrlData);                   //实例化网络验证对象

            //读取已保存卡密
            var uKey = OperateIniFile.ReadIniData("Ares", "Key", "", "logindata.ini");

            if (uKey.Length > 0)
            {
                ucTextBoxEx_Key.InputText = Decrypt.DES(uKey, "areskeys");
            }

            //通过Lambda表达式创建线程获取云通知
            Thread cloudNotificationThread = new Thread(() =>
            {
                cloudNotificationData = Root.CloudNotificationData;//提取Root中的cloudNotificationData

                //判断信息框的操作
                if (cloudNotificationData.MsgBox.Switch == "1")
                {
                    switch (cloudNotificationData.MsgBox.Type)
                    {
                    case "1":
                        {
                            //仅弹窗提示
                            FrmDialog.ShowDialog(this, cloudNotificationData.MsgBox.Content.Replace("*", "\n"), cloudNotificationData.MsgBox.Title);
                            break;
                        }

                    case "2":
                        {
                            //弹窗提示+是否打开链接
                            if (FrmDialog.ShowDialog(this, cloudNotificationData.MsgBox.Content.Replace("*", "\n"), cloudNotificationData.MsgBox.Title, true) == DialogResult.OK)
                            {
                                System.Diagnostics.Process.Start(cloudNotificationData.MsgBox.Link);
                            }
                            break;
                        }

                    case "3":
                        {
                            //直接打开链接
                            System.Diagnostics.Process.Start(cloudNotificationData.MsgBox.Link);
                            break;
                        }
                    }
                }

                //判断按钮的操作,接下来的操作要写在按钮被点击的方法里
                if (cloudNotificationData.Button.Switch == "1")
                {
                    ucBtnExt_CloudNotification.Location = new Point(224, 485);   //设置按钮位置正常
                    ucBtnExt_CloudNotification.BtnText  = cloudNotificationData.Button.Text;
                }

                //判断标签的操作,接下来的操作要写在按钮被点击的方法里
                if (cloudNotificationData.Label.Switch == "1")
                {
                    label_CloudNotification.Location  = new Point(-10, 494);   //设置标签可视
                    label_CloudNotification.Text      = cloudNotificationData.Label.Text;
                    label_CloudNotification.ForeColor = Color.FromArgb(cloudNotificationData.Label.Color.R, cloudNotificationData.Label.Color.G, cloudNotificationData.Label.Color.B);
                }
            });

            cloudNotificationThread.Start();

            //通过Lambda表达式创建线程检测版本更新
            Thread checkVersionThread = new Thread(() => {
                string result = Verify.VersionCheck(localVersion);
                //1为最新版,0为不是最新版,-1为出错
                //1就直接跳出循环,0载入更新窗口,-1报错然后退出程序
                //后期预想:0载入更新窗口,窗口中显示新版本更新内容,目前只要弹窗告诉不是最新版然后弹下载地址就好
                switch (result)
                {
                case "1":
                    {
                        break;
                    }

                case "0":
                    {
                        this.Visible = false;
                        if (FrmDialog.ShowDialog(this, "检测到当前Ares版本不是最新版\n\n点击\"确定\"按钮为您打开最新版下载链接\n\n点击\"取消\"按钮退出Ares软件", "Ares - 版本更新", true) == DialogResult.OK)
                        {
                            System.Diagnostics.Process.Start("https://wp.3tme.cn/");
                        }
                        Environment.Exit(0);
                        break;
                    }

                case "-1":
                    {
                        this.Visible = false;
                        if (FrmDialog.ShowDialog(this, "Ares当前无法连接至验证服务器\n\n点击\"确定\"按钮为您打开相关解决方法的网页链接\n\n点击\"取消\"按钮退出Ares软件", "Ares - 致命错误", true) == DialogResult.OK)
                        {
                            System.Diagnostics.Process.Start("https://tz.3tme.cn/error-information/verify-server-connection-failed.html");
                        }
                        Environment.Exit(0);
                        break;
                    }
                }
            });

            checkVersionThread.Start();
        }
Пример #26
0
        private async void ReadHistory()
        {
            try
            {
                if (Device == null)
                {
                    return;
                }
                this.listView.Items.Clear();
                this.listView.Columns.Clear();
                IO_DEVICE copyDevice = this.Device.Copy();
                //构造查询语句
                string selected = "";


                for (int i = 0; i < copyDevice.IOParas.Count; i++)
                {
                    //只能统计模拟量的
                    if (Device.IOParas[i].IO_POINTTYPE == "模拟量")
                    {
                        selected += "," + this.search.MethType + "(field_" + copyDevice.IOParas[i].IO_NAME.ToLower() + "_value) as field_" + copyDevice.IOParas[i].IO_NAME.ToLower() + "_value";
                    }
                }
                if (selected != "")
                {
                    selected = selected.Remove(0, 1);
                }

                //获取读取历史数据
                InfluxDBHistoryData resultData = await IOCenterManager.QueryFormManager.ReadHistoryStaticsDevice(this.Server, this.Communication, copyDevice, this.search.StartDate, this.search.EndDate, this.ucPagerControl.PageSize, this.ucPagerControl.PageIndex, selected, search.TimeType);

                if (resultData == null || !resultData.ReturnResult)
                {
                    if (resultData != null)
                    {
                        FrmDialog.ShowDialog(this, resultData.Msg);
                    }
                    else
                    {
                        FrmDialog.ShowDialog(this, "查询失败");
                    }

                    return;
                }
                //设置页眉控件参数
                this.ucPagerControl.PageCount   = resultData.PageCount;
                this.ucPagerControl.RecordCount = resultData.RecordCount;
                //删除曲线
                InitChart();

                //循环读取每个历史数据
                //首先构造ListColumn

                ColumnHeader listColumn = new ColumnHeader();
                listColumn.Name  = "field_device_date";
                listColumn.Text  = "采集时间";
                listColumn.Width = 200;
                listColumn.Tag   = null;
                this.listView.Columns.Add(listColumn);
                //每个参数都创建一列,-9999表示质量戳是坏的值
                for (int i = 0; i < copyDevice.IOParas.Count; i++)
                {
                    if (Device.IOParas[i].IO_POINTTYPE == "模拟量")
                    {
                        listColumn       = new ColumnHeader();
                        listColumn.Name  = copyDevice.IOParas[i].ToString() + "_value";
                        listColumn.Tag   = copyDevice.IOParas[i];
                        listColumn.Text  = copyDevice.IOParas[i].IO_LABEL;
                        listColumn.Width = 100;
                        this.listView.Columns.Add(listColumn);

                        //创建曲线
                        IOParaSeries series = new IOParaSeries(this.Server, this.Communication, copyDevice, copyDevice.IOParas[i]);
                        IOSeries.Add(series);
                    }
                }
                if (resultData.Seres.Count() > 0)
                {
                    Serie s = resultData.Seres.ElementAt(0);
                    //获取首个时间
                    int dateindex = s.Columns.IndexOf("time");
                    if (dateindex >= 0)
                    {
                        for (int i = 0; i < s.Values.Count; i++)
                        {
                            string date = InfluxDbManager.GetInfluxdbValue(s.Values[i][dateindex]);


                            ListViewItem lvi = new ListViewItem(date);
                            for (int c = 0; c < copyDevice.IOParas.Count; c++)
                            {
                                int paraindex = s.Columns.IndexOf("field_" + copyDevice.IOParas[c].IO_NAME.ToLower() + "_value");
                                if (paraindex >= 0)
                                {
                                    IOParaSeries series = IOSeries.Find(x => x.Name.Trim() == copyDevice.IOParas[c].IO_NAME.Trim());

                                    double yValue = -9999;
                                    double.TryParse(InfluxDbManager.GetInfluxdbValue(s.Values[i][paraindex]), out yValue);
                                    string xValue = date;

                                    lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][paraindex]).ToString());

                                    if (series != null)
                                    {
                                        int pointIndex = series.Points.AddXY(date, new object[1] {
                                            yValue
                                        });
                                        if (xValue != "")
                                        {
                                            if (yValue == -9999)
                                            {
                                                series.Points[pointIndex].IsEmpty = true;
                                                series.Points[pointIndex].ToolTip = "坏数据";
                                            }
                                            else
                                            {
                                                series.Points[pointIndex].ToolTip = "时间=" + date + ",采集值=" + yValue;
                                            }
                                        }
                                    }
                                }
                                else
                                {
                                    lvi.SubItems.Add("");
                                }
                            }
                            listView.Items.Add(lvi);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                IOCenterManager.QueryFormManager.DisplyException(ex);
            }
        }
Пример #27
0
        protected override void DoEnter()
        {
            using (var context = new Model())
            {
                //在产品加工过程表中根据产品出生证  获取元数据
                _cProductProcessing =
                    context.C_ProductProcessing.Where(s => s.ProductBornCode == _productBornCode)
                    .OrderByDescending(s => s.OnlineTime).FirstOrDefault();

                var apsProcedureTaskDetail = context.APS_ProcedureTaskDetail.FirstOrDefault(s =>
                                                                                            s.IsAvailable == true && s.ProductBornCode == _productBornCode &&
                                                                                            s.TaskState != (decimal?)ApsProcedureTaskDetailState.Completed && s.ProcedureType == (decimal?)ProcedureType.Tooling);
                if (apsProcedureTaskDetail != null)
                {
                    //如果是不良下机则生成过程检验任务
                    if (comboBox1.Text.Trim().Equals("不良下机"))
                    {
                        GenerateProcessTask((int)CheckReason.Bad);
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                    }

                    //apsdetail状态修改以及完善apsdetail最后修改时间呀什么的
                    PerfectApsDetail();

                    //控制点转档
                    OfflineCntLogicTurn();
                    //修改aps工序任务表里的信息,例如修改完成状态,更新执行进度
                    PerfectApsProcedureTask();

                    if (comboBox1.Text.Trim().Equals("正常下机"))
                    {
                        //也给工量具档案表转个档好惹
                        KitProcessingDocTurn();
                    }

                    //产品加工过程表转档
                    ProductProcessingDocTurn();

                    FrmDialog.ShowDialog(this, "产品下线成功", "提示");
                    ChangeBgColor();
                    // ClearMainPanelTxt();
                    RegetProcedureTasksDetails();
                    HideLabel();
                    Close();
                    return;
                }
            }
            var isChecked = IsChecked();

            //判断紧前产品是否送检以及送检结果是否生成
            if (IsCheckResult())
            {
                //判断是否是机加工工序的末道工序以及生成手动检验任务
                if (IsLastProcedureAndGenerateManualTask())
                {
                    // 生成除了本工序外其他的所有未检验的机加工工序三坐标任务(除了强制下线之外的)
                    GenerateOtherThreeTasks();
                    //标识除了本工序外其他的所有未检验的机加工工序  送检(除了强制下线之外的)
                    RemarkOtherInspect();

                    //如果是不良下机则生成过程检验任务
                    if (comboBox1.Text.Trim().Equals("不良下机"))
                    {
                        GenerateProcessTask((int)CheckReason.Bad);
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                        //首件记录转档
                        FirstTurnDoc();
                    }

                    if (isChecked)
                    {
                        //生成本出生证本工序的过程检验任务
                        GenerateProcessTask((int)CheckReason.LastProcedure);
                        //标识本出生证本工序的送检
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                    }

                    if (IsLastProcedureEeceptQc())
                    {
                        //如果是除了质检外的末道工序 生成产品档案表 师兄,末道工序转到产品档案表里是指的是机加工序的末道工序还是整个产品而言的末道工序???
                        GenerateProductDoc();
                    }

                    //如果是调试件但又没有分配抽检  理论上就不应该出现在那个首件记录表里边 这时候要将首件记录过程表中的记录删掉而不是转档
                    if (!isChecked)
                    {
                        DelFirstRecord();
                    }
                }
                else
                {
                    //判断产品是否是抽检 只有抽检的情况下才能确定
                    //我们分开来考虑:① 该工序抽检:1.首件2.达到送检频率3.不良下机4.返修5 上件质检结果为NG 的也要送检
                    // ②:该工序不抽检:不良下机,返修

                    //如果是不良下机则生成过程检验任务
                    if (comboBox1.Text.Trim().Equals("不良下机"))
                    {
                        GenerateProcessTask((int)CheckReason.Bad);
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                        //首件记录转档
                        FirstTurnDoc();
                    }
                    //如果是调试件则生成过程检验任务
                    else if (isChecked && IsFirstRecord())
                    {
                        GenerateProcessTask((int)CheckReason.First);
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                        //首件记录转档
                        FirstTurnDoc();
                    }
                    //如果是调试件但又没有分配抽检  理论上就不应该出现在那个首件记录表里边 这时候要将首件记录过程表中的记录删掉而不是转档
                    else if (!isChecked && IsFirstRecord())
                    {
                        DelFirstRecord();
                    }
                    //如果是返修上线则生成过程检验任务
                    else if (_cProductProcessing.Online_type == (decimal?)ProductProcessingOnlineType.Repair)
                    {
                        //还没测试
                        GenerateProcessTask((int)CheckReason.Repair);
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                    }
                    //如果上件产品送检结果为NG则生成过程检验任务
                    else if (isChecked && IsNotGood())
                    {
                        GenerateProcessTask((int)CheckReason.LastPieceNotGood);
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                    }
                    //是否达到抽检频率
                    else if (isChecked && IsMeetFrequency())
                    {
                        GenerateProcessTask((int)CheckReason.MeetFrequency);
                        RemarkInspect();
                        FrmDialog.ShowDialog(this, "请将此 产品送至质检中心,等待进一步检验结果!");
                    }
                }
                //apsdetail状态修改以及完善apsdetail最后修改时间呀什么的
                PerfectApsDetail();

                //控制点转档
                OfflineCntLogicTurn();
                //计划产品信息状态修改(不应该出现,应该出现在某道产品末道工序的最后一个产品上 可以用goto语句搞一搞)
                //理论上这边也要有的,因为我们并不能确定机加工是不是就是末道工序了,所以需要添加一下

                // PlanProductInfoStateChange();
                //完善产品质量数据表
                PerfectProductQD();

                //修改aps工序任务表里的信息,例如修改完成状态,更新执行进度
                PerfectApsProcedureTask();

                //产品加工过程表转档
                ProductProcessingDocTurn();
                FrmDialog.ShowDialog(this, "产品下线成功", "提示");
                ChangeBgColor();
                RegetProcedureTasksDetails();
            }
            Close();
        }
Пример #28
0
        private async void ReadBackupHistory()
        {
            this.listView.Items.Clear();
            try
            {
                //获取读取历史数据
                InfluxDBHistoryData resultData = await IOCenterManager.QueryFormManager.ReadBackupHistory(this.ucPagerControl.PageSize, this.ucPagerControl.PageIndex);

                if (resultData == null || !resultData.ReturnResult)
                {
                    if (resultData != null)
                    {
                        FrmDialog.ShowDialog(this, resultData.Msg);
                    }
                    else
                    {
                        FrmDialog.ShowDialog(this, "查询失败");
                    }

                    return;
                }
                //设置页眉控件参数
                this.ucPagerControl.PageCount   = resultData.PageCount;
                this.ucPagerControl.RecordCount = resultData.RecordCount;

                if (resultData.Seres.Count() > 0)
                {
                    Serie s = resultData.Seres.ElementAt(0);
                    //获取首个时间

                    for (int i = 0; i < s.Values.Count; i++)
                    {
                        int    timeindex = s.Columns.IndexOf("time");
                        string time      = UnixDateTimeConvert.ConvertDateTimeInt(Convert.ToDateTime(InfluxDbManager.GetInfluxdbValue(s.Values[i][timeindex]))).ToString();
                        int    dateindex = s.Columns.IndexOf("field_backup_date");

                        string       date = InfluxDbManager.GetInfluxdbValue(s.Values[i][dateindex]);
                        ListViewItem lvi  = new ListViewItem(time);
                        int          field_backup_date = s.Columns.IndexOf("field_backup_date");
                        if (field_backup_date >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_backup_date]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int field_backup_path = s.Columns.IndexOf("field_backup_path");
                        if (field_backup_path >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_backup_path]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        ///
                        int field_backup_file = s.Columns.IndexOf("field_backup_file");
                        if (field_backup_file >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_backup_file]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        ///
                        int field_backup_result = s.Columns.IndexOf("field_backup_result");
                        if (field_backup_result >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_backup_result]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }


                        listView.Items.Add(lvi);
                    }
                }
            }

            catch (Exception ex)
            {
                IOCenterManager.QueryFormManager.DisplyException(ex);
            }
        }
        private void DataFill()
        {
            using (var context = new Model())
            {
                //在产品加工过程表中根据产品出生证  获取元数据
                _cProductProcessing = context.C_ProductProcessing.FirstOrDefault(s => s.ProductBornCode == _productBornCode);

                if (_cProductProcessing == null)
                {
                    FrmDialog.ShowDialog(this, "未检测到上线产品", "警告");
                    return;
                }
                var procedureIdInt16 = Convert.ToInt16(_cProductProcessing.ProcedureID);

                //在工序自检项配置表中根据工序主键/是否启用/有效性  获得自检项数据
                //类型转换问题  数据库设计有误吗???
                _aProcedureSelfCheckingConfigs = context.A_ProcedureSelfCheckingConfig.Where(s =>
                                                                                             s.ProcedureID == procedureIdInt16 &&
                                                                                             s.IsEnable == true && s.IsAvailable == true).OrderByDescending(s => s.IsRequired).ToList();

                //动态加载txt和lbl控件
                int tabIndex      = 1;
                int localLblY     = 23;
                int localTextBoxY = 20;
                foreach (var aProcedureSelfCheckingConfig in _aProcedureSelfCheckingConfigs)
                {
                    var label = new Label();
                    if (tabIndex % 3 == 2)
                    {
                        label.Location = new Point(310, localLblY);
                    }
                    else if (tabIndex % 3 == 0)
                    {
                        label.Location = new Point(550, localLblY);
                    }
                    else
                    {
                        label.Location = new Point(80, localLblY);
                    }
                    label.Size      = new Size(70, 26);
                    label.Text      = aProcedureSelfCheckingConfig.ItemName + ':';
                    label.ForeColor = Color.Black;
                    label.TabIndex  = tabIndex;
                    label.BackColor = Color.Transparent;
                    label.Font      = new Font("微软雅黑", 10.8F, FontStyle.Bold,
                                               GraphicsUnit.Point, ((byte)(134)));
                    label.Name = aProcedureSelfCheckingConfig.ItemCode + "lbl";
                    panel3.Controls.Add(label);


                    if (tabIndex % 3 == 0)
                    {
                        localLblY += 60;
                    }
                    // localLblY += 60;

                    var textBox = new TextBox();
                    if (tabIndex % 3 == 2)
                    {
                        textBox.Location = new Point(390, localTextBoxY);
                    }
                    else if (tabIndex % 3 == 0)
                    {
                        textBox.Location = new Point(620, localTextBoxY);
                    }
                    else
                    {
                        textBox.Location = new Point(160, localTextBoxY);
                    }
                    // textBox.Location = new Point(130, localTextBoxY);
                    textBox.Size = new Size(130, 32);
                    textBox.Name = aProcedureSelfCheckingConfig.ItemCode + "txt";
                    panel3.Controls.Add(textBox);

                    if (tabIndex % 3 == 0)
                    {
                        localTextBoxY += 60;
                    }
                    // localTextBoxY += 60;
                    _txtNameList.Add(aProcedureSelfCheckingConfig.ItemCode + "txt");

                    tabIndex++;


                    if (aProcedureSelfCheckingConfig.IsRequired != null && (bool)aProcedureSelfCheckingConfig.IsRequired)
                    {
                        panel3.Controls[$"{aProcedureSelfCheckingConfig.ItemCode + "lbl"}"].Text =
                            panel3.Controls[$"{aProcedureSelfCheckingConfig.ItemCode + "lbl"}"].Text
                            .Insert(panel3.Controls[$"{aProcedureSelfCheckingConfig.ItemCode + "lbl"}"].Text.Length - 1, "*");
                        panel3.Controls[$"{aProcedureSelfCheckingConfig.ItemCode + "lbl"}"].ForeColor = Color.Red;
                        panel3.Controls[$"{aProcedureSelfCheckingConfig.ItemCode + "txt"}"].Tag       = "*";
                        _mbNameList.Add(aProcedureSelfCheckingConfig.ItemCode);
                    }

                    //在产品质量数据表中根据 订单号项目号计划好产品号出生证工序号检验类型(自检)及检测项编号  获得特定数据(检测实际值)
                    var cProductQualityData = context.C_ProductQualityData.FirstOrDefault(s =>
                                                                                          s.OrderID == _cProductProcessing.OrderID && s.ProjectID == _cProductProcessing.ProjectID && s.PlanID == _cProductProcessing.PlanID &&
                                                                                          s.ProductID == _cProductProcessing.ProductID && s.ProductBornCode == _cProductProcessing.ProductBornCode &&
                                                                                          s.ProcedureID == _cProductProcessing.ProcedureID &&
                                                                                          s.CheckType == (decimal?)CheckType.SelfCheck &&
                                                                                          s.ItemCode == aProcedureSelfCheckingConfig.ItemCode);

                    if (cProductQualityData != null && cProductQualityData.CollectValue != null)
                    {
                        panel3.Controls[$"{aProcedureSelfCheckingConfig.ItemCode + "txt"}"].Text = cProductQualityData.CollectValue.ToString();
                    }
                }
            }
        }
Пример #30
0
        private async void ReadAlarmConfigHistory()
        {
            try
            {
                if (Device == null)
                {
                    return;
                }
                this.listViewSendCommand.Clear();
                IO_DEVICE copyDevice = this.Device.Copy();
                //获取读取历史数据
                InfluxDBHistoryData resultData = await IOCenterManager.QueryFormManager.ReadHistoryAlarmConfigsDevice(this.Server, this.Communication, copyDevice, this.search.StartDate, this.search.EndDate, this.ucPagerControl.PageSize, this.ucPagerControl.PageIndex);

                if (resultData == null || !resultData.ReturnResult)
                {
                    if (resultData != null)
                    {
                        FrmDialog.ShowDialog(this, resultData.Msg);
                    }
                    else
                    {
                        FrmDialog.ShowDialog(this, "查询失败");
                    }

                    return;
                }
                //设置页眉控件参数
                this.ucPagerControl.PageCount   = resultData.PageCount;
                this.ucPagerControl.RecordCount = resultData.RecordCount;
                //删除曲线


                if (resultData.Seres.Count() > 0)
                {
                    Serie s = resultData.Seres.ElementAt(0);
                    //获取首个时间

                    for (int i = 0; i < s.Values.Count; i++)
                    {
                        int    timeindex         = s.Columns.IndexOf("time");
                        string time              = UnixDateTimeConvert.ConvertDateTimeInt(Convert.ToDateTime(InfluxDbManager.GetInfluxdbValue(s.Values[i][timeindex]))).ToString();
                        int    field_update_date = s.Columns.IndexOf("field_update_date");

                        string       date = InfluxDbManager.GetInfluxdbValue(s.Values[i][field_update_date]);
                        ListViewItem lvi  = new ListViewItem(date);


                        int field_update_result = s.Columns.IndexOf("field_update_result");
                        if (field_update_result >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_update_result]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int field_update_uid = s.Columns.IndexOf("field_update_uid");
                        if (field_update_uid >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_update_uid]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }


                        int field_io_name = s.Columns.IndexOf("field_io_name");
                        if (field_io_name >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_name]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        ///
                        int field_io_label = s.Columns.IndexOf("field_io_label");
                        if (field_io_label >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_label]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }



                        int field_io_condition = s.Columns.IndexOf("field_io_condition");
                        if (field_io_condition >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_condition]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }



                        int field_io_enable_maxmax = s.Columns.IndexOf("field_io_enable_maxmax");
                        if (field_io_enable_maxmax >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_enable_maxmax]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        int field_io_maxmax_type = s.Columns.IndexOf("field_io_maxmax_type");
                        if (field_io_maxmax_type >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_maxmax_type]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        int field_io_maxmax_value = s.Columns.IndexOf("field_io_maxmax_value");
                        if (field_io_maxmax_value >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_maxmax_value]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int field_io_enable_max = s.Columns.IndexOf("field_io_enable_max");
                        if (field_io_enable_max >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_enable_max]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        int field_io_max_type = s.Columns.IndexOf("field_io_max_type");
                        if (field_io_max_type >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_max_type]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        int field_io_max_value = s.Columns.IndexOf("field_io_max_value");
                        if (field_io_max_value >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_max_value]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }



                        int field_io_enable_min = s.Columns.IndexOf("field_io_enable_min");
                        if (field_io_enable_min >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_enable_min]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int field_io_min_type = s.Columns.IndexOf("field_io_min_type");
                        if (field_io_min_type >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_min_type]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        int field_io_min_value = s.Columns.IndexOf("field_io_min_value");
                        if (field_io_min_value >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_min_value]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }



                        int field_io_enable_minmin = s.Columns.IndexOf("field_io_enable_minmin");
                        if (field_io_enable_minmin >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_enable_minmin]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }

                        int field_io_minmin_type = s.Columns.IndexOf("field_io_minmin_type");
                        if (field_io_minmin_type >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_minmin_type]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }
                        int field_io_minmin_value = s.Columns.IndexOf("field_io_minmin_value");
                        if (field_io_minmin_value >= 0)
                        {
                            lvi.SubItems.Add(InfluxDbManager.GetInfluxdbValue(s.Values[i][field_io_minmin_value]));
                        }
                        else
                        {
                            lvi.SubItems.Add("");
                        }



                        this.listViewSendCommand.Items.Add(lvi);
                    }
                }
            }
            catch (Exception ex)
            {
                IOCenterManager.QueryFormManager.DisplyException(ex);
            }
        }