From 39ee9078d88fd4787437360e7f69ed999aaf0b7b Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 28 十二月 2024 09:14:41 +0800
Subject: [PATCH] 更新代码

---
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs                                  |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs                                     |  126 ++++++---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs                                     |   82 +++---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json                                                |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs                                   |  134 ++-------
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs                                   |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs                                         |   58 ++-
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                                            |   31 +
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs                                     |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs                                              |   86 ++++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs                                                        |   38 ++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs                               |  169 ++++++++----
 /dev/null                                                                                                    |    0 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock                                  |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs                                                  |   16 -
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs                                          |    1 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs                                 |   13 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs                                |   11 
 23 files changed, 480 insertions(+), 299 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/144011e2-42f0-4bb3-91f4-4f3faf1287db.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/144011e2-42f0-4bb3-91f4-4f3faf1287db.vsidx"
deleted file mode 100644
index a28b4f9..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/144011e2-42f0-4bb3-91f4-4f3faf1287db.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx"
new file mode 100644
index 0000000..f7a2213
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/696c7cf1-015a-43ec-a8b3-783cb6f90bca.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx"
deleted file mode 100644
index 1e78c84..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d9caedcd-b643-4a2a-bf28-68c2ccd0a7aa.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/82bf8887-9a08-48ab-8128-b1344527468e.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/82bf8887-9a08-48ab-8128-b1344527468e.vsidx"
deleted file mode 100644
index 9b27507..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/82bf8887-9a08-48ab-8128-b1344527468e.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx"
new file mode 100644
index 0000000..df9afad
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/96a8d11f-bc7e-4582-8a8c-6fccb3766db1.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx"
new file mode 100644
index 0000000..b6d4a65
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/97e07ff0-7eb7-4d15-ab37-ca81ae8db322.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c0d350a6-e99f-4e34-9928-0112aed4569d.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c0d350a6-e99f-4e34-9928-0112aed4569d.vsidx"
deleted file mode 100644
index b28cdc2..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/c0d350a6-e99f-4e34-9928-0112aed4569d.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx"
new file mode 100644
index 0000000..b1e7334
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ca012d90-cc55-4b3b-b3e3-15e0df48c908.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx"
new file mode 100644
index 0000000..cf85f90
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/daf3b445-0601-416b-be78-d82e92277083.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock"
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock"
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs"
index d46b378..22e5586 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Common/OrderEnum/PurchaseOrderEnum.cs"
@@ -33,9 +33,13 @@
         /// <summary>
         /// 鏈敹璐�
         /// </summary>
-        [Description("鏈敹璐�")]
+        [Description("鏀惰揣")]
         NotReceived = 0,
