Пример #1
0
        //一码一签 Pigtail类型
        private string add1(Model.SerialNumber serialNumber, long StartSN, int OrderCount)
        {
            string Pigtail_Info = "";
            int    _Pass = 0, _Fill = 0;                                   //记录添加成功与添加失败的数量

            serialNumber.Type  = E_SerialNumber_Type.ClientSN.ToString();  //条码类型
            serialNumber.State = E_Barcode_State.Not_Pack.ToString();      //条码状态

            long endSn = StartSN + (OrderCount - 1);

            //判断编码是否有重复的
            if (Exists(StartSN.ToString(), endSn.ToString(), Model.E_SerialNumber_Type.ClientSN))
            {
                Pigtail_Info = "Pigtail编码保存失败:现有编码与数据库中的编码有重复!";
            }
            else
            {
                for (long t = StartSN; t <= endSn; t++)
                {
                    serialNumber.SN = t.ToString();                            //SN 赋值

                    if (Add(serialNumber))
                    {
                        _Pass++;
                    }
                    else
                    {
                        _Fill++;
                    }                                                          //如果添加成功!_pass记录加1,否则_fill加1
                }
                Pigtail_Info = "操作完成!成功添加:" + _Pass + "条\r\n失败:" + _Fill + "条";
            }
            return(Pigtail_Info);
        }
Пример #2
0
        /// <summary>
        ///  名称:检测方法三
        ///  功能:特殊-8芯配组检测
        /// </summary>
        /// <param name="e"></param>
        private void InspectMethod_Three(InspectEventArgs e)
        {
            try
            {
                ResultEventArgs _Result = new ResultEventArgs();                                                                                                                            //定义结果返回类
                _Result.ErrorList = "";                                                                                                                                                     //异常列表 归零
                _GLL_SerialNumber = _M_SerialNumber.GetModel(e.SN);                                                                                                                         //获取条码 实体

                if (_GLL_SerialNumber == null || _GLL_SerialNumber.OrderID != _GLL_WorkOrder.OrderID || _GLL_SerialNumber.Type != Maticsoft.Model.E_SerialNumber_Type.PigtailSN.ToString()) //判断是否属于此工单
                {
                    _Result.ErrorList += "此条码:" + e.SN + "  不属于此工单:" + _GLL_WorkOrder.OrderID + "";
                }
                else if (_GLL_SerialNumber.State != Maticsoft.Model.E_Barcode_State.Not_Pack.ToString()) //判断是否已经包装
                {
                    _Result.ErrorList += "此条码:" + _GLL_SerialNumber.SN + "  已包装或已打印!包装批号:" + _GLL_SerialNumber.BatchNO + "";
                }
                else
                {
                    if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测3D与Exfo)
                    {
                        Inspect_Three_Inspect_3D(e, _Result); Inspect_Three_Inspect_Exfo(e, _Result);
                    }
                    else if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测Exfo)
                    {
                        _Result.Result_3D = true; Inspect_Three_Inspect_Exfo(e, _Result);
                    }
                    else if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测3D)
                    {
                        _Result.Result_Exfo = true; Inspect_Three_Inspect_3D(e, _Result);
                    }


                    //--------------------------------------------------检测配组是否完成
                    ArrayList YetPack_PigtailNum_List = _M_Pack_3D.Get_ClientSN_PigtailNum(e.ClientSN, "8芯配组");   //获取已包装线号
                    ArrayList Inspect_ClientNum       = isEqual(_GLL_Standard_ClientList, YetPack_PigtailNum_List);
                    if (Inspect_ClientNum.Count > 0)
                    {
                        //设置配组 为未完成
                        _Result.Combination = false;
                        string temClientNum = ArrayListToString(Inspect_ClientNum);
                        _Result.Not_ClientSN_Name = temClientNum;
                    }
                    else
                    {
                        //设置配组 为已完成
                        _Result.Combination = true;
                        Maticsoft.Model.SerialNumber _TemClient = new Model.SerialNumber();
                        _TemClient         = _M_SerialNumber.GetModel(e.ClientSN);
                        _TemClient.State   = Maticsoft.Model.E_Barcode_State.Yet_Pack.ToString();
                        _TemClient.BatchNO = _GLL_PackBatch.BatchNo;
                        _M_SerialNumber.Update(_TemClient);

                        _Result.Not_ClientSN_Name = ArrayListToString(_GLL_Standard_ClientList);
                    }
                }
                e.InspectResult = _Result;
            }
            catch (Exception ex) { My_MessageBox.My_MessageBox_Message(ex.Message); }
        }
