From cb62fe00ff0c80bce983b0aa7a2b320fdc26f85f Mon Sep 17 00:00:00 2001 From: huanghongfeng <huanghongfeng@hnkhzn.com> Date: 星期一, 20 五月 2024 08:51:03 +0800 Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/SuZhouGuanHong/TaiYuanTaiZhong --- 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 116 insertions(+), 0 deletions(-) diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs" new file mode 100644 index 0000000..8c7b8b2 --- /dev/null +++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/GetStation/EmptyTrayIn.cs" @@ -0,0 +1,116 @@ +锘縰sing System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using WIDESEA_Comm.LogInfo; +using WIDESEA_Comm.TaskNo; +using WIDESEA_Comm; +using WIDESEA_Core.EFDbContext; +using WIDESEA_Entity.DomainModels; +using WIDESEA_WMS.IRepositories; +using WIDESEA_WMS.Repositories; + +namespace WIDESEA_WCS.JobsPart.Common +{ + public class EmptyTray + { + /// <summary> + /// 绌烘墭鍙犵洏鍏ュ簱 + /// </summary> + public static void EmptyTrayIn() + { + try + { + VOLContext Context = new VOLContext(); + Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(Context); + var EmptyStations = stationinfoRepository.Find(x => x.stationCode.Contains("DD") && x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity == 5 && x.enable).ToList(); + foreach (var EmptyStation in EmptyStations) + { + CreateEmptyTrayIn(stationinfoRepository, EmptyStation); + } + } + catch (Exception ex) + { + WriteDBLog.Success("鍒涘缓鍙犵洏浣嶇┖鎵樺叆搴撲换鍔�", $"閿欒淇℃伅锛歿ex.Message}", "PCS"); + } + } + /// <summary> + /// 鑾峰彇鍙叆绌烘墭璐т綅 + /// </summary> + public static dt_stationinfo GetEmptyTrayStation(Idt_stationinfoRepository stationinfoRepository,dt_agvtask agv_task) + { + 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) + { + var EmptyD = EmptyStations.Where(x => x.location_state == LocationStateEnum.Stroge.ToString() && x.quantity > 0).OrderByDescending(x => x.quantity).FirstOrDefault(); + if (EmptyD != null) CreateEmptyTrayIn(stationinfoRepository, EmptyD); + } + } + #endregion + else + { + EmptyStation = GetStation.EmptyPalletStation1(agv_task.agv_Traytype == "SmallTray" ? "11" : "10"); + } + return EmptyStation; + } + /// <summary> + /// 鍒涘缓绌烘墭鍙犵洏鍏ュ簱浠诲姟 + /// </summary> + /// <param name="stationinfoRepository"></param> + /// <param name="EmptyStation"></param> + public static void CreateEmptyTrayIn(Idt_stationinfoRepository stationinfoRepository, dt_stationinfo EmptyStation) + { + VOLContext Context = new VOLContext(); + Idt_agvtaskRepository agvtaskRepository = new dt_agvtaskRepository(Context); + try + { + if (agvtaskRepository.Find(x => x.agv_fromaddress == EmptyStation.stationCode || x.agv_toaddress == EmptyStation.stationCode).Any()) return; + var area = EmptyStation.tray_type == "SmallTray" ? "11" : "10"; + var toEmptyStation = GetStation.EmptyPalletStation1(area); + if (toEmptyStation != null) + { + #region 鍚屼竴涓┖鎵樹綅鍙兘鍚屾椂鐢熸垚涓�涓┖鎵樹换鍔� + if (agvtaskRepository.Find(x => x.agv_fromaddress == toEmptyStation.stationCode || x.agv_toaddress == toEmptyStation.stationCode).Any()) return; + #endregion + + dt_agvtask agvtask = new dt_agvtask() + { + agv_fromaddress = EmptyStation.stationCode, + agv_id = Guid.NewGuid(), + agv_tasknum = IdenxManager.GetTaskNo("KH-", "WMS"), + agv_grade = 3, + agv_createtime = DateTime.Now, + agv_taskstate = "Create", + //agv_materielid = station.stationType, + agv_qty = EmptyStation.quantity - toEmptyStation.quantity, + StarQuantity = toEmptyStation.quantity, + EndQuantity = toEmptyStation.quantity, + agv_tasktype = "TaskType_EmptyPallet", + agv_toaddress = toEmptyStation.stationCode, + agv_userid = "绯荤粺", + agv_TrayStatus = "EmptyTray",//station.tray_status, + agv_Traytype = EmptyStation.tray_type, + }; + agvtaskRepository.Add(agvtask, true); + EmptyStation.location_state = LocationStateEnum.Busy.ToString(); + stationinfoRepository.Update(EmptyStation, true); + toEmptyStation.location_state = LocationStateEnum.Busy.ToString(); + stationinfoRepository.Update(toEmptyStation, true); + WriteDBLog.Success("鍒涘缓鍙犵洏浣嶇┖鎵樺叆搴撲换鍔�", $"浠诲姟缂栧彿锛歿agvtask.agv_tasknum}", "PCS"); + } + } + catch (Exception ex) + { + WriteDBLog.Error("鍒涘缓鍙犵洏浣嶇┖鎵樺叆搴撲换鍔�", $"閿欒淇℃伅锛歿ex.Message}", "PCS"); + } + } + } +} -- Gitblit v1.9.3