/// <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); }
/// <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); }
/// <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); }