From a1c916e4b05662b45d437c02db4effd40abe6296 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期六, 25 五月 2024 17:19:44 +0800
Subject: [PATCH] 延迟同步库存信息给MES

---
 代码管理/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs |   36 +++++++++++++++++++++++++++++-------
 1 files changed, 29 insertions(+), 7 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
index cf72c64..7ede5a5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WMS_Server/WIDESEA_WMS/Common/AGVTask/HandleTask.cs"
@@ -67,7 +67,18 @@
         /// <param name="task"></param>
         public static void Updateinventory(dt_agvtask task)
         {
-            if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())
+            VOLContext context = new VOLContext();
+            Idt_inventoryRepository inventoryRepository = new dt_inventoryRepository(context);
+            if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Carry.ToString())
+            {
+                var inventorys = inventoryRepository.Find(x => x.stationCode == task.agv_fromaddress).ToList();
+                foreach (var inventory in inventorys)
+                {
+                    inventory.stationCode = task.agv_toaddress;
+                    inventoryRepository.Update(inventory, true);
+                }
+            }
+            else if (task.agv_tasktype == AGVTaskTypeEnum.TaskType_Outbound.ToString() || task.agv_tasktype == AGVTaskTypeEnum.TaskType_OutsourceCarry.ToString())
             {
                 string[] bindSNs = task.bindSN.Split(",");
                 int count = 0;
@@ -105,7 +116,8 @@
                         Operator = "admin",
                         stationCode = task.agv_toaddress,
                         area = station.area,
-                        jobID = mes_Work.workOrder,
+                        jobID = mes_Work.jobID,
+                        workOrder = mes_Work.workOrder,
                         ID = Guid.NewGuid()
                     };
                     inventorys.Add(inventory);
@@ -152,15 +164,15 @@
         {
             VOLContext context = new VOLContext();
             Idt_stationinfoRepository stationinfoRepository = new dt_stationinfoRepository(context);
-            var station1 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_fromaddress);
-            var station2 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_toaddress);
 
             if (task.agv_taskstate == AGVTaskStateEnum.Complete1.ToString())
             {
+                var station2 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_toaddress);
+                if (station2 == null) throw new Exception("鏈壘鍒扮粓鐐瑰湴鍧�锛�");
                 ////绌烘墭浠诲姟闇�淇敼閫昏緫
                 if (station2.stationCode.Contains("X"))
                     station2.quantity = 0;// task.agv_tasktype.Contains("TaskType_EmptyPallet") ? 0 : task.agv_qty; //task.agv_qty;
-                else if (station2.area == "10" || station2.area == "11") //鍏ュ簱绌烘墭浠诲姟
+                else if (station2.area == "10" || station2.area == "11" || (station2.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet") || station2.stationCode.Contains("DD")) //鍏ュ簱绌烘墭浠诲姟
                     station2.quantity = station2.quantity + task.agv_qty;
                 else
                     station2.quantity = task.agv_qty;
@@ -171,10 +183,13 @@
                 station2.stationType = task.agv_materielid;
                 station2.tray_status = task.agv_TrayStatus;//妯斁/绔栨斁
                 station2.tray_type = task.agv_Traytype;
+                station2.lastUpdateTime = DateTime.Now;
                 stationinfoRepository.Update(station2, true);
             }
             else if (task.agv_taskstate == AGVTaskStateEnum.Complete.ToString())
             {
+                var station1 = stationinfoRepository.FindFirst(t => t.stationCode == task.agv_fromaddress);
+                if (station1 == null) throw new Exception("鏈壘鍒拌捣鐐瑰湴鍧�锛�");
                 #region MyRegion
                 //if (station1.stationCode.Contains("S"))
                 //    station1.quantity = 0;
@@ -186,8 +201,12 @@
                 //else
                 //    station1.quantity = 0;
                 #endregion
-
-                if (station1.area == "10" || station1.area == "11") //鍑哄簱绌烘墭浠诲姟
+                if (station1.stationCode.Contains("DD"))//鍙犵洏搴撲綅
+                {
+                    station1.quantity = station1.quantity - task.agv_qty;
+                    station1.location_state = LocationStateEnum.Stroge.ToString();
+                }
+                else if (station1.area == "10" || station1.area == "11" || (station1.stationCode.Contains("C") && task.agv_tasktype == "TaskType_EmptyPallet")) //鍑哄簱绌烘墭浠诲姟
                 {
                     station1.location_state = LocationStateEnum.Stroge.ToString();
                     station1.quantity = station1.quantity - 1;
@@ -200,6 +219,7 @@
                 {
                     station1.location_state = LocationStateEnum.Empty.ToString();
                     station1.Number = string.Empty;
+                    station1.billetID = string.Empty;
                     station1.heatNumber = string.Empty;
                     station1.stationType = string.Empty;
                     station1.tray_status = string.Empty;
@@ -207,6 +227,8 @@
                     //if (!station1.stationCode.Contains("X") && !station1.stationCode.Contains("S") && !station1.stationCode.Contains("W01001004") && !station1.stationCode.Contains("W01001005"))
                     //    station1.tray_type = string.Empty;
                 }
+                if (!station1.stationCode.Contains("DD"))
+                    station1.lastUpdateTime = DateTime.Now;
                 stationinfoRepository.Update(station1, true);
             }
         }

--
Gitblit v1.9.3