Exemple #1
0
    protected bool SetupTestData(string test)
    {
        var text = test.Trim();

        if (string.IsNullOrEmpty(text))
        {
            return(false);
        }

        var TestBuffer = new TextBuffer(new TextTagTable())
        {
            Text = text
        };

        Samples.Value = Convert.ToDouble(TestBuffer.LineCount, ci);

        var inpx = Convert.ToInt32(InputLayerNodes.Value, ci);
        var tsty = Convert.ToInt32(Samples.Value, ci);

        ManagedOps.Free(TestData);

        TestData = new ManagedArray(inpx, tsty);

        var current   = DelimiterBox.Active;
        var delimiter = current >= 0 && current < Delimiters.Count ? Delimiters[current].Character : '\t';
        var inputs    = inpx;

        using (var reader = new StringReader(TestBuffer.Text))
        {
            for (int y = 0; y < tsty; y++)
            {
                var line = reader.ReadLine();

                if (!string.IsNullOrEmpty(line))
                {
                    var tokens = line.Split(delimiter);

                    if (inputs > 0 && tokens.Length >= inpx)
                    {
                        for (int x = 0; x < inpx; x++)
                        {
                            TestData[x, y] = SafeConvert.ToDouble(tokens[x]);
                        }
                    }
                }
            }
        }

        NormalizeData(TestData, NormalizationData);

        UpdateTextView(ViewNormalization, NormalizationData);

        return(true);
    }
    protected bool SetupInputLayerWeights(string inputlayer)
    {
        var text = inputlayer.Trim();

        if (string.IsNullOrEmpty(text))
        {
            return(false);
        }

        var InputLayerBuffer = new TextBuffer(new TextTagTable())
        {
            Text = text
        };

        var inpx = Convert.ToInt32(InputLayerNodes.Value, ci) + 1;
        var inpy = Convert.ToInt32(HiddenLayerNodes.Value, ci);

        if (inpx < 2 || inpy < 2 || inpy != InputLayerBuffer.LineCount)
        {
            return(false);
        }

        ManagedOps.Free(Network.Wji);
        Network.Wji = new ManagedArray(inpx, inpy);

        var current   = DelimiterBox.Active;
        var delimiter = current >= 0 && current < Delimiters.Count ? Delimiters[current].Character : '\t';

        using (var reader = new StringReader(InputLayerBuffer.Text))
        {
            for (int y = 0; y < inpy; y++)
            {
                var line = reader.ReadLine();

                if (line != null)
                {
                    var tokens = line.Split(delimiter);

                    for (int x = 0; x < inpx; x++)
                    {
                        if (x < tokens.Length)
                        {
                            Network.Wji[x, y] = SafeConvert.ToDouble(tokens[x]);
                        }
                    }
                }
            }
        }

        return(true);
    }
    protected bool SetupNormalization(string normalization)
    {
        var text = normalization.Trim();

        if (string.IsNullOrEmpty(text))
        {
            return(false);
        }

        var NormalizationBuffer = new TextBuffer(new TextTagTable())
        {
            Text = text
        };

        var nrmx = Convert.ToInt32(InputLayerNodes.Value, ci);
        var nrmy = 2;

        if (nrmx < 2 || nrmy < 2 || NormalizationBuffer.LineCount < nrmy)
        {
            return(false);
        }

        ManagedOps.Free(NormalizationData);
        NormalizationData = new ManagedArray(nrmx, nrmy);

        var current   = DelimiterBox.Active;
        var delimiter = current >= 0 && current < Delimiters.Count ? Delimiters[current].Character : '\t';

        using (var reader = new StringReader(NormalizationBuffer.Text))
        {
            for (int y = 0; y < nrmy; y++)
            {
                var line = reader.ReadLine();

                if (line != null)
                {
                    var tokens = line.Split(delimiter);

                    for (int x = 0; x < nrmx; x++)
                    {
                        if (x < tokens.Length)
                        {
                            NormalizationData[x, y] = SafeConvert.ToDouble(tokens[x]);
                        }
                    }
                }
            }
        }

        return(true);
    }
    protected bool SetupHiddenLayerWeights(string hiddenLayer)
    {
        var text = hiddenLayer.Trim();

        if (string.IsNullOrEmpty(text))
        {
            return(false);
        }

        var HiddenLayerBuffer = new TextBuffer(new TextTagTable())
        {
            Text = text
        };

        var hidx = Convert.ToInt32(HiddenLayerNodes.Value, ci) + 1;
        var hidy = Convert.ToInt32(Categories.Value, ci);

        if (hidx < 2 || hidy < 1 || hidy != HiddenLayerBuffer.LineCount)
        {
            return(false);
        }

        ManagedOps.Free(Network.Wkj);
        Network.Wkj = new ManagedArray(hidx, hidy);

        var current   = DelimiterBox.Active;
        var delimiter = current >= 0 && current < Delimiters.Count ? Delimiters[current].Character : '\t';

        using (var reader = new StringReader(HiddenLayerBuffer.Text))
        {
            for (int y = 0; y < hidy; y++)
            {
                var line = reader.ReadLine();

                if (line != null)
                {
                    var tokens = line.Split(delimiter);

                    for (int x = 0; x < hidx; x++)
                    {
                        if (x < tokens.Length)
                        {
                            Network.Wkj[x, y] = SafeConvert.ToDouble(tokens[x]);
                        }
                    }
                }
            }
        }

        return(true);
    }
    protected bool SetupInputData(string training)
    {
        var text = training.Trim();

        if (string.IsNullOrEmpty(text))
        {
            return(false);
        }

        var TrainingBuffer = new TextBuffer(new TextTagTable())
        {
            Text = text
        };

        Examples.Value = Convert.ToDouble(TrainingBuffer.LineCount, ci);

        var inpx = Convert.ToInt32(InputLayerNodes.Value, ci);
        var inpy = Convert.ToInt32(Examples.Value, ci);

        ManagedOps.Free(InputData, OutputData, NormalizationData);

        InputData         = new ManagedArray(inpx, inpy);
        NormalizationData = new ManagedArray(inpx, 2);
        OutputData        = new ManagedArray(1, inpy);

        int min = 0;
        int max = 1;

        for (int x = 0; x < inpx; x++)
        {
            NormalizationData[x, min] = double.MaxValue;
            NormalizationData[x, max] = double.MinValue;
        }

        var current   = DelimiterBox.Active;
        var delimiter = current >= 0 && current < Delimiters.Count ? Delimiters[current].Character : '\t';
        var inputs    = inpx;

        using (var reader = new StringReader(TrainingBuffer.Text))
        {
            for (int y = 0; y < inpy; y++)
            {
                var line = reader.ReadLine();

                if (!string.IsNullOrEmpty(line))
                {
                    var tokens = line.Split(delimiter);

                    if (inputs > 0 && tokens.Length > inputs)
                    {
                        OutputData[0, y] = SafeConvert.ToDouble(tokens[inputs]);

                        for (int x = 0; x < inpx; x++)
                        {
                            var data = SafeConvert.ToDouble(tokens[x]);

                            NormalizationData[x, min] = data < NormalizationData[x, min] ? data : NormalizationData[x, min];
                            NormalizationData[x, max] = data > NormalizationData[x, max] ? data : NormalizationData[x, max];

                            InputData[x, y] = data;
                        }
                    }
                }
            }
        }

        NormalizeData(InputData, NormalizationData);

        UpdateTextView(Normalization, NormalizationData);

        return(true);
    }
        public string addFirstCheck(AddFirstCheckRequest param)
        {
            string message = "";
            Dictionary <string, string> dict = new Dictionary <string, string>();

            dict.Add("PN", "SJ" + param.snOrderList[0].OrderID);
            DateTime now = SSGlobalConfig.Now;

            CV_QM_FIRSTCHECK_SN snOrder = param.snOrderList[0];
            //先获得首检检验项
            string SubBopID = null;

            if (snOrder.Step == "装配" || snOrder.Step == "检定" || snOrder.Step == "包装")
            {   //查询step是否为包装或者装配,若是,则查询需加上subbopid
                SubBopID = snOrder.Step;
            }
            IList <CV_QM_PROCESSITEM> processItemList = _ICV_QM_PROCESSITEMBO.GetEntitiesByOrderID(snOrder.OrderID, "1", SubBopID);//首检InspectSource = 1

            if (processItemList.Count() == 0)
            {
                message = "NG,无首检检验项信息";
            }
            else
            {
                QM_PROCESS_TOP top = new QM_PROCESS_TOP()
                {
                    Source           = 1,
                    SequenceStatus   = "待检",
                    SapOrderID       = snOrder.SalesOrderID,    //SAP订单
                    WorkOrderID      = snOrder.OrderID,         //MES工单
                    MinSampleSize    = param.minSampleSize,     //最小抽样数量
                    SampleQua        = param.snOrderList.Count, //抽样数量
                    MaterielID       = snOrder.DefID,           //物料编码
                    MaterielVer      = snOrder.DefVer,          //物料版本
                    MaterielDescript = snOrder.DefDescript,     //物料描述
                    PlantID          = snOrder.PlanPlant,       //工厂ID
                    Plant            = snOrder.PlantName,       //工厂名称
                    Step             = snOrder.Step,            //工序
                    Workshop         = snOrder.DepartID,        //车间
                    LineID           = snOrder.LineID,          //产线ID
                    ProdLine         = snOrder.LineName,        //产线名称
                    CreateBy         = param.user,              //创建者
                    CreateTime       = now                      //创建时间
                };

                using (TransactionScope ts = new TransactionScope())
                {
                    top.Sequence = createCode("FirstInspectRule", dict);//首检单号
                    //创建首检单
                    _IQM_PROCESS_TOPBO.Insert(top);
                    //获得刚创建的首检单
                    QM_PROCESS_TOP_QueryParam topParam = new QM_PROCESS_TOP_QueryParam()
                    {
                        Source   = 1,
                        Sequence = top.Sequence
                    };
                    //查询KID
                    top = _IQM_PROCESS_TOPBO.GetEntitiesByQueryParam(topParam)[0];
                    foreach (CV_QM_FIRSTCHECK_SN tmp in param.snOrderList)
                    {
                        QM_PROCESS_MIDDLE middle = new QM_PROCESS_MIDDLE()
                        {
                            KID      = top.KID,
                            Sequence = top.Sequence,
                            SN       = tmp.LotID,
                            SNStatus = "待检"
                        };
                        _IQM_PROCESS_MIDDLEBO.Insert(middle);
                    }
                    //查询KLID
                    IList <QM_PROCESS_MIDDLE> middleList = _IQM_PROCESS_MIDDLEBO.GetByKid(top.KID.Value);
                    //操作底表
                    foreach (QM_PROCESS_MIDDLE middleTmp in middleList)
                    {
                        foreach (CV_QM_PROCESSITEM item in processItemList)
                        {
                            QM_PROCESS_BOTTOM bottom = new QM_PROCESS_BOTTOM()
                            {
                                KLID         = middleTmp.KLID,
                                Sequence     = middleTmp.Sequence,
                                SN           = middleTmp.SN,
                                MaterielID   = top.MaterielID,
                                ItemIndex    = item.InforDetailID,
                                Item         = item.InspectItemDes,
                                ItemStatus   = "待检",
                                ItemProperty = item.InspectItemProperty.Equals("2") ? "定量" : "定性",
                            };

                            if (!string.IsNullOrEmpty(item.TargetValue))
                            {
                                bottom.Target = SafeConvert.ToDouble(item.TargetValue);
                            }

                            if (!string.IsNullOrEmpty(item.UpperLimit))
                            {
                                bottom.UpperBound = SafeConvert.ToDouble(item.UpperLimit);
                            }

                            if (!string.IsNullOrEmpty(item.LowerLimit))
                            {
                                bottom.LowerBound = SafeConvert.ToDouble(item.LowerLimit);
                            }
                            _IQM_PROCESS_BOTTOMBO.Insert(bottom);
                        }
                    }

                    //创建预警信息
                    string    cmd_altsql = string.Format(CultureInfo.InvariantCulture, firstAltSql, top.ProdLine, top.WorkOrderID, top.Sequence);
                    DataTable dt         = bscbo.GetDataTableBySql(cmd_altsql);
                    if (dt.Rows.Count > 0)
                    {
                        //开始推送
                        PM_ALT_MESSAGE msg = alt_messagebo.GetEntity(SafeConvert.ToInt64(dt.Rows[0]["MsgPK"].ToString()));
                        if (alt_bscbo.ExecuteNotify(msg))
                        {
                            message = top.Sequence;
                            ts.Complete();
                        }
                        else
                        {
                            message = "NG,推送失败,请重新提交..";
                        }
                    }
                }
            }
            return(message);
        }