´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Common/Gantry.cs
@@ -186,17 +186,6 @@ var mes_Head = mes_HeadRepository.FindFirst(x => x.jobID == Mes_Work.jobID); //éæ·»å æ¥è¯¢è½¦è½®SNå·è®¢åé»è¾ éæ·»å å ¥åºæ¨¡å¼å¤æï¼æå¨å ¥åºæ¨¡å¼é人工添å å ¥åºåºåºï¼å¦åæ¥è¦ //var pattern = patternRepository.FindFirst(x => x.pattern_name == "å ¥åºæ¨¡å¼").pattern_state; //if (pattern != 1 && string.IsNullOrEmpty(mes_Head.area)) //{ // client.WriteByOrder("W_i_status", (byte)4, name); // client.WriteByOrder("R_oi_on", (byte)0, name); // #region æ¥å¿è®°å½ // WriteLog.Write_Log(name, wp_id, "é误信æ¯ï¼", $"è¯»åæ¡æ¶ä¿¡æ¯ï¼\n车轮SNï¼{wp_id}\n\nåå ¥æ¡æ¶ä¿¡æ¯ï¼\nW_i_statusï¼4\nR_oi_onï¼0\n\næå¨å ¥åºæ¨¡å¼æªéæ©åºåº"); // #endregion // continue; //} var geometry = Pipeline.QueryMateriel(Mes_Work.drawingNo); if (geometry == null) { ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/Common/Pipeline.cs
@@ -407,39 +407,23 @@ var MaterialSignal = (Int16)DBExtension.Read(details.Where(x => x.plcdetail_name == "R_MaterialSignal").First(), client);//读åè´§ç©ä¿¡å·:1:æ,2æ if (PalletSignal == 1 && MaterialSignal == 2 && (station.stationCode.Contains("S0100100") ? station.tray_status == "EmptyTray" : true)) { var area = station.tray_type == "SmallTray" ? "11" : "10"; remark = "æ¥è¯¢æ¯å¦åå¨è¡¥ç©ºæéåä»»å¡"; var task = agvtaskService.Find(x => (x.agv_toaddress.Contains("W") || x.agv_toaddress.Contains("X")) && x.agv_taskstate == "Queue" && x.agv_tasktype == "TaskType_EmptyPallet" && x.agv_Traytype == station.tray_type).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); if (task != null) { task.agv_fromaddress = station.stationCode; task.StarQuantity = 0; task.agv_taskstate = "Create"; if (station.stationCode.Contains("S0100100")) task.agv_grade = 3; agvtaskService.Update(task, true); station.location_state = LocationStateEnum.Busy.ToString(); stationinfoRepository.Update(station, true); WriteDBLog.Success("æ´æ°è¡¥ç©ºæéåä»»å¡", $"ä»»å¡ç¼å·ï¼{task.agv_tasknum}ï¼æçä¿¡å·:{PalletSignal},è´§ç©ä¿¡å·:{MaterialSignal}", "PCS"); continue; } #region æ£æµä¸æç空æå ç //remark = "æ¥è¯¢ç©ºæå çä½"; //var EmptyStations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.enable).ToList(); //if (stationCode.Contains("S")) #region æ¥è¯¢æ¯å¦åå¨è¡¥ç©ºæéåä»»å¡ //var area = station.tray_type == "SmallTray" ? "11" : "10"; //remark = "æ¥è¯¢æ¯å¦åå¨è¡¥ç©ºæéåä»»å¡"; //var task = agvtaskService.Find(x => (x.agv_toaddress.Contains("W") || x.agv_toaddress.Contains("X")) && x.agv_taskstate == "Queue" && x.agv_tasktype == "TaskType_EmptyPallet" && x.agv_Traytype == station.tray_type).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); //if (task != null) //{ // //var EmptyStations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.quantity < 5 && x.enable).ToList(); // EmptyStation = EmptyStations.Where(x => x.tray_type == station.tray_type && x.quantity < 5 && x.location_state == LocationStateEnum.Stroge.ToString()).FirstOrDefault(); // if (EmptyStation == null) // EmptyStation = EmptyStations.Where(x => x.location_state == LocationStateEnum.Empty.ToString() && x.quantity == 0).FirstOrDefault(); // if (EmptyStation == null) // { // EmptyStation = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderByDescending(x => x.quantity).FirstOrDefault(); // if (EmptyStation != null) EmptyTray.CreateEmptyTrayIn(stationinfoRepository, EmptyStation); // } //} //EmptyStation = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity == 5).FirstOrDefault(); //if (EmptyStation != null) EmptyTray.CreateEmptyTrayIn(stationinfoRepository, EmptyStation); // task.agv_fromaddress = station.stationCode; // task.StarQuantity = 0; // task.agv_taskstate = "Create"; // if (station.stationCode.Contains("S0100100")) // task.agv_grade = 3; // agvtaskService.Update(task, true); // station.location_state = LocationStateEnum.Busy.ToString(); // stationinfoRepository.Update(station, true); // WriteDBLog.Success("æ´æ°è¡¥ç©ºæéåä»»å¡", $"ä»»å¡ç¼å·ï¼{task.agv_tasknum}ï¼æçä¿¡å·:{PalletSignal},è´§ç©ä¿¡å·:{MaterialSignal}", "PCS"); // continue; //} #endregion #region å建å空æéåä»»å¡ @@ -451,61 +435,19 @@ agv_grade = station.stationCode.Contains("S0100100") ? 3 : 1, agv_createtime = DateTime.Now, agv_taskstate = AGVTaskStateEnum.Queue.ToString(), //agv_materielid = station.stationType, agv_qty = 1, StarQuantity = 0, EndQuantity = 0,//EmptyStation.quantity, EndQuantity = 0, agv_tasktype = AGVTaskTypeEnum.TaskType_EmptyPallet.ToString(), agv_toaddress = "",//EmptyStation.stationCode, agv_toaddress = "", agv_userid = "ç³»ç»", agv_TrayStatus = "EmptyTray",//station.tray_status, agv_TrayStatus = "EmptyTray", agv_Traytype = station.tray_type, }; agvtaskService.Add(agvtask, true); station.location_state = LocationStateEnum.Busy.ToString(); stationinfoRepository.Update(station, true); //EmptyStation.location_state = LocationStateEnum.Busy.ToString(); //stationinfoRepository.Update(EmptyStation, true); WriteDBLog.Success("å建èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agvtask.agv_tasknum}ï¼æçä¿¡å·:{PalletSignal},è´§ç©ä¿¡å·:{MaterialSignal}", "PCS"); #endregion #region å建åç©ºææ°å»ºä»»å¡ //else //{ // remark = "æ¥æ¾åºå 空æä½"; // EmptyStation = GetStation.EmptyPalletStation(area); // if (EmptyStation != null) // if (agvtaskService.Find(x => x.agv_fromaddress == EmptyStation.stationCode || x.agv_toaddress == EmptyStation.stationCode).Any()) return; //} //if (EmptyStation != null) //{ // dt_agvtask agvtask = new dt_agvtask() // { // agv_fromaddress = station.stationCode, // agv_id = Guid.NewGuid(), // agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), // agv_grade = station.stationCode.Contains("S0100100") ? 3 : 1, // agv_createtime = DateTime.Now, // agv_taskstate = AGVTaskStateEnum.Create.ToString(), // //agv_materielid = station.stationType, // agv_qty = 1, // StarQuantity = 0, // EndQuantity = EmptyStation.quantity, // agv_tasktype = "TaskType_EmptyPallet", // agv_toaddress = EmptyStation.stationCode, // agv_userid = "ç³»ç»", // agv_TrayStatus = "EmptyTray",//station.tray_status, // agv_Traytype = station.tray_type, // }; // agvtaskService.Add(agvtask, true); // station.location_state = LocationStateEnum.Busy.ToString(); // stationinfoRepository.Update(station, true); // EmptyStation.location_state = LocationStateEnum.Busy.ToString(); // stationinfoRepository.Update(EmptyStation, true); // WriteDBLog.Success("å建èªå¨å空æä»»å¡", $"ä»»å¡ç¼å·ï¼{agvtask.agv_tasknum}ï¼æçä¿¡å·:{PalletSignal},è´§ç©ä¿¡å·:{MaterialSignal}", "PCS"); //} #endregion } } @@ -517,7 +459,6 @@ } catch (Exception ex) { //WriteDBLog.Error("å建èªå¨å空æä»»å¡", $"é误信æ¯ï¼{ex.Message}", "PCS"); WriteLog.Write_Log("æ¥éæ¥å¿", "å建èªå¨å空æéåä»»å¡", "é误信æ¯ï¼", $"é误信æ¯ï¼{ex.Message}"); } } ´úÂë¹ÜÀí/PCS/WCS_Server/WIDESEA_WCS/JobsPart/Common/GetStation/EmptyPalletStation.cs
@@ -131,27 +131,20 @@ if (!Pipeline_client.IsConnected) throw new Exception("ä¸é¾æ¡æºè¿æ¥è¶ æ¶ï¼"); var area = task.agv_Traytype == "SmallTray" ? "11" : "10"; #region ä¼å åº3åºåºå 空æç //if (area == "11") //{ // EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.stationCode == "C01004002" /*&& x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).FirstOrDefault(); // if (EmptyStation == null) // EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.stationCode == "C01005002"/* && x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).FirstOrDefault(); // if (EmptyStation != null) // EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && x.area == EmptyStation.area && x.line == EmptyStation.line /*&& x.location_state == "Stroge"*/ && x.tray_status == "EmptyTray" && x.enable).OrderByDescending(x => x.column).FirstOrDefault(); // if (EmptyStation != null)//空æè´§ä½ä¸ä¸ºç©ºå¤ææ¯å¦åå¨å ¶ä»ä»»å¡ // if (stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state.Contains("Busy")).Any()) EmptyStation = null; // //if (EmptyStation.location_state == LocationStateEnum.Busy.ToString()) EmptyStation = null; //} #endregion #region æ¥æ¾ABåºåºå¯åºåºç©ºæè´§ä½ if (area == "11") { //EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.lastUpdateTime).FirstOrDefault(); EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderBy(x => x.area).ThenBy(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); if (EmptyStation != null)//å¿ é¡»åºå®ABåºç©ºææè½åºç©ºæåº if (QueueStation(EmptyStation.stationCode) || stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state.Contains("Busy")).Any()) return;// EmptyStation = null; #region å¿ é¡»åºå®ABåºç©ºææè½åºç©ºæåº //if (EmptyStation != null) // if (QueueStation(EmptyStation.stationCode) || stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state.Contains("Busy")).Any()) return; #endregion #region ABåºç©ºæä½å ç¨åºç©ºæåº if (EmptyStation != null) if (QueueStation(EmptyStation.stationCode) || stationinfoRepository.Find(x => x.line == EmptyStation.line && x.area == EmptyStation.area && x.location_state.Contains("Busy")).Any()) EmptyStation = null; #endregion } #endregion ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/EmptyPalletTask.cs
@@ -31,79 +31,81 @@ Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); Idt_management_timeRepository timeRepository = new dt_management_timeRepository(Context); #region å çåºæ»¡5ä¸ªå ¥åº éä¼å #region å çåºæ»¡5ä¸ªå ¥åº var EmptyStations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.enable).ToList(); var EmptyD = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity == 5).FirstOrDefault(); if (EmptyD != null) EmptyTray.CreateEmptyTrayIn(stationinfoRepository, EmptyD); var val = timeRepository.Find(x => x.management_name == "StackingArea").FirstOrDefault().management_numericalvalue; var val = timeRepository.Find(x => x.management_name == "StackingArea").FirstOrDefault().management_numericalvalue;//è¶ æ¶æªä½¿ç¨,触åå ¥åº EmptyD = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity < 5 && x.lastUpdateTime.AddHours(val) < DateTime.Now).FirstOrDefault(); if (EmptyD != null) EmptyTray.CreateEmptyTrayIn(stationinfoRepository, EmptyD); #endregion var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList(); foreach (var agv_task in agv_tasks) { try { tasknum = agv_task.agv_tasknum; #region MyRegion //var task = agvtaskRepository.Find(x => (x.agv_toaddress.Contains("W") || x.agv_toaddress.Contains("X")) && x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && x.agv_Traytype == agv_task.agv_Traytype).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); //if (task != null) //{ // task.agv_fromaddress = station.stationCode; // task.StarQuantity = 0; // task.agv_taskstate = "Create"; // if (station.stationCode.Contains("S0100100")) // task.agv_grade = 3; // agvtaskService.Update(task, true); // station.location_state = LocationStateEnum.Busy.ToString(); // stationinfoRepository.Update(station, true); // WriteDBLog.Success("æ´æ°è¡¥ç©ºæéåä»»å¡", $"ä»»å¡ç¼å·ï¼{task.agv_tasknum}ï¼æçä¿¡å·:{PalletSignal},è´§ç©ä¿¡å·:{MaterialSignal}", "WMS"); // return; //} #endregion #region MyRegion //dt_stationinfo EmptyStation = null; //#region æ£æµä¸æç空æå ç //if (agv_task.agv_fromaddress.Contains("S")) //{ // //var EmptyStations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.quantity < 5 && x.enable).ToList(); // EmptyStation = EmptyStations.Where(x => x.tray_type == agv_task.agv_Traytype && x.quantity < 5 && x.location_state == LocationStateEnum.Stroge.ToString()).FirstOrDefault(); // if (EmptyStation == null) // EmptyStation = EmptyStations.Where(x => x.location_state == LocationStateEnum.Empty.ToString() && x.quantity == 0).FirstOrDefault(); // if (EmptyStation == null) // { // EmptyD = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderByDescending(x => x.quantity).FirstOrDefault(); // if (EmptyD != null) EmptyTray.CreateEmptyTrayIn(stationinfoRepository, EmptyD); // } //} //#endregion //else //{ // EmptyStation = GetStation.EmptyPalletStation1(agv_task.agv_Traytype == "SmallTray" ? "11" : "10"); //} #region å¤å空æéåä»»å¡ç´æ¥å ¥åº //var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList(); //foreach (var agv_task in agv_tasks) //{ // try // { // tasknum = agv_task.agv_tasknum; // #region MyRegion // //var task = agvtaskRepository.Find(x => (x.agv_toaddress.Contains("W") || x.agv_toaddress.Contains("X")) && x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && x.agv_Traytype == agv_task.agv_Traytype).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); // //if (task != null) // //{ // // task.agv_fromaddress = station.stationCode; // // task.StarQuantity = 0; // // task.agv_taskstate = "Create"; // // if (station.stationCode.Contains("S0100100")) // // task.agv_grade = 3; // // agvtaskService.Update(task, true); // // station.location_state = LocationStateEnum.Busy.ToString(); // // stationinfoRepository.Update(station, true); // // WriteDBLog.Success("æ´æ°è¡¥ç©ºæéåä»»å¡", $"ä»»å¡ç¼å·ï¼{task.agv_tasknum}ï¼æçä¿¡å·:{PalletSignal},è´§ç©ä¿¡å·:{MaterialSignal}", "WMS"); // // return; // //} // #endregion // #region MyRegion // //dt_stationinfo EmptyStation = null; // //#region æ£æµä¸æç空æå ç // //if (agv_task.agv_fromaddress.Contains("S")) // //{ // // //var EmptyStations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.quantity < 5 && x.enable).ToList(); // // EmptyStation = EmptyStations.Where(x => x.tray_type == agv_task.agv_Traytype && x.quantity < 5 && x.location_state == LocationStateEnum.Stroge.ToString()).FirstOrDefault(); // // if (EmptyStation == null) // // EmptyStation = EmptyStations.Where(x => x.location_state == LocationStateEnum.Empty.ToString() && x.quantity == 0).FirstOrDefault(); // // if (EmptyStation == null) // // { // // EmptyD = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderByDescending(x => x.quantity).FirstOrDefault(); // // if (EmptyD != null) EmptyTray.CreateEmptyTrayIn(stationinfoRepository, EmptyD); // // } // //} // //#endregion // //else // //{ // // EmptyStation = GetStation.EmptyPalletStation1(agv_task.agv_Traytype == "SmallTray" ? "11" : "10"); // //} #endregion // #endregion var EmptyStation = EmptyTray.GetEmptyTrayStation(stationinfoRepository, agv_task); if (EmptyStation != null) { agv_task.agv_taskstate = AGVTaskStateEnum.Create.ToString(); agv_task.EndQuantity = EmptyStation.quantity; agv_task.agv_toaddress = EmptyStation.stationCode; agvtaskRepository.Update(agv_task, true); EmptyStation.location_state = LocationStateEnum.Busy.ToString(); EmptyStation.tray_status = TrayStateEnum.EmptyTray.ToString(); stationinfoRepository.Update(EmptyStation, true); WriteDBLog.Success("æ´æ°èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agv_task.agv_tasknum}", "WMS"); } } catch (Exception ex) { WriteLog.Write_Log("æ¥éæ¥å¿", "æ´æ°èªå¨å空æéåä»»å¡", "é误信æ¯ï¼", $"{tasknum}ï¼é误信æ¯ï¼{ex.Message}"); } // var EmptyStation = EmptyTray.GetEmptyTrayStation(stationinfoRepository, agv_task); // if (EmptyStation != null) // { // agv_task.agv_taskstate = AGVTaskStateEnum.Create.ToString(); // agv_task.EndQuantity = EmptyStation.quantity; // agv_task.agv_toaddress = EmptyStation.stationCode; // agvtaskRepository.Update(agv_task, true); // EmptyStation.location_state = LocationStateEnum.Busy.ToString(); // EmptyStation.tray_status = TrayStateEnum.EmptyTray.ToString(); // stationinfoRepository.Update(EmptyStation, true); // WriteDBLog.Success("æ´æ°èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agv_task.agv_tasknum}", "WMS"); // } // } // catch (Exception ex) // { // WriteLog.Write_Log("æ¥éæ¥å¿", "æ´æ°èªå¨å空æéåä»»å¡", "é误信æ¯ï¼", $"{tasknum}ï¼é误信æ¯ï¼{ex.Message}"); // } } //} #endregion } catch (Exception ex) { ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendFromaddress.cs
@@ -27,12 +27,43 @@ Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(Context); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); RequestFromTask requestFromTask = new RequestFromTask(); var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && !x.agv_fromaddress.Contains("W") && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList(); var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() /*&& !x.agv_fromaddress.Contains("W")*/ && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList(); var tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_fromaddress)).ToList();//æ¥æ¾ææè¡¥ç©ºæä»»å¡ foreach (var agv_task in agv_tasks) { try { EmptyTray.GetEmptyTrayStation(stationinfoRepository, agv_task); #region æ¥æ¾æ»¡è¶³æ¡ä»¶ç补空æä»»å¡ var task = tasks.Where(x => x.agv_Traytype == agv_task.agv_Traytype).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); if (task != null) { agv_task.agv_taskstate = AGVTaskStateEnum.Create.ToString(); agv_task.EndQuantity = task.EndQuantity; agv_task.agv_toaddress = task.agv_toaddress; agvtaskRepository.Update(agv_task, x => new { x.agv_taskstate, x.EndQuantity, x.agv_toaddress }, true); agvtaskRepository.Delete(task, true); tasks.Remove(task); WriteDBLog.Success("æ´æ°èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agv_task.agv_tasknum},å é¤è¡¥ç©ºæä»»å¡ï¼{task.agv_tasknum}", "WMS"); continue; } #endregion #region å çåºæ»¡5个ï¼ä¸ä¸åæ£æµä¸æç空æèµ·ç¹ä»»å¡ if (agv_task.agv_fromaddress.Contains("S")) if (stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.quantity == 5).Any()) continue; #endregion #region AGVä¸æä¸¤ä¸ªç©ºæï¼ä¸ä¸åå¤åå空æä»»å¡ if (agv_task.agv_fromaddress.Contains("W")) { var count = agvtaskRepository.Find(x => x.agv_taskstate != AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_toaddress)).Count(); if (count >= 2) continue; } #endregion requestFromTask.TASK_NO = agv_task.agv_tasknum; requestFromTask.FROM_POSITION = agv_task.agv_fromaddress; requestFromTask.Material = agv_task.agv_materielid; ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/SendToaddress.cs
@@ -27,12 +27,14 @@ Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); RequestToaddTask requestFromTask = new RequestToaddTask(); var agv_tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Complete.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_toaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).ToList(); var tasks = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && string.IsNullOrEmpty(x.agv_fromaddress)).ToList();//æ¥æ¾ææè¡¥ç©ºæä»»å¡ foreach (var agv_task in agv_tasks) { try { #region æ¥æ¾æ»¡è¶³æ¡ä»¶ç补空æä»»å¡ var task = agvtaskRepository.Find(x => x.agv_taskstate == AGVTaskStateEnum.Queue.ToString() && x.agv_tasktype == AGVTaskTypeEnum.TaskType_EmptyPallet.ToString() && x.agv_Traytype == agv_task.agv_Traytype && string.IsNullOrEmpty(x.agv_fromaddress)).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); var task = tasks.Where(x => x.agv_Traytype == agv_task.agv_Traytype).OrderByDescending(x => x.agv_grade).ThenBy(x => x.agv_createtime).FirstOrDefault(); if (task != null) { requestFromTask.TASK_NO = agv_task.agv_tasknum; @@ -54,10 +56,11 @@ agv_task.agv_toaddress = task.agv_toaddress; agvtaskRepository.Update(agv_task, true); agvtaskRepository.Delete(task, true); tasks.Remove(task); } else throw new Exception(respone.Msg); WriteDBLog.Success("æ´æ°èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agv_task.agv_tasknum}", "WMS"); WriteDBLog.Success("æ´æ°èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agv_task.agv_tasknum},å é¤è¡¥ç©ºæä»»å¡ï¼{task.agv_tasknum}", "WMS"); } #endregion else @@ -66,9 +69,6 @@ var EmptyStation = EmptyTray.GetEmptyTrayStation(stationinfoRepository, agv_task); if (EmptyStation != null) { //agv_task.agv_taskstate = AGVTaskStateEnum.Create.ToString(); //agvtaskRepository.Update(agv_task, true);//æ¥çAGV任塿°æ®æ¯å¦å¨å¦ä¸ä¸ªæ¹æ³å è¿è¡äºæ°æ®æ´æ° requestFromTask.TASK_NO = agv_task.agv_tasknum; requestFromTask.TO_POSITION = EmptyStation.stationCode; requestFromTask.Material = agv_task.agv_materielid; ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyPalletStation.cs
@@ -151,50 +151,96 @@ Idt_agvtaskRepository agvtaskService = new dt_agvtaskRepository(Context); Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); #region æ¥æ¾ABåºå¯å ¥ç©ºæç©ºè´§ä½ if (area == "11" && stationinfoRepository.Find(x => x.stationCode == "A01001001" && x.quantity == 5 && x.location_state == LocationStateEnum.Stroge.ToString()).Any()) #region 空æåºåºå ç¨å ¥ABåºåº if (stationinfoRepository.Find(x => x.area == area && x.enable && x.location_state == LocationStateEnum.Busy.ToString()).Any() || stationinfoRepository.Find(x => x.stationCode == "A01001001" && x.quantity == 5 && x.location_state == LocationStateEnum.Stroge.ToString()).Any()) { #region MyRegion var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); #endregion if (EmptyStation == null) EmptyStation = stationinfoRepository.Find(x => x.location_state == LocationStateEnum.Busy.ToString() && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); #region æ¥æ¾åºåº2ååºåº3ç空æè´§ä½ //var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") // && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.lastUpdateTime).FirstOrDefault(); if (EmptyStation != null) #region æ¥æ¾ABåºå¯å ¥ç©ºæç©ºè´§ä½ if (area == "11") { stationinfo = Station(EmptyStation, stationinfoRepository); if (stationinfo != null) if (!QueueStation(stationinfo.stationCode)) return stationinfo; #region MyRegion var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); #endregion if (EmptyStation == null) EmptyStation = stationinfoRepository.Find(x => x.location_state == LocationStateEnum.Busy.ToString() && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); EmptyStation = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.enable).OrderByDescending(x => x.column).FirstOrDefault(); if (EmptyStation.quantity != 5) return null; #region æ¥æ¾åºåº2ååºåº3ç空æè´§ä½ if (EmptyStation != null) { stationinfo = Station(EmptyStation, stationinfoRepository); if (stationinfo != null) if (!QueueStation(stationinfo.stationCode)) return stationinfo; EmptyStation = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.enable).OrderByDescending(x => x.column).FirstOrDefault(); if (EmptyStation.quantity != 5) return null; } #endregion #region æªæ¾å°ç©ºæè´§ä½æå½åè¡å·²æ»¡,å¯»æ¾æ°çä¸è¡ stationinfo = stationinfoRepository.Find(x => x.column == 2 && x.area == "3" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault(); if (stationinfo == null) stationinfo = stationinfoRepository.Find(x => x.column == 1 && x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault(); #endregion } #endregion #region æªæ¾å°ç©ºæè´§ä½æå½åè¡å·²æ»¡,å¯»æ¾æ°çä¸è¡ stationinfo = stationinfoRepository.Find(x => x.column == 2 && x.area == "3" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault(); if (stationinfo == null) stationinfo = stationinfoRepository.Find(x => x.column == 1 && x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault(); #endregion } #endregion #region æ¥æ¾ç©ºæåºåº else { if (stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Busy.ToString()).Any()) return stationinfo; stationinfo = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.enable).OrderBy(x => x.column).FirstOrDefault(); if (stationinfo != null) if (!QueueStation(stationinfo.stationCode) && stationinfo.quantity < 5) return stationinfo; stationinfo = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault(); } #endregion #region 空æåºåºæ»¡åå ¥ABåºåº //#region æ¥æ¾ABåºå¯å ¥ç©ºæç©ºè´§ä½ //if (area == "11" && stationinfoRepository.Find(x => x.stationCode == "A01001001" && x.quantity == 5 && x.location_state == LocationStateEnum.Stroge.ToString()).Any()) //{ // #region MyRegion // var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); // #endregion // if (EmptyStation == null) // EmptyStation = stationinfoRepository.Find(x => x.location_state == LocationStateEnum.Busy.ToString() && (x.area == "2" || x.area == "3") && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.area).ThenByDescending(x => x.line).ThenByDescending(x => x.column).FirstOrDefault(); // #region æ¥æ¾åºåº2ååºåº3ç空æè´§ä½ // //var EmptyStation = stationinfoRepository.Find(x => x.quantity > 0 && (x.area == "2" || x.area == "3") // // && x.tray_status == TrayStateEnum.EmptyTray.ToString() && x.enable).OrderByDescending(x => x.lastUpdateTime).FirstOrDefault(); // if (EmptyStation != null) // { // stationinfo = Station(EmptyStation, stationinfoRepository); // if (stationinfo != null) // if (!QueueStation(stationinfo.stationCode)) return stationinfo; // EmptyStation = stationinfoRepository.Find(x => x.area == EmptyStation.area && x.line == EmptyStation.line && x.enable).OrderByDescending(x => x.column).FirstOrDefault(); // if (EmptyStation.quantity != 5) return null; // } // #endregion // #region æªæ¾å°ç©ºæè´§ä½æå½åè¡å·²æ»¡,å¯»æ¾æ°çä¸è¡ // stationinfo = stationinfoRepository.Find(x => x.column == 2 && x.area == "3" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault(); // if (stationinfo == null) // stationinfo = stationinfoRepository.Find(x => x.column == 1 && x.area == "2" && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.line).FirstOrDefault(); // #endregion //} //#endregion //#region æ¥æ¾ç©ºæåºåº //else //{ // if (stationinfoRepository.Find(x => x.area == area && x.enable && x.location_state == LocationStateEnum.Busy.ToString()).Any()) return stationinfo; // stationinfo = stationinfoRepository.Find(x => x.area == area && x.quantity > 0 && x.enable).OrderBy(x => x.column).FirstOrDefault(); // if (stationinfo != null) // if (!QueueStation(stationinfo.stationCode) && stationinfo.quantity < 5) return stationinfo; // stationinfo = stationinfoRepository.Find(x => x.area == area && x.location_state == LocationStateEnum.Empty.ToString() && x.enable).OrderByDescending(x => x.column).FirstOrDefault(); //} //#endregion #endregion #region æ¥çå½å空货ä½åæ¯å¦å卿æ if (stationinfo != null) if (GetStation.QueueStation(stationinfo.stationCode)) stationinfo = null; ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/JobSendTask.cs
@@ -12,9 +12,9 @@ [Invoke(Begin = "2024-01-01 00:00", Interval = 1000 * 5, IsEnabled = true, SkipWhileExecuting = true)] public void SendTaskTime() { AGVServer.SendFromaddress(); AGVServer.SendToaddress(); AGVServer.UpdateEmptyPalletTask(); AGVServer.SendToaddress(); AGVServer.SendFromaddress(); AGVServer.SendAgvTask(); } } ´úÂë¹ÜÀí/WMS/WMS_Server/WIDESEA_WebApi/Controllers/LargescreenController.cs
@@ -293,7 +293,7 @@ Idt_agvtaskRepository db = new dt_agvtaskRepository(volContext); var dataList = db.Find(_ => true).OrderByDescending(x => x.agv_createtime).ToList(); var data = dataList.Where(x => x.agv_taskstate != "éå" && x.agv_taskstate != "Queue").ToList(); var data = dataList.Where(x => x.agv_taskstate != "éå" && x.agv_taskstate != "Queue" && x.agv_taskstate != "任塿å" && x.agv_taskstate != "Pause").ToList(); if (data.Count < 10) { ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/601--VK05--Ìá½»³µÂÖÀàÐÍ·µ»Ø³µÂÖÊý¾Ý_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/602--VK05--ɨÂë½»»¥_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/603--VK05--Ìù±ê»ú½»»¥_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/610---VK05--07¹õµÀ½ÓÊÕ³µÂÖÈ·ÈÏ_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/611---VK05--»ú¼Ó¹¤Íê³ÉÈ·ÈÏ_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/612--VK05--È·ÈÏתÅÌ·½Ïò£¬¸æÖª³µÂÖÈ¥Ïò_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/630--VK05--ÏÔʾ¹¤Î»Êý¾Ý_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/631--VK05--»ú¼Ó¹¤³µ´²×´Ì¬¸øPCS_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/632--VK05--ÀÏèì¼Ü״̬¸øPCS_1_1.png
ÏîÄ¿×ÊÁÏ/ͨÐÅÐÒé/Ì«ÖØÀÏPCSÓë¹õµÀ½»»¥±í-2024-04-23/TZ--VK05¹õµÀ½»»¥±í/633--VK05--¹õµÀ״̬¸øPCS_1_1.png