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 |  109 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 98 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 010746b..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)
                     {
 
@@ -50,15 +56,38 @@
                             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);
@@ -83,11 +112,20 @@
         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)
                     {
                         //鏈変换鍔″彿璇锋眰
@@ -103,6 +141,10 @@
                             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, "寮�鍗歌揣");
@@ -110,10 +152,60 @@
                             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);
@@ -121,7 +213,6 @@
                                 break;
                         }
                         WCSHelper.AddActionRecord(model.TaskNo, model.Status, "", "", "wcs");
-
                     }
 
                 }
@@ -141,7 +232,7 @@
                 result.Msg = $"Error:ex";
                 LogHelper.Info($"EquipmentInfo:{result.Msg}");
                 return result;
-       
+
             }
 
         }
@@ -157,16 +248,12 @@
             {
                 list.ForEach(task =>
                 {
-
                     if (!TaskProcess.Intercept(task))
                     {
                         //浣跨敤鑷畾涔変换鍔℃帹閫�                         TaskProcess.SendTask(task);
                     }
-
                 });
-
-
             }
         }
 

--
Gitblit v1.9.1