public DataTable GetAll() { using (PersistentManager pm = new PersistentManager()) { StockOutBatchDao batchDao = new StockOutBatchDao(); return(batchDao.FindAll()); } }
private bool AddNextSupply(string lineCode, string channelGroup, string channelType, int sortNo) { bool result = false; try { using (PersistentManager pm = new PersistentManager()) { StockOutBatchDao batchDao = new StockOutBatchDao(); SupplyDao supplyDao = new SupplyDao(); StockOutDao outDao = new StockOutDao(); batchDao.SetPersistentManager(pm); supplyDao.SetPersistentManager(pm); outDao.SetPersistentManager(pm); DataTable supplyTable = supplyDao.FindNextSupply(lineCode, channelGroup, channelType, sortNo); if (supplyTable.Rows.Count != 0) { Logger.Info(string.Format("收到补货请求,分拣线 '{0}',烟道组 '{1}',烟道类型 '{2}',流水号 '{3}'", lineCode, channelGroup, channelType, sortNo)); try { pm.BeginTransaction(); int batchNo = batchDao.FindMaxBatchNo() + 1; batchDao.InsertBatch(batchNo, lineCode, channelGroup, channelType, sortNo, supplyTable.Rows.Count); int outID = outDao.FindMaxOutID(); outDao.Insert(outID, supplyTable); pm.Commit(); result = true; Logger.Info("生成出库任务成功"); } catch (Exception e) { Logger.Error("生成出库任务失败,原因:" + e.Message); pm.Rollback(); } } } } catch (Exception e) { Logger.Error("生成出库任务失败,原因:" + e.Message); } return(result); }
private bool AddFirstSupply() { bool result = false; try { using (PersistentManager pm = new PersistentManager()) { StockOutBatchDao batchDao = new StockOutBatchDao(); SupplyDao supplyDao = new SupplyDao(); StockOutDao outDao = new StockOutDao(); batchDao.SetPersistentManager(pm); supplyDao.SetPersistentManager(pm); outDao.SetPersistentManager(pm); DataTable supplyTable = supplyDao.FindFirstSupply(); if (supplyTable.Rows.Count != 0) { try { pm.BeginTransaction(); int batchNo = batchDao.FindMaxBatchNo() + 1; batchDao.InsertBatch(batchNo, "00", "0", "0", 0, supplyTable.Rows.Count); int outID = outDao.FindMaxOutID(); outDao.Insert(outID, supplyTable); pm.Commit(); result = true; Logger.Info("生产第一批次出库任务成功"); } catch (Exception e) { Logger.Error("生成第一批次出库任务失败,原因:" + e.Message); pm.Rollback(); } } } } catch (Exception ee) { Logger.Error("生成第一批次出库任务失败,原因:" + ee.Message); } return(result); }
/// <summary> /// 下载数据 最后修改日期 2010-10-30 /// </summary> private void DownloadData() { try { using (PersistentManager pm = new PersistentManager()) { ChannelDao channelDao = new ChannelDao(); StockOutBatchDao stockOutBatchDao = new StockOutBatchDao(); StockInBatchDao stockInBatchDao = new StockInBatchDao(); StockOutDao stockOutDao = new StockOutDao(); StockInDao stockInDao = new StockInDao(); SupplyDao supplyDao = new SupplyDao(); if (supplyDao.FindCount() != stockOutDao.FindOutQuantity()) { if (DialogResult.Cancel == MessageBox.Show("还有未处理的数据,您确定要重新下载数据吗?", "询问", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)) { return; } } using (PersistentManager pmServer = new PersistentManager("ServerConnection")) { ServerDao serverDao = new ServerDao(); serverDao.SetPersistentManager(pmServer); //ORDER BY ORDERDATE,BATCHNO 查找第一批次(符合已优化,并已上传一号工程,未下载的批次) DataTable table = serverDao.FindBatch(); if (table.Rows.Count != 0) { using (PersistentManager pmWES = new PersistentManager("WESConnection")) { StockInBatchDao stockInBatchDaoWES = new StockInBatchDao(); stockInBatchDaoWES.SetPersistentManager(pmWES); stockInBatchDaoWES.Delete(); } string batchID = table.Rows[0]["BATCHID"].ToString(); string orderDate = table.Rows[0]["ORDERDATE"].ToString(); string batchNo = table.Rows[0]["BATCHNO"].ToString(); Context.ProcessDispatcher.WriteToProcess("monitorView", "ProgressState", new ProgressState("清空作业表", 5, 1)); channelDao.Delete(); stockOutBatchDao.Delete(); stockOutDao.Delete(); stockInBatchDao.Delete(); stockInDao.Delete(); supplyDao.Delete(); System.Threading.Thread.Sleep(100); Context.ProcessDispatcher.WriteToProcess("monitorView", "ProgressState", new ProgressState("下载补货烟道表", 5, 2)); table = serverDao.FindStockChannel(orderDate, batchNo); channelDao.InsertChannel(table); System.Threading.Thread.Sleep(100); Context.ProcessDispatcher.WriteToProcess("monitorView", "ProgressState", new ProgressState("下载补货混合烟道表", 5, 3)); table = serverDao.FindMixChannel(orderDate, batchNo); channelDao.InsertMixChannel(table); System.Threading.Thread.Sleep(100); Context.ProcessDispatcher.WriteToProcess("monitorView", "ProgressState", new ProgressState("下载分拣烟道表", 5, 4)); table = serverDao.FindChannelUSED(orderDate, batchNo); channelDao.InsertChannelUSED(table); System.Threading.Thread.Sleep(100); Context.ProcessDispatcher.WriteToProcess("monitorView", "ProgressState", new ProgressState("下载补货计划表", 5, 5)); table = serverDao.FindSupply(orderDate, batchNo); supplyDao.Insert(table); System.Threading.Thread.Sleep(100); serverDao.UpdateBatchStatus(batchID); Context.ProcessDispatcher.WriteToProcess("monitorView", "ProgressState", new ProgressState()); Logger.Info("数据下载完成"); //初始化PLC数据(叠垛线PLC,补货线PLC) Context.ProcessDispatcher.WriteToService("StockPLC_01", "RestartData", 3); Context.ProcessDispatcher.WriteToService("StockPLC_02", "RestartData", 1); //初始化入库扫码器 Context.ProcessDispatcher.WriteToProcess("ScanProcess", "Init", null); //初始化状态管理器 Context.ProcessDispatcher.WriteToProcess("LedStateProcess", "Init", null); Context.ProcessDispatcher.WriteToProcess("OrderDataStateProcess", "Init", null); Context.ProcessDispatcher.WriteToProcess("ScannerStateProcess", "Init", null); //生成入库请求任务数据 Context.ProcessDispatcher.WriteToProcess("StockInRequestProcess", "FirstBatch", null); //生成补货请求任务数据 //Context.ProcessDispatcher.WriteToProcess("SupplyFirstRequestProcess", "FirstBatch", null); } else { MessageBox.Show("没有补货计划数据!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } catch (Exception e) { Logger.Error("数据下载处理失败,原因:" + e.Message); } }
protected override void StateChanged(StateItem stateItem, IProcessDispatcher dispatcher) { try { using (PersistentManager pm = new PersistentManager()) { StockOutBatchDao stockOutBatchDao = new StockOutBatchDao(); StockOutDao stockOutDao = new StockOutDao(); StockInDao stockInDao = new StockInDao(); stockOutBatchDao.SetPersistentManager(pm); stockOutDao.SetPersistentManager(pm); stockInDao.SetPersistentManager(pm); try { DataTable outTable = stockOutDao.FindSupply(); DataTable stockInTable = stockInDao.FindStockInForIsInAndNotOut(); if (outTable.Rows.Count > 0) { pm.BeginTransaction(); for (int i = 0; i < outTable.Rows.Count; i++) { DataRow[] stockInRows = stockInTable.Select(string.Format("CIGARETTECODE='{0}' AND STATE ='1' AND ( STOCKOUTID IS NULL OR STOCKOUTID = 0 )", outTable.Rows[i]["CIGARETTECODE"].ToString()), "STOCKINID"); if (stockInRows.Length <= Convert.ToInt32(Context.Attributes["StockInRequestRemainQuantity"]) + 1) { WriteToProcess("StockInRequestProcess", "StockInRequest", outTable.Rows[i]["CIGARETTECODE"].ToString()); } else if (stockInRows.Length > 0 && stockInRows.Length + Convert.ToInt32(stockInRows[0]["STOCKINQUANTITY"]) <= Convert.ToInt32(Context.Attributes["StockInCapacityQuantity"]) + 1) { WriteToProcess("StockInRequestProcess", "StockInRequest", outTable.Rows[i]["CIGARETTECODE"].ToString()); } if (stockInRows.Length > 0) { stockInRows[0]["STOCKOUTID"] = outTable.Rows[i]["STOCKOUTID"].ToString(); outTable.Rows[i]["STATE"] = 1; } else { Logger.Error(string.Format("[{0}] [{1}] 库存不足!", outTable.Rows[i]["CIGARETTECODE"].ToString(), outTable.Rows[i]["CIGARETTENAME"].ToString())); WriteToProcess("LEDProcess", "StockInRequestShow", outTable.Rows[0]["CIGARETTENAME"]); break; } } stockOutDao.UpdateStatus(outTable); stockInDao.UpdateStockOutIdToStockIn(stockInTable); pm.Commit(); Logger.Info("处理出库数据成功。"); } } catch (Exception e) { Logger.Error("处理出库数据失败,原因:" + e.Message); pm.Rollback(); } } } catch (Exception e) { Logger.Error("处理出库数据失败,原因:" + e.Message); } }