-
+        /// <summary>
+        /// 鏀惰揣涓�
+        /// </summary>
+        [Description("鏀惰揣涓�")]
+        Receiving = 1,
         /// <summary>
         /// 鏀惰揣瀹屾垚
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs"
new file mode 100644
index 0000000..389b525
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs"
@@ -0,0 +1,86 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Net.Http.Headers;
+using WIDESEA_Core.LogHelper;
+using System.Security.Cryptography;
+
+namespace WIDESEA_Core.Helper
+{
+    public class HttpMesHelper
+    {
+        public static string Post(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
+        {
+            string result = string.Empty;
+            DateTime beginDate = DateTime.Now;
+            try
+            {
+                using (HttpContent httpContent = new StringContent(requestJson))
+                {
+                    httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
+                    
+                    using HttpClient httpClient = new HttpClient();
+                    httpClient.Timeout = new TimeSpan(0, 0, 60);
+                    long currentTimestamp = DateTimeOffset.UtcNow.ToUnixTimeSeconds();
+                    string key = $"appkey=1830415116987195392&timestamp={currentTimestamp}";
+                    string authorization = "Open " + GetStr(key);
+                    headers = new Dictionary<string, string>
+                    {
+                        { "Appkey", "1830415116987195392" },
+                        { "Authorization", authorization },
+                        { "site_tenant_id", "ced19269-2b83-4577-be43-8cc2f700251e" }
+                    };
+                    if (headers != null)
+                    {
+                        foreach (var header in headers)
+                            httpClient.DefaultRequestHeaders.Add(header.Key, header.Value);
+                    }
+                    HttpResponseMessage responseMessage = httpClient.PostAsync(serviceAddress, httpContent).Result;
+                    result = responseMessage.Content.ReadAsStringAsync().Result;
+                }
+                return result;
+            }
+            catch (Exception e)
+            {
+                throw new Exception(e.Message);
+            }
+            finally
+            {
+                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
+            }
+        }
+        public static string GetStr(string textToEncrypt)
+        {
+            string publicKey;
+            string privateKey;
+            GenerateRSAKeyPair(out publicKey, out privateKey);
+            byte[] encryptedBytes = RSAEncrypt(textToEncrypt, publicKey);
+            // 鍙互灏嗗姞瀵嗗悗鐨勫瓧鑺傛暟缁勮浆鎹负Base64瀛楃涓叉柟渚垮悗缁鐞嗭紝渚嬪浼犺緭绛�
+            string encryptedBase64 = Convert.ToBase64String(encryptedBytes);
+            return encryptedBase64;
+        }
+        public static void GenerateRSAKeyPair(out string publicKey, out string privateKey)
+        {
+            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider(2048))
+            {
+                publicKey = rsa.ToXmlString(false);
+                privateKey = rsa.ToXmlString(true);
+            }
+        }
+        public static byte[] RSAEncrypt(string plainText, string publicKey)
+        {
+            byte[] encryptedData;
+            using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
+            {
+                rsa.FromXmlString(publicKey);
+                // 灏嗘枃鏈浆鎹负UTF8缂栫爜鐨勫瓧鑺傛暟缁�
+                byte[] plainBytes = Encoding.UTF8.GetBytes(plainText);
+                // 浣跨敤SHA1鍝堝笇绠楁硶浠ュ強Pkcs1濉厖瑙勫垯杩涜鍔犲瘑
+                encryptedData = rsa.Encrypt(plainBytes, true);
+            }
+            return encryptedData;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs"
new file mode 100644
index 0000000..2a18606
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/MESRoot.cs"
@@ -0,0 +1,38 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.Attributes;
+
+namespace WIDESEA_DTO.MES
+{
+    public class MESRoot<T>
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public string From { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string DateTime { get; set; }
+        
+        public T Content { get; set; }
+    }
+    /// <summary>
+    ///娴嬭瘯鏋跺悓姝�
+    /// </summary>
+    public class TestToolSynInfo
+    {
+        /// <summary>
+        /// 娴嬭瘯鏋舵壒娆″彿
+        /// </summary>
+        public string ToolCode { get; set; }
+        /// <summary>
+        /// 鍒濆瀵垮懡
+        /// </summary>
+        public int Life { get; set; }
+
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs"
index 509c22f..3084fa6 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs"
@@ -56,19 +56,5 @@
         [PropertyValidate("娴嬭瘯鏋舵壒娆″彿", NotNullAndEmpty = true)]
         public string TestToolCode { get; set; }
     }
-    /// <summary>
-    ///娴嬭瘯鏋跺悓姝�
-    /// </summary>
-    public class TestToolSynInfo
-    {
-        /// <summary>
-        /// 娴嬭瘯鏋舵壒娆″彿
-        /// </summary>
-        public string ToolCode { get; set; }
-        /// <summary>
-        /// 鍒濆瀵垮懡
-        /// </summary>
-        public int Life { get; set; }
-
-    }
+    
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs"
index db7d5b0..c63b33d 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs"
@@ -24,5 +24,7 @@
         WebResponseContent FeedbackInboundOrder(int id);
 
         WebResponseContent MaterielGroup(SaveModel saveModel);
+        //鍏ュ簱瀹屾垚涓婃姤
+        WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
index 263037e..10078f3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs"
@@ -108,5 +108,6 @@
         /// <returns></returns>
         MesResponseContent TestScrap(TestToolScrap toolScrap);
         WebResponseContent IsRelocation(int taskNum, string locationCode);
+        WebResponseContent TestSynStock(TestToolSynInfo toolSynInfo);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
index c02a048..2363716 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs"
@@ -129,7 +129,7 @@
             return content;
         }
         /// <summary>
-        /// 鍗曚釜鐗╂枡鐮佺粍鐩�
+        /// 鍗曚釜鐗╂枡鐮佺粍鐩� 閫傜敤娴嬭瘯鏋�
         /// </summary>
         /// <param name="inboundOrderId"></param>
         /// <param name="palletCode"></param>
@@ -144,65 +144,76 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟淇℃伅");
                 }
-                if (inboundOrder.Details == null || inboundOrder.Details.Count <= 0)
+                if (inboundOrder.OrderStatus>=InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+                {
+                    return WebResponseContent.Instance.Error($"鍏ュ簱鍗曞凡缁撴潫");
+                }
+                if (inboundOrder.Details.Count <= 0)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
                 }
-
-                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
-                if (receiveOrder == null)
+                MatSerNumAnalysisModel model = new MatSerNumAnalysisModel()
                 {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�");
-                }
-                if (receiveOrder.Details == null || receiveOrder.Details.Count <= 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�");
-                }
-
-                List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
-
-                MatSerNumAnalysisModel model = new MatSerNumAnalysisModel() 
-                { 
-                    MaterielCode= "307000309",
-                    LotNo= "20241216001",
-                    ProductionDate= "2024-12-16",
-                    EffectiveDate= "2025-12-16",
-                    PurchaseOrderNo= "POHA02241216275",
-                    Quantity=1,
-                    SerialNumber= "M:307000309,BS:20241216001,DM:2024-12-16,DE:2025-12-16,Q:4,PO:POHA02241216275"
+                    MaterielCode = "504907335",
+                    LotNo = "20241217001",
+                    ProductionDate = "2024-12-17",
+                    EffectiveDate = "2025-12-17",
+                    PurchaseOrderNo = "POHA02241227285",
+                    Quantity = 1,
+                    SerialNumber = "M:504907335,BS:20241217001,DM:2024-12-17,DE:2025-12-17,Q:1,PO:POHA02241227285"
                 };//娴嬭瘯
-                    
                 //CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
-
-
                 Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterielCode);
                 if (materielInfo == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
                 }
-
-                List<Dt_InboundOrderDetail> inboundOrderDetails = inboundOrder.Details.Where(x => x.MaterielCode == model.MaterielCode).ToList();
-
-                if (inboundOrderDetails == null || inboundOrderDetails.Count <= 0)
+                if (materielInfo.WarehouseId != inboundOrder.WarehouseId)
                 {
-                    return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
+                    return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬鏈粨");
                 }
-                if (receiveOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode) == null)
+                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == inboundOrder.UpperOrderNo).Includes(x => x.Details).First();
+                if (receiveOrder == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗�");
+                }
+                if (receiveOrder.Details.Count <= 0)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑鏀惰揣鍗曟槑缁�");
+                }
+                List<string> purchaseOrderNos = receiveOrder.Details.Select(x => x.PurchaseOrderNo).ToList();
+                if (!purchaseOrderNos.Contains(model.PurchaseOrderNo))
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旀敹璐у崟鏄庣粏涓噰璐崟");
+                }
+                Dt_ReceiveOrderDetail? receiveOrderDetail = receiveOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode);
+                if (receiveOrderDetail == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
                 }
-                if (purchaseOrderNos.FirstOrDefault(x => x == model.PurchaseOrderNo) == null)
+                Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode);
+                if (inboundOrderDetail == null)
                 {
-                    return WebResponseContent.Instance.Error($"鏈湪鏀惰揣鍗曟槑缁嗕腑鎵惧埌璇ラ噰璐崟");
+                    return WebResponseContent.Instance.Error($"鏈湪鍏ュ簱鍗曟槑缁嗕腑鎵惧埌璇ョ墿鏂欎俊鎭�");
                 }
-
-                Dt_InboundOrderDetail? notGroupDetail = inboundOrderDetails.Where(x => x.OrderDetailStatus == OrderDetailStatusEnum.New.ObjToInt() && x.OrderQuantity == model.Quantity).FirstOrDefault();
-
-                if (notGroupDetail == null)
+                if (inboundOrderDetail.OrderDetailStatus>OrderDetailStatusEnum.GroupAndInbound.ObjToInt())
                 {
-                    return WebResponseContent.Instance.Error($"璇ョ墿鏂欏湪璇ュ叆搴撳崟涓凡鍏ㄩ儴缁勭洏瀹屾垚");
+                    return WebResponseContent.Instance.Error($"瀵瑰簲鍏ュ簱鍗曟槑缁嗗凡缁撴潫");
                 }
-
+                float inboundDetailSum = inboundOrderDetail.OverInQuantity + inboundOrderDetail.ReceiptQuantity ;
+                if (inboundDetailSum == inboundOrderDetail.OrderQuantity)
+                {
+                    return WebResponseContent.Instance.Error($"璇ョ墿鏂欏叆搴撳崟鏄庣粏宸插叏閮ㄧ粍鐩樺畬鎴�");
+                }
+                if (model.Quantity > receiveOrderDetail.ReceivedQuantity || (inboundDetailSum + model.Quantity) > receiveOrderDetail.ReceivedQuantity)
+                {
+                    return WebResponseContent.Instance.Error($"涓庤鏀惰揣鍗曟槑缁嗘敹璐ф暟閲忎笉涓�鑷�");
+                }
+                Dt_StockInfo oldStockinfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode);
+                if(oldStockinfo!=null)
+                {
+                    return WebResponseContent.Instance.Error($"鎵樼洏閲嶅");
+                }
                 Dt_StockInfoDetail stockInfoDetail = new Dt_StockInfoDetail()
                 {
                     BatchNo = model.LotNo,
@@ -215,7 +226,7 @@
                     Status = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt(),
                     ProductionDate = model.ProductionDate,
                     EffectiveDate = model.EffectiveDate,
-                    InboundOrderRowNo = notGroupDetail.RowNo,
+                    InboundOrderRowNo = inboundOrderDetail.RowNo,
                 };
 
                 Dt_StockInfo stockInfo = new Dt_StockInfo()
