/// <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> /// 保存堆叠的托盘 /// </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); } }