public override ExecutionResult Check(object dataParam)
        {
            var exeResult = (ExecutionResult)dataParam;

            try
            {
                string sn          = exeResult.Sn;
                string stationName = exeResult.StationName;
                bool   mode        = exeResult.IsAlive;
                if (sn == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "管号为空!";
                    return(exeResult);
                }
                if (stationName == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "站点名为空!";
                    return(exeResult);
                }

                exeResult = _routeController.CheckSn(stationName, sn, mode);
                if (exeResult.Status)
                {
                    exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0");
                    if (exeResult.Status)
                    {
                        exeResult.Message = "管号:" + sn + "过站成功!";
                    }
                }
            }
            catch (Exception e)
            {
                exeResult.Status  = false;
                exeResult.Message = e.Message;
            }
            return(exeResult);
        }
示例#2
0
        public override ExecutionResult SaveSn(object dataParam)
        {
            var    exeResult   = (ExecutionResult)dataParam;
            string stationName = exeResult.StationName;
            var    sn          = KepController.KepHelper.Read(Sn).ToString();
            var    productType = KepController.KepHelper.Read(ProductType).ToString();
            //var testValue = double.Parse(KepController.KepHelper.Read(FirstVacuumValue ?? "").ToString());
            var     testValue = KepController.KepHelper.Read(FirstVacuumValue ?? "").ToString();
            var     userName  = (KepController.KepHelper.Read(UserName ?? "")).ToString();
            int     a         = Convert.ToInt16(testValue.Substring(testValue.LastIndexOf("E") + 2));
            decimal b         = Convert.ToDecimal(testValue.Substring(0, 4));

            testValue = (b / (Convert.ToInt64(Math.Pow(10, a)))).ToString();

            var errorFlag = (KepController.KepHelper.Read(FirstTestQuality) ?? 0).ToString();

            if (errorFlag == "False")
            {
                errorFlag = "0";
            }
            if (errorFlag == "True")
            {
                errorFlag = "1";
            }
            if (!string.IsNullOrEmpty(sn) && sn != "0")
            {
                exeResult = UpdateOrInsertTestData(sn, productType, stationName, testValue, userName);
                if (exeResult.Status)
                {
                    exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag);
                    if (exeResult.Status)
                    {
                        exeResult = UpdateOrInsertLeakageData(sn, productType, testValue);
                        if (exeResult.Status)
                        {
                            if (errorFlag == "0")
                            {
                                errorFlag = "Y";
                            }
                            if (errorFlag == "1")
                            {
                                errorFlag = "N";
                            }
                            exeResult = _dao.UpdateP1Quality(sn, errorFlag);
                        }
                        if (exeResult.Status)
                        {
                            //给第一个管号发送保存完成信号
                            KepController.KepHelper.Write(SaveFinish, 1);
                        }
                        if (exeResult.Status)
                        {
                            exeResult.Message = "管号:" + sn + "过站成功!";
                        }
                    }
                }
            }
            else
            {
                exeResult.Message = "管号为空,请重新扫描!";
                exeResult.Status  = false;
            }

            return(exeResult);
        }
        public override ExecutionResult LableViewSave(object dataParam)
        {
            var exeResult = (ExecutionResult)dataParam;

            try
            {
                exeResult = _dao.GetPfDataInfo();
                var dsPf = (DataSet)exeResult.Anything;
                if (dsPf != null && dsPf.Tables[0].Rows.Count > 0 && dsPf.Tables[0].Rows.Count > 0)
                {
                    string[] msgList   = new string[6];
                    bool     allStatus = true;
                    for (int i = 0; i < dsPf.Tables[0].Rows.Count; i++)
                    {
                        string   sn                  = dsPf.Tables[0].Rows[i]["SERIAL_NUMBER"].ToString();
                        string   productType         = dsPf.Tables[0].Rows[i]["PRODUCT_TYPE"].ToString();
                        string   stationName         = dsPf.Tables[0].Rows[i]["STATION_NAME"].ToString();
                        string   firstDischargeValue = dsPf.Tables[0].Rows[i]["FIRST_DISCHARGE_VALUE"].ToString();
                        string   errorFlag           = dsPf.Tables[0].Rows[i]["ERROR_FLAG"].ToString();
                        string   userName            = dsPf.Tables[0].Rows[i]["USER_NAME"].ToString();
                        DateTime testTime            = DateTime.Parse(dsPf.Tables[0].Rows[i]["TEST_TIME"].ToString());

                        if (errorFlag != "1")
                        {
                            errorFlag = "0";
                            exeResult = _dao.UpdateQualityHighDischargeInfo(sn, firstDischargeValue, errorFlag);
                            if (!exeResult.Status)
                            {
                                allStatus         = false;
                                exeResult.Message = "插入首次击穿电压值失败";
                            }
                            exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag);
                            if (exeResult.Status)
                            {
                                exeResult.Message = "管号:" + sn + "过站成功!";
                            }
                        }
                        else
                        {
                            exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag);
                            if (exeResult.Status)
                            {
                                allStatus         = false;
                                exeResult.Message = "管号:" + sn + "标记不良!";;
                            }
                        }
                        msgList[i]       = exeResult.Message ?? "";
                        exeResult.Status = allStatus;
                    }

                    exeResult.Message = msgList[0] + msgList[1] + msgList[2] + msgList[3] + msgList[4] + msgList[5];
                    exeResult.Status  = allStatus;
                }
                else
                {
                    exeResult.Message = "没查询到老炼测试完成数据";
                    exeResult.Status  = false;
                }
            }
            catch (Exception e)
            {
                exeResult.Status = false; exeResult.Message = e.Message;
            }
            return(exeResult);
        }
        public override ExecutionResult Check(object dataParam)
        {
            var exeResult = (ExecutionResult)dataParam;

            try
            {
                string sn          = exeResult.Sn;
                string stationName = exeResult.StationName;
                bool   mode        = exeResult.IsAlive;
                if (sn == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "管号为空!";
                    return(exeResult);
                }
                if (stationName == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "站点名为空!";
                    return(exeResult);
                }

                exeResult = _routeController.CheckSn(stationName, sn, mode);
                if (exeResult.Status)
                {
                    #region 查询管型编号
                    string productSerial = "";

                    if (exeResult.Status)
                    {
                        exeResult = _routeController.GetProductSerial(sn);

                        if (exeResult.Status)
                        {
                            productSerial = (string)exeResult.Anything;
                        }
                        if (!exeResult.Status)
                        {
                            return(exeResult);
                        }
                    }

                    #endregion
                    if (KepController.KepHelper != null && KepController.KepHelper.State)
                    {
                        KepController.KepHelper.Write(ProductSerial, productSerial);
                        var productSerialok = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString();
                        if (productSerial != productSerialok)
                        {
                            exeResult.Status  = false;
                            exeResult.Message = "发送管型序号失败!";
                            return(exeResult);
                        }

                        exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0");
                        if (exeResult.Status)
                        {
                            KepController.KepHelper.Write(ScanFinish, 1);//资料更新成功,发送扫描完成
                            exeResult.Message = "管号:" + sn + "过站成功!";
                        }
                    }
                    else
                    {
                        exeResult.Status  = false;
                        exeResult.Message = "未连接KEP服务器!";
                        return(exeResult);
                    }
                }
                else
                {
                    KepController.KepHelper.Write(GoPallet, 1);               //流程正确回托盘
                    exeResult.Status  = false;
                    exeResult.Message = exeResult.Message;
                }
            }
            catch (Exception e)
            {
                exeResult.Status  = false;
                exeResult.Message = e.Message;
            }


            return(exeResult);
        }
