From a765da90e5ee63e04d2d8460a5ad1ebd0e8eb4db Mon Sep 17 00:00:00 2001
From: huanghongfeng <huanghongfeng@hnkhzn.com>
Date: 星期一, 15 七月 2024 21:43:59 +0800
Subject: [PATCH] 工单处理

---
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/EmptyPalletTask.cs |  133 +++++++++++++++++++++++---------------------
 1 files changed, 70 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 ea0743b..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"
@@ -8,7 +8,8 @@
 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;
@@ -28,77 +29,83 @@
                 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);
-                //EmptyD = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0&&x.lastUpdateTime.).FirstOrDefault();//鏃堕棿瓒呰繃6灏忔椂鍏ュ簱
+                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();
-                            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