@@ -225,14 +236,25 @@
                     WarehouseId = inboundOrder.WarehouseId,
                     Details=new List<Dt_StockInfoDetail> { stockInfoDetail }
                 };
-
+                inboundOrderDetail.ReceiptQuantity += model.Quantity;
+                _unitOfWorkManage.BeginTran();
+                if (inboundOrderDetail.OrderDetailStatus==OrderDetailStatusEnum.New.ObjToInt())
+                {
+                    inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.GroupAndInbound.ObjToInt();
+                }
+                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetail);
+                if (inboundOrder.OrderStatus == InOrderStatusEnum.鏈紑濮�.ObjToInt())
+                {
+                    inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱涓�.ObjToInt();
+                    BaseDal.UpdateData(inboundOrder);
+                }
                 _stockRepository.StockInfoRepository.Db.InsertNav(stockInfo).Include(x => x.Details).ExecuteCommand();
-                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails);
-
+                _unitOfWorkManage.CommitTran();
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
+                _unitOfWorkManage.RollbackTran();
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
@@ -545,8 +567,22 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
+        public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo)
+        {
+            WebResponseContent content=new WebResponseContent();
+            try
+            {
+
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+
         /// <summary>
-        /// 鍏ュ簱瀹屾垚鍥炰紶鍒癊RP
+        /// 鍏ュ簱瀹屾垚鍥炰紶鍒癊RP 娴嬭瘯
         /// </summary>
         /// <param name="id"></param>
         /// <returns></returns>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
index 188c4e0..76ab96e 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderDetailService.cs"
@@ -49,7 +49,7 @@
         {
             try
             {
-                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.QueryFirst(x => x.ReceiveOrderNo == orderNo);
+                Dt_ReceiveOrder receiveOrder = _inboundRepository.ReceiveOrderRepository.Db.Queryable<Dt_ReceiveOrder>().Where(x => x.ReceiveOrderNo == orderNo).Includes(x=>x.Details).First();
                 if (receiveOrder == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌鏀惰揣鍗�");
@@ -67,92 +67,141 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌鐗╂枡鐨勪俊鎭�");
                 }
-
-                Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.QueryFirst(x => x.PurchaseOrderNo == model.PurchaseOrderNo);
+                //璇ユ敹璐у崟浠撳簱鏄惁鏈夎鐗╂枡
+                if (materielInfo.WarehouseId!= receiveOrder.WarehouseId)
+                {
+                    return WebResponseContent.Instance.Error($"璇ョ墿鏂欎笉灞炰簬璇ヤ粨搴�");
+                }
+                Dt_PurchaseOrder purchaseOrder = _inboundRepository.PurchaseOrderRepository.Db.Queryable<Dt_PurchaseOrder>().Where(x => x.PurchaseOrderNo == model.PurchaseOrderNo).Includes(x=>x.Details).First();
                 if (purchaseOrder == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗�");
                 }
-
+                if (purchaseOrder.Details.Count == 0)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗曟槑缁嗘暟鎹�");
+                }
                 if (purchaseOrder.SupplierCode != receiveOrder.SuppliersId)
                 {
                     return WebResponseContent.Instance.Error($"渚涘簲鍟嗕笉涓�鑷�,璇锋柊寤烘敹璐у崟");
                 }
-
                 if (purchaseOrder.PurchaseOrderStatus == PurchaseOrderStatusEnum.Received.ObjToInt())
                 {
                     return WebResponseContent.Instance.Error($"璇ラ噰璐崟鏀惰揣宸插畬鎴�");
                 }
-
-                List<Dt_PurchaseOrderDetail> purchaseOrderDetails = _inboundRepository.PurchaseOrderDetailRepository.QueryData(x => x.PurchaseOrderId == purchaseOrder.Id);
-                if (purchaseOrderDetails == null || purchaseOrderDetails.Count == 0)
-                {
-                    return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗曟槑缁嗘暟鎹�");
-                }
-
-                Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrderDetails.FirstOrDefault(x => x.PurchaseDetailQuantity == model.Quantity && x.MaterielCode == model.MaterielCode && x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt());
+                Dt_PurchaseOrderDetail? purchaseOrderDetail = purchaseOrder.Details.FirstOrDefault(x => x.MaterielCode == model.MaterielCode && (x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.NotReceived.ObjToInt() || x.PurchaseDetailStatus == PurchaseOrderDetailStatusEnum.Receiving.ObjToInt()));
                 if (purchaseOrderDetail == null)
                 {
-                    if (purchaseOrderDetails.Count > 0)
+                    if (purchaseOrder.Details.Count > 0)
                     {
                         return WebResponseContent.Instance.Error($"璇ユ槑缁嗘敹璐у凡瀹屾垚");
                     }
-                    return WebResponseContent.Instance.Error($"鏈壘鍒板搴旂殑閲囪喘鍗曟槑缁嗘暟鎹�");
                 }
-                Dt_ReceiveOrderDetail detail = BaseDal.QueryFirst(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo);
-                if (detail != null)
+                //鍒ゆ柇鏄惁瀛樺湪瀵瑰簲閲囪喘鏄庣粏鐨勬敹璐ф槑缁�
+                Dt_ReceiveOrderDetail? detail = receiveOrder.Details.FirstOrDefault(x => x.PurchaseOrderNo == model.PurchaseOrderNo && x.PurchaseOrderDetailRowNo == purchaseOrderDetail.RowNo);
+                if (detail != null && detail.ReceivedQuantity == purchaseOrderDetail.PurchaseDetailQuantity)
                 {
-                    return WebResponseContent.Instance.Error($"璇ユ槑缁嗘敹璐у凡瀹屾垚");
+                    return WebResponseContent.Instance.Error($"璇ユ槑缁嗗凡鏀惰揣");
                 }
 
                 lock (_rowNoLocker)
                 {
-                    int rowNo = 0;
-                    List<Dt_ReceiveOrderDetail> receiveOrderDetails = BaseDal.QueryData(x => x.ReceiveOrderId == receiveOrder.ReceiveOrderId);
-                    if (receiveOrderDetails != null && receiveOrderDetails.Count > 0)
+                    if (detail!=null)
                     {
-                        rowNo = receiveOrderDetails.Max(x => x.RowNo);
+                        //鍘熸湁鏀惰揣鏄庣粏澧炲姞鏀惰揣鏁伴噺
+                        detail.ReceivedQuantity += model.Quantity;
+                        purchaseOrderDetail.PurchaseDetailReceiveQty = detail.ReceivedQuantity;
+                        if (purchaseOrderDetail.PurchaseDetailReceiveQty > purchaseOrderDetail.PurchaseDetailQuantity)
+                        {
+                            return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�");
+                        }
+                        if(purchaseOrderDetail.PurchaseDetailReceiveQty ==purchaseOrderDetail.PurchaseDetailQuantity)
+                        {
+                            purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt();
+                        }
+                        float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty) + model.Quantity;
+                        _unitOfWorkManage.BeginTran();
+                        if (purchaseOrder.OrderQuantity == sumQty)
+                        {
+                            purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt();
+                            _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
+                        }
+                        BaseDal.UpdateData(detail);
+                        _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail);
+                        _unitOfWorkManage.CommitTran();
                     }
-
-                    Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail()
+                    else
                     {
-                        PurchaseOrderNo = model.PurchaseOrderNo,
-                        ReceivedQuantity = model.Quantity,
-                        MaterielCode = model.MaterielCode,
-                        LotNo = model.LotNo,
-                        ReceiveOrderId = receiveOrder.ReceiveOrderId,
-                        PurchaseOrderDetailRowNo = purchaseOrderDetail.RowNo,
-                        IfInspection = materielInfo.IsCheck.ObjToInt(),
-                        CurrCode = "",
-                        PriceInTax = 0,
-                        TaxRate = "",
-                        RowNo = rowNo + 1,
-                        Unit = purchaseOrderDetail.Unit
-                    };
-
-                    if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt())
-                    {
-                        receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt();
+                        int rowNo = 0;
+                        if (receiveOrder.Details.Count > 0)
+                        {
+                            rowNo = receiveOrder.Details.Max(x => x.RowNo);
+                        }
+                        Dt_ReceiveOrderDetail receiveOrderDetail = new Dt_ReceiveOrderDetail()
+                        {
+                            PurchaseOrderNo = model.PurchaseOrderNo,
+                            ReceivedQuantity = model.Quantity,
+                            MaterielCode = model.MaterielCode,
+                            LotNo = model.LotNo,
+                            ReceiveOrderId = receiveOrder.ReceiveOrderId,
+                            PurchaseOrderDetailRowNo = purchaseOrderDetail.RowNo,
+                            IfInspection = materielInfo.IsCheck.ObjToInt(),
+                            CurrCode = "",
+                            PriceInTax = 0,
+                            TaxRate = "",
+                            RowNo = rowNo + 1,
+                            Unit = purchaseOrderDetail.Unit
+                        };
+                        if (receiveOrder.ReceiveOrderStatus == ReceiveOrderStatusEnum.NotStarted.ObjToInt())
+                        {
+                            receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt();
+                        }
+                        //鍒ゆ柇閲囪喘鏄庣粏鏁伴噺
+                        if (purchaseOrderDetail.PurchaseDetailQuantity<model.Quantity)
+                        {
+                            return WebResponseContent.Instance.Error($"璇锋牳瀵归噰璐崟璇ョ墿鏂欐暟閲�");
+                        }
+                        if (purchaseOrderDetail.PurchaseDetailReceiveQty>0)
+                        {
+                            purchaseOrderDetail.PurchaseDetailReceiveQty += model.Quantity;
+                        }
+                        else
+                        {
+                            purchaseOrderDetail.PurchaseDetailReceiveQty = model.Quantity;
+                        }
+                        if (purchaseOrderDetail.PurchaseDetailReceiveQty> purchaseOrderDetail.PurchaseDetailQuantity)
+                        {
+                            return WebResponseContent.Instance.Error($"閲囪喘鍗曡鐗╂枡鏁伴噺鍜屾敹璐ф暟閲忎笉涓�鑷�");
+                        }
+                        if (purchaseOrderDetail.PurchaseDetailQuantity == purchaseOrderDetail.PurchaseDetailReceiveQty)
+                        {
+                            purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt();
+                        }
+                        float sumQty = purchaseOrder.Details.Sum(x => x.PurchaseDetailReceiveQty) + model.Quantity;
+                        _unitOfWorkManage.BeginTran();
+                        BaseDal.AddData(receiveOrderDetail);
+                        if (purchaseOrder.OrderQuantity == sumQty)
+                        {
+                            purchaseOrder.PurchaseOrderStatus = PurchaseOrderStatusEnum.Received.ObjToInt();
+                            _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
+                        }
+                        _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder);
+                        _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail);
+                        #region 娉ㄩ噴
+                        //if (materielInfo.IsCheck == WhetherEnum.True)
+                        //{
+                        //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                        //    checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
+                        //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
+                        //    checkOrder.ScrappedQuantity = 0;
+                        //    checkOrder.ReturnQuantity = 0;
+                        //    checkOrder.DefectedQuantity = 0;
+                        //    _checkOrderRepository.AddData(checkOrder);
+                        //}
+                        #endregion
+                        _unitOfWorkManage.CommitTran();
                     }