Пример #3
0
        /*
         * /// <summary>
         * /// 分页获取数据列表
         * /// </summary>
         * public DataSet GetList(int PageSize,int PageIndex,string strWhere)
         * {
         *      SqlParameter[] parameters = {
         *                      new SqlParameter("@tblName", SqlDbType.VarChar, 255),
         *                      new SqlParameter("@fldName", SqlDbType.VarChar, 255),
         *                      new SqlParameter("@PageSize", SqlDbType.Int),
         *                      new SqlParameter("@PageIndex", SqlDbType.Int),
         *                      new SqlParameter("@IsReCount", SqlDbType.Bit),
         *                      new SqlParameter("@OrderType", SqlDbType.Bit),
         *                      new SqlParameter("@strWhere", SqlDbType.VarChar,1000),
         *                      };
         *      parameters[0].Value = "tb_SerialNumber";
         *      parameters[1].Value = "SN";
         *      parameters[2].Value = PageSize;
         *      parameters[3].Value = PageIndex;
         *      parameters[4].Value = 0;
         *      parameters[5].Value = 0;
         *      parameters[6].Value = strWhere;
         *      return dbs.RunProcedure("UP_GetRecordByPage",parameters,"ds");
         * }*/

        #endregion  BasicMethod
        #region  ExtensionMethod

        public string serialNumber_Value(Model.E_InspectMethod _InspectMethod, Model.SerialNumber _serialNumber, long _StartSN, int OrderCount)
        {
            switch (_InspectMethod)
            {
            case E_InspectMethod.一码一签: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.一码一签_跳线: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            // case E_InspectMethod.两码一签: { return add1(_serialNumber, _StartSN, OrderCount); }
            case E_InspectMethod.两码两签: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.双并检测: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.FFOS_四芯: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.FFOS_八芯: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.FFOS_十六芯: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.FFOS_二十四芯: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.FFOS_三十二芯: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.FFOS32_三十二芯双头: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.四芯检测: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.十二芯检测: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.八芯检测: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.TFK十二芯检测x2: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.TFK二十四芯检测x2: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.二十四芯检测: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.四十八芯检测: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            case E_InspectMethod.MPO检测: { return(add1(_serialNumber, _StartSN, OrderCount)); }

            // case E_InspectMethod.配组_八芯:     { return add2(_serialNumber, _StartSN, _EndSN, 12); }     //配组
            case E_InspectMethod.配组_二十四芯: { return(add2(_serialNumber, _StartSN, OrderCount, 3)); }          //配组

            case E_InspectMethod.配组_四十八芯: { return(add2(_serialNumber, _StartSN, OrderCount, 6)); }          //配组

            case E_InspectMethod.配组_九十六芯: { return(add2(_serialNumber, _StartSN, OrderCount, 12)); }         //配组

            default:
            {
                return("未找到任何与已知检测方法匹配的项,\r\n由此引出的错误可能为检测方法设置不正确!\r\n请重试或联系管理员!");
            }
            }
        }
Пример #4
0
 /// <summary>
 /// 根据SqlDataReader返回对象
 /// </summary>
 /// <param name="reader">SqlDataReader对象</param>
 /// <returns>实体对象</returns>
 private Model.SerialNumber ToModel(SqlDataReader reader)
 {
     Model.SerialNumber serialNumber = new Model.SerialNumber
     {
         Id          = (Guid)this.ToModelValue(reader, "Id"),
         Prefix      = (string)this.ToModelValue(reader, "Prefix"),
         FormatDate  = (string)this.ToModelValue(reader, "FormatDate"),
         ClassName   = (string)this.ToModelValue(reader, "ClassName"),
         Length      = (int)this.ToModelValue(reader, "Length"),
         TodayCount  = (int)this.ToModelValue(reader, "TodayCount"),
         Description = (string)this.ToModelValue(reader, "Description")
     };
     return(serialNumber);
 }
Пример #5
0
        /// <summary>
        /// 添加
        /// </summary>
        /// <param name="serialNumber">序列号实例</param>
        /// <returns>序列号实例</returns>
        public Model.SerialNumber Add(Model.SerialNumber serialNumber)
        {
            string sql = "INSERT INTO SerialNumbers (Id, Prefix, FormatDate, ClassName, Length, TodayCount, Description) VALUES (NEWID(), @Prefix, @FormatDate, @ClassName, @Length, @TodayCount, @Description)";

            SqlParameter[] parameters =
            {
                new SqlParameter("@Prefix",      this.ToDbValue(serialNumber.Prefix)),
                new SqlParameter("@FormatDate",  this.ToDbValue(serialNumber.FormatDate)),
                new SqlParameter("@ClassName",   this.ToDbValue(serialNumber.ClassName)),
                new SqlParameter("@Length",      this.ToDbValue(serialNumber.Length)),
                new SqlParameter("@TodayCount",  this.ToDbValue(serialNumber.TodayCount)),
                new SqlParameter("@Description", this.ToDbValue(serialNumber.Description))
            };
            GeneratorDal._SqlHelper.ExecuteNonQuery(sql, parameters);
            return(serialNumber);
        }
