From 88d52606d0db8fb0343ebcd2d53c8df62fd05f2a Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期六, 28 十二月 2024 23:39:46 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs            |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_OutboundService/OutboundOrderService.cs                                   |  147 +++++++++------
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVExtend.cs                                                 |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MesTaskService.cs                                         |   37 ++-
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Record/Dt_StockQuantityChangeRecord.cs                       |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs                                 |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs                                    |   18 +
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs                                    |    4 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs                                                      |    4 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_ITaskInfoService/ITaskService.cs                                          |    2 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                         |   30 ++
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9e5bb932-a2ae-42b5-8ed0-09de9b346dc6.vsidx |    0 
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/4a20dff1-21c1-4155-a046-64d2b9450c27.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/InboundOrderService.cs                                     |  109 +++++++++--
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_InboundService/ReceiveOrderService.cs                                     |   38 ++--
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/cefa9c6e-65e6-4f5e-8814-550d3e8d3f27.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RootList.cs                                                       |   23 ++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IInboundService/IInboundOrderService.cs                                   |    7 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs                                            |   48 +++-
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/996cb05a-4002-49d6-b075-bdc5451f77c7.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpMesHelper.cs                                              |    7 
 /dev/null                                                                                                    |    0 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj                                        |    8 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock                                  |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/TestToolModel.cs                                                  |    2 
 25 files changed, 330 insertions(+), 168 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/4a20dff1-21c1-4155-a046-64d2b9450c27.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/4a20dff1-21c1-4155-a046-64d2b9450c27.vsidx"
new file mode 100644
index 0000000..7617cfa
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/4a20dff1-21c1-4155-a046-64d2b9450c27.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/995da1df-bccd-4c50-83da-49435a3bf126.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/995da1df-bccd-4c50-83da-49435a3bf126.vsidx"
deleted file mode 100644
index 18b2043..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/995da1df-bccd-4c50-83da-49435a3bf126.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/f5f21838-c06b-4a66-8b67-766679145a82.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9e5bb932-a2ae-42b5-8ed0-09de9b346dc6.vsidx"
similarity index 73%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f5f21838-c06b-4a66-8b67-766679145a82.vsidx"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9e5bb932-a2ae-42b5-8ed0-09de9b346dc6.vsidx"
index 3eef876..859b039 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f5f21838-c06b-4a66-8b67-766679145a82.vsidx"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9e5bb932-a2ae-42b5-8ed0-09de9b346dc6.vsidx"
Binary files differ
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs"
index 0f850ff..0ec998c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Program.cs"
@@ -47,9 +47,9 @@
 builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
 builder.Services.AddDbSetup();//Db 启动服务
 
-//builder.Services.AddScoped<QuartzJobCreateDataTabel>();
+builder.Services.AddScoped<QuartzJobCreateDataTabel>();
 builder.Services.AddHostedService<WarehouseHostedService>();
-//builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
+builder.Services.AddHostedService<QuartzJobDataTableHostedService>();
 
 builder.Services.AddAutoMapperSetup();
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
index e160ea1..5a4a541 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/WIDESEAWCS_Server.csproj"
@@ -13,8 +13,6 @@
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DeviceProtocolDetail.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_DispatchInfo.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Router.tsv" />
-		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Task.tsv" />
-		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_TaskExecuteDetail.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Sys_Dictionary.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Sys_DictionaryList.tsv" />
 		<Content Remove="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Sys_Menu.tsv" />
@@ -44,12 +42,6 @@
 		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 		</EmbeddedResource>
 		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Router.tsv">
-		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-		</EmbeddedResource>
-		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_Task.tsv">
-		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
-		</EmbeddedResource>
-		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Dt_TaskExecuteDetail.tsv">
 		  <CopyToOutputDirectory>Always</CopyToOutputDirectory>
 		</EmbeddedResource>
 		<EmbeddedResource Include="wwwroot\WIDESEAWCS_DB.DBSeed.Json\Sys_Dictionary.tsv">
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
index 129ec17..6f5ab5c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/InvokeAGVService.cs"
@@ -24,7 +24,7 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                string apiAddress = "http://10.30.4.19:8182/rcms/services/rest/hikRpcService/genAgvSchedulingTask";// AppSettings.Get(APIEnum.AgvSendTask.ToString());
+                string apiAddress = "http://10.30.4.29:8182/rcms/services/rest/hikRpcService/genAgvSchedulingTask";// AppSettings.Get(APIEnum.AgvSendTask.ToString());
                 string response = HttpHelper.Post(apiAddress, taskModel.Serialize());
                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
                 if (agvContent.Code == "0")
@@ -59,7 +59,7 @@
             WebResponseContent content = new WebResponseContent();
             try
             {
-                string apiAddress = "http://10.30.4.19:8182/rcms/services/rest/hikRpcService/continueTask";// AppSettings.Get(APIEnum.AgvSecureReply.ToString());
+                string apiAddress = "http://10.30.4.29:8182/rcms/services/rest/hikRpcService/continueTask";// AppSettings.Get(APIEnum.AgvSecureReply.ToString());
                 string response = HttpHelper.Post(apiAddress, secureReplyModel.Serialize());
                 AgvResponseContent agvContent = response.DeserializeObject<AgvResponseContent>();
                 if (agvContent.Code == "0")
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 3ab0634..f7e3c24 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -176,22 +176,40 @@
                         if (routers.Count == 1)
                         {
                             task.NextAddress = router?.NextPosi ?? "";
+                            task.DeviceCode = stationManger.StationDeviceCode;
                         }
                         else
                         {
                             task.NextAddress = "";
+                            task.DeviceCode = "";
                         }
                     }
                     else
                     {
-                        List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.StartPosi);
-                        if (routers.FirstOrDefault() == null)
+                        if(item.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
                         {
-                            return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�");
-                        }
-                        router = routers.FirstOrDefault();
+                            List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.NextPosi);
+                            if (routers.FirstOrDefault() == null)
+                            {
+                                return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�");
+                            }
+                            router = routers.FirstOrDefault();
 
