From 6d40f7c8b19efc612f824ee7e778d5be9f8382f5 Mon Sep 17 00:00:00 2001
From: Tjiny <Tjinyu23@163.com>
Date: 星期五, 11 七月 2025 17:04:03 +0800
Subject: [PATCH] 2025-07-11日提交

---
 HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs         |    4 
 HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs     |   23 +++-
 HH.WCS.Mobox3.RiDong/generalMethod/OnOffShelvesMethod.cs |   95 +++++++++++++++++++
 HH.WCS.Mobox3.RiDong/Program.cs                          |    3 
 HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs  |    9 +
 HH.WCS.Mobox3.RiDong/models/OnOffShelves.cs              |  136 +++++++++++++++++++++++++++
 HH.WCS.Mobox3.RiDong/models/OutboundException.cs         |   25 +++++
 7 files changed, 285 insertions(+), 10 deletions(-)

diff --git a/HH.WCS.Mobox3.RiDong/Program.cs b/HH.WCS.Mobox3.RiDong/Program.cs
index c9ad460..c5a6b55 100644
--- a/HH.WCS.Mobox3.RiDong/Program.cs
+++ b/HH.WCS.Mobox3.RiDong/Program.cs
@@ -85,7 +85,6 @@
         /// </summary>
         public class  WorkThread
         {
-            
             public void Start()
             {
                 List<Task> tasks = new List<Task>
@@ -109,8 +108,6 @@
                 };
                 Task.WaitAll(tasks.ToArray());
             }