Пример #6
0
 /// <summary>
 /// 更新条码状态
 /// </summary>
 private void Up_SerialNumber(InspectEventArgs e)
 {
     Maticsoft.Model.SerialNumber _serial = new Model.SerialNumber();
     if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测3D与Exfo)
     {
         if (e.InspectResult.Result_3D && e.InspectResult.Result_Exfo)
         {
             //更新条码状态
             foreach (string temSN in _GLL_Standard_PigtailList)
             {
                 _serial         = _M_SerialNumber.GetModel(temSN);
                 _serial.State   = Maticsoft.Model.E_Barcode_State.Yet_Pack.ToString();
                 _serial.BatchNO = _GLL_PackBatch.BatchNo.ToString();
                 _M_SerialNumber.Update(_serial);
             }
         }
     }
     else if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测Exfo)
     {
         if (e.InspectResult.Result_Exfo == true)
         {
             //更新条码状态
             foreach (string temSN in _GLL_Standard_PigtailList)
             {
                 _serial         = _M_SerialNumber.GetModel(temSN);
                 _serial.State   = Maticsoft.Model.E_Barcode_State.Yet_Pack.ToString();
                 _serial.BatchNO = _GLL_PackBatch.BatchNo.ToString();
                 _M_SerialNumber.Update(_serial);
             }
         }
     }
     else  //只检测3D
     {
         if (e.InspectResult.Result_3D == true)
         {
             //更新条码状态
             foreach (string temSN in _GLL_Standard_PigtailList)
             {
                 _serial         = _M_SerialNumber.GetModel(temSN);
                 _serial.State   = Maticsoft.Model.E_Barcode_State.Yet_Pack.ToString();
                 _serial.BatchNO = _GLL_PackBatch.BatchNo.ToString();
                 _M_SerialNumber.Update(_serial);
             }
         }
     }
 }
Пример #7
0
        /// <summary>
        /// 修改
        /// </summary>
        /// <param name="serialNumber">序列号实例</param>
        /// <returns>受影响的行数</returns>
        public int Save(Model.SerialNumber serialNumber)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append("UPDATE SerialNumbers SET Prefix = @Prefix");
            sql.Append(", FormatDate = @FormatDate");
            sql.Append(", ClassName = @ClassName");
            sql.Append(", Length = @Length");
            sql.Append(", TodayCount = @TodayCount");
            sql.Append(", Description = @Description");
            sql.Append(" WHERE Id = @Id");
            SqlParameter[] args =
            {
                new SqlParameter("@Id", serialNumber.Id)
                ,                       new SqlParameter("@Prefix", this.ToDbValue(serialNumber.Prefix))
                ,                       new SqlParameter("@FormatDate", this.ToDbValue(serialNumber.FormatDate))
                ,                       new SqlParameter("@ClassName", this.ToDbValue(serialNumber.ClassName))
                ,                       new SqlParameter("@Length", this.ToDbValue(serialNumber.Length))
                ,                       new SqlParameter("@TodayCount", this.ToDbValue(serialNumber.TodayCount))
                ,                       new SqlParameter("@Description", this.ToDbValue(serialNumber.Description))
            };
            return(GeneratorDal._SqlHelper.ExecuteNonQuery(sql.ToString(), args));
        }
Пример #8
0
        /// <summary>
        /// 生成编号方法
        /// </summary>
        /// <param name="prefix">编号前缀</param>
        /// <param name="formatDate">格式化日期</param>
        /// <param name="className">类名</param>
        /// <param name="length">流水号长度</param>
        /// <param name="description">编号描述</param>
        /// <returns>编号</returns>
        public string GenerateNumber(string prefix, string formatDate, string className, int length, string description)
        {
            lock (NumberGenerator._SyncLock)
            {
                Model.SerialNumber serialNumber = this._generatorDal.SingleOrDefault(prefix, formatDate, className, length);
                if (serialNumber == null)
                {
                    serialNumber = new Model.SerialNumber(prefix, formatDate, className, length, string.Format("创建{0}", description));
                    this._generatorDal.Add(serialNumber);
                }
                else
                {
                    serialNumber.UpdateInfo(serialNumber.TodayCount + 1, string.Format("新增{0}", description));
                    this._generatorDal.Save(serialNumber);
                }

                StringBuilder numberBuilder = new StringBuilder();
                numberBuilder.Append(serialNumber.Prefix);
                numberBuilder.Append(serialNumber.FormatDate);
                numberBuilder.Append(serialNumber.TodayCount.ToString(string.Format("D{0}", length)));

                return(numberBuilder.ToString());
            }
        }