-                    purchaseOrderDetail.PurchaseDetailStatus = PurchaseOrderDetailStatusEnum.Received.ObjToInt();
-
-                    _unitOfWorkManage.BeginTran();
-                    BaseDal.AddData(receiveOrderDetail);
-                    _inboundRepository.ReceiveOrderRepository.UpdateData(receiveOrder);
-                    _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrderDetail);
-
-                    if (materielInfo.IsCheck == WhetherEnum.True)
-                    {
-                        Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
-                        checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
-                        checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
-                        checkOrder.ScrappedQuantity = 0;
-                        checkOrder.ReturnQuantity = 0;
-                        checkOrder.DefectedQuantity = 0;
-                        _checkOrderRepository.AddData(checkOrder);
-                    }
-
-                    _unitOfWorkManage.CommitTran();
+                    
                     return WebResponseContent.Instance.OK();
                 }
             }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
index e309926..d18e849 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs"
@@ -139,7 +139,7 @@
                     CustomerId = receiveOrder.CustomerId,
                     CreatorId = "TC20082",//娴嬭瘯 receiveOrder.Creater
                     EntDate = receiveOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
-                    ReceiveDate = receiveOrder.ReceiveDate.ToString("yyyy-MM-dd HH:mm:ss"),
+                    ReceiveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                     PlantsId = "HA02",
                     SuppliersId = receiveOrder.SuppliersId,
                     Type = Enum.GetName(typeof(ReceiveOrderTypeEnum),receiveOrder.ReceiveOrderType),