-                        task.NextAddress = router?.NextPosi ?? "";
+                            task.NextAddress = router?.StartPosi ?? "";
+                            task.DeviceCode = item.RoadWay;
+                        }
+                        else
+                        {
+                            List<Dt_Router> routers = _routerRepository.QueryData(x => x.InOutType == item.TaskType && item.AGVArea == x.StartPosi);
+                            if (routers.FirstOrDefault() == null)
+                            {
+                                return WebResponseContent.Instance.Error($"鏈壘鍒拌矾鐢遍厤缃俊鎭�");
+                            }
+                            router = routers.FirstOrDefault();
+
+                            task.NextAddress = router?.NextPosi ?? "";
+                            task.DeviceCode = "AGV";
+                        }
                     }
 
                     tasks.Add(task);
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVExtend.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
index 3f480c9..7d4b8c3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVExtend.cs"
@@ -20,7 +20,7 @@
         {
             try
             {
-                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt() || x.TaskState == TaskStatusEnum.New.ObjToInt()).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
+                var newTasks = _taskService.Db.Queryable<Dt_Task>().Where(x => x.TaskState == TaskStatusEnum.AGV_Execute.ObjToInt()).ToList().OrderBy(x => x.Grade).ThenBy(x => x.CreateDate).ToList();
                 foreach (var agvTask in newTasks)
                 {
                     AgvTaskDTO taskDTO = new AgvTaskDTO()
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/47049b24-30e9-4e73-be80-cc5abf5cfefd.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/47049b24-30e9-4e73-be80-cc5abf5cfefd.vsidx"
deleted file mode 100644
index 8951428..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/47049b24-30e9-4e73-be80-cc5abf5cfefd.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/996cb05a-4002-49d6-b075-bdc5451f77c7.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/996cb05a-4002-49d6-b075-bdc5451f77c7.vsidx"
new file mode 100644
index 0000000..d13af6c
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/996cb05a-4002-49d6-b075-bdc5451f77c7.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/b4300a95-0842-480f-9efa-8633f9f71fe0.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b4300a95-0842-480f-9efa-8633f9f71fe0.vsidx"
deleted file mode 100644
index c9e1ac7..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/b4300a95-0842-480f-9efa-8633f9f71fe0.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/cefa9c6e-65e6-4f5e-8814-550d3e8d3f27.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/cefa9c6e-65e6-4f5e-8814-550d3e8d3f27.vsidx"
new file mode 100644
index 0000000..bc11c4e
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/cefa9c6e-65e6-4f5e-8814-550d3e8d3f27.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_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs"
index c3c44a5..c04414c 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs"
@@ -190,20 +190,20 @@
                 case PalletTypeEnum.LargePallet:
                     {
                         List<Dt_LocationInfo> moreDepth = locations.Where(x => x.Depth > emptyLocation.Depth).ToList();
-                        moreDepthFlag = moreDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.InStock.ObjToInt() && x.LocationStatus != LocationStatusEnum.PalletLock.ObjToInt()) == null;//鏌ヨ澶т簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓烘湁璐х殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娣辫揣浣嶆湁鏈浣跨敤鐨勬儏鍐�
+                        moreDepthFlag = moreDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.InStock.ObjToInt() && x.LocationStatus != LocationStatusEnum.PalletLock.ObjToInt() && x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) == null;//鏌ヨ澶т簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓烘湁璐х殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娣辫揣浣嶆湁鏈浣跨敤鐨勬儏鍐�
 
                         List<Dt_LocationInfo> littleDepth = locations.Where(x => x.Depth <= emptyLocation.Depth).ToList();
-                        littleDepthFlag = littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.OnlyIn.ObjToInt() && x.EnableStatus != EnableStatusEnum.Normal.ObjToInt()) == null; //鏌ヨ灏忎簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓虹┖锛屼笖绂佺敤鐘舵�佷笉涓虹鐢ㄤ互鍙婂彧鍏ョ殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娴呰揣浣嶈浣跨敤鎴栬�呰绂佺敤鐨勬儏鍐�
+                        littleDepthFlag = littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) == null; //鏌ヨ灏忎簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓虹┖锛屼笖绂佺敤鐘舵�佷笉涓虹鐢ㄤ互鍙婂彧鍏ョ殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娴呰揣浣嶈浣跨敤鎴栬�呰绂佺敤鐨勬儏鍐�
                     }
                     break;
                 case PalletTypeEnum.MediumPallet:
                 case PalletTypeEnum.SmallPallet:
                     {
                         List<Dt_LocationInfo> moreDepth = locations.Where(x => x.Depth > emptyLocation.Depth).ToList();
-                        moreDepthFlag = moreDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.InStock.ObjToInt()) == null;//鏌ヨ澶т簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓烘湁璐х殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娣辫揣浣嶆湁鏈浣跨敤鐨勬儏鍐�
+                        moreDepthFlag = moreDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.InStock.ObjToInt() && x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) == null;//鏌ヨ澶т簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓烘湁璐х殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娣辫揣浣嶆湁鏈浣跨敤鐨勬儏鍐�
 
                         List<Dt_LocationInfo> littleDepth = locations.Where(x => x.Depth <= emptyLocation.Depth).ToList();
