From 17e3ef45fe0a6b6f8a147b50740834ac734f9317 Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期二, 15 七月 2025 17:30:13 +0800
Subject: [PATCH] 1111

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs |  174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 163 insertions(+), 11 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs
index bfc9635..9cb6594 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/core/WCSCore.cs
@@ -1,5 +1,6 @@
 锘縰sing HH.WCS.DaYang.dispatch;
 using HH.WCS.DaYang.process;
+using HH.WCS.DaYang.util;
 using HH.WCS.DaYang.wms;
 using System;
 using System.Collections.Generic;
@@ -22,6 +23,11 @@
                 var TN_Task = WCSHelper.GetTask(model.No);
                 if (TN_Task != null)
                 {
+                    if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2))
+                    {
+                        LogHelper.Info($"浠诲姟{TN_Task.S_CODE}宸茬粡瀹屾垚锛屼笉鎺ュ彈鐘舵�澶勭悊");
+                        return;
+                    }
                     if (model.State <= 7)
                     {
 
@@ -42,7 +48,7 @@
                                 //{
                                 //    WMSHelper.DeletetWHInventory(TN_Task);
                                 //}
-                              //  WMSHelper.DeleteAZLInventory(TN_Task);
+                                //  WMSHelper.DeleteAZLInventory(TN_Task);
                                 break;
                             case 5:
                                 WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣");
@@ -50,22 +56,45 @@
                             case 6:
                                 WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");
                                 TaskProcess.OperateStatus(TN_Task, 6);
-                                //if (TN_Task.S_TYPE == "鍏ュ簱")
-                                //{
-                                //    WMSHelper.AddWHInventory(TN_Task);
-                                //}
-                               // WMSHelper.AddAZLInventory(TN_Task);
+                                if (TN_Task.S_TYPE == "鐗╂枡鍏ュ簱")
+                                {
+                                    //鍏ュ簱瀹屾垚 淇敼鍏ュ簱鏃堕棿
+                                    var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE);
+                                    if (cntrItme != null)
+                                    {
+                                        ContainerHelper.UpdateInTime(cntrItme);
+                                    }
+                                    else
+                                    {
+                                        LogHelper.Info($"浠诲姟{TN_Task.S_CODE}锛屽嵏璐у畬鎴愶紝骞舵棤鎵樼洏鐗╂枡缁戝畾鍏崇郴");
+                                    }
+                                }
                                 break;
                             #endregion
                             case 2:
                                 WCSHelper.End(TN_Task);
+                                //鏌ヨ褰撳墠浠诲姟鏄惁瀛樺湪浣滀笟锛屽鏋滄湁浣滀笟鍒欏畬鎴愪綔涓�+                                if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE))
+                                {
+                                    var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 1, 2 });
+                                    if (NowmsTask == null)
+                                    {
+                                        var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
+                                        if (WmsTask == null)
+                                        {
+                                            WmsTask.N_B_STATE = 3;
+                                            WMSHelper.UpdateTaskState(WmsTask);
+                                        }
+
+                                    }
+                                }
                                 break;
                             case 7:
                                 TaskProcess.OperateStatus(TN_Task, 7);
                                 WCSHelper.Fail(TN_Task);
                                 break;
                         }
-                        WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData);
+                        WCSHelper.AddActionRecord(model.No, model.State, model.ForkliftNo, model.ExtData, "agv");
                         //璋冪敤绗笁鏂规帴鍙o紙濡傛灉鏈夛級TaskProcess.ReportStatus
                     }
                     else
@@ -80,6 +109,133 @@
             }
         }
 
