From 53d6a24cb335b0c9b4449e1211ce8ea644d68d67 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 31 五月 2024 20:48:53 +0800
Subject: [PATCH] 可根据图号更改下料口车轮数量入库条件
---
代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/EmptyPalletTask.cs | 106 +++++++++++++++++++++++++++++++---------------------
1 files changed, 63 insertions(+), 43 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 1f184fa..861e852 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"
@@ -8,7 +8,9 @@
using WIDESEA_Common;
using WIDESEA_Core.EFDbContext;
using WIDESEA_Entity.DomainModels;
+using WIDESEA_WCS.IRepositories;
using WIDESEA_WCS.JobsPart.Common;
+using WIDESEA_WCS.Repositories;
using WIDESEA_WMS.IRepositories;
using WIDESEA_WMS.Repositories;
using static System.Collections.Specialized.BitVector32;
@@ -28,62 +30,80 @@
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涓叆搴�
+ #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)
+
+ 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)
{
- 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"))
+ try
{
- //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)
+ 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)
{
- 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);
+ 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");
}
}
- #endregion
- else
+ catch (Exception ex)
{
- EmptyStation = GetStation.EmptyPalletStation(agv_task.agv_Traytype == "SmallTray" ? "11" : "10");
+ WriteLog.Write_Log("鎶ラ敊鏃ュ織", "鏇存柊鑷姩鍙栫┖鎵橀槦鍒椾换鍔�", "閿欒淇℃伅锛�", $"{tasknum}锛涢敊璇俊鎭細{ex.Message}");
}
- 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");
- }
}
}
catch (Exception ex)
--
Gitblit v1.9.3