-                        littleDepthFlag = littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.EnableStatus != EnableStatusEnum.OnlyIn.ObjToInt() && x.EnableStatus != EnableStatusEnum.Normal.ObjToInt()) == null; //鏌ヨ灏忎簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓虹┖锛屼笖绂佺敤鐘舵�佷笉涓虹鐢ㄤ互鍙婂彧鍏ョ殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娴呰揣浣嶈浣跨敤鎴栬�呰绂佺敤鐨勬儏鍐�
+                        littleDepthFlag = littleDepth.FirstOrDefault(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) == null; //鏌ヨ灏忎簬褰撳墠璐т綅娣卞害鐨勯泦鍚堥噷鏄惁鏈夌姸鎬佷笉涓虹┖锛屼笖绂佺敤鐘舵�佷笉涓虹鐢ㄤ互鍙婂彧鍏ョ殑璐т綅锛屽鏋滄槸true锛屽垯琛ㄧず娴呰揣浣嶈浣跨敤鎴栬�呰绂佺敤鐨勬儏鍐�
                     }
 
                     break;
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"
index 389b525..36da40e 100644
--- "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"
@@ -23,14 +23,11 @@
                     
                     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);
+                    string authorization = "AppKey 1830415116987195392";
                     headers = new Dictionary<string, string>
                     {
-                        { "Appkey", "1830415116987195392" },
                         { "Authorization", authorization },
-                        { "site_tenant_id", "ced19269-2b83-4577-be43-8cc2f700251e" }
+                        { "Site_tenant_id", "0dc2d164-8a62-417e-8a00-808007464feb" }
                     };
                     if (headers != null)
                     {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RootList.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RootList.cs"
new file mode 100644
index 0000000..9ff5822
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_DTO/MES/RootList.cs"
@@ -0,0 +1,23 @@
+锘縰sing OfficeOpenXml.FormulaParsing.Excel.Functions.Text;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEA_DTO.MES
+{
+    public class RootList
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        public string From { get; set; }
+        /// <summary>
+        /// 
+        /// </summary>
+        public string DateTime { get; set; }
+
+        public List<TestToolScrap> Content { 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 3084fa6..93d371f 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"
@@ -35,7 +35,7 @@
         /// 娴嬭瘯鏋舵壒娆″彿
         /// </summary>
         [PropertyValidate("娴嬭瘯鏋舵壒娆″彿", NotNullAndEmpty = true)]
-        public string ToolCode { get; set; }
+        public List<string> ToolCodes { get; set; }
     }
 
     /// <summary>
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 c63b33d..6d43109 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,7 +24,10 @@
         WebResponseContent FeedbackInboundOrder(int id);
 
         WebResponseContent MaterielGroup(SaveModel saveModel);
-        //鍏ュ簱瀹屾垚涓婃姤
-        WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo);
+        /// <summary>
+        /// 鍏ュ簱瀹屾垚涓婃姤
+        /// </summary>
+        /// <returns></returns>
+        WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo,Dt_InboundOrder inboundOrder);
     }
 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs"
index add2672..58b2717 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IOutboundService/IOutboundOrderService.cs"
@@ -18,6 +18,6 @@
         IOutboundOrderRepository Repository { get; }
 
         WebResponseContent ReceiveOutOrder(ErpOutOrderDTO model);
-        WebResponseContent TestOutUpload(int id);
+        WebResponseContent TestOutUpload(int id,Dt_StockInfo stockInfo=null);
     }
 }
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 3963410..6cd6c6d 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"
@@ -110,7 +110,7 @@
         /// </summary>
         /// <param name="toolScrap"></param>
         /// <returns></returns>
-        MesResponseContent TestScrap(TestToolScrap toolScrap);
+        MesResponseContent TestScrap(TestToolScrap toolScraps);
         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 2363716..6f1f954 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"
@@ -1,5 +1,6 @@
 锘縰sing AutoMapper;
 using HslCommunication.WebSocket;
+using Newtonsoft.Json;
 using SqlSugar;
 using System;
 using System.Collections.Generic;
@@ -152,17 +153,7 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
                 }