Пример #9
0
        /// <summary>
        /// 批量生成编号方法
        /// </summary>
        /// <param name="prefix">编号前缀</param>
        /// <param name="formatDate">格式化日期</param>
        /// <param name="className">类名</param>
        /// <param name="length">流水号长度</param>
        /// <param name="description">编号描述</param>
        /// <param name="count">生成数量</param>
        /// <returns>编号集</returns>
        public ICollection <string> GenerateNumbers(string prefix, string formatDate, string className, int length, string description, int count)
        {
            lock (NumberGenerator._SyncLock)
            {
                using (TransactionScope scope = new TransactionScope(TransactionScopeOption.RequiresNew))
                {
                    ICollection <string> numbers = new HashSet <string>();

                    for (int i = 0; i < count; i++)
                    {
                        Model.SerialNumber serialNumber = this._generatorDal.SingleOrDefault(prefix, formatDate, className, length);
                        if (serialNumber == null)
                        {
                            serialNumber = new Model.SerialNumber(prefix, formatDate, className, length, $"创建{description}");
                            this._generatorDal.Add(serialNumber);
                        }
                        else
                        {
                            serialNumber.UpdateInfo(serialNumber.TodayCount + 1, $"新增{description}");
                            this._generatorDal.Save(serialNumber);
                        }

                        StringBuilder numberBuilder = new StringBuilder();
                        numberBuilder.Append(serialNumber.Prefix);
                        numberBuilder.Append(serialNumber.FormatDate);
                        numberBuilder.Append(serialNumber.TodayCount.ToString($"D{length}"));

                        numbers.Add(numberBuilder.ToString());
                    }

                    scope.Complete();

                    return(numbers);
                }
            }
        }
Пример #10
0
        //配组ClientSN 编码与 Pigtail编码
        private string add2(Model.SerialNumber serialNumber, long StartSN, int OrderCount, int PigtailCount)
        {
            int _Pass = 0, _Fill = 0;                                      //记录添加成功与添加失败的数量

            serialNumber.Type  = E_SerialNumber_Type.ClientSN.ToString();  //条码类型
            serialNumber.State = E_Barcode_State.Not_Pack.ToString();      //条码状态
            string ClinentSN_Info = "", Pigtail_Info = "";

            long _Endsn = StartSN + (OrderCount - 1);

            /**********赋值 ClientSn  *********/
            //判断编码是否有重复的
            if (Exists(StartSN.ToString(), _Endsn.ToString(), E_SerialNumber_Type.ClientSN))
            {
                Pigtail_Info = "客户编码保存失败:现有编码与数据库中的编码有重复!";
            }
            else
            {
                for (long t = StartSN; t <= _Endsn; t++)
                {
                    serialNumber.SN = t.ToString();                            //SN 赋值
                    if (Add(serialNumber))
                    {
                        _Pass++;
                    }
                    else
                    {
                        _Fill++;
                    }                                                          //如果添加成功!_pass记录加1,否则_fill加1
                    ClinentSN_Info = "操作完成 客户编码——!成功添加:" + _Pass + "条\r\n失败:" + _Fill.ToString() + "条";
                }
            }

            /**********赋值 Pigtail  *********/
            serialNumber.Type = E_SerialNumber_Type.PigtailSN.ToString();  //条码类型
            _Pass             = 0;
            _Fill             = 0;
            //判断编码是否有重复的
            if (Exists(StartSN.ToString(), _Endsn.ToString(), E_SerialNumber_Type.PigtailSN))
            {
                Pigtail_Info = "Pigtail编码保存失败:现有编码与数据库中的编码有重复!";
            }
            else
            {
                for (int f = 1; f <= PigtailCount; f++)
                {
                    for (long t = StartSN; t <= _Endsn; t++)
                    {
                        if (f < 10)
                        {
                            serialNumber.SN = t.ToString() + "-0" + f.ToString();;   //SN 赋值
                        }
                        else
                        {
                            serialNumber.SN = t.ToString() + "-" + f.ToString();;   //SN 赋值
                        }
                        if (Add(serialNumber))
                        {
                            _Pass++;
                        }
                        else
                        {
                            _Fill++;
                        }                                                       //如果添加成功!_pass记录加1,否则_fill加1
                        Pigtail_Info = "操作完成 Pigtail编码——!成功添加:" + _Pass + "条\r\n失败:" + _Fill.ToString() + "条";
                    }
                }
            }
            return(ClinentSN_Info + "\r\n" + Pigtail_Info);
        }
