From 23e4f986644298cb23ac43173414b7e1404b6657 Mon Sep 17 00:00:00 2001 From: dengjunjie <dengjunjie@hnkhzn.com> Date: 星期六, 15 六月 2024 17:26:23 +0800 Subject: [PATCH] 任务逻辑优化 --- 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/EmptyPalletTask.cs | 128 +++++++++++++++++++++--------------------- 1 files changed, 65 insertions(+), 63 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/EmptyPalletTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/EmptyPalletTask.cs" index 5d5efe5..aa37a2d 100644 --- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/EmptyPalletTask.cs" +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/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) { -- Gitblit v1.9.3