示例#5
0
        public override ExecutionResult SaveSn(object dataParam)
        {
            var    exeResult   = (ExecutionResult)dataParam;
            string stationName = exeResult.StationName;
            var    sn          = KepController.KepHelper.Read(Sn).ToString();
            var    productType = KepController.KepHelper.Read(ProductType).ToString();
            var    dianZuValue = Convert.ToDouble(KepController.KepHelper.Read(DianZuValue ?? "")).ToString("0.00");
            var    dianZuIsOk  = (KepController.KepHelper.Read(DianZuIsOk ?? "")).ToString();

            if (dianZuIsOk == "True")
            {
                dianZuIsOk = "N";
            }
            else
            {
                dianZuIsOk = "Y";
            }
            var ziBiLiValue = (KepController.KepHelper.Read(ZiBiLiValue) ?? 0).ToString();
            var ziBiLiIsOk  = (KepController.KepHelper.Read(ZiBiLiIsOk ?? "")).ToString();

            if (ziBiLiIsOk == "True")
            {
                ziBiLiIsOk = "N";
            }
            else
            {
                ziBiLiIsOk = "Y";
            }
            var fanLiValue = (KepController.KepHelper.Read(FanLiValue) ?? 0).ToString();
            var fanLiIsOk  = (KepController.KepHelper.Read(FanLiIsOk ?? "")).ToString();

            if (fanLiIsOk == "True")
            {
                fanLiIsOk = "N";
            }
            else
            {
                fanLiIsOk = "Y";
            }
            var userName = (KepController.KepHelper.Read(UserName ?? "")).ToString();
            var mode     = (KepController.KepHelper.Read(Mode ?? "")).ToString();

            if (mode == "True")
            {
                mode = "全部测试";
            }
            else
            {
                mode = "只测电阻";
            }
            var errorFlag = "0";

            if (!string.IsNullOrEmpty(sn) && sn != "0")
            {
                exeResult = UpdateOrInsertTouchDataAll(sn, productType, dianZuValue, dianZuIsOk, ziBiLiValue, ziBiLiIsOk, fanLiValue, fanLiIsOk, mode, userName);

                if (exeResult.Status)
                {
                    exeResult = UpdateOrInsertQualityAll(sn, dianZuValue, ziBiLiValue, fanLiValue, mode);
                    if (exeResult.Status)
                    {
                        //判断是否为完全测试模式 为true是部分测试模式
                        if (exeResult.IsAlive == false)
                        {
                            exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag);
                        }
                        if (exeResult.Status)
                        {
                            //发送保存完成信号
                            KepController.KepHelper.Write(SaveFinish, 1);
                        }
                        if (exeResult.Status)
                        {
                            exeResult.Message = "管号:" + sn + "过站成功!";
                        }
                    }
                    else
                    {
                        exeResult.Message = "质量测试报表插入接触电阻数据失败!";
                        exeResult.Status  = false;
                    }
                }
                else
                {
                    exeResult.Message = "接触电阻表数据更新失败!";
                    exeResult.Status  = false;
                }
            }
            else
            {
                exeResult.Message = "管号为空,请重新扫描!";
                exeResult.Status  = false;
            }

            return(exeResult);
        }
        public override ExecutionResult LableViewSave(object dataParam)
        {
            var exeResult = (ExecutionResult)dataParam;

            try
            {
                exeResult = _dao.GetIvcTestDataInfo();
                var dsIvc = (DataSet)exeResult.Anything;
                if (dsIvc != null && dsIvc.Tables[0].Rows.Count > 0 && dsIvc.Tables[0].Rows.Count > 0)
                {
                    string[] msgList   = new string[3];
                    bool     allStatus = true;
                    for (int i = 0; i < dsIvc.Tables[0].Rows.Count; i++)
                    {
                        string   sn               = dsIvc.Tables[0].Rows[i]["SERIAL_NUMBER"].ToString();
                        string   errorFlag        = dsIvc.Tables[0].Rows[i]["ERROR_FLAG"].ToString();
                        string   productType      = dsIvc.Tables[0].Rows[i]["PRODUCT_TYPE"].ToString();
                        int      mode             = int.Parse(dsIvc.Tables[0].Rows[i]["MODE"].ToString());
                        string   positiveValue    = dsIvc.Tables[0].Rows[i]["POSITIVE_VALUE"].ToString();
                        string   negativeValue    = dsIvc.Tables[0].Rows[i]["NEGATIVE_VALUE"].ToString();
                        string   pDischargeNumber = dsIvc.Tables[0].Rows[i]["P_DISCHARGE_NUMBER"].ToString();
                        string   nDischargeNumber = dsIvc.Tables[0].Rows[i]["N_DISCHARGE_NUMBER"].ToString();
                        string   userName         = dsIvc.Tables[0].Rows[i]["USER_NAME"].ToString();
                        string   stationName      = dsIvc.Tables[0].Rows[i]["STATION_NAME"].ToString();
                        DateTime testTime         = DateTime.Parse(dsIvc.Tables[0].Rows[i]["TEST_TIME"].ToString());
                        string   positiveValueF   = "";
                        string   negativeValueF   = "";
                        #region 插入服务器150雷电冲击测试数据
                        for (int j = 0; j < mode; j++)
                        {
                            string   number         = (j + 1).ToString();
                            string[] positiveValueC = positiveValue.Split(',');
                            string[] negativeValueC = negativeValue.Split(',');
                            if (positiveValueC.Length == mode)
                            {
                                positiveValueF = positiveValueC[j];
                            }
                            if (positiveValueC.Length == mode)
                            {
                                negativeValueF = negativeValueC[j];
                            }
                            exeResult = _dao.InsertLightingImpulseInfo(sn, productType, number, positiveValueF, negativeValueF, userName, testTime);
                        }
                        #endregion

                        if (errorFlag != "1")
                        {
                            exeResult = _dao.UpdateQualityImpluseInfo(sn, pDischargeNumber, nDischargeNumber);
                            if (!exeResult.Status)
                            {
                                allStatus         = false;
                                exeResult.Message = "插入雷电冲击正负极击穿次数失败";
                            }
                            exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag);
                            if (exeResult.Status)
                            {
                                exeResult.Message = "管号:" + sn + "过站成功!";
                            }
                        }
                        else
                        {
                            exeResult = _updateStationController.UpdateStationInfo(sn, stationName, errorFlag);
                            if (exeResult.Status)
                            {
                                allStatus = false; exeResult.Message = "管号:" + sn + "标记不良!";;
                            }
                        }

                        msgList[i]       = exeResult.Message ?? "";
                        exeResult.Status = allStatus;
                    }

                    exeResult.Message = msgList[0] + msgList[1] + msgList[2];
                    exeResult.Status  = allStatus;
                }
            }
            catch (Exception e)
            {
                exeResult.Status  = false;
                exeResult.Message = e.Message;
            }



            return(exeResult);
        }