Пример #11
0
        /// <summary>
        ///  名称:检测方法二
        ///  功能:检测配组线材
        /// </summary>
        /// <param name="e"></param>
        private void InspectMethod_Two(InspectEventArgs e)
        {
            try
            {
                ResultEventArgs _Result = new ResultEventArgs();                                                                                                                            //定义结果返回类
                _Result.ErrorList = "";                                                                                                                                                     //异常列表 归零
                _GLL_SerialNumber = _M_SerialNumber.GetModel(e.SN);                                                                                                                         //获取条码 实体

                if (_GLL_SerialNumber == null || _GLL_SerialNumber.OrderID != _GLL_WorkOrder.OrderID || _GLL_SerialNumber.Type != Maticsoft.Model.E_SerialNumber_Type.PigtailSN.ToString()) //判断是否属于此工单
                {
                    _Result.ErrorList += "此条码:" + e.SN + "  不属于此工单:" + _GLL_WorkOrder.OrderID + "";
                }
                else if (_GLL_SerialNumber.State != Maticsoft.Model.E_Barcode_State.Not_Pack.ToString()) //判断是否已经包装
                {
                    _Result.ErrorList += "此条码:" + _GLL_SerialNumber.SN + "  已包装或已打印!包装批号:" + _GLL_SerialNumber.BatchNO + "";
                }
                else
                {
                    //验证线号是否已经存在
                    string PigtailNum = "";
                    if (e.SN.Length >= 13)
                    {
                        PigtailNum = e.SN.Substring(11, 2);
                    }                                                                                    //获取线号
                    ArrayList YetPack_PigtailNum_List = _M_Pack_3D.Get_ClientSN_PigtailNum(e.ClientSN);  //获取已包装线号

                    //判断此线号是否已经包装
                    bool Cli_IN_Name = false;
                    if (IsUpdate)
                    {
                        Cli_IN_Name = YetPack_PigtailNum_List.Contains(PigtailNum);
                    }
                    if (Cli_IN_Name)
                    {
                        _Result.ErrorList += "客户编码:" + e.ClientSN + "  已存在此线号:" + PigtailNum + " ";
                    }
                    else
                    {
                        if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测3D与Exfo)
                        {
                            Inspect_Two_Inspect_3D(e, _Result); Inspect_Two_Inspect_Exfo(e, _Result);
                        }
                        else if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测Exfo)
                        {
                            _Result.Result_3D = true; Inspect_Two_Inspect_Exfo(e, _Result);
                        }
                        else if (_GLL_WorkOrder.InspectType == Maticsoft.Model.E_InspectType.检测3D)
                        {
                            _Result.Result_Exfo = true; Inspect_Two_Inspect_3D(e, _Result);
                        }
                    }
                    //再次获取已包装线号 并与标准 客户编码数组进行比较
                    YetPack_PigtailNum_List = _M_Pack_3D.Get_ClientSN_PigtailNum(e.ClientSN);   //获取已包装线号
                    ArrayList Inspect_ClientNum = isEqual(_GLL_Standard_ClientList, YetPack_PigtailNum_List);
                    if (Inspect_ClientNum.Count > 0)
                    {
                        //设置配组 为未完成 因为不需要进行配组
                        _Result.Combination = false;
                        string temClientNum = ArrayListToString(Inspect_ClientNum);
                        _Result.Not_ClientSN_Name = temClientNum;
                    }
                    else
                    {
                        //设置配组 为已完成 因为不需要进行配组
                        _Result.Combination = true;
                        Maticsoft.Model.SerialNumber _TemClient = new Model.SerialNumber();
                        _TemClient         = _M_SerialNumber.GetModel(e.ClientSN);
                        _TemClient.State   = Maticsoft.Model.E_Barcode_State.Yet_Pack.ToString();
                        _TemClient.BatchNO = _GLL_PackBatch.BatchNo;
                        _M_SerialNumber.Update(_TemClient);

                        _Result.Not_ClientSN_Name = ArrayListToString(_GLL_Standard_ClientList);
                    }
                }
                e.InspectResult = _Result;
            }
            catch (Exception ex) { My_MessageBox.My_MessageBox_Message(ex.Message); }
        }