Пример #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>
        /// 更新上一缓存InStack为2(已叠盘)
        /// </summary>
        /// <param name="trayCode">托盘条码</param>
        /// <param name="access">数据库实例对象</param>
        /// <returns>执行结果。1:未获取到托盘批次。0:缓存成功</returns>
        private void UpdateCacheTable(BaseAccess access, string trayCode, int inStack)
        {
            CacheStackTray trayData = new CacheStackTray();

            trayData.Barcode    = trayCode;
            trayData.InStack    = inStack;
            trayData.UpdateTime = DateTime.Now;
            trayData.Flag       = this.stackNumber;

            string updateSql = string.Format("UPDATE {0} SET InStack={1},UpdateTime='{2}' WHERE Barcode='{3}' AND Flag={4}", lineDevice.PrefixTable + "CacheStackTray", trayData.InStack, trayData.UpdateTime, trayData.Barcode, trayData.Flag);

            access.ExecuteNonQuery(updateSql);

            //access.Update(trayData, new string[] { CacheStackTray.BARCODE, CacheStackTray.FLAG }, CacheStackTray.IN_STACK, CacheStackTray.UPDATE_TIME);
        }
Пример #3
0
        /// <summary>
        /// 保存最下面托盘的信息
        /// </summary>
        /// <param name="flowTray">最下面托盘信息</param>
        /// <param name="access">数据库对象</param>
        private void SaveStackFlowTray(CacheStackTray flowTray, BaseAccess access)
        {
            UpdateUsed(flowTray.Barcode, access);
            StackTrayFlow _flowTray = new StackTrayFlow();

            _flowTray.Barcode = flowTray.Barcode;
            // 通过托盘条码查询得到
            _flowTray.Batch      = flowTray.Batch;
            _flowTray.UpdateTime = DateTime.Now;
            _flowTray.Used       = 0;

            string insertSql = string.Format("INSERT INTO {0} (Barcode,Batch,Used,UpdateTime) OUTPUT INSERTED.Id VALUES ('{1}','{2}','{3}','{4}')",
                                             lineDevice.PrefixTable + "StackTrayFlow",
                                             _flowTray.Barcode,
                                             _flowTray.Batch,
                                             _flowTray.Used,
                                             _flowTray.UpdateTime);

            access.ExecuteNonQuery(insertSql);

            //int count = access.Insert(_flowTray, StackTrayFlow.BARCODE, StackTrayFlow.BATCH, StackTrayFlow.UPDATE_TIME, StackTrayFlow.USED);
        }