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