@@ -155,12 +155,10 @@
                 {
                     return WebResponseContent.Instance.Error(erpRequest.Data);
                 }
+                //鏇存柊鏀惰揣鍗曚俊鎭�
                 receiveOrder.ReceiveOrderStatus = ReceiveOrderStatusEnum.Completed.ObjToInt();
                 receiveOrder.UploadStatus = WhetherEnum.True.ObjToInt();
-                //鏇存柊鏀惰揣鍗曚俊鎭�
-                _unitOfWorkManage.BeginTran();
                 BaseDal.UpdateData(receiveOrder);
-                _unitOfWorkManage.CommitTran();
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -217,21 +215,22 @@
                 {
                     return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈畬鎴�");
                 }
+                #region 娉ㄩ噴
+                //List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo);
+                //if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null)
+                //{
+                //    return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚");
+                //}
 
-                List<Dt_CheckOrder> checkOrders = _checkOrderRepository.QueryData(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo);
-                if (checkOrders.FirstOrDefault(x => x.CheckOrderStatus == CheckOrderStatusEnum.NotCheck.ObjToInt()) != null)
-                {
-                    return WebResponseContent.Instance.Error($"璇ユ敹璐у崟鏈川妫�瀹屾垚");
-                }
-
-                if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null)
-                {
-                    return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�");
-                }
+                //if (checkOrders.FirstOrDefault(x => x.AuditStatus != AuditStatusEnum.Agree.ObjToInt()) != null)
+                //{
+                //    return WebResponseContent.Instance.Error($"璇ユ敹璐у崟璐ㄦ缁撴灉瀹℃壒鏈畬鎴�");
+                //}
+                #endregion
 
                 Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
                 {
-                    InboundOrderNo="TestInboundNo1",//娴嬭瘯
+                    InboundOrderNo="TestInboundNo21",//娴嬭瘯
                     UpperOrderNo = receiveOrder.ReceiveOrderNo,
                     CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
                     OrderStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(),
@@ -244,15 +243,17 @@
                 foreach (var item in receiveOrder.Details)
                 {
                     float quantity = item.ReceivedQuantity;
-                    if (item.IfInspection == WhetherEnum.True.ObjToInt())
-                    {
-                        Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo);
-                        if (checkOrder == null)
-                        {
-                            return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�");
-                        }
-                        quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault();
-                    }
+                    #region 娉ㄩ噴
+                    //if (item.IfInspection == WhetherEnum.True.ObjToInt())
+                    //{
+                    //    Dt_CheckOrder? checkOrder = checkOrders.FirstOrDefault(x => x.ReceiveOrderNo == receiveOrder.ReceiveOrderNo && x.ReceiveDetailRowNo == item.RowNo);
+                    //    if (checkOrder == null)
+                    //    {
+                    //        return WebResponseContent.Instance.Error($"璐ㄦ鍗曟暟鎹敊璇�");
+                    //    }
+                    //    quantity = checkOrder.QualifiedQuantity.GetValueOrDefault() + checkOrder.DefectedQuantity.GetValueOrDefault();
+                    //}
+                    #endregion
                     Dt_InboundOrderDetail detail = new Dt_InboundOrderDetail()
                     {
                         MaterielCode = item.MaterielCode,
@@ -286,7 +287,7 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌閲囪喘鍗�");
                 }
-                if (purchaseOrder.Details == null || purchaseOrder.Details.Count == 0)
+                if (purchaseOrder.Details.Count == 0)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒伴噰璐崟鏄庣粏淇℃伅");
                 }
@@ -333,24 +334,25 @@
                         };
                         rowNo += 1;
                         receiveOrderDetails.Add(receiveOrderDetail);
-
-                        if (materielInfo.IsCheck == WhetherEnum.True)
-                        {
-                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
-                            checkOrder.CheckOrderNo = "TestCheckNo11";//娴嬭瘯
-                            checkOrder.ReceiveOrderNo = "";
-                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
-                            checkOrder.ScrappedQuantity = 0;
-                            checkOrder.ReturnQuantity = 0;
-                            checkOrder.DefectedQuantity = 0;
-                            checkOrder.ReceiveDetailRowNo = rowNo;
-                            checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
-                            checkOrders.Add(checkOrder);
-                        }
+                        #region 娉ㄩ噴
+                        //if (materielInfo.IsCheck == WhetherEnum.True)
+                        //{
+                        //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                        //    checkOrder.CheckOrderNo = "TestCheckNo21";//娴嬭瘯
+                        //    checkOrder.ReceiveOrderNo = "";
+                        //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
+                        //    checkOrder.ScrappedQuantity = 0;
+                        //    checkOrder.ReturnQuantity = 0;
+                        //    checkOrder.DefectedQuantity = 0;
+                        //    checkOrder.ReceiveDetailRowNo = rowNo;
+                        //    checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
+                        //    checkOrders.Add(checkOrder);
+                        //}
+                        #endregion
                     }
                     receiveOrder = new Dt_ReceiveOrder()
                     {
-                        ReceiveOrderNo= "TestReceiveOrderNo11",//娴嬭瘯
+                        ReceiveOrderNo= "TestReceiveOrderNo21",//娴嬭瘯
                         ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(),
                         CustomerId = "",
                         DeliveryCode = "/",
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs"
index 729c762..cb46215 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Outbound/Dt_OutboundOrder.cs"
@@ -58,13 +58,24 @@
         /// </summary>
         [SugarColumn(IsNullable = false, ColumnDescription = "鍒涘缓鏂瑰紡", IsOnlyIgnoreUpdate = true)]
         public int CreateType { get; set; }
-
+        /// <summary>
+        /// 閮ㄩ棬缂栧彿
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "閮ㄩ棬缂栧彿")]
+        public string DepartmentCode { get; set; }
+        /// <summary>
+        /// 閮ㄩ棬鍚嶇О
+        /// </summary>
+        [SugarColumn(IsNullable = true, Length = 50, ColumnDescription = "閮ㄩ棬鍚嶇О")]
+        public string DepartmentName { get; set; }
         /// <summary>
         /// 澶囨敞
         /// </summary>
         [SugarColumn(IsNullable = true, Length = 200, ColumnDescription = "澶囨敞")]
         public string Remark { get; set; }
 
+        
+
         /// <summary>
         /// 鍑哄簱鍗曟槑缁�
         /// </summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs"
index f1316e9..862466f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Stock/Dt_StockInfoDetail.cs"
@@ -47,7 +47,7 @@
         /// <summary>
         /// 鎵规鍙�
         /// </summary>
-        [SugarColumn(IsNullable = true, Length = 20, ColumnDescription = "鎵规鍙�")]
+        [SugarColumn(IsNullable = true, Length = 100, ColumnDescription = "鎵规鍙�")]
         public string BatchNo { get; set; }
 
         /// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs"