示例#7
0
        public override ExecutionResult SaveSn(object dataParam)
        {
            var  exeResult = (ExecutionResult)dataParam;
            bool mode      = exeResult.IsAlive;

            exeResult.Status = true;
            string flag = (string)exeResult.Anything;

            string stationName = exeResult.StationName;

            string [] msgList = new string[3];
            bool      allStatus = true;
            bool      ng1, ng2, ng3;
            bool      warn1, warn2, warn3;
            var       snA      = KepController.KepHelper.Read(SN1).ToString() ?? "0";
            var       snB      = KepController.KepHelper.Read(SN2).ToString() ?? "0";
            var       snC      = KepController.KepHelper.Read(SN3).ToString() ?? "0";
            var       userName = KepController.KepHelper.Read(UserName).ToString();

            #region  第一个Sn处理过程
            if (!string.IsNullOrWhiteSpace(snA) && !snA.Equals("0"))
            {
                #region 查询x射线工位不良描述
                if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0)
                {
                    exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位");
                }

                #endregion
                string strA = snA;
                if (exeResult.Status)
                {
                    if (exeResult.Status)
                    {
                        ng1   = bool.Parse(KepController.KepHelper.Read(NG1).ToString());
                        warn1 = bool.Parse(KepController.KepHelper.Read(WARN1).ToString());
                        if (ng1 || warn1)
                        {
                            //读取各个不良信息
                            List <string> errorCodelistA = new List <string>();
                            foreach (var key in ErrorCodeHelper.ValueAddrDic1.Keys)
                            {
                                bool errorCodeKep = bool.Parse(KepController.KepHelper.Read(ErrorCodeHelper.ValueAddrDic1[key]).ToString());
                                if (errorCodeKep.Equals(true))
                                {
                                    errorCodelistA.Add(key);
                                }
                            }
                            if (errorCodelistA.Count > 0)
                            {
                                //为真插入log记录
                                if (ng1.Equals(true))
                                {
                                    exeResult = _dao.InsertErrorLogInfo(strA, stationName, errorCodelistA, userName);
                                    if (exeResult.Status)
                                    {
                                        exeResult.ErrorFlag = 1;
                                    }
                                }
                                //为真插入警告记录
                                if (warn1.Equals(true))
                                {
                                    exeResult = _dao.InsertWarningInfo(strA, stationName, errorCodelistA);
                                    if (exeResult.Status)
                                    {
                                        exeResult.ErrorFlag = 0;
                                    }
                                }
                            }
                        }
                        flag = exeResult.ErrorFlag.ToString();

                        //跟新工位名称和错误标记
                        exeResult = _updateStationController.UpdateStationInfo(strA, stationName, flag);
                        //exeResult.Status = true;
                        if (exeResult.Status)
                        {
                            if (flag == "1")
                            {
                                flag = "N";
                            }
                            if (flag == "0")
                            {
                                flag = "Y";
                            }
                        }
                        exeResult = _dao.UpdateXrayQuality(strA, flag);

                        if (exeResult.Status)
                        {
                            //给第一个管号发送保存完成信号
                            KepController.KepHelper.Write(SaveA, 1);
                        }
                        if (exeResult.Status && flag == "0")
                        {
                            exeResult.Message = "管号:" + snA + "过站成功!";
                        }
                        if (exeResult.Status && flag == "1")
                        {
                            exeResult.Message = "管号:" + snA + "存在不良,请下线处理!";
                            allStatus         = false;
                        }
                    }
                }
            }
            else
            {
                exeResult.Message = "第一列管号不存在!";
                allStatus         = false;
            }
            msgList[0] = exeResult.Message ?? "";
            #endregion

            #region 第二个Sn处理过程

            if (!string.IsNullOrWhiteSpace(snB) && !snB.Equals("0"))
            {
                #region 查询x射线工位不良描述
                if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0)
                {
                    exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位");
                }

                #endregion

                string strB = snB;
                if (exeResult.Status)
                {
                    exeResult = _routeController.CheckSn(stationName, strB, mode);
                    if (exeResult.Status)
                    {
                        ng2   = bool.Parse(KepController.KepHelper.Read(NG2).ToString());
                        warn2 = bool.Parse(KepController.KepHelper.Read(WARN2).ToString());
                        if (ng2 || warn2)
                        {
                            //读取各个不良信息
                            List <string> errorCodelistB = new List <string>();
                            foreach (var key in ErrorCodeHelper.ValueAddrDic2.Keys)
                            {
                                bool errorCodeKep = bool.Parse(KepController.KepHelper.Read(ErrorCodeHelper.ValueAddrDic2[key]).ToString());
                                if (errorCodeKep.Equals(true))
                                {
                                    errorCodelistB.Add(key);
                                }
                            }
                            if (errorCodelistB.Count > 0)
                            {
                                //为真插入log记录
                                if (ng2.Equals(true))
                                {
                                    exeResult = _dao.InsertErrorLogInfo(strB, stationName, errorCodelistB, userName);
                                    if (exeResult.Status)
                                    {
                                        exeResult.ErrorFlag = 1;
                                    }
                                }
                                //为真插入警告记录
                                if (warn2.Equals(true))
                                {
                                    exeResult = _dao.InsertWarningInfo(strB, stationName, errorCodelistB);
                                    if (exeResult.Status)
                                    {
                                        exeResult.ErrorFlag = 0;
                                    }
                                }
                            }
                        }
                        flag = exeResult.ErrorFlag.ToString();

                        //跟新工位名称和错误标记
                        exeResult = _updateStationController.UpdateStationInfo(strB, stationName, flag);
                        //exeResult.Status = true;
                        if (exeResult.Status)
                        {
                            if (flag == "1")
                            {
                                flag = "N";
                            }
                            if (flag == "0")
                            {
                                flag = "Y";
                            }
                        }
                        exeResult = _dao.UpdateXrayQuality(strB, flag);
                        if (exeResult.Status)
                        {
                            //给第二个管号发送保存完成信号
                            KepController.KepHelper.Write(SaveB, 1);
                        }
                        if (exeResult.Status && flag == "0")
                        {
                            exeResult.Message = exeResult.Message + "管号:" + snB + "过站成功!";
                        }
                        if (exeResult.Status && flag == "1")
                        {
                            exeResult.Message = exeResult.Message + "管号:" + snB + "存在不良,请下线处理!";
                            allStatus         = false;
                        }
                    }
                }
            }
            else
            {
                exeResult.Message = "第二列管号不存在!";
                allStatus         = false;
            }
            msgList[1] = exeResult.Message ?? "";
            #endregion

            #region 第三个Sn处理过程

            if (!string.IsNullOrWhiteSpace(snC) && !snC.Equals("0"))
            {
                #region 查询x射线工位不良描述
                if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0)
                {
                    exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位");
                }
                if (!exeResult.Status)
                {
                    return(exeResult);
                }
                #endregion

                string strC = snC;
                exeResult = _routeController.CheckSn(stationName, strC, mode);
                if (exeResult.Status)
                {
                    ng3   = bool.Parse(KepController.KepHelper.Read(NG3).ToString());
                    warn3 = bool.Parse(KepController.KepHelper.Read(WARN3).ToString());


                    if (ng3 || warn3)
                    {
                        //读取各个不良信息
                        List <string> errorCodelistC = new List <string>();
                        foreach (var key in ErrorCodeHelper.ValueAddrDic3.Keys)
                        {
                            bool errorCodeKep = bool.Parse(KepController.KepHelper.Read(ErrorCodeHelper.ValueAddrDic3[key]).ToString());
                            if (errorCodeKep.Equals(true))
                            {
                                errorCodelistC.Add(key);
                            }
                        }
                        if (errorCodelistC.Count > 0)
                        {
                            //为真插入log记录
                            if (ng3.Equals(true))
                            {
                                exeResult = _dao.InsertErrorLogInfo(strC, stationName, errorCodelistC, userName);
                                if (exeResult.Status)
                                {
                                    exeResult.ErrorFlag = 1;
                                }
                            }
                            //为真插入警告记录
                            if (warn3.Equals(true))
                            {
                                exeResult = _dao.InsertWarningInfo(strC, stationName, errorCodelistC);
                                if (exeResult.Status)
                                {
                                    exeResult.ErrorFlag = 0;
                                }
                            }
                        }
                    }
                    flag = exeResult.ErrorFlag.ToString();
                    //跟新工位名称和错误标记
                    exeResult = _updateStationController.UpdateStationInfo(strC, stationName, flag);
                    //exeResult.Status = true;
                    if (exeResult.Status)
                    {
                        if (flag == "1")
                        {
                            flag = "N";
                        }
                        if (flag == "0")
                        {
                            flag = "Y";
                        }
                    }
                    exeResult = _dao.UpdateXrayQuality(strC, flag);
                    if (exeResult.Status)
                    {
                        //给第三个管号发送保存完成信号
                        KepController.KepHelper.Write(SaveC, 1);
                    }
                    if (exeResult.Status && flag == "0")
                    {
                        exeResult.Message = exeResult.Message + "管号:" + snC + "过站成功!";
                    }
                    if (exeResult.Status && flag == "1")
                    {
                        exeResult.Message = exeResult.Message + "管号:" + snC + "存在不良,请下线处理!";
                        allStatus         = false;
                    }
                }
            }
            else
            {
                exeResult.Message = "第三列管号不存在!";
                allStatus         = false;
            }
            #endregion
            exeResult.Status  = allStatus;
            msgList[2]        = exeResult.Message ?? "";
            exeResult.Message = msgList[0] + msgList[1] + msgList[2];
            return(exeResult);
        }