+        public static Result<Empty> NotifyTaskStatus(NotifyTaskStatusModel model)
+        {
+            Result<Empty> result = new Result<Empty>() { Code = 1, Msg = "鍙嶉鎴愬姛" };
+
+            try
+            {
+                var TN_Task = WCSHelper.GetTask(model.TaskNo);
+                if (TN_Task != null)
+                {
+                    if (WCSHelper.CheckActionRecordExist(TN_Task.S_CODE, 2))
+                    {
+
+                        result.Code = 2;
+                        result.Msg = $"浠诲姟{TN_Task.S_CODE}宸茬粡瀹屾垚锛屼笉鎺ュ彈鐘舵�澶勭悊";
+                        LogHelper.Info($"NotifyTaskStatus:{result.Msg}");
+                        return result;
+                    }
+                    if (model.Status <= 7)
+                    {
+                        //鏈変换鍔″彿璇锋眰
+                        switch (model.Status)
+                        {
+                            case 1:
+                                WCSHelper.Begin(TN_Task);
+                                break;
+                            #region MyRegion
+                            case 3:
+                                WCSHelper.UpdateStatus(TN_Task, "寮�鍙栬揣");
+                                break;
+                            case 4:
+                                WCSHelper.UpdateStatus(TN_Task, "鍙栬揣瀹屾垚");
+                                TaskProcess.OperateStatus(TN_Task, 4);
+                                if (TN_Task.S_START_AREA== "YCLLKQ")
+                                {
+                                    WMSHelper.OnShelves(TN_Task,2);
+                                }
+                                break;
+                            case 5:
+                                WCSHelper.UpdateStatus(TN_Task, "寮�鍗歌揣");
+                                break;
+                            case 6:
+                                WCSHelper.UpdateStatus(TN_Task, "鍗歌揣瀹屾垚");
+                                TaskProcess.OperateStatus(TN_Task, 6);
+
+                                if (TN_Task.S_TYPE== "鍙犵洏鏈哄懠鍙┖鎵�)
+                                {
+                                    var db = new SqlHelper<object>().GetInstance();
+                                 
+                                    var containern = db.Queryable<Container>().Where(a => a.S_CODE.Trim() == TN_Task.S_CNTR_CODE).First();
+                                    if (containern != null) 
+                                    {
+                                        containern.S_SOURCE = "1";
+                                        db.Updateable<Container>(containern).UpdateColumns(a => new { a.S_SOURCE }).ExecuteCommand();
+                                    }
+                                }
+                                if (TN_Task.S_END_AREA == "YCLLKQ")
+                                {
+                                    //涓婁笅鏋惰褰�+                                    WMSHelper.OnShelves(TN_Task, 1);
+                                    //鍏ュ簱瀹屾垚 淇敼鍏ュ簱鏃堕棿
+                                    var cntrItme = ContainerHelper.FindCntrItemByCntr(TN_Task.S_CNTR_CODE);
+                                    if (cntrItme != null)
+                                    {
+                                        ContainerHelper.UpdateInTime(cntrItme);
+                                    }
+                                    else
+                                    {
+                                        LogHelper.Info($"浠诲姟{TN_Task.S_CODE}锛屽嵏璐у畬鎴愶紝骞舵棤鎵樼洏鐗╂枡缁戝畾鍏崇郴");
+                                    }
+                                }
+                                break;
+                            #endregion
+                            case 2:
+                                WCSHelper.End(TN_Task);
+                                //鏌ヨ褰撳墠浠诲姟鏄惁瀛樺湪浣滀笟锛屽鏋滄湁浣滀笟鍒欏畬鎴愪綔涓�+                                if (!string.IsNullOrEmpty(TN_Task.S_OP_CODE))
+                                {
+                                    var NowmsTask = WCSHelper.GetWcsTaskByState(TN_Task.S_OP_CODE, new int[] { 0, 1, 2 });
+                                    if (NowmsTask == null)
+                                    {
+                                        var WmsTask = WMSHelper.GetWmsTask(TN_Task.S_OP_CODE);
+                                        if (WmsTask != null)
+                                        {
+                                            WmsTask.N_B_STATE = 3;
+                                            WMSHelper.UpdateTaskState(WmsTask);
+                                        }
+
+                                    }
+                                }
+                                if (TN_Task.S_TYPE == "鎸囧畾鍑哄簱")
+                                {
+                                    var db = new SqlHelper<object>().GetInstance();
+                                    LocationHelper.BindingLoc(TN_Task.S_END_LOC, TN_Task.S_CNTR_CODE.Split(',').ToList());
+                                    var itemcntr = db.Queryable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).First();
+                                    if (itemcntr != null) { db.Deleteable<CntrItemDetail>().Where(a => a.S_CNTR_CODE.Trim() == TN_Task.S_CNTR_CODE).ExecuteCommand(); }
+
+                                }
+                                break;
+                            case 7:
+                                TaskProcess.OperateStatus(TN_Task, 7);
+                                WCSHelper.Fail(TN_Task);
+                                break;
+                        }
+                        WCSHelper.AddActionRecord(model.TaskNo, model.Status, "", "", "wcs");
+                    }
+
+                }
+                else
+                {
+                    result.Code = -1;
+                    result.Msg = $"鏍规嵁浠诲姟鍙�{model.TaskNo}鏈幏鍙栧埌浠诲姟";
+                    LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                    return result;
+                }
+
+                return result;
+            }
+            catch (Exception ex)
+            {
+                result.Code = -1;
+                result.Msg = $"Error:ex";
+                LogHelper.Info($"EquipmentInfo:{result.Msg}");
+                return result;
+
+            }
+
+        }
         /// <summary>
         /// 浠诲姟鍒嗗彂锛屾牴鎹皟搴︾被鍨嬪彂缁欎笉鍚岀殑璋冨害绯荤粺
         /// </summary>
@@ -92,16 +248,12 @@
             {
                 list.ForEach(task =>
                 {
-
                     if (!TaskProcess.Intercept(task))
                     {
                         //浣跨敤鑷畾涔変换鍔℃帹閫�                         TaskProcess.SendTask(task);
                     }
-
                 });
-
-
             }
         }
 

--
Gitblit v1.9.1