示例#1
0
        /// <summary>
        /// 将托盘存入缓存库
        /// </summary>
        /// <param name="trayCode">托盘条码</param>
        /// <param name="access">数据库实例对象</param>
        /// <returns>执行结果。1:未获取到托盘批次。0:缓存成功</returns>
        public int InsertCacheTable(BaseAccess access, string[] trayCode, int inStack)
        {
            int fls = 0;

            for (int i = 0; i < trayCode.Length; i++)
            {
                string batch = businessControl.GetTrayBatch(trayCode[i]);
                ProductProcessDataEntity entity;
                if (string.IsNullOrEmpty(batch))
                {
                    // 未获取到托盘的批次
                    entity = new ProductProcessDataEntity()
                    {
                        TrayCode      = trayCode[i],
                        CreateTime    = DateTime.Now,
                        State         = "托盘到达",
                        MaterialData  = "未获取到批次",
                        ExceptionInfo = "未获取到批次"
                    };
                    //WriteProductDateBase(Writers["scanCodeFeedbackAddr"], entity);
                    WriteProductDateBase(device, entity);
                    fls = 1;
                }
                else
                {
                    entity = new ProductProcessDataEntity()
                    {
                        TrayCode     = trayCode[i],
                        CreateTime   = DateTime.Now,
                        State        = "托盘批次",
                        MaterialData = batch
                    };

                    //WriteProductDateBase(Writers["scanCodeFeedbackAddr"], entity);
                    WriteProductDateBase(device, entity);

                    CacheStackTray trayData = new CacheStackTray();
                    trayData.Barcode    = trayCode[i];
                    trayData.Batch      = batch;
                    trayData.InStack    = inStack;
                    trayData.UpdateTime = DateTime.Now;
                    trayData.Flag       = this.stackNumber;

                    string insertSql = string.Format("INSERT INTO {0} (Barcode,Batch,InStack,Flag,UpdateTime) OUTPUT INSERTED.Id VALUES ('{1}','{2}','{3}','{4}','{5}')",
                                                     lineDevice.PrefixTable + "CacheStackTray",
                                                     trayData.Barcode,
                                                     trayData.Batch,
                                                     trayData.InStack,
                                                     trayData.Flag,
                                                     trayData.UpdateTime);
                    access.ExecuteNonQuery(insertSql);
                    //access.Insert(trayData, CacheStackTray.BARCODE, CacheStackTray.BATCH, CacheStackTray.IN_STACK, CacheStackTray.UPDATE_TIME, CacheStackTray.FLAG);
                    // 将托盘加入集合
                    trayCodeList.Add(trayData);
                    fls = 0;
                }
            }
            return(fls);
        }
示例#2
0
        /// <summary>
        /// 保存堆叠的托盘
        /// </summary>
        /// <param name="trayCodeList">托盘条码集合</param>
        /// <param name="access">数据库对象实例</param>
        private void SaveStackTrays(List <CacheStackTray> trayCodeList, BaseAccess access, string flag)
        {
            // 按照允许叠盘数量依次增加,根据实际情况而定,其中1盘在最上面,就不需要翻转
            // 翻转保存
            // trayCodeList.Reverse();
            long traysId   = SelectTraysId(trayCodeList[trayCodeList.Count - int.Parse(flag)].Barcode, access);
            int  trayIndex = 0;

            foreach (var item in trayCodeList)
            {
                if (flag == "2" && item.InStack == 1)
                {
                    continue;
                }

                StackTrays tray = new StackTrays();
                //tray.Id = Guid.NewGuid();
                tray.TraysId    = traysId;
                tray.Barcode    = item.Barcode;
                tray.Batch      = item.Batch;
                tray.TrayIndex  = ++trayIndex;
                tray.UpdateTime = DateTime.Now;

                string insertSql = string.Format("INSERT INTO {0} (TraysId,Barcode,Batch,TrayIndex,UpdateTime) OUTPUT INSERTED.Id VALUES ('{1}','{2}','{3}','{4}','{5}')",
                                                 lineDevice.PrefixTable + "StackTrays",
                                                 tray.TraysId,
                                                 tray.Barcode,
                                                 tray.Batch,
                                                 tray.TrayIndex,
                                                 tray.UpdateTime);
                access.ExecuteNonQuery(insertSql);

                //int count = access.Insert(tray, StackTrays.TRAYS_ID, StackTrays.BARCODE, StackTrayFlow.BATCH, StackTrays.TRAY_INDEX, StackTrayFlow.UPDATE_TIME);
                ProductProcessDataEntity entity = new ProductProcessDataEntity()
                {
                    TrayCode     = item.Barcode,
                    CreateTime   = DateTime.Now,
                    State        = "叠盘完成",
                    MaterialData = item.Batch
                };

                //WriteProductDateBase(Writers["scanCodeFeedbackAddr"], entity);
                WriteProductDateBase(device, entity);
            }
        }