index a65c399..026f877 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs"
@@ -99,30 +99,7 @@
                                 OrderQuantity = model.Qty,
                                 OrderId = oldOutboundOrder.Id
                             };
-                            List<Dt_StockInfo>? stockInfos = new List<Dt_StockInfo>();
-                            //ERP涓婁紶娴嬭瘯浠撻鏂欏崟鏇存柊瀵瑰簲搴撳瓨鐘舵��
-                            if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
-                            {
-                                WebResponseContent responseContent = TestOutStocksUpdate(warehouse, model);
-                                if (!responseContent.Status)
-                                {
-                                    return responseContent;
-                                }
-                                stockInfos = responseContent.Data as List<Dt_StockInfo>;
-                            }
-                            _unitOfWorkManage.BeginTran();
-                            if (stockInfos.Count>0)
-                            {
-                                _stockInfoRepository.UpdateData(stockInfos);
-                                //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚
-                                if (!TestOutBack(stockInfos, warehouse, model).Status)
-                                {
-                                    _unitOfWorkManage.RollbackTran();
-                                    return WebResponseContent.Instance.Error($"娴嬭瘯鏋跺嚭搴撲笂鎶ュけ璐�");
-                                }
-                            }
                             _outboundOrderDetailRepository.AddData(outboundOrderDetail);
-                            _unitOfWorkManage.CommitTran();
                         }
                     }
                     else
@@ -136,7 +113,6 @@
                             OrderDetailStatus = OrderDetailStatusEnum.New.ObjToInt(),
                             OrderQuantity = model.Qty,
                         };
-
                         Dt_OutboundOrder outboundOrder = new Dt_OutboundOrder()
                         {
                             OrderNo=model.OrderNo,
@@ -145,33 +121,11 @@
                             OrderType = OutOrderTypeEnum.Issue.ObjToInt(),
                             CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
                             WarehouseId = warehouse.WarehouseId,
+                            DepartmentCode = model.DepartmentCode,
+                            DepartmentName = model.DepartmentName,
                             Details = new List<Dt_OutboundOrderDetail> { outboundOrderDetail }
                         };
-                        List<Dt_StockInfo>? stockInfos = new List<Dt_StockInfo>();
-                        //ERP涓婁紶娴嬭瘯浠撻鏂欏崟鏇存柊瀵瑰簲搴撳瓨鐘舵��
-                        if (warehouse.WarehouseCode == WarehouseEnum.HA64.ToString())
-                        {
-                            WebResponseContent responseContent = TestOutStocksUpdate(warehouse, model);
-                            if (!responseContent.Status)
-                            {
-                                return responseContent;
-                            }
-                            stockInfos = responseContent.Data as List<Dt_StockInfo>;
-                        }
-                        _unitOfWorkManage.BeginTran();
-                        if (stockInfos.Count > 0)
-                        {
-                            _stockInfoRepository.UpdateData(stockInfos);
-                            //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚
-                            if (!TestOutBack(stockInfos, warehouse, model).Status)
-                            {
-                                _unitOfWorkManage.RollbackTran();
-                                return WebResponseContent.Instance.Error($"娴嬭瘯鏋跺嚭搴撲笂鎶ュけ璐�");
-                            } 
-                        }
                         Db.InsertNav(outboundOrder).Include(x => x.Details).ExecuteCommand();
-                        _unitOfWorkManage.CommitTran();
-                        
                     }
                 }
                 else if (model.Way == 2)
@@ -217,7 +171,7 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
-        //涓婃姤鍑哄簱瀹屾垚
+        //涓婃姤鍑哄簱瀹屾垚 娴嬭瘯鏋�
         public WebResponseContent TestOutUpload(int id)
         {
             try
@@ -227,8 +181,8 @@
                 //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚
                 ERPPickItemModel eRPOutPick = new ERPPickItemModel()
                 {
-                    Lotno = "20241226001",
-                    Qty = "5",
+                    Lotno = "20241227001",
+                    Qty = "1",
                     Location = warehouse.WarehouseCode
                 };
                 ERPPickModel pickModel = new ERPPickModel()
@@ -247,11 +201,11 @@
                 ERPIssueModel issueModel = new ERPIssueModel()
                 {
                     UniqueTag = id.ToString(),
-                    Code = "FL20241226001",
+                    Code = "FL20241227001",//娴嬭瘯
                     WarehouseCode = warehouse.WarehouseCode,
                     Docremark = "",
-                    Deptno = "F2HAECZSQZ",
-                    Deptname = "娣畨浜屽巶鍒朵笁鍖洪樆鐒�",
+                    Deptno = outboundOrder.DepartmentCode,
+                    Deptname = outboundOrder.DepartmentName,
                     Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                     Createuser = "TC20082",
                     Issitem = new List<ERPIssueItemModel>() { issueItemModel },
@@ -272,7 +226,6 @@
             {
                 return WebResponseContent.Instance.Error(ex.Message);
             }
-            return WebResponseContent.Instance.OK();
         }
         /// <summary>
         /// 鏇存敼鍑哄簱鍗曞簱瀛樼姸鎬�
@@ -285,7 +238,7 @@
             try
             {
                 //鑾峰彇鍑哄簱鍗曞簱瀛�
-                List<Dt_StockInfo> stockInfos = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).OrderBy(x => x.CreateDate).Includes(x => x.Details).Where(x => x.Details.Any(x => x.MaterielCode == model.MCode)).Take((int)(model.Qty)).ToList();
+                List<Dt_StockInfo> stockInfos = _stockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.WarehouseId == warehouse.WarehouseId).Includes(x => x.Details).ToList();
                 if (model.Qty > stockInfos.Count)
                 {
                     return WebResponseContent.Instance.Error($"鐗╂枡:{model.MCode}搴撳瓨涓嶈冻");
@@ -303,53 +256,28 @@
             }
         }
         ///鎺ㄩ�佹祴璇曟灦鍑哄簱