-                MatSerNumAnalysisModel model = new MatSerNumAnalysisModel()
-                {
-                    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);
+                MatSerNumAnalysisModel model = CodeAnalysisHelper.CodeAnalysis<MatSerNumAnalysisModel>(AnalysisCodeEnum.MatSerNumAnalysis, serNum);
                 Dt_MaterielInfo materielInfo = _basicRepository.MaterielInfoRepository.QueryFirst(x => x.MaterielCode == model.MaterielCode);
                 if (materielInfo == null)
                 {
@@ -567,15 +558,97 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
-        public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo)
+        /// <summary>
+        /// 鍏ュ簱瀹屾垚涓婃姤ERP
+        /// </summary>
+        /// <returns></returns>
+        public WebResponseContent FeedbackInboundOrder(Dt_StockInfo stockInfo,Dt_InboundOrder inboundOrder)
         {
             WebResponseContent content=new WebResponseContent();
             try
             {
-
+                if (inboundOrder.Details.Count == 0)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
+                }
+                if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+                {
+                    return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟嵁宸插畬鎴�");
+                }
+                List<ERPInboundDetailModel> detailModels = new List<ERPInboundDetailModel>();
+                Dt_Warehouse warehouse = _warehouseService.Repository.QueryFirst(x => x.WarehouseId == stockInfo.WarehouseId);
+                if (warehouse == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒颁粨搴撲俊鎭�");
+                }
+                List<Dt_InboundOrderDetail> inboundOrderDetails = new List<Dt_InboundOrderDetail>();
+                foreach (var item in stockInfo.Details)
+                {
+                    Dt_InboundOrderDetail? inboundOrderDetail = inboundOrder.Details.FirstOrDefault(x=>x.RowNo==item.InboundOrderRowNo);
+                    if (inboundOrderDetail == null)
+                    {
+                        continue;
+                    }
+                    ERPInboundDetailModel detailModel = new ERPInboundDetailModel()
+                    {
+                        ExpiryDate = item.EffectiveDate ?? "",
+                        LocationCode = warehouse.WarehouseCode,
+                        MaterialsCode = item.MaterielCode,
+                        MfgDate = item.ProductionDate ?? "",
+                        QtyCustoms = "0",
+                        Quantity = item.StockQuantity.ToString(),
+                        Rack = stockInfo.LocationCode,
+                        ReceiptCode = inboundOrder.UpperOrderNo,
+                        ReceiptSerNo = item.InboundOrderRowNo.ToString()
+                    };
+                    inboundOrderDetail.OverInQuantity += detailModel.Quantity.ObjToInt();
+                    if (inboundOrderDetail.OverInQuantity== inboundOrderDetail.OrderQuantity)
+                    {
+                        inboundOrderDetail.OrderDetailStatus = OrderDetailStatusEnum.Over.ObjToInt();
+                    }
+                    inboundOrderDetails.Add(inboundOrderDetail);
+                    detailModels.Add(detailModel);
+                }
+                ERPInboundModel model = new ERPInboundModel()
+                {
+                    Code = inboundOrder.InboundOrderNo,
+                    CreatorCode = "TC20082",//娴嬭瘯
+                    EntDate = inboundOrder.CreateDate.ToString("yyyy-MM-dd HH:mm:ss"),
+                    StockDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                    SuppliersId = inboundOrder.SupplierId,
+                    Type = "S",
+                    UniqueTag = inboundOrder.Id.ToString(),
+                    WarehouseCode = warehouse.WarehouseCode,
+                    Way = 1,
+                    Details = detailModels
+                };
+                //鍏ュ簱鏄庣粏鏂板瀹屾垚鏁伴噺
+                int newCount = inboundOrderDetails.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count;
+                //鍏ュ簱鏄庣粏鍘熷畬鎴愭暟閲�
+                int oldCount = inboundOrder.Details.Select(x => x.OrderDetailStatus == OrderDetailStatusEnum.Over.ObjToInt()).ToList().Count;
+                string response = _invokeERPService.InvokeInboundOrderApi(model);
+                ErpRequestContent requestContent = JsonConvert.DeserializeObject<ErpRequestContent>(response);
+                if (requestContent==null)
+                {
+                    return WebResponseContent.Instance.Error();
+                }
+                if (requestContent.res==0)
+                {
+                    return WebResponseContent.Instance.Error(requestContent.Data);
+                }
+                _unitOfWorkManage.BeginTran();
+                _inboundRepository.InboundOrderDetailRepository.UpdateData(inboundOrderDetails);
+                if (inboundOrder.Details.Count == (newCount + oldCount))
+                {
+                    inboundOrder.OrderStatus = InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt();
+                    _inboundRepository.InboundOrderRepository.UpdateData(inboundOrder);
+                }
+                _unitOfWorkManage.CommitTran();
+                return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
+                _unitOfWorkManage.RollbackTran();
                 content.Error(ex.Message);
             }
             return content;
@@ -599,13 +672,9 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板叆搴撳崟鏄庣粏淇℃伅");
                 }
-                if (inboundOrder.OrderStatus != InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
+                if (inboundOrder.OrderStatus == InOrderStatusEnum.鍏ュ簱瀹屾垚.ObjToInt())
                 {
-                    return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟嵁鏈畬鎴�");
-                }
-                if (inboundOrder.Details.FirstOrDefault(x => x.OrderDetailStatus != OrderDetailStatusEnum.Over.ObjToInt()) != null)
-                {
-                    return WebResponseContent.Instance.Error($"鍏ュ簱鏄庣粏鏈畬鎴�");
+                    return WebResponseContent.Instance.Error($"鍏ュ簱鍗曟嵁宸插畬鎴�");
                 }
 
                 List<Dt_StockInfo> stockInfos = Db.Queryable<Dt_StockInfo>().Where(x => x.Details.Any(v => v.OrderNo == inboundOrder.InboundOrderNo)).Includes(x => x.Details).ToList();
@@ -658,9 +727,7 @@
                     Way = 1,
                     Details = detailModels
                 };
-
                 string response = _invokeERPService.InvokeInboundOrderApi(model);