示例#8
0
        public override ExecutionResult Check(object dataParam)
        {
            _exeResult = (ExecutionResult)dataParam;
            try
            {
                string sn           = _exeResult.Sn;
                string stationName  = _exeResult.StationName;
                bool   mode         = _exeResult.IsAlive;
                string cproductType = _exeResult.ProductType;
                if (sn == "")
                {
                    _exeResult.Status  = false;
                    _exeResult.Message = "管号为空!";
                    return(_exeResult);
                }
                if (stationName == "")
                {
                    _exeResult.Status  = false;
                    _exeResult.Message = "站点名为空!";
                    return(_exeResult);
                }

                _exeResult = _routeController.CheckSn(stationName, sn, mode);
                if (_exeResult.Status)
                {
                    #region 查询x射线工位不良描述
                    if (ErrorCodeHelper.ErrorCodeDic.Count <= 0 || ErrorCodeHelper.DescAddrDic.Count <= 0)
                    {
                        _exeResult = ErrorCodeHelper.GetErrorCodeInfo("X射线工位");
                    }
                    if (!_exeResult.Status)
                    {
                        return(_exeResult);
                    }
                    #endregion

                    #region 查询是否墩粗、喷漆
                    string isUpsetting     = "False";
                    string isSprayPainting = "False";
                    string isXray          = "True";
                    string isFirstVacuum   = "True";
                    if (_exeResult.Status)
                    {
                        _exeResult = RouteDAO.GetRouteInfo(sn);
                        DataSet ds = _exeResult.Anything as DataSet;
                        if (ds != null && ds.Tables[0].Rows.Count > 0)
                        {
                            foreach (DataRow dr in ds.Tables[0].Rows)
                            {
                                string name = dr["STATION_NAME"].ToString();
                                if (name == "喷漆")
                                {
                                    isSprayPainting = "True";
                                }
                                if (name == "墩粗")
                                {
                                    isUpsetting = "True";
                                }
                                if (name == "第一次真空度测试")
                                {
                                    isFirstVacuum = "False";
                                }
                                if (name == "X射线工位")
                                {
                                    isXray = "False";
                                }
                            }
                        }
                        if (!_exeResult.Status)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "未找到管号:" + sn + "对应的流程!";
                            return(_exeResult);
                        }
                    }
                    #endregion

                    #region 查询管型编号
                    string productSerial = "";

                    if (_exeResult.Status)
                    {
                        _exeResult = _routeController.GetProductSerial(sn);

                        if (_exeResult.Status)
                        {
                            productSerial = (string)_exeResult.Anything;
                        }
                        if (!_exeResult.Status)
                        {
                            return(_exeResult);
                        }
                    }

                    #endregion

                    #region 查询管型
                    string productType = "";
                    if (_exeResult.Status)
                    {
                        _exeResult = _routeController.GetProductType(sn);
                        if (_exeResult.Status)
                        {
                            productType = (string)_exeResult.Anything;
                            if (productType != cproductType)
                            {
                                _exeResult.Message = "产线管型:" + cproductType + "与上线维护管型:" + productType + "不一致";
                                _exeResult.Status  = false;
                                return(_exeResult);
                            }
                        }
                        if (!_exeResult.Status)
                        {
                            return(_exeResult);
                        }
                    }
                    #endregion

                    #region 查询托盘大小

                    string pallet = "";
                    if (_exeResult.Status)
                    {
                        _exeResult = _routeController.GetPalletByProductType(productType);
                        if (_exeResult.Status)
                        {
                            pallet = (string)_exeResult.Anything;
                            if (pallet == "1")
                            {
                                pallet = "True";
                            }
                            else
                            {
                                pallet = "False";
                            }
                        }
                        if (!_exeResult.Status)
                        {
                            return(_exeResult);
                        }
                    }
                    #endregion

                    if (KepController.KepHelper != null && KepController.KepHelper.State)
                    {   //给pLC发送管型、管号、管型编号、是否墩粗、是否喷漆
                        var autorun = (KepController.KepHelper.Read(AutoRun) ?? "").ToString();
                        if (autorun == "False")
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "线体不在自动运行模式,无法扫描录入!";
                            return(_exeResult);
                        }

                        var badMode = (KepController.KepHelper.Read(BadMode) ?? "").ToString();
                        if (badMode == "True")
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "线体在废品上线模式,无法扫描录入!";
                            return(_exeResult);
                        }
                        var productSerialIsOk = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString();

                        if (productSerialIsOk == productSerial)
                        {
                            var palletisok = (KepController.KepHelper.Read(Pallet) ?? "").ToString();
                            if (palletisok == "True")
                            {
                                int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString());
                                if (scanCount >= 12)
                                {
                                    _exeResult.Status  = false;
                                    _exeResult.Message = "大托盘已装满" + scanCount + "支,无法再次扫描录入!";
                                    return(_exeResult);
                                }
                            }
                            if (palletisok == "False")
                            {
                                int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString());
                                if (scanCount >= 24)
                                {
                                    _exeResult.Status  = false;
                                    _exeResult.Message = "小托盘已装满" + scanCount + "支,无法再次扫描录入!";
                                    return(_exeResult);
                                }
                            }
                        }
                        if (productSerialIsOk != productSerial)
                        {
                            int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString());
                            if (scanCount != 0)
                            {
                                _exeResult.Status  = false;
                                _exeResult.Message = "一个托盘内不允许放不同管型!";
                                return(_exeResult);
                            }
                        }

                        KepController.KepHelper.Write(ProductSerial, productSerial);
                        KepController.KepHelper.Write(ProductType, productType);
                        KepController.KepHelper.Write(Pallet, pallet);
                        KepController.KepHelper.Write(IsSprayPainting, isSprayPainting);
                        KepController.KepHelper.Write(IsUpsetting, isUpsetting);
                        KepController.KepHelper.Write(IsFirstVacuum, isFirstVacuum);
                        KepController.KepHelper.Write(IsXray, isXray);
                        //给PLC发送不良信息描述
                        foreach (var key in ErrorCodeHelper.ErrorCodeDic.Keys)
                        {
                            string wkey = ErrorCodeHelper.DescAddrDic[key];
                            // string wval = ErrorCodeHelper.ErrorCodekeyDic[key];
                            string wval = key.Substring(key.LastIndexOf('-') + 1);
                            KepController.KepHelper.Write(wkey, wval);
                        }
                        KepController.KepHelper.Write(ErrorCodeDescCount, ErrorCodeHelper.ErrorCodeDic.Count);
                        #region 判断发送PLC值是否正确
                        var productSerialok = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString();
                        if (productSerial != productSerialok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送管型序号失败!";
                            return(_exeResult);
                        }
                        var productTypeok = (KepController.KepHelper.Read(ProductType) ?? "").ToString();
                        if (productType != productTypeok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送管型失败!";
                            return(_exeResult);
                        }
                        var palletok = (KepController.KepHelper.Read(Pallet) ?? "").ToString();
                        if (pallet != palletok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送托盘类型失败!";
                            return(_exeResult);
                        }
                        var isSprayPaintingok = (KepController.KepHelper.Read(IsSprayPainting) ?? "").ToString();
                        if (isSprayPainting != isSprayPaintingok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送是否喷漆失败!";
                            return(_exeResult);
                        }

                        var isUpsettingok = (KepController.KepHelper.Read(IsUpsetting) ?? "").ToString();
                        if (isUpsetting != isUpsettingok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送是否墩粗失败!";
                            return(_exeResult);
                        }

                        var isFirstVacuumok = (KepController.KepHelper.Read(IsFirstVacuum) ?? "").ToString();
                        if (isFirstVacuum != isFirstVacuumok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送是否第一次真空度失败!";
                            return(_exeResult);
                        }

                        var isXrayok = (KepController.KepHelper.Read(IsXray) ?? "").ToString();
                        if (isXray != isXrayok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送是否x射线失败!";
                            return(_exeResult);
                        }

                        var errorCodeDescCountok = (KepController.KepHelper.Read(ErrorCodeDescCount) ?? "").ToString();
                        if (ErrorCodeHelper.ErrorCodeDic.Count.ToString() != errorCodeDescCountok)
                        {
                            _exeResult.Status  = false;
                            _exeResult.Message = "发送不良描述总数失败!";
                            return(_exeResult);
                        }
                        #endregion


                        if (_exeResult.Status)
                        {
                            _exeResult = _updateStationController.InsertSnToQulity(sn, isSprayPainting, isUpsetting);
                        }
                        if (_exeResult.Status)
                        {
                            _exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0");
                        }


                        KepController.KepHelper.Write(ScanFinish, 1);
                        if (_exeResult.Status)
                        {
                            _exeResult.Message = "管号:" + sn + "过站成功!";
                        }
                    }
                    else
                    {
                        _exeResult.Status  = false;
                        _exeResult.Message = "未连接KEP服务器!";
                        return(_exeResult);
                    }
                }
            }
            catch (Exception e)
            {
                _exeResult.Status  = false;
                _exeResult.Message = e.Message;
            }
            return(_exeResult);
        }
        public override ExecutionResult Check(object dataParam)
        {
            var exeResult = (ExecutionResult)dataParam;

            try
            {
                string sn          = exeResult.Sn;
                string stationName = exeResult.StationName;
                bool   mode        = exeResult.IsAlive;
                if (sn == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "管号为空!";
                    return(exeResult);
                }
                if (stationName == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "站点名为空!";
                    return(exeResult);
                }

                exeResult = _routeController.CheckSn(stationName, sn, mode);
                if (exeResult.Status)
                {
                    var    productType = (string)exeResult.Anything;
                    string nextStation = "";
                    exeResult = _routeController.GetNextStation(sn, stationName);
                    if (exeResult.Status)
                    {
                        nextStation = (string)exeResult.Anything;
                    }
                    else
                    {
                        return(exeResult);
                    }
                    if (KepController.KepHelper != null && KepController.KepHelper.State)
                    {
                        KepController.KepHelper.Write(ProductType, productType);
                        KepController.KepHelper.Write(NextStation, nextStation);
                        var type    = (KepController.KepHelper.Read(ProductType) ?? "").ToString();
                        var station = (KepController.KepHelper.Read(NextStation) ?? "").ToString();
                        //if (productType != type)
                        //{
                        //    _exeResult.Status = false;
                        //    _exeResult.Message = "发送管型失败!";
                        //    return _exeResult;
                        //}

                        //if (nextStation != station)
                        //{
                        //    _exeResult.Status = false;
                        //    _exeResult.Message = "发送下一站失败!";
                        //    return _exeResult;
                        //}

                        exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0");
                        if (exeResult.Status)
                        {
                            exeResult.Message = "管号:" + sn + "过站成功!";
                        }
                    }
                    else
                    {
                        exeResult.Status  = false;
                        exeResult.Message = "未连接KEP服务器!";
                        return(exeResult);
                    }
                }
            }
            catch (Exception e)
            {
                exeResult.Status  = false;
                exeResult.Message = e.Message;
            }


            return(exeResult);
        }
        public override ExecutionResult Check(object dataParam)
        {
            var exeResult = (ExecutionResult)dataParam;

            try
            {
                string sn           = exeResult.Sn;
                string stationName  = exeResult.StationName;
                bool   mode         = exeResult.IsAlive;
                string cproductType = exeResult.ProductType;
                if (sn == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "管号为空!";
                    return(exeResult);
                }
                if (stationName == "")
                {
                    exeResult.Status  = false;
                    exeResult.Message = "站点名为空!";
                    return(exeResult);
                }

                exeResult = _routeController.CheckSn(stationName, sn, mode);
                if (exeResult.Status)
                {
                    #region 查询管型编号
                    string productSerial = "";

                    if (exeResult.Status)
                    {
                        exeResult = _routeController.GetProductSerial(sn);

                        if (exeResult.Status)
                        {
                            productSerial = (string)exeResult.Anything;
                        }
                        if (!exeResult.Status)
                        {
                            return(exeResult);
                        }
                    }

                    #endregion
                    #region 查询管型
                    string productType = "";
                    if (exeResult.Status)
                    {
                        exeResult = _routeController.GetProductType(sn);
                        if (exeResult.Status)
                        {
                            productType = (string)exeResult.Anything;
                            if (productType != cproductType)
                            {
                                exeResult.Message = "产线管型:" + cproductType + "与上线维护管型:" + productType + "不一致";
                                exeResult.Status  = false;
                                return(exeResult);
                            }
                        }
                        if (!exeResult.Status)
                        {
                            return(exeResult);
                        }
                    }
                    #endregion
                    #region 查询托盘大小

                    string pallet = "";
                    if (exeResult.Status)
                    {
                        exeResult = _routeController.GetPalletByProductType(productType);
                        if (exeResult.Status)
                        {
                            pallet = (string)exeResult.Anything;
                            if (pallet == "1")
                            {
                                pallet = "True";
                            }
                            else
                            {
                                pallet = "False";
                            }
                        }
                        if (!exeResult.Status)
                        {
                            return(exeResult);
                        }
                    }
                    #endregion
                    if (KepController.KepHelper != null && KepController.KepHelper.State)
                    {
                        var autorun = (KepController.KepHelper.Read(AutoRun) ?? "").ToString();
                        if (autorun == "False")
                        {
                            exeResult.Status  = false;
                            exeResult.Message = "线体不在自动运行模式,无法扫描录入!";
                            return(exeResult);
                        }
                        var badMode = (KepController.KepHelper.Read(BadMode) ?? "").ToString();
                        if (badMode == "True")
                        {
                            exeResult.Status  = false;
                            exeResult.Message = "线体在废品上线模式,无法扫描录入!";
                            return(exeResult);
                        }
                        var productSerialIsOk = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString();

                        if (productSerialIsOk == productSerial)
                        {
                            var palletisok = (KepController.KepHelper.Read(Pallet) ?? "").ToString();
                            if (palletisok == "True")
                            {
                                int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString());
                                if (scanCount >= 12)
                                {
                                    exeResult.Status  = false;
                                    exeResult.Message = "大托盘已装满" + scanCount + "支,无法再次扫描录入!";
                                    return(exeResult);
                                }
                            }
                            if (palletisok == "False")
                            {
                                int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString());
                                if (scanCount >= 24)
                                {
                                    exeResult.Status  = false;
                                    exeResult.Message = "小托盘已装满" + scanCount + "支,无法再次扫描录入!";
                                    return(exeResult);
                                }
                            }
                        }
                        if (productSerialIsOk != productSerial)
                        {
                            int scanCount = int.Parse(KepController.KepHelper.Read(ScanCount).ToString());
                            if (scanCount != 0)
                            {
                                exeResult.Status  = false;
                                exeResult.Message = "一个托盘内不允许放不同管型!";
                                return(exeResult);
                            }
                        }
                        KepController.KepHelper.Write(ProductSerial, productSerial);
                        KepController.KepHelper.Write(Pallet, pallet);
                        var productSerialok = (KepController.KepHelper.Read(ProductSerial) ?? "").ToString();
                        if (productSerial != productSerialok)
                        {
                            exeResult.Status  = false;
                            exeResult.Message = "发送管型序号失败!";
                            return(exeResult);
                        }
                        var palletok = (KepController.KepHelper.Read(Pallet) ?? "").ToString();
                        if (pallet != palletok)
                        {
                            exeResult.Status  = false;
                            exeResult.Message = "发送托盘类型失败!";
                            return(exeResult);
                        }

                        KepController.KepHelper.Write(ScanFinish, 1);
                        exeResult = _updateStationController.UpdateStationInfo(sn, stationName, "0");
                        if (exeResult.Status)
                        {
                            exeResult.Message = "管号:" + sn + "过站成功!";
                        }
                    }
                    else
                    {
                        exeResult.Status  = false;
                        exeResult.Message = "未连接KEP服务器!";
                        return(exeResult);
                    }
                }
            }
            catch (Exception e)
            {
                exeResult.Status  = false;
                exeResult.Message = e.Message;
            }
            return(exeResult);
        }