-        public WebResponseContent TestOutBack(List<Dt_StockInfo> stockInfos,Dt_Warehouse warehouse, ErpOutOrderDTO model)
-        {
-            try
-            {
-                //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚
-                List<ERPOutPickDetail> pickDetails = stockInfos.Select(x => new ERPOutPickDetail()
-                {
-                    Lotno = x.Details[0].BatchNo,
-                    Qty = x.Details[0].StockQuantity.ObjToInt()
-                }).ToList();
-                ERPOutPick outPick = new ERPOutPick()
-                {
-                    Rowindex = model.RowNo,
-                    Material = model.MCode,
-                    Qty = model.Qty.ObjToInt(),
-                    Dataitem = pickDetails
-                };
-                ERPOutboundModel inboundModel = new ERPOutboundModel()
-                {
-                    Way = 1,
-                    UniqueTag = model.OrderNo,
-                    Code = model.OrderNo,
-                    WarehouseCode = warehouse.WarehouseCode,
-                    Docremark = "",
-                    Deptno = model.DepartmentCode,
-                    DeptName = model.DepartmentName,
-                    Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                    Createuser = "WMS",
-                    Picklist = new List<ERPOutPick>() { outPick },
-                };
-                string response = _invokeERPService.InvokeOutboundOrderApi(inboundModel);
-                ErpRequestContent requestContent=response.DeserializeObject<ErpRequestContent>();
-                if (requestContent.res==1)
-                {
-                    
-                    return WebResponseContent.Instance.OK(requestContent.Data);
-                }
-                else
-                {
-                    return WebResponseContent.Instance.Error(requestContent.Data);
-                }
-            }
-            catch (Exception ex)
-            {
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
+        //public WebResponseContent TestOutBack(int id,List<string> locationIds)
+        //{
+        //    try
+        //    {
+                
+        //        string response = _invokeERPService.InvokeOutStandardsApi(issueModel);
+        //        ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
+        //        if (requestContent.res == 1)
+        //        {
+
+        //            return WebResponseContent.Instance.OK(requestContent.Data);
+        //        }
+        //        else
+        //        {
+        //            return WebResponseContent.Instance.Error(requestContent.Data);
+        //        }
+        //    }
+        //    catch (Exception ex)
+        //    {
+        //        return WebResponseContent.Instance.Error(ex.Message);
+        //    }
+        //}
 
         //public WebResponseContent FeedbackOutbondIssue(List<Dt_OutStockLockInfo> outStockLockInfos)
         //{
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
index 3f466c9..a5e1ad6 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs"
@@ -1,4 +1,6 @@
-锘縰sing SqlSugar.Extensions;
+锘�
+using Newtonsoft.Json.Serialization;
+using Newtonsoft.Json;
 using System;
 using System.Collections.Generic;
 using System.Linq;
@@ -14,6 +16,7 @@
 using WIDESEA_Core;
 using WIDESEA_Core.BaseServices;
 using WIDESEA_Core.Enums;
+using WIDESEA_Core.Helper;
 using WIDESEA_DTO;
 using WIDESEA_DTO.ERP;
 using WIDESEA_DTO.MES;
@@ -37,11 +40,11 @@
             {
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseCode==WarehouseEnum.HA64.ToString());
                 //鑾峰彇搴撳瓨璁板綍
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => 
+                List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => 
                   x.WarehouseId == warehouse.WarehouseId && 
-                  x.StockStatus==(int)StockStatusEmun.鍏ュ簱瀹屾垚)
-                .Includes(x => x.Details).Where(x => x.Details.Any(x => x.BatchNo == model.ToolCode)).First();
-                if (stockInfo==null)
+                  x.StockStatus==(int)StockStatusEmun.鍏ュ簱瀹屾垚).Includes(x=>x.Details).ToList();
+                Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x=>x.Details.Any(x=>x.BatchNo==model.ToolCode));
+                if (stockInfo == null)
                 {
                     return responseContent.Error($"娴嬭瘯鏋�:{model.ToolCode}鏃犲彲鐢ㄥ簱瀛�");
                 }
@@ -62,7 +65,7 @@
                     NextAddress = "",
                     Roadway = locationInfo.RoadwayNo,
                     SourceAddress = stockInfo.LocationCode,
-                    TargetAddress = "",
+                    TargetAddress = model.TargetAddressCode,
                     TaskStatus = (int)TaskStatusEnum.New,
                     TaskType = (int)TaskTypeEnum.Outbound,
                     TaskNum = BaseDal.GetTaskNum(nameof(SequenceEnum.SeqTaskNum)),
@@ -86,7 +89,7 @@
                 //_recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.StockLock);
                 _unitOfWorkManage.CommitTran();
                 //灏嗕换鍔℃帹閫佸埌WCS
-                PushTasksToWCS(new List<Dt_Task>() { taskOut },"AGV");
+                PushTasksToWCS(new List<Dt_Task>() { taskOut }, "AGV");
                 responseContent.OK();
             }
             catch (Exception ex)
@@ -108,10 +111,10 @@
                 //鑾峰彇娴嬭瘯鏋跺師搴撳瓨淇℃伅
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString());
                 //鑾峰彇搴撳瓨璁板綍
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x =>
+                List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x =>
                   x.WarehouseId == warehouse.WarehouseId &&
-                  x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚)
-                .Includes(x => x.Details).Where(x => x.Details.Any(x => x.BatchNo == backModel.TestToolCode)).First();
+                  x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚).Includes(x => x.Details).ToList();
+                Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == backModel.TestToolCode));
                 if (stockInfo==null)
                 {
                     return responseContent.Error($"{backModel.TestToolCode}搴撳瓨淇℃伅涓嶅瓨鍦�");
@@ -134,10 +137,9 @@
                 };
                 //鏇存敼搴撳瓨鐘舵��
                 stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
-                _unitOfWorkManage.BeginTran();
+                //灏嗕换鍔℃帹閫佸埌WCS
+                PushTasksToWCS(new List<Dt_Task>() { taskIn }, "AGV");
                 _stockRepository.StockInfoRepository.UpdateData(stockInfo);
-                _unitOfWorkManage.CommitTran();
-                
                 responseContent.OK();
             }
             catch (Exception ex)
@@ -159,17 +161,18 @@
                 //鑾峰彇娴嬭瘯鏋舵壒娆″彿搴撳瓨
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString());
                 //鑾峰彇搴撳瓨璁板綍
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x =>
-                  x.WarehouseId == warehouse.WarehouseId && x.StockStatus==StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt())
-                .Includes(x => x.Details).Where(x => x.Details.Any(x => x.BatchNo == toolScrap.ToolCode)).First();
+                //鑾峰彇搴撳瓨璁板綍
+                List<Dt_StockInfo> stockInfos = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x =>
+                  x.WarehouseId == warehouse.WarehouseId &&
+                  x.StockStatus == (int)StockStatusEmun.鍑哄簱瀹屾垚).Includes(x => x.Details).ToList();
+                Dt_StockInfo? stockInfo = stockInfos.FirstOrDefault(x => x.Details.Any(x => x.BatchNo == toolScrap.ToolCode));
+                
                 if (stockInfo == null)
                 {
                     return responseContent.Error($"{toolScrap.ToolCode}搴撳瓨淇℃伅涓嶅瓨鍦�");
                 }
                 //娓呴櫎搴撳瓨淇℃伅
                 _unitOfWorkManage.BeginTran();
-                _stockRepository.StockInfoRepository.DeleteData(stockInfo);
-                _stockRepository.StockInfoDetailRepository.DeleteData(stockInfo.Details);
                 _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfo,OperateTypeEnum.鑷姩鍒犻櫎);
                 _stockRepository.StockInfoDetailRepository.DeleteAndMoveIntoHty(stockInfo.Details, OperateTypeEnum.鑷姩鍒犻櫎);
                 _unitOfWorkManage.CommitTran();