-
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
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 6d593ae..2165c8c 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"
@@ -231,7 +231,7 @@
 
                 Dt_InboundOrder inboundOrder = new Dt_InboundOrder()
                 {
-                    InboundOrderNo = "TestInboundNo21",//娴嬭瘯
+                    InboundOrderNo="IN"+DateTime.Now.ToString("yyyyMMddHHmmss"),//娴嬭瘯
                     UpperOrderNo = receiveOrder.ReceiveOrderNo,
                     CreateType = OrderCreateTypeEnum.UpperSystemPush.ObjToInt(),
                     OrderStatus = InOrderStatusEnum.鏈紑濮�.ObjToInt(),
@@ -353,7 +353,7 @@
                     }
                     receiveOrder = new Dt_ReceiveOrder()
                     {
-                        ReceiveOrderNo = "TestReceiveOrderNo21",//娴嬭瘯
+                        ReceiveOrderNo= "RE"+DateTime.Now.ToString("yyyyMMddHHmmss"),//娴嬭瘯
                         ReceiveOrderStatus = ReceiveOrderStatusEnum.Receiving.ObjToInt(),
                         CustomerId = "",
                         DeliveryCode = "/",
@@ -400,19 +400,19 @@
                         rowNo += 1;
                         receiveOrderDetails.Add(receiveOrderDetail);
 
-                        if (materielInfo.IsCheck == WhetherEnum.True)
-                        {
-                            Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
-                            checkOrder.CheckOrderNo = "Test-CheckNo1";//娴嬭瘯
-                            checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
-                            checkOrder.ScrappedQuantity = 0;
-                            checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
-                            checkOrder.ReturnQuantity = 0;
-                            checkOrder.DefectedQuantity = 0;
-                            checkOrder.ReceiveDetailRowNo = rowNo;
-                            checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
-                            checkOrders.Add(checkOrder);
-                        }
+                        //if (materielInfo.IsCheck == WhetherEnum.True)
+                        //{
+                        //    Dt_CheckOrder checkOrder = _mapper.Map<Dt_CheckOrder>(receiveOrderDetail);
+                        //    checkOrder.CheckOrderNo = "Test-CheckNo1";//娴嬭瘯
+                        //    checkOrder.QualifiedQuantity = receiveOrderDetail.ReceivedQuantity;
+                        //    checkOrder.ScrappedQuantity = 0;
+                        //    checkOrder.ReceiveOrderNo = receiveOrder.ReceiveOrderNo;
+                        //    checkOrder.ReturnQuantity = 0;
+                        //    checkOrder.DefectedQuantity = 0;
+                        //    checkOrder.ReceiveDetailRowNo = rowNo;
+                        //    checkOrder.UploadStatus = CheckUploadEnum.UploadNo.ObjToInt();
+                        //    checkOrders.Add(checkOrder);
+                        //}
                     }
                 }
 
@@ -429,10 +429,10 @@
                     Db.InsertNav(receiveOrder).Include(x => x.Details).ExecuteCommand();
                     checkOrders.ForEach(x => x.ReceiveOrderNo = receiveOrder.ReceiveOrderNo);
                 }
-                if (checkOrders.Count > 0)
-                {
-                    _checkOrderRepository.AddData(checkOrders);
-                }
+                //if (checkOrders.Count > 0)
+                //{
+                //    _checkOrderRepository.AddData(checkOrders);
+                //}
                 _inboundRepository.PurchaseOrderRepository.UpdateData(purchaseOrder);
                 _inboundRepository.PurchaseOrderDetailRepository.UpdateData(purchaseOrder.Details);
                 _unitOfWorkManage.CommitTran();
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Record/Dt_StockQuantityChangeRecord.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Record/Dt_StockQuantityChangeRecord.cs"
index e6b74e1..269dbae 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Record/Dt_StockQuantityChangeRecord.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Record/Dt_StockQuantityChangeRecord.cs"
@@ -47,7 +47,7 @@
         /// <summary>
         /// 鎵规鍙�
         /// </summary>