-            
-            
 
             public void Stop()
             {
diff --git a/HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs b/HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs
index 0a2cf40..d93de3e 100644
--- a/HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs
+++ b/HH.WCS.Mobox3.RiDong/api/SynthesizeController.cs
@@ -114,8 +114,10 @@
     /// 浠诲姟浼樺厛绾�     /// </summary>
     /// <returns></returns>
+    [HttpPost]
     public ApiModel.SimpleResult TaskPriority(ApiModel.MoboxTaskBase model)
     {
+        
         var result = new ApiModel.SimpleResult();
 
         var operation = AdoSqlMethod<Operation>.QueryFirst(p => p.S_CODE == model.TaskNo);
@@ -123,7 +125,7 @@
         if (operation == null)
         {
             result.resultCode = -1;
-            result.resultMsg = "浠诲姟涓嶅瓨鍦紒";
+            result.resultMsg = $"浣滀笟涓嶅瓨鍦紒锛屼紶閫掔殑浠诲姟鍙蜂负{model.TaskNo}";
             return result;
         }
         
diff --git a/HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs b/HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs
index 10ba86d..aaaddd3 100644
--- a/HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs
+++ b/HH.WCS.Mobox3.RiDong/apiMethod/EnterWareHouseService.cs
@@ -155,10 +155,16 @@
             }
 
             db.Updateable(cntrItemDetails).UpdateColumns(p => new { p.N_ALR_ENTR, p.T_INBOUND_TIME }).ExecuteCommand();
+
+            // 鍏ュ簱璁板綍
+            OnOffShelvesMethod.CreateRKOnOffShelves(task);
         }
         // 鍑哄簱
         else if (task.N_TYPE == 2 || task.N_TYPE == 4 || task.N_TYPE == 6)
         {
+            // 鍑哄簱璁板綍
+            OnOffShelvesMethod.CreateCKOnOffShelves(task);
+            
             // 璐т綅瑙i攣
             LocationHelper.UnBindingLoc(task.S_START_LOC, new List<string> { task.S_CNTR_CODE });
 
@@ -185,6 +191,9 @@
         // 鎸囧紩鍑哄簱
         else if (task.N_TYPE == 5)
         {
+            // 鍑哄簱璁板綍
+            OnOffShelvesMethod.CreateCKOnOffShelves(task);
+            
             // 璐т綅瑙i攣
             LocationHelper.UnBindingLoc(task.S_START_LOC, new List<string> { task.S_CNTR_CODE });
 
diff --git a/HH.WCS.Mobox3.RiDong/generalMethod/OnOffShelvesMethod.cs b/HH.WCS.Mobox3.RiDong/generalMethod/OnOffShelvesMethod.cs
new file mode 100644
index 0000000..b1b1d55
--- /dev/null
+++ b/HH.WCS.Mobox3.RiDong/generalMethod/OnOffShelvesMethod.cs
@@ -0,0 +1,95 @@
+using System.Collections.Generic;
+using HH.WCS.Mobox3.RiDong.models;
+
+namespace HH.WCS.Mobox3.RiDong.generalMethod;
+
+/// <summary>
+/// 鍑哄叆搴撹褰曡〃
+/// </summary>
+public static class OnOffShelvesMethod
+{
+    /// <summary>
+    /// 鍒涘缓鍑哄叆搴撹褰�+    /// </summary>
+    /// <param name="task"></param>
+    /// <returns></returns>
+    public static bool CreateRKOnOffShelves(Task task)
+    {
+        var result = false;
+        
+        var cntritem = AdoSqlMethod<CntrItemDetail>.QueryList(p => p.S_CNTR_CODE == task.S_CNTR_CODE);
+
+        if (cntritem.Count > 0)
+        {
+            var onOffShelvesList = new List<OnOffShelves>();
+
+            foreach (var item in cntritem)
+            {
+                var onOffShelves = new OnOffShelves();
+
+                onOffShelves.S_LOC_CODE = task.S_END_LOC;
+                onOffShelves.S_CNTR_CODE = task.S_CNTR_CODE;
+                onOffShelves.S_ITEM_CODE = item.S_ITEM_CODE.Trim();
+                onOffShelves.S_ITEM_NAME = item.S_ITEM_NAME;
+                onOffShelves.S_MATERIAL_TYPE = item.S_EXT_ATTR1;
+                
+                onOffShelves.S_OP_TYPE = "涓婃灦";
+                onOffShelves.F_QTY = item.F_QTY;
+                
+                onOffShelvesList.Add(onOffShelves);
+                
+            }
+
+            if (onOffShelvesList.Count > 0)
+            {
+                AdoSqlMethod<OnOffShelves>.AddList(onOffShelvesList);
+                result = true;
+            }
+        }
+        return result;
+    }
+    
+    
+    /// <summary>
+    /// 鍒涘缓鍑哄叆搴撹褰�+    /// </summary>
+    /// <param name="task"></param>
+    /// <returns></returns>
+    public static bool CreateCKOnOffShelves(Task task)
+    {
+        var result = false;
+        
+        var cntritem = AdoSqlMethod<CntrItemDetail>.QueryList(p => p.S_CNTR_CODE == task.S_CNTR_CODE);
+
+        if (cntritem.Count > 0)
+        {
+            var onOffShelvesList = new List<OnOffShelves>();
+
+            foreach (var item in cntritem)
+            {
+                if (item.F_ALLOC_QTY > 0)
+                {
+                    var onOffShelves = new OnOffShelves();
+
+                    onOffShelves.S_LOC_CODE = task.S_START_LOC;
+                    onOffShelves.S_CNTR_CODE = task.S_CNTR_CODE;
+                    onOffShelves.S_ITEM_CODE = item.S_ITEM_CODE.Trim();
+                    onOffShelves.S_ITEM_NAME = item.S_ITEM_NAME;
+                    onOffShelves.S_MATERIAL_TYPE = item.S_EXT_ATTR1;
+                
+                    onOffShelves.S_OP_TYPE = "涓嬫灦";
+                    onOffShelves.F_QTY = item.F_ALLOC_QTY;
+                
+                    onOffShelvesList.Add(onOffShelves);
+                }
+            }
+
+            if (onOffShelvesList.Count > 0)
+            {
+                AdoSqlMethod<OnOffShelves>.AddList(onOffShelvesList);
+                result = true;
+            }
+        }
+        return result;
+    }
+}
\ No newline at end of file
diff --git a/HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs b/HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs
index a65041b..99f56d1 100644
--- a/HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs
+++ b/HH.WCS.Mobox3.RiDong/generalMethod/PipeLineHelper.cs
@@ -152,9 +152,10 @@
             }
             else if (conveyorLinesInfo.PURPOSE == "鍑哄簱鍙�)
             {
-                if (conveyorLinesInfo.TASKFINISH == 1)
+                if (conveyorLinesInfo.TASKFINISH == 1 || conveyorLinesInfo.TASKFINISH == 2)
                 {
-                    var task = AdoSqlMethod<Task>.QueryFirst(p => p.S_CNTR_CODE == conveyorLinesInfo.BARCODE && p.N_B_STATE == 1 && p.N_SCHEDULE_TYPE == 1);
+                    var task = AdoSqlMethod<Task>.QueryFirst(p =>
+                        p.S_CNTR_CODE == conveyorLinesInfo.BARCODE && p.N_B_STATE == 1 && p.N_SCHEDULE_TYPE == 1);
 
                     if (task != null)
                     {
@@ -199,11 +200,21 @@
                         }
 
                         AdoSqlMethod<LEDDemo>.UpdateFirst(ledDemo, p => new { p.OUTBOUNDTYPE, p.DIRECTION, p.FREIGHTTYPE });
+
+                        if (conveyorLinesInfo.TASKFINISH == 2)
+                        {
+                            var outboundException =
+                                AdoSqlMethod<OutboundException>.QueryFirst(p =>
+                                    p.WMS_CNTR_CODE == conveyorLinesInfo.BARCODE);
+
+                            if (outboundException != null)
+                            {
+                                outboundException.S_CODE = task.S_OP_CODE;
+                                
+                                AdoSqlMethod<OutboundException>.UpdateFirst(outboundException, p => new { p.S_CODE });
+                            }
+                        }
                     }
-                }
-                else if (conveyorLinesInfo.TASKFINISH == 2)
-                {
-                    // 鐩墠鏆傚畾浜哄伐纭畾
                 }
             }
             else if (conveyorLinesInfo.PURPOSE == "闂ㄧ")
diff --git a/HH.WCS.Mobox3.RiDong/models/OnOffShelves.cs b/HH.WCS.Mobox3.RiDong/models/OnOffShelves.cs
new file mode 100644
index 0000000..8de6a9f
--- /dev/null
+++ b/HH.WCS.Mobox3.RiDong/models/OnOffShelves.cs
@@ -0,0 +1,136 @@
+using System;
+using SqlSugar;
+
+namespace HH.WCS.Mobox3.RiDong.models;
+
+/// <summary>
+/// 鍑哄叆搴撲腑闂磋褰曡〃
+/// </summary>
+[SugarTable("TN_OnOff_Shelves")]
+public class OnOffShelves : BaseModel
+{
+    /// <summary>
+    /// 鍔ㄤ綔绫诲瀷
+    /// </summary>
+    public int N_ACTION { get; set; }
+    
+    /// <summary>
+    /// 鍔ㄤ綔绫诲瀷
+    /// </summary>
+    public string S_ACTION { get; set; }
+    
+    /// <summary>
+    /// 璐т綅缂栫爜
+    /// </summary>
+    public string S_LOC_CODE { get; set; }
+    
+    /// <summary>
+    /// 瀹瑰櫒缂栫爜
+    /// </summary>
+    public string S_CNTR_CODE { get; set; }
+
+    /// <summary>
+    /// 浠撳簱缂栫爜
+    /// </summary>
+    public string S_WH_CODE { get; set; } = "RDCK";
+
+    /// <summary>
+    /// 搴撳尯缂栫爜
+    /// </summary>
+    public string S_AREA_CODE { get; set; } = "LKQ";
+    
+    /// <summary>
+    /// 璐у搧缂栫爜
+    /// </summary>
+    public string S_ITEM_CODE { get; set; }
+    
+    /// <summary>
+    /// 璐у搧鍚嶇О
+    /// </summary>
+    public string S_ITEM_NAME { get; set; }
+    
+    /// <summary>
+    /// 璐у搧鐘舵�
+    /// </summary>
+    public string S_ITEM_STATE { get; set; }
+    
+    /// <summary>
+    /// 鎵规鍙�+    /// </summary>
+    public string S_BATCH_NO { get; set; }
+    
+    /// <summary>
+    /// 璐у搧瑙勬牸
+    /// </summary>
+    public string S_ITEM_SPEC { get; set; }
+    
+    /// <summary>
+    /// 浜у搧搴忓垪鍙�+    /// </summary>
+    public string S_SERIAL_NO { get; set; }
+
+    /// <summary>
+    /// 鐢熶骇鏃ユ湡
+    /// </summary>
+    public DateTime? D_PRD_DATE { get; set; }
+    
+    /// <summary>
+    /// 杩囨湡鏃ュ織
+    /// </summary>
+    public DateTime? D_EXP_DATE { get; set; }
+    
+    /// <summary>
+    /// 澶囨敞
+    /// </summary>
+    public string S_NOTE { get; set; }
+    
+    /// <summary>
+    /// 涓氬姟绫诲瀷
+    /// </summary>
+    public string S_OP_TYPE { get; set; }
+    
+    /// <summary>
+    /// 鏉ユ簮绫诲瀷
+    /// </summary>
+    public string S_SOURCE_TYPE { get; set; }
+    
+    /// <summary>
+    /// 鏉ユ簮鍗曞彿
+    /// </summary>
+    public string S_SOURCE_NO { get; set; }
+    
+    /// <summary>
+    /// 鏁伴噺
+    /// </summary>
+    public float F_QTY { get; set; }
+    
+    /// <summary>
+    /// 璁¢噺鍗曚綅
+    /// </summary>
+    public string S_UOM { get; set; }
+    
+    /// <summary>
+    /// 浜у搧绫诲瀷
+    /// </summary>
+    public string S_MATERIAL_TYPE { get; set; }
+    
+    /// <summary>
+    /// 鐗╂枡鐘舵�
+    /// </summary>
+    public int N_ITEM_STATE { get; set; }
+    
+    /// <summary>
+    /// 绠辨牸鍙�+    /// </summary>
+    public string S_CELL_NO { get; set; }
+    
+    /// <summary>
+    /// 鍙樺寲鍓嶆暟閲�+    /// </summary>
+    public float F_BEFORE_QTY { get; set; }
+    
+    /// <summary>
+    /// 鍙樺寲鍚庢暟閲�+    /// </summary>
+    public float F_AETER_QTY { get; set; }
+}
\ No newline at end of file
diff --git a/HH.WCS.Mobox3.RiDong/models/OutboundException.cs b/HH.WCS.Mobox3.RiDong/models/OutboundException.cs
new file mode 100644
index 0000000..7f7cf62
--- /dev/null
+++ b/HH.WCS.Mobox3.RiDong/models/OutboundException.cs
@@ -0,0 +1,25 @@
+using SqlSugar;
+
+namespace HH.WCS.Mobox3.RiDong.models;
+
+/// <summary>
+/// 鍑哄簱寮傚父琛�+/// </summary>
+[SugarTable("TN_Outbound_Exception")]
+public class OutboundException : BaseModel
+{
+    /// <summary>
+    /// 浣滀笟缂栫爜 
+    /// </summary>
+    public string S_CODE { get; set; }
+    
+    /// <summary>
+    /// WMS璺熻釜鏉$爜
+    /// </summary>
+    public string WMS_CNTR_CODE { get; set; }
+    
+    /// <summary>
+    /// 瀹為檯鏉$爜 
+    /// </summary>
+    public string REAL_CNTR_CODE { get; set; }
+}
\ No newline at end of file

--
Gitblit v1.9.1