@@ -192,13 +195,28 @@
             try
             {
                 Dt_ApiInfo apiInfo = _apiInfoRepository.QueryFirst(x=>x.ApiCode==APIEnum.WMS_MES_TestToolSync.ToString());
-                Root<TestToolSynInfo> root = new Root<TestToolSynInfo>()
+                MESRoot<TestToolSynInfo> root = new MESRoot<TestToolSynInfo>()
                 {
                     From = "WMS",
-                    DateTime = DateTime.Now.ToString(),
+                    DateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
                     Content=toolSynInfo
                 };
+                JsonSerializerSettings settings = new JsonSerializerSettings
+                {
+                    ContractResolver = new CamelCasePropertyNamesContractResolver()
+                };
+                string request = JsonConvert.SerializeObject(root, settings);
+                string response = HttpMesHelper.Post(apiInfo.ApiAddress, request);
+                MesResponseContent mesResponseContent = response.DeserializeObject<MesResponseContent>();
                 //璋冪敤鎺ュ彛
+                if (mesResponseContent.BSucc==true)
+                {
+                    content.OK(mesResponseContent.StrMsg);
+                }
+                else
+                {
+                    content.Error(mesResponseContent.StrMsg);
+                }
             }
             catch (Exception ex)
             {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 447eda6..607c8f4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -25,6 +25,7 @@
 using WIDESEA_Common.OrderEnum;
 using WIDESEA_Common.StockEnum;
 using WIDESEA_Common.TaskEnum;
+using WIDESEA_Common.WareHouseEnum;
 using WIDESEA_Core;
 using WIDESEA_Core.BaseRepository;
 using WIDESEA_Core.BaseServices;
@@ -36,6 +37,7 @@
 using WIDESEA_External.ERPService;
 using WIDESEA_IBasicRepository;
 using WIDESEA_IBasicService;
+using WIDESEA_IInboundRepository;
 using WIDESEA_IInboundService;
 using WIDESEA_IOutboundRepository;
 using WIDESEA_IOutboundService;
@@ -61,6 +63,7 @@
         private readonly IBasicRepository _basicRepository;
         private readonly IApiInfoRepository _apiInfoRepository;
         private readonly IInvokeERPService _invokeERPService;
+        private readonly IInboundRepository _inboundRepository;
 
         public ITaskRepository Repository => BaseDal;
 
@@ -74,7 +77,7 @@
 
         public List<int> TaskOutboundTypes => typeof(TaskTypeEnum).GetEnumIndexList();
 
-        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService) : base(BaseDal)
+        public TaskService(ITaskRepository BaseDal, IMapper mapper, IUnitOfWorkManage unitOfWorkManage, IStockRepository stockRepository, IBasicService basicService, IRecordService recordService, IOutboundService outboundService, IStockService stockService, IBasicRepository basicRepository, IApiInfoRepository apiInfoRepository, IInvokeERPService invokeERPService, IInboundRepository inboundRepository) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -86,6 +89,7 @@
             _basicRepository = basicRepository;
             _apiInfoRepository = apiInfoRepository;
             _invokeERPService = invokeERPService;
+            _inboundRepository = inboundRepository;
         }
 
         /// <summary>
@@ -131,7 +135,7 @@
                     return WebResponseContent.Instance.Error($"浠诲姟绫诲瀷閿欒");
                 }
 
-                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == task.PalletCode).Includes(x => x.Details).First();
+                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.Db.Queryable<Dt_StockInfo>().Where(x => x.PalletCode == task.PalletCode && x.WarehouseId==task.WarehouseId).Includes(x => x.Details).First();
                 if (stockInfo == null)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒版墭鐩樺搴旂殑缁勭洏淇℃伅");
@@ -142,7 +146,7 @@
                     return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
                 }
 
-                if (stockInfo.Details == null || stockInfo.Details.Count == 0)
+                if (stockInfo.Details.Count == 0)
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌鎵樼洏搴撳瓨鏄庣粏淇℃伅");
                 }
@@ -160,27 +164,32 @@
 
                 LocationStatusEnum lastStatus = (LocationStatusEnum)locationInfo.LocationStatus;
                 locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
-
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId== task.WarehouseId);
                 //娴嬭瘯鏋跺叆搴撳簱瀛樼姸鎬�
-                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
+                if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() && warehouse.WarehouseCode==WarehouseEnum.HA64.ToString())
                 {
                     stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚鏈缓鍑哄簱鍗�.ObjToInt();
-                    stockInfo.Details.ForEach(x =>
-                    {
-                        x.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
-                    });
                 }
                 else
                 {
                     stockInfo.StockStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+                    
                 }
+                stockInfo.Details.ForEach(x =>
+                {
+                    x.Status = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
+                });
                 stockInfo.LocationCode = locationInfo.LocationCode;
+                //鎺ㄩ�佸叆搴撳畬鎴愮粰Erp
+                //鑾峰彇鍏ュ簱鍗曟洿鏂板叆搴撳崟
+                //Dt_InboundOrder inboundOrder = _inboundRepository.InboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x=>x.InboundOrderNo);
+                if (true)
+                {
 
+                }
                 _unitOfWorkManage.BeginTran();
                 BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
-
                 _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
-
                 _stockRepository.StockInfoRepository.UpdateData(stockInfo);
                 _stockRepository.StockInfoDetailRepository.UpdateData(stockInfo.Details);
                 _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, lastStatus, LocationChangeType.InboundCompleted);
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
index 5af3526..6809ade 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/MES/MesController.cs"
@@ -11,6 +11,7 @@
 using WIDESEA_TaskInfoService;
 using WIDESEA_DTO.ERP;
 using WIDESEA_DTO.MES;
+using WIDESEA_Core.Helper;
 
 namespace WIDESEA_WMSServer.Controllers.MES
 {
@@ -64,5 +65,15 @@
         {
             return _taskService.TestScrap(model.Content);
         }
+        [HttpPost, Route("TestSynStock"), AllowAnonymous]
+        public WebResponseContent TestSynStock([FromBody]TestToolSynInfo toolSynInfo)
+        {
+            return _taskService.TestSynStock(toolSynInfo);
+        }
+        [HttpPost, Route("testHttp"), AllowAnonymous, MethodParamsValidate]
+        public string TestScrap(string str)
+        {
+            return HttpMesHelper.GetStr(str);
+        }
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
index 9390217..0df0bd4 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json"
@@ -12,7 +12,7 @@
   "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
   //杩炴帴瀛楃涓�
   //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
-  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEAWMS_HUAIAN;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
   //璺ㄥ煙
   "Cors": {
     "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О

--
Gitblit v1.9.3