-        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鎵规鍙�")]
+        [SugarColumn(IsNullable = false, Length = 50, 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 026f877..213cd49 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"
@@ -171,50 +171,101 @@
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
-        //涓婃姤鍑哄簱瀹屾垚 娴嬭瘯鏋�
-        public WebResponseContent TestOutUpload(int id)
+        //涓婃姤鍑哄簱瀹屾垚
+        public WebResponseContent TestOutUpload(int id,Dt_StockInfo stockInfo)
         {
             try
             {
                 Dt_OutboundOrder outboundOrder = Db.Queryable<Dt_OutboundOrder>().Where(x=>x.Id==id).Includes(x=>x.Details).First();
                 Dt_Warehouse warehouse = _basicService.WarehouseService.Repository.QueryFirst(x => x.WarehouseId == outboundOrder.WarehouseId);
                 //娴嬭瘯鏋跺簱缁橢RP涓婃姤鍑哄簱瀹屾垚
-                ERPPickItemModel eRPOutPick = new ERPPickItemModel()
+                ERPIssueModel issueModel = new ERPIssueModel();
+                List<Dt_StockInfo> stockInfos = new List<Dt_StockInfo>();
+                if (stockInfo==null)
                 {
-                    Lotno = "20241227001",
-                    Qty = "1",
-                    Location = warehouse.WarehouseCode
-                };
-                ERPPickModel pickModel = new ERPPickModel()
+                    stockInfos = TestOutStocksUpdate(warehouse).Data as List<Dt_StockInfo> ?? new List<Dt_StockInfo>();
+                    List<ERPPickItemModel> eRPOutPick =new List<ERPPickItemModel>();
+                    for (int i = 0; i < stockInfos.Count; i++)
+                    {
+                        ERPPickItemModel pickItemModel = new ERPPickItemModel()
+                        {
+                            Lotno= stockInfos[i].Details[0].BatchNo,
+                            Qty= stockInfos[i].Details[0].StockQuantity.ObjToInt().ToString(),
+                            Location= warehouse.WarehouseCode
+                        };
+                        eRPOutPick.Add(pickItemModel);
+                    }
+                    
+                    ERPPickModel pickModel = new ERPPickModel()
+                    {
+                        Rowindex = outboundOrder.Details[0].RowNo,
+                        Material = outboundOrder.Details[0].MaterielCode,
+                        Qty = (outboundOrder.Details[0].OrderQuantity.ObjToInt()).ToString(),
+                        Dataitem = eRPOutPick
+                    };
+
+                    ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
+                    {
+                        Pickcode = outboundOrder.UpperOrderNo,
+                        PickList = new List<ERPPickModel>() { pickModel }
+                    };
+                    issueModel = new ERPIssueModel()
+                    {
+                        UniqueTag = id.ToString(),
+                        Code = "OT" + DateTime.Now.ToString("yyyyMMddHHmmss"),//娴嬭瘯
+                        WarehouseCode = warehouse.WarehouseCode,
+                        Docremark = "",
+                        Deptno = outboundOrder.DepartmentCode,
+                        Deptname = outboundOrder.DepartmentName,
+                        Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                        Createuser = "TC20082",
+                        Issitem = new List<ERPIssueItemModel>() { issueItemModel },
+                    };
+                }
+                else
                 {
-                    Rowindex = outboundOrder.Details[0].RowNo,
-                    Material = outboundOrder.Details[0].MaterielCode,
-                    Qty = (outboundOrder.Details[0].OrderQuantity.ObjToInt()).ToString(),
-                    Dataitem=new List<ERPPickItemModel> { eRPOutPick }
-                };
+                    Dt_OutboundOrderDetail orderDetail = outboundOrder.Details.FirstOrDefault(x => x.MaterielCode == stockInfo.Details[0].MaterielCode);
+                    
+                    ERPPickItemModel pickItemModel = new ERPPickItemModel()
+                    {
+                        Lotno = stockInfo.Details[0].BatchNo,
+                        Qty = stockInfo.Details[0].StockQuantity.ObjToInt().ToString(),
+                        Location = stockInfo.LocationCode
+                    };
+                    ERPPickModel pickModel = new ERPPickModel()
+                    {
+                        Rowindex = outboundOrder.Details[0].RowNo,
+                        Material = outboundOrder.Details[0].MaterielCode,
+                        Qty = (outboundOrder.Details[0].OrderQuantity.ObjToInt()).ToString(),
+                        Dataitem = new List<ERPPickItemModel> { pickItemModel }
+                    };
+                    ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
+                    {
+                        Pickcode = outboundOrder.UpperOrderNo,
+                        PickList = new List<ERPPickModel>() { pickModel }
+                    };
+                    issueModel = new ERPIssueModel()
+                    {
+                        UniqueTag = id.ToString(),
+                        Code = "OT" + DateTime.Now.ToString("yyyyMMddHHmmss"),//娴嬭瘯
+                        WarehouseCode = warehouse.WarehouseCode,
+                        Docremark = "",
+                        Deptno = outboundOrder.DepartmentCode,
+                        Deptname = outboundOrder.DepartmentName,
+                        Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
+                        Createuser = "TC20082",
+                        Issitem = new List<ERPIssueItemModel>() { issueItemModel },
+                    };
+                }
                 
-                ERPIssueItemModel issueItemModel = new ERPIssueItemModel()
-                {
-                    Pickcode = outboundOrder.UpperOrderNo,
-                    PickList = new List<ERPPickModel>() { pickModel }
-                };
-                ERPIssueModel issueModel = new ERPIssueModel()
-                {
-                    UniqueTag = id.ToString(),
-                    Code = "FL20241227001",//娴嬭瘯
-                    WarehouseCode = warehouse.WarehouseCode,
-                    Docremark = "",
-                    Deptno = outboundOrder.DepartmentCode,
-                    Deptname = outboundOrder.DepartmentName,
-                    Createtime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
-                    Createuser = "TC20082",
-                    Issitem = new List<ERPIssueItemModel>() { issueItemModel },
-                };
                 string response = _invokeERPService.InvokeOutStandardsApi(issueModel);
                 ErpRequestContent requestContent = response.DeserializeObject<ErpRequestContent>();
                 if (requestContent.res == 1)
                 {
-
+                    if (stockInfos.Count>0)
+                    {
+                        _stockInfoRepository.UpdateData(stockInfos);
+                    }
                     return WebResponseContent.Instance.OK(requestContent.Data);
                 }
                 else
@@ -233,15 +284,15 @@
         /// <param name="warehouse"></param>
         /// <param name="model"></param>
         /// <returns></returns>
-        public WebResponseContent TestOutStocksUpdate(Dt_Warehouse warehouse, ErpOutOrderDTO model)
+        public WebResponseContent TestOutStocksUpdate(Dt_Warehouse warehouse)
         {
             try
             {
                 //鑾峰彇鍑哄簱鍗曞簱瀛�
                 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)
+                if (stockInfos.Count<=0)
                 {
-                    return WebResponseContent.Instance.Error($"鐗╂枡:{model.MCode}搴撳瓨涓嶈冻");
+                    return WebResponseContent.Instance.Error($"搴撳瓨涓嶈冻");
                 }
                 //鏇存敼鐘舵��
                 stockInfos.ForEach(x =>
@@ -255,33 +306,5 @@
                 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)
-        //{
-        //    ERPPickItemModel
-        //}
     }
 }
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 a5e1ad6..ddda47e 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"
@@ -75,6 +75,12 @@
                 stockInfo.StockStatus = (int)StockStatusEmun.鍑哄簱閿佸畾;
                 LocationStatusEnum locationStatus = (LocationStatusEnum)locationInfo.LocationStatus;
                 locationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
+                //灏嗕换鍔℃帹閫佸埌WCS
+                WebResponseContent content = PushTasksToWCS(new List<Dt_Task>() { taskOut }, "AGV");
+                if (!content.Status)
+                {
+                    return responseContent.Error();
+                }
                 //鍒ゆ柇鏄惁鏈夊嚭搴撳崟淇℃伅
                 _unitOfWorkManage.BeginTran();
                 //鏇存柊搴撳瓨鐘舵��
@@ -88,8 +94,6 @@
                 //鍔犲叆搴撳瓨鍙樺姩璁板綍
                 //_recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfoDetails, beforeQuantity, totalQuantity, StockChangeTypeEnum.StockLock);
                 _unitOfWorkManage.CommitTran();
-                //灏嗕换鍔℃帹閫佸埌WCS
-                PushTasksToWCS(new List<Dt_Task>() { taskOut }, "AGV");
                 responseContent.OK();
             }
             catch (Exception ex)
