| | |
| | | using WIDESEA_Common; |
| | | using WIDESEA_Core.EFDbContext; |
| | | using WIDESEA_Entity.DomainModels; |
| | | using WIDESEA_WCS.JobsPart.Common; |
| | | using WIDESEA_WCS.IRepositories; |
| | | using WIDESEA_WCS.Repositories; |
| | | using WIDESEA_WMS.IRepositories; |
| | | using WIDESEA_WMS.Repositories; |
| | | using static System.Collections.Specialized.BitVector32; |
| | |
| | | VOLContext Context = new VOLContext(); |
| | | Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(Context); |
| | | Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); |
| | | Idt_management_timeRepository timeRepository = new dt_management_timeRepository(Context); |
| | | |
| | | #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;//è¶
æ¶æªä½¿ç¨,触åå
¥åº |
| | | 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_task = 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).FirstOrDefault(); |
| | | if (agv_task != null) |
| | | { |
| | | 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 |
| | | 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.EmptyPalletStation(agv_task.agv_Traytype == "SmallTray" ? "11" : "10"); |
| | | } |
| | | |
| | | 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(); |
| | | stationinfoRepository.Update(EmptyStation, true); |
| | | WriteDBLog.Success("æ´æ°èªå¨å空æéåä»»å¡", $"ä»»å¡ç¼å·ï¼{agv_task.agv_tasknum}", "WMS"); |
| | | } |
| | | } |
| | | #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 |
| | | |
| | | // 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) |
| | | { |