@@ -137,9 +141,14 @@
                 };
                 //鏇存敼搴撳瓨鐘舵��
                 stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
-                //灏嗕换鍔℃帹閫佸埌WCS
-                PushTasksToWCS(new List<Dt_Task>() { taskIn }, "AGV");
+                BaseDal.AddData(taskIn);
                 _stockRepository.StockInfoRepository.UpdateData(stockInfo);
+                //灏嗕换鍔℃帹閫佸埌WCS
+                WebResponseContent content = PushTasksToWCS(new List<Dt_Task>() { taskIn }, "AGV"); ;
+                if (!content.Status)
+                {
+                    return responseContent.Error();
+                }
                 responseContent.OK();
             }
             catch (Exception ex)
@@ -153,7 +162,7 @@
         /// 娴嬭瘯鏋舵姤搴�
         /// </summary>
         /// <returns></returns>
-        public MesResponseContent TestScrap(TestToolScrap toolScrap)
+        public MesResponseContent TestScrap(TestToolScrap toolScraps)
         {
             MesResponseContent responseContent = new MesResponseContent();
             try
@@ -161,21 +170,25 @@
                 //鑾峰彇娴嬭瘯鏋舵壒娆″彿搴撳瓨
                 Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA64.ToString());
                 //鑾峰彇搴撳瓨璁板綍
-                //鑾峰彇搴撳瓨璁板綍
                 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)
+                List<Dt_StockInfo> stockInfoUpdates = new List<Dt_StockInfo>();
+                List<Dt_StockInfoDetail> stockInfoDetails = new List<Dt_StockInfoDetail>();
+                foreach (var item in toolScraps.ToolCodes)
                 {
-                    return responseContent.Error($"{toolScrap.ToolCode}搴撳瓨淇℃伅涓嶅瓨鍦�");
+                    Dt_StockInfo stockInfo = stockInfos.Find(x => x.Details.Any(x => x.BatchNo == item));
+                    if (stockInfo == null)
+                    {
+                        return responseContent.Error($"{item}搴撳瓨淇℃伅涓嶅瓨鍦�");
+                    }
+                    stockInfoUpdates.Add(stockInfo);
                 }
                 //娓呴櫎搴撳瓨淇℃伅
                 _unitOfWorkManage.BeginTran();
-                _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfo,OperateTypeEnum.鑷姩鍒犻櫎);
-                _stockRepository.StockInfoDetailRepository.DeleteAndMoveIntoHty(stockInfo.Details, OperateTypeEnum.鑷姩鍒犻櫎);
+                _stockRepository.StockInfoRepository.DeleteAndMoveIntoHty(stockInfoUpdates, OperateTypeEnum.鑷姩鍒犻櫎);
                 _unitOfWorkManage.CommitTran();
+                responseContent.OK($"鎶ュ簾鎴愬姛");
             }
             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 607c8f4..a5bbf26 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"
@@ -64,6 +64,7 @@
         private readonly IApiInfoRepository _apiInfoRepository;
         private readonly IInvokeERPService _invokeERPService;
         private readonly IInboundRepository _inboundRepository;
+        private readonly IInboundOrderService _inboundOrderService;
 
         public ITaskRepository Repository => BaseDal;
 
@@ -77,7 +78,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, IInboundRepository inboundRepository) : 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, IInboundOrderService inboundOrderService) : base(BaseDal)
         {
             _mapper = mapper;
             _unitOfWorkManage = unitOfWorkManage;
@@ -90,6 +91,7 @@
             _apiInfoRepository = apiInfoRepository;
             _invokeERPService = invokeERPService;
             _inboundRepository = inboundRepository;
+            _inboundOrderService = inboundOrderService;
         }
 
         /// <summary>
@@ -130,10 +132,10 @@
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌浠诲姟淇℃伅");
                 }
 
-                if (task.TaskType != TaskTypeEnum.Inbound.ObjToInt())
-                {
-                    return WebResponseContent.Instance.Error($"浠诲姟绫诲瀷閿欒");
-                }
+                //if (task.TaskType != TaskTypeEnum.Inbound.ObjToInt())
+                //{
+                //    return WebResponseContent.Instance.Error($"浠诲姟绫诲瀷閿欒");
+                //}
 
                 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)
@@ -181,12 +183,15 @@
                 });
                 stockInfo.LocationCode = locationInfo.LocationCode;
                 //鎺ㄩ�佸叆搴撳畬鎴愮粰Erp
-                //鑾峰彇鍏ュ簱鍗曟洿鏂板叆搴撳崟
-                //Dt_InboundOrder inboundOrder = _inboundRepository.InboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x=>x.InboundOrderNo);
-                if (true)
+                Dt_InboundOrder? inboundOrder = _inboundRepository.InboundOrderRepository.Db.Queryable<Dt_InboundOrder>().Where(x => x.InboundOrderNo == stockInfo.Details.FirstOrDefault().OrderNo).Includes(x=>x.Details).First();
+                if (inboundOrder == null)
                 {
-
+                    return WebResponseContent.Instance.Error($"瀵瑰簲鍏ュ簱鍗曚笉瀛樺湪");
                 }
+                if (!_inboundOrderService.FeedbackInboundOrder(stockInfo, inboundOrder).Status)
+                {
+                    return WebResponseContent.Instance.Error($"鍏ュ簱鍚屾Erp澶辫触");
+                } 
                 _unitOfWorkManage.BeginTran();
                 BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
                 _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
@@ -230,9 +235,10 @@
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌揣浣嶄俊鎭�");
                 }
-
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x=>x.WarehouseId== task.WarehouseId);
                 List<Dt_OutStockLockInfo> outStockLockInfos = _outboundService.OutboundStockLockInfoService.Repository.QueryData(x => x.TaskNum == taskNum);
-                if (outStockLockInfos == null || outStockLockInfos.Count == 0)
+
+                if ((outStockLockInfos == null || outStockLockInfos.Count == 0) && warehouse.WarehouseCode != WarehouseEnum.HA64.ToString())
                 {
                     return WebResponseContent.Instance.Error($"鏈壘鍒板嚭搴撹鎯呬俊鎭�");
                 }
@@ -251,14 +257,23 @@
                         outboundOrderDetails.Add(outboundOrderDetail);
                     }
                 }
-
+                if (warehouse.WarehouseCode != WarehouseEnum.HA64.ToString())
+                {
+                    //鎺ㄩ�佸嚭搴撳畬鎴�
+                    WebResponseContent webResponse = _outboundService.OutboundOrderService.TestOutUpload(outboundOrderDetails.FirstOrDefault().Id,stockInfo);
+                    if (!webResponse.Status)
+                    {
+                        return webResponse;
+                    }
+                }
                 _unitOfWorkManage.BeginTran();
-                _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
-
+                if (outboundOrderDetails.Count>0)
+                {
+                    _outboundService.OutboundOrderDetailService.Repository.UpdateData(outboundOrderDetails);
+                }
                 stockInfo.LocationCode = locationInfo.LocationCode;
                 stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
                 _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
                 int beforeStatus = locationInfo.LocationStatus;
                 locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
                 _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, (PalletTypeEnum)stockInfo.PalletType, LocationStatusEnum.Free, stockInfo.WarehouseId);
@@ -266,7 +281,8 @@
 
                 _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, (LocationStatusEnum)beforeStatus, LocationChangeType.OutboundCompleted, stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
                 _unitOfWorkManage.CommitTran();
-                //鎺ㄩ�佸嚭搴撳畬鎴�
+                
+
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs"
index 3747638..ad7c944 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/PDAController.cs"
@@ -29,14 +29,18 @@
             _taskService = taskService;
         }
 
+        /// <summary>
+        /// 涓嬭浇PDA
+        /// </summary>
+        /// <returns></returns>
         [HttpPost, HttpGet, Route("DownLoadApp"), AllowAnonymous]
         public virtual ActionResult DownLoadApp()
         {
             string path = $"{AppDomain.CurrentDomain.BaseDirectory}Upload/App/";
             if (!Directory.Exists(path)) Directory.CreateDirectory(path);
             path += "WMS-PDA.apk";
-            
-            if(System.IO.File.Exists(path))
+
+            if (System.IO.File.Exists(path))
             {
                 byte[] fileBytes = System.IO.File.ReadAllBytes(path);
                 return File(
@@ -49,9 +53,14 @@
             {
                 return Json(WebResponseContent.Instance.Error($"鏈壘鍒板畨瑁呭寘"));
             }
-            
+
         }
 
+        /// <summary>
+        /// 涓婁紶PDA
+        /// </summary>
+        /// <param name="fileInput"></param>
+        /// <returns></returns>
         [HttpPost, HttpGet, Route("UploadApp"), AllowAnonymous]
         [Consumes("multipart/form-data")]
         public WebResponseContent UploadApp(IEnumerable<IFormFile> fileInput)
@@ -66,7 +75,8 @@
                 if (!Directory.Exists(dicPath)) Directory.CreateDirectory(dicPath);
                 string path = $"{dicPath}WMS-PDA{DateTime.Now:yyyyMMddhhmmss}.apk";
                 dicPath = $"{dicPath}WMS-PDA.apk";
-                System.IO.File.Move(dicPath, path);
+                if (System.IO.File.Exists(dicPath))
+                    System.IO.File.Move(dicPath, path);
 
                 using (var stream = new FileStream(dicPath, FileMode.Create))
                 {

--
Gitblit v1.9.3