From b51a65433d6102f2f8f00226404d9ca3808404af Mon Sep 17 00:00:00 2001
From: hutongqing <hutongqing@hnkhzn.com>
Date: 星期四, 02 一月 2025 22:23:17 +0800
Subject: [PATCH] 打印托盘号

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IPalletCodeInfoService.cs                                   |   14 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/userInfo.js                                                   |    8 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e4d2b89c-c9d8-4512-858a-0ac416e979cb.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSClient/package.json                                                                      |    2 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/06b6ba59-2c2a-4213-bfcb-89a257c39dfa.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_CSJ.cs            |    7 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs                                                      |    2 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/油墨仓/StackerCraneJob_YM.cs                                        |   71 +--
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_IBasicRepository/IPalletCodeInfoRepository.cs                             |   14 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs                                    |   79 ++++
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3bdb0da1-c42c-4531-99e8-2d9f1d8c02e8.vsidx |    0 
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2ce7b081-61db-4780-ab7b-3174d3d998cb.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs             |    8 
 代码管理/WMS/WIDESEA_WMSClient/src/views/basic/palletCodeInfo.vue                                                |  159 ++++++++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs             |    8 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/palletCodeInfo.js                                             |   34 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs                                     |   69 +++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs                   |   17 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                         |    2 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/supplierInfo.js                                               |    8 
 代码管理/WMS/WIDESEA_WMSClient/src/router/viewGird.js                                                            |   61 +--
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj                                          |    2 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs                        |   22 -
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs             |    8 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/ConveyorLineJob_GM.cs                                        |   69 +++
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletTypeInfo.cs                                   |   71 +++
 代码管理/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/09203851-2649-4a0f-b696-332fad6125e4.vsidx |    0 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs                                                 |   12 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8c2e982d-ad7f-4e3a-9e0e-ad39ee70751d.vsidx |    0 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/ConvertHelper.cs                                         |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_PP.cs             |    8 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletCodeInfo.cs                                   |   38 ++
 /dev/null                                                                                                    |    0 
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/干膜仓/StackerCraneJob_GM.cs                                        |  171 +++++---
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/customerInfo.js                                               |    7 
 代码管理/WMS/WIDESEA_WMSClient/src/extension/basic/extend/printView.vue                                          |  111 +++++
 代码管理/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj                    |    2 
 代码管理/WMS/WIDESEA_WMSClient/config/buttons.js                                                                 |    1 
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/PalletCodeInfoRepository.cs                               |   18 
 代码管理/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/be46b995-1948-4e27-9de5-d740316e7adb.vsidx |    0 
 40 files changed, 865 insertions(+), 246 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/09203851-2649-4a0f-b696-332fad6125e4.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/09203851-2649-4a0f-b696-332fad6125e4.vsidx"
new file mode 100644
index 0000000..50a38c3
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/09203851-2649-4a0f-b696-332fad6125e4.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/2ce7b081-61db-4780-ab7b-3174d3d998cb.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2ce7b081-61db-4780-ab7b-3174d3d998cb.vsidx"
new file mode 100644
index 0000000..6562949
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/2ce7b081-61db-4780-ab7b-3174d3d998cb.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/3f1c84d5-9c1f-4fdc-87f5-306cb17f32d2.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/3f1c84d5-9c1f-4fdc-87f5-306cb17f32d2.vsidx"
deleted file mode 100644
index 4ee483d..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/3f1c84d5-9c1f-4fdc-87f5-306cb17f32d2.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/3fcc60dc-f900-4492-85a9-40896ee66f41.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/3fcc60dc-f900-4492-85a9-40896ee66f41.vsidx"
deleted file mode 100644
index 65f5a27..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/3fcc60dc-f900-4492-85a9-40896ee66f41.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/9f95e3ab-bdf0-4c7c-81b3-068eb5a47849.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9f95e3ab-bdf0-4c7c-81b3-068eb5a47849.vsidx"
deleted file mode 100644
index 26d8096..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/9f95e3ab-bdf0-4c7c-81b3-068eb5a47849.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/d780f09b-095f-414c-9d64-3ece8ead7a82.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d780f09b-095f-414c-9d64-3ece8ead7a82.vsidx"
deleted file mode 100644
index 63c1e24..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/d780f09b-095f-414c-9d64-3ece8ead7a82.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/read.lock" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock"
deleted file mode 100644
index e69de29..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/read.lock"
+++ /dev/null
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
index db72e58..16a5285 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_BasicInfoService/WIDESEAWCS_BasicInfoService.csproj"
@@ -7,7 +7,7 @@
   </PropertyGroup>
 
   <ItemGroup>
-    <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.1" />
+    <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.3" />
   </ItemGroup>
 
   <ItemGroup>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/ConvertHelper.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/ConvertHelper.cs"
index dc67877..68e4fe7 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/ConvertHelper.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/Helper/ConvertHelper.cs"
@@ -8,9 +8,9 @@
 
 namespace WIDESEAWCS_Common.Helper
 {
-    public class ConvertHelper
+    public static class ConvertHelper
     {
-        public static bool[] ByteToBoolArray(byte data)
+        public static bool[] ByteToBoolArray(this byte data)
         {
             bool[] result = new bool[8];
             for (int i = 0; i < 8; i++)
@@ -20,10 +20,12 @@
             return result;
         }
 
-        public static T ByteToBoolObject<T>(byte data)
+        public static T ByteToBoolObject<T>(this byte data)
         {
             bool[] boolArray = ByteToBoolArray(data);
 
+            Array.Reverse(boolArray);
+
             Type type = typeof(T);
             object? obj = Activator.CreateInstance(type);
             if (obj == null)
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 2080ff3..20acae2 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"
@@ -220,7 +220,7 @@
                             }
 
                             task.NextAddress = stationManger?.AGVStationCode ?? "";
-                            task.DeviceCode = "AGV_CSJ";
+                            task.DeviceCode = stationManger?.Remark ?? "";
                             task.TaskState = TaskStatusEnum.AGV_Execute.ObjToInt();
                         }
                     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
index 60d817d..3239aea 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/WIDESEAWCS_Tasks.csproj"
@@ -13,7 +13,7 @@
 	</ItemGroup>
 
 	<ItemGroup>
-	  <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.1" />
+	  <PackageReference Include="WIDESEAWCS_QuartzJob" Version="3.0.3" />
 	</ItemGroup>
 
 	<ItemGroup>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
new file mode 100644
index 0000000..80b7d03
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/ConveyorLineJob_GM.cs"
@@ -0,0 +1,69 @@
+锘縰sing Quartz;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEAWCS_Common;
+using WIDESEAWCS_Common.Helper;
+using WIDESEAWCS_Core.Helper;
+using WIDESEAWCS_IBasicInfoRepository;
+using WIDESEAWCS_ITaskInfoRepository;
+using WIDESEAWCS_ITaskInfoService;
+using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
+using WIDESEAWCS_QuartzJob.DTO;
+using WIDESEAWCS_Tasks.ConveyorLineJob;
+
+namespace WIDESEAWCS_Tasks
+{
+    [DisallowConcurrentExecution]
+    public class ConveyorLineJob_GM : JobBase, IJob
+    {
+
+        private readonly ITaskService _taskService;
+        private readonly ITaskExecuteDetailService _taskExecuteDetailService;
+        private readonly ITaskRepository _taskRepository;
+        private readonly IStationMangerRepository _stationMangerRepository;
+
+        public ConveyorLineJob_GM(ITaskService taskService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IStationMangerRepository stationMangerRepository)
+        {
+            _taskService = taskService;
+            _taskExecuteDetailService = taskExecuteDetailService;
+            _taskRepository = taskRepository;
+            _stationMangerRepository = stationMangerRepository;
+        }
+
+        public Task Execute(IJobExecutionContext context)
+        {
+            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object? value);
+            if (flag && value != null)
+            {
+                OtherDevice device = (OtherDevice)value;
+                List<string> deviceStations = device.DeviceProDTOs.Select(x => x.DeviceChildCode).ToList();
+                List<Dt_StationManger> stationMangers = _stationMangerRepository.QueryData(x => x.StationDeviceCode == device.DeviceCode);
+                foreach (var item in stationMangers.Where(x => deviceStations.Contains(x.StationCode)))
+                {
+                    if (item.StationType == StationTypeEnum.StationType_OnlyInbound.ObjToInt())
+                    {
+                        DeviceProDTO? devicePro = device.DeviceProDTOs.Where(x => x.DeviceChildCode == item.StationCode).OrderBy(x => x.DeviceProOffset).FirstOrDefault();
+                        if (devicePro != null)
+                        {
+                            R_ConveyorLineInfo conveyorLineInfo = device.Communicator.ReadCustomer<R_ConveyorLineInfo>(devicePro.DeviceProAddress);
+
+                            R_ConveyorLineStatus conveyorLineStatus = conveyorLineInfo.Status.ByteToBoolObject<R_ConveyorLineStatus>();
+
+                            bool stb = device.GetValue<R_ConveyorLineDBName, bool>(R_ConveyorLineDBName.STB);
+                        }
+                        else
+                        {
+                            WriteInfo(device.DeviceName, $"鏈壘鍒拌澶囧瓙缂栧彿{item.StationCode}鐨勫崗璁俊鎭�");
+                        }
+                    }
+                }
+            }
+
+            return Task.CompletedTask;
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs"
index 2c10b52..ffa7452 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\345\271\262\350\206\234\344\273\223/StackerCraneJob_GM.cs"
@@ -8,6 +8,7 @@
 using System.Threading.Tasks;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core.Enums;
+using WIDESEAWCS_Core.Helper;
 using WIDESEAWCS_IBasicInfoRepository;
 using WIDESEAWCS_ITaskInfoRepository;
 using WIDESEAWCS_ITaskInfoService;
@@ -42,34 +43,34 @@
 
         public Task Execute(IJobExecutionContext context)
         {
+            CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
             try
             {
-                CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
                 if (commonStackerCrane != null)
                 {
                     if (!commonStackerCrane.IsEventSubscribed)
                     {
                         commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
                     }
-
-                    if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal)
+                    commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
+                    if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
                     {
-                        commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
-
-                        if (commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
+                        Dt_Task? task = GetTask(commonStackerCrane);
+                        if (task != null)
                         {
-                            Dt_Task? task = GetTask(commonStackerCrane);
-                            if (task != null)
+                            StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
+                            if (stackerCraneTaskCommand != null)
                             {
-                                StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
-                                if (stackerCraneTaskCommand != null)
+                                bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand);
+                                if (sendFlag)
                                 {
-                                    bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand);
-                                    if (sendFlag)
-                                    {
-                                        commonStackerCrane.LastTaskType = task.TaskType;
-                                       // _taskService.UpdateTaskStatusToNext(task.TaskNum);
-                                    }
+                                    commonStackerCrane.LastTaskType = task.TaskType;
+                                    int oldState = task.TaskState;
+                                    task.TaskState = TaskStatusEnum.SC_Executing.ObjToInt();
+                                    task.ExceptionMessage = "";
+                                    task.Dispatchertime = DateTime.Now;
+                                    _taskRepository.UpdateData(task);
+                                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�");
                                 }
                             }
                         }
@@ -78,7 +79,7 @@
             }
             catch (Exception ex)
             {
-                WriteError(nameof(CommonStackerCraneJob), ex.Message, ex);
+                WriteError(commonStackerCrane.DeviceName, ex.Message, ex);
             }
             return Task.CompletedTask;
         }
@@ -91,14 +92,30 @@
         private void CommonStackerCrane_StackerCraneTaskCompletedEventHandler(object? sender, WIDESEAWCS_QuartzJob.StackerCrane.StackerCraneTaskCompletedEventArgs e)
         {
             CommonStackerCrane? commonStackerCrane = sender as CommonStackerCrane;
-            if (commonStackerCrane != null)
+            try
             {
-                if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
+                if (commonStackerCrane != null)
                 {
-                    Console.Out.WriteLine("TaskCompleted" + e.TaskNum);
-                   // _taskService.StackCraneTaskCompleted(e.TaskNum);
-                    commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
+                    if (commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.WorkType) != 5)
+                    {
+                        WriteInfo(commonStackerCrane.DeviceName, $"璇诲彇鍒颁换鍔″畬鎴愪俊鍙�,{e.TaskNum}");
+                        Dt_Task task = _taskRepository.QueryFirst(x => x.TaskNum == e.TaskNum);
+                        if (task != null)
+                        {
+                            _taskService.TaskCompleted(e.TaskNum);
+                        }
+                        else
+                        {
+                            WriteInfo(commonStackerCrane.DeviceName, $"璇诲彇鍒颁换鍔″畬鎴愪俊鍙�,鏈壘鍒板搴旂殑浠诲姟淇℃伅,{e.TaskNum}");
+                        }
+                        commonStackerCrane.SetValue(StackerCraneDBName.WorkType, 5);
+                    }
                 }
+            }
+            catch (Exception ex)
+            {
+                WriteError(commonStackerCrane?.DeviceCode ?? nameof(StackerCraneJob_YM), ex.Message, ex);
+
             }
         }
 
@@ -174,7 +191,7 @@
                     OtherDevice client = (OtherDevice)device;
                     if (client.GetValue<GroundStationDBName, bool>(GroundStationDBName.R_IsCanPut, stationManger.StationCode))//鍑哄簱绔欏彴鏈鍗犵敤
                     {
-                        task.TargetAddress = stationManger.StackerCraneStationCode;
+                        task.NextAddress = stationManger.StackerCraneStationCode;
                         _taskRepository.UpdateData(task);
                         return task;
                     }
@@ -207,16 +224,39 @@
             stackerCraneTaskCommand.TrayType = 1;
             if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.InboundGroup)//鍒ゆ柇鏄惁鏄叆搴撲换鍔�
             {
-                //List<Dt_Router> routers = _routerService.QueryNextRoutes(task.CurrentAddress, task.Roadway);
-                //if (routers.Count > 0)
-                //{
                 string[] startCodes = task.CurrentAddress.Split("-");
-
-                stackerCraneTaskCommand.StartRow = Convert.ToInt16(startCodes[0]);
-                stackerCraneTaskCommand.StartColumn = Convert.ToInt16(startCodes[1]);
-                stackerCraneTaskCommand.StartLayer = Convert.ToInt16(startCodes[2]);
+                if (startCodes.Length == 3)
+                {
+                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(startCodes[0]);
+                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(startCodes[1]);
+                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(startCodes[2]);
+                }
+                else
+                {
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    WriteInfo(task.DeviceCode, $"鍏ュ簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    return null;
+                }
 
                 string[] targetCodes = task.NextAddress.Split("-");
+                if (targetCodes.Length == 5)
+                {
+                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]);
+                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]);
+                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[3]);
+                }
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岀粓鐐癸細銆恵task.NextAddress}銆�");
+                    WriteInfo(task.DeviceCode, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岀粓鐐癸細銆恵task.NextAddress}銆�");
+                    return null;
+                }
+            }
+            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
+            {
+                string[] targetCodes = task.NextAddress.Split("-");
+
                 if (targetCodes.Length == 3)
                 {
                     stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]);
@@ -226,73 +266,54 @@
                 else
                 {
                     //鏁版嵁閰嶇疆閿欒
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍏ュ簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟缁堢偣閿欒锛岀粓鐐癸細銆恵task.NextAddress}銆�");
+                    WriteInfo(task.DeviceCode, $"鍑哄簱浠诲姟缁堢偣閿欒锛岀粓鐐癸細銆恵task.NextAddress}銆�");
                     return null;
                 }
-                //}
-                //else
-                //{
-                //    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鍙栬揣绔欏彴淇℃伅");
-                //    return null;
-                //}
-            }
-            else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.OutbondGroup)
-            {
-                //List<Dt_Router> routers = _routerService.QueryNextRoutes(task.Roadway, task.TargetAddress);
-                //if (routers.Count > 0)
+
+                string[] sourceCodes = task.CurrentAddress.Split("-");
+                if (sourceCodes.Length == 5)
                 {
-                    string[] targetCodes = task.NextAddress.Split("-");
-
-                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]);
-                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
-                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
-
-                    string[] sourceCodes = task.CurrentAddress.Split("-");
-                    if (sourceCodes.Length == 3)
-                    {
-                        stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]);
-                        stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
-                        stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
-                    }
-                    else
-                    {
-                        //鏁版嵁閰嶇疆閿欒
-                        _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
-                        return null;
-                    }
+                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]);
+                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]);
+                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[3]);
                 }
-                //else
-                //{
-                //    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鏈壘鍒扮珯鍙般�恵task.NextAddress}銆戜俊鎭紝鏃犳硶鑾峰彇瀵瑰簲鐨勫爢鍨涙満鏀捐揣绔欏彴淇℃伅");
-                //    return null;
-                //}
+                else
+                {
+                    //鏁版嵁閰嶇疆閿欒
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    WriteInfo(task.DeviceCode, $"鍑哄簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    return null;
+                }
             }
             else if (task.TaskType.GetTaskTypeGroup() == TaskTypeGroup.RelocationGroup)
             {
                 string[] targetCodes = task.NextAddress.Split("-");
-                if (targetCodes.Length == 3)
+                if (targetCodes.Length == 5)
                 {
-                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[0]);
-                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[1]);
-                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[2]);
+                    stackerCraneTaskCommand.EndRow = Convert.ToInt16(targetCodes[1]);
+                    stackerCraneTaskCommand.EndColumn = Convert.ToInt16(targetCodes[2]);
+                    stackerCraneTaskCommand.EndLayer = Convert.ToInt16(targetCodes[3]);
                 }
                 else
                 {
                     //鏁版嵁閰嶇疆閿欒
-                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟缁堢偣閿欒锛岃捣鐐癸細銆恵task.NextAddress}銆�");
+                    _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟缁堢偣閿欒锛岀粓鐐癸細銆恵task.NextAddress}銆�");
+                    WriteInfo(task.DeviceCode, $"绉诲簱浠诲姟缁堢偣閿欒锛岀粓鐐癸細銆恵task.NextAddress}銆�");
                     return null;
                 }
                 string[] sourceCodes = task.CurrentAddress.Split("-");
-                if (sourceCodes.Length == 3)
+                if (sourceCodes.Length == 5)
                 {
-                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[0]);
-                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[1]);
-                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[2]);
+                    stackerCraneTaskCommand.StartRow = Convert.ToInt16(sourceCodes[1]);
+                    stackerCraneTaskCommand.StartColumn = Convert.ToInt16(sourceCodes[2]);
+                    stackerCraneTaskCommand.StartLayer = Convert.ToInt16(sourceCodes[3]);
                 }
                 else
                 {
                     //鏁版嵁閰嶇疆閿欒
                     _taskService.UpdateTaskExceptionMessage(task.TaskNum, $"绉诲簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
+                    WriteInfo(task.DeviceCode, $"绉诲簱浠诲姟璧风偣閿欒锛岃捣鐐癸細銆恵task.CurrentAddress}銆�");
                     return null;
                 }
             }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs"
index 15e2e45..2ab1869 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/\346\262\271\345\242\250\344\273\223/StackerCraneJob_YM.cs"
@@ -39,7 +39,6 @@
         private readonly ITaskRepository _taskRepository;
         private readonly IRouterService _routerService;
         private readonly IStationMangerRepository _stationMangerRepository;
-        private List<Dt_ApiInfo> apiInfos;
 
         public StackerCraneJob_YM(ITaskService taskService, ICacheService cacheService, ITaskExecuteDetailService taskExecuteDetailService, ITaskRepository taskRepository, IRouterService routerService, IStationMangerRepository stationMangerRepository)
         {
@@ -49,58 +48,54 @@
             _taskRepository = taskRepository;
             _routerService = routerService;
             _stationMangerRepository = stationMangerRepository;
-
-            string? apiInfoStr = _cacheService.Get("apiInfos");
-            if (!string.IsNullOrEmpty(apiInfoStr))
-            {
-                apiInfos = JsonConvert.DeserializeObject<List<Dt_ApiInfo>>(apiInfoStr);
-                if (apiInfos == null || apiInfos.Count == 0)
-                {
-                    apiInfos = new List<Dt_ApiInfo>();
-                }
-            }
         }
 
         public Task Execute(IJobExecutionContext context)
         {
-            CommonStackerCrane commonStackerCrane = (CommonStackerCrane)context.JobDetail.JobDataMap.Get("JobParams");
-            try
+            bool flag = context.JobDetail.JobDataMap.TryGetValue("JobParams", out object value);
+            if (flag && value != null)
             {
-                if (commonStackerCrane != null)
+                CommonStackerCrane commonStackerCrane = (CommonStackerCrane)value;
+                try
                 {
-                    if (!commonStackerCrane.IsEventSubscribed)
+                    if (commonStackerCrane != null)
                     {
-                        commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
-                    }
-                    commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
-                    if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
-                    {
-                        Dt_Task? task = GetTask(commonStackerCrane);
-                        if (task != null)
+                        if (!commonStackerCrane.IsEventSubscribed)
                         {
-                            StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
-                            if (stackerCraneTaskCommand != null)
+                            commonStackerCrane.StackerCraneTaskCompletedEventHandler += CommonStackerCrane_StackerCraneTaskCompletedEventHandler;//璁㈤槄浠诲姟瀹屾垚浜嬩欢
+                        }
+                        commonStackerCrane.CheckStackerCraneTaskCompleted();//闃叉浠诲姟瀹屾垚浜嬩欢鐩戞祴瓒呮椂锛屽啀鎵嬪姩瑙﹀彂涓�娆�
+                        if (commonStackerCrane.StackerCraneAutoStatusValue == StackerCraneAutoStatus.Automatic && commonStackerCrane.StackerCraneStatusValue == StackerCraneStatus.Normal && commonStackerCrane.StackerCraneWorkStatusValue == StackerCraneWorkStatus.Standby)
+                        {
+                            Dt_Task? task = GetTask(commonStackerCrane);
+                            if (task != null)
                             {
-                                bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand);
-                                if (sendFlag)
+                                StackerCraneTaskCommand? stackerCraneTaskCommand = ConvertToStackerCraneTaskCommand(task);
+                                if (stackerCraneTaskCommand != null)
                                 {
-                                    commonStackerCrane.LastTaskType = task.TaskType;
-                                    int oldState = task.TaskState;
-                                    task.TaskState = TaskStatusEnum.SC_Executing.ObjToInt();
-                                    task.ExceptionMessage = "";
-                                    task.Dispatchertime = DateTime.Now;
-                                    _taskRepository.UpdateData(task);
-                                    _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�");
+                                    bool sendFlag = commonStackerCrane.SendCommand(stackerCraneTaskCommand);
+                                    if (sendFlag)
+                                    {
+                                        commonStackerCrane.LastTaskType = task.TaskType;
+                                        int oldState = task.TaskState;
+                                        task.TaskState = TaskStatusEnum.SC_Executing.ObjToInt();
+                                        task.ExceptionMessage = "";
+                                        task.Dispatchertime = DateTime.Now;
+                                        _taskRepository.UpdateData(task);
+                                        _taskExecuteDetailService.AddTaskExecuteDetail(task.TaskId, $"绯荤粺鑷姩娴佺▼锛屼换鍔$姸鎬佷粠銆恵oldState}銆戣浆鍒般�恵task.TaskState}銆�");
+                                    }
                                 }
                             }
                         }
                     }
                 }
-            }
-            catch (Exception ex)
-            {
-                WriteError(commonStackerCrane.DeviceName, ex.Message, ex);
-            }
+                catch (Exception ex)
+                {
+                    WriteError(commonStackerCrane.DeviceName, ex.Message, ex);
+                }
+            } 
+
+            
             return Task.CompletedTask;
         }
 
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
index dc84b3a..17aa6e3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/config/buttons.js"
@@ -153,7 +153,6 @@
     onClick: function () {
     }
 },
-
 ]
 
 export default buttons
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/package.json" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/package.json"
index 42cd9e5..a37c00f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/package.json"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/package.json"
@@ -17,8 +17,10 @@
     "echarts": "^5.0.2",
     "element-plus": "^2.2.14",
     "less": "^4.1.1",
+    "qrcode": "^1.5.4",
     "vue": "^3.2.37",
     "vue-draggable-next": "^2.0.1",
+    "vue-qrcode": "^2.2.2",
     "vue-router": "^4.0.0-0",
     "vuex": "^4.0.0-0"
   },
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/areaInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/areaInfo.js"
deleted file mode 100644
index 151c927..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/areaInfo.js"
+++ /dev/null
@@ -1,69 +0,0 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-
-let extension = {
-  components: {
-    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-    gridHeader: '',
-    gridBody: '',
-    gridFooter: '',
-    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-    modelHeader: '',
-    modelBody: '',
-    modelFooter: ''
-  },
-  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-  methods: {
-    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-    onInit() {
-      let enableBtn = this.buttons.find(x => x.value == 'Enable');
-      if (enableBtn) {
-        enableBtn.onClick = function () {
-          this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�');
-        }
-      }
-      let disableBtn = this.buttons.find(x => x.value == 'Disable');
-      if (disableBtn) {
-        disableBtn.onClick = function () {
-          this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�');
-        }
-      }
-    },
-    onInited() {
-      //妗嗘灦鍒濆鍖栭厤缃悗
-      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-      //this.detailOptions.columns.forEach(column=>{ });
-    },
-    searchBefore(param) {
-      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-      return true;
-    },
-    searchAfter(result) {
-      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-      return true;
-    },
-    addBefore(formData) {
-      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-      return true;
-    },
-    updateBefore(formData) {
-      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-      return true;
-    },
-    rowClick({ row, column, event }) {
-      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-    },
-    modelOpenAfter(row) {
-      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-      //(3)this.editFormFields.瀛楁='xxx';
-      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-    }
-  }
-};
-export default extension;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/areaRouter.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/areaRouter.js"
deleted file mode 100644
index 151c927..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/areaRouter.js"
+++ /dev/null
@@ -1,69 +0,0 @@
-
-//姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-
-let extension = {
-  components: {
-    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
-    gridHeader: '',
-    gridBody: '',
-    gridFooter: '',
-    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
-    modelHeader: '',
-    modelBody: '',
-    modelFooter: ''
-  },
-  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
-  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
-  methods: {
-    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-    onInit() {
-      let enableBtn = this.buttons.find(x => x.value == 'Enable');
-      if (enableBtn) {
-        enableBtn.onClick = function () {
-          this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�');
-        }
-      }
-      let disableBtn = this.buttons.find(x => x.value == 'Disable');
-      if (disableBtn) {
-        disableBtn.onClick = function () {
-          this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�');
-        }
-      }
-    },
-    onInited() {
-      //妗嗘灦鍒濆鍖栭厤缃悗
-      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
-      //this.detailOptions.columns.forEach(column=>{ });
-    },
-    searchBefore(param) {
-      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
-      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
-      return true;
-    },
-    searchAfter(result) {
-      //鏌ヨ鍚庯紝result杩斿洖鐨勬煡璇㈡暟鎹�,鍙互鍦ㄦ樉绀哄埌琛ㄦ牸鍓嶅鐞嗚〃鏍肩殑鍊�
-      return true;
-    },
-    addBefore(formData) {
-      //鏂板缓淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛紝鍙互缁欑粰琛ㄥ崟璁剧疆鍊硷紝鑷繁杈撳嚭鐪媐ormData鐨勫��
-      return true;
-    },
-    updateBefore(formData) {
-      //缂栬緫淇濆瓨鍓峟ormData涓哄璞★紝鍖呮嫭鏄庣粏琛ㄣ�佸垹闄よ鐨処d
-      return true;
-    },
-    rowClick({ row, column, event }) {
-      //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
-    },
-    modelOpenAfter(row) {
-      //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
-      //(1)鍒ゆ柇鏄紪杈戣繕鏄柊寤烘搷浣滐細 this.currentAction=='Add';
-      //(2)缁欏脊鍑烘璁剧疆榛樿鍊�
-      //(3)this.editFormFields.瀛楁='xxx';
-      //濡傛灉闇�瑕佺粰涓嬫媺妗嗚缃粯璁ゅ�硷紝璇烽亶鍘唗his.editFormOptions鎵惧埌瀛楁閰嶇疆瀵瑰簲data灞炴�х殑key鍊�
-      //鐪嬩笉鎳傚氨鎶婅緭鍑虹湅锛歝onsole.log(this.editFormOptions)
-    }
-  }
-};
-export default extension;
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/customerInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/customerInfo.js"
index 8935403..4f642ad 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/customerInfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/customerInfo.js"
@@ -1,10 +1,3 @@
-/*****************************************************************************************
-**  Author:jxx 2022
-**  QQ:283591387
-**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
-**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
-**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
-*****************************************************************************************/
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 
 let extension = {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/printView.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/printView.vue"
new file mode 100644
index 0000000..dc05237
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/extend/printView.vue"
@@ -0,0 +1,111 @@
+<template>
+  <div>
+    <vol-box
+      v-model="showDetialBox"
+      :lazy="true"
+      width="300px"
+      :padding="15"
+      title="鎵撳嵃"
+    >
+      <div
+        id="printContent"
+        style="display: flex; justify-content: center; align-items: center"
+      >
+        <div
+          style="display: flex; justify-content: center; align-items: center"
+        >
+          <VueQrcode id="qrcode" :value="palletCode" :size="200"></VueQrcode>
+        </div>
+        <span
+          style="display: flex; justify-content: center; align-items: center"
+          >{{ palletCode }}</span
+        >
+      </div>
+
+      <template #footer>
+        <el-button type="primary" size="small" @click="print()">鎵撳嵃</el-button>
+        <el-button type="danger" size="small" @click="showDetialBox = false"
+          >鍏抽棴</el-button
+        >
+      </template>
+    </vol-box>
+  </div>
+</template>
+  
+  <script>
+import VolBox from "@/components/basic/VolBox.vue";
+import VueQrcode from "vue-qrcode";
+import QRCode from "qrcode";
+export default {
+  components: { VolBox, VueQrcode },
+  data() {
+    return {
+      showDetialBox: false,
+      row: null,
+      qrcodeDataURL: "",
+      palletCode: "",
+    };
+  },
+  methods: {
+    open(row) {
+      this.row = row;
+      this.showDetialBox = true;
+      if (row && row.palletCode) {
+        this.palletCode = row.palletCode;
+      }
+    },
+    print() {
+      let printContent = document.getElementById("printContent");
+      var printWindow = window.open("", "");
+      printWindow.document.write(printContent.innerHTML);
+      printWindow.document.close();
+      printWindow.focus();
+      printWindow.print();
+      printWindow.close();
+    },
+  },
+
+  created() {},
+};
+</script>
+  
+  <style scoped>
+.el-col {
+  border-radius: 4px;
+}
+
+.grid-content {
+  border-radius: 4px;
+  min-height: 36px;
+}
+
+.content-text {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+
+.right-text {
+  display: flex;
+  align-items: center;
+  justify-content: flex-end;
+}
+</style>
+  <style>
+.el-table .warning-row {
+  background: #e6a23c;
+}
+
+.el-table .success-row {
+  background: #f0f9eb;
+}
+
+.el-table .error-row {
+  background: #f56c6c;
+}
+
+canvas {
+  display: block;
+  margin: auto;
+}
+</style>
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/CachePoint.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/palletCodeInfo.js"
similarity index 76%
rename from "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/CachePoint.js"
rename to "\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/palletCodeInfo.js"
index 151c927..786d497 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/CachePoint.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/palletCodeInfo.js"
@@ -1,11 +1,10 @@
-
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
-
+import gridBody from './extend/printView.vue'
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
     gridHeader: '',
-    gridBody: '',
+    gridBody: gridBody,
     gridFooter: '',
     //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
     modelHeader: '',
@@ -16,19 +15,22 @@
   buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
   methods: {
     //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
-    onInit() {
-      let enableBtn = this.buttons.find(x => x.value == 'Enable');
-      if (enableBtn) {
-        enableBtn.onClick = function () {
-          this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�');
+    onInit() {  //妗嗘灦鍒濆鍖栭厤缃墠锛�
+      this.columns.push({
+        field: '鎿嶄綔',
+        title: '鎿嶄綔',
+        width: 90,
+        fixed: 'right',
+        align: 'center',
+        formatter: (row) => {
+          return (
+            '<i style="cursor: pointer;color: #2d8cf0;"class="el-icon-printer">鎵撳嵃</i>'
+          );
+        },
+        click: (row) => {
+          this.$refs.gridBody.open(row);
         }
-      }
-      let disableBtn = this.buttons.find(x => x.value == 'Disable');
-      if (disableBtn) {
-        disableBtn.onClick = function () {
-          this.$message.success('鑷畾涔夋寜閽偣鍑讳簨浠�');
-        }
-      }
+      });
     },
     onInited() {
       //妗嗘灦鍒濆鍖栭厤缃悗
@@ -54,7 +56,7 @@
     },
     rowClick({ row, column, event }) {
       //鏌ヨ鐣岄潰鐐瑰嚮琛屼簨浠�
-      this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
+      // this.$refs.table.$refs.table.toggleRowSelection(row); //鍗曞嚮琛屾椂閫変腑褰撳墠琛�;
     },
     modelOpenAfter(row) {
       //鐐瑰嚮缂栬緫銆佹柊寤烘寜閽脊鍑烘鍚庯紝鍙互鍦ㄦ澶勫啓閫昏緫锛屽锛屼粠鍚庡彴鑾峰彇鏁版嵁
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/supplierInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/supplierInfo.js"
index 8935403..852a3cb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/supplierInfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/supplierInfo.js"
@@ -1,10 +1,4 @@
-/*****************************************************************************************
-**  Author:jxx 2022
-**  QQ:283591387
-**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
-**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
-**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
-*****************************************************************************************/
+
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 
 let extension = {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/userInfo.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/userInfo.js"
index 8935403..852a3cb 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/userInfo.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/extension/basic/userInfo.js"
@@ -1,10 +1,4 @@
-/*****************************************************************************************
-**  Author:jxx 2022
-**  QQ:283591387
-**瀹屾暣鏂囨。瑙侊細http://v2.volcore.xyz/document/api 銆愪唬鐮佺敓鎴愰〉闈iewGrid銆�
-**甯哥敤绀轰緥瑙侊細http://v2.volcore.xyz/document/vueDev
-**鍚庡彴鎿嶄綔瑙侊細http://v2.volcore.xyz/document/netCoreDev
-*****************************************************************************************/
+
 //姝s鏂囦欢鏄敤鏉ヨ嚜瀹氫箟鎵╁睍涓氬姟浠g爜锛屽彲浠ユ墿灞曚竴浜涜嚜瀹氫箟椤甸潰鎴栬�呴噸鏂伴厤缃敓鎴愮殑浠g爜
 
 let extension = {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js"
index 3b99c5c..bbf567f 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/router/viewGird.js"
@@ -38,15 +38,6 @@
     name: 'Sys_DictionaryList',
     component: () => import('@/views/system/Sys_DictionaryList.vue')
   }, {
-    path: '/areaInfo',
-    name: 'areaInfo',
-    component: () => import('@/views/basic/areaInfo.vue')
-  }, 
-  {
-    path: '/areaRouter',
-    name: 'areaRouter',
-    component: () => import('@/views/basic/areaRouter.vue')
-  }, {
     path: '/locationInfo',
     name: 'locationInfo',
     component: () => import('@/views/basic/locationInfo.vue')
@@ -54,20 +45,14 @@
     path: '/materielInfo',
     name: 'materielInfo',
     component: () => import('@/views/basic/materielInfo.vue')
-  }, 
-  {
-    path: '/cachePoint',
-    name: 'cachePoint',
-    component: () => import('@/views/basic/cachePoint.vue')
-  },
-  {
-    path: '/roadwayInfo',
-    name: 'roadwayInfo',
-    component: () => import('@/views/basic/roadwayInfo.vue')
   }, {
     path: '/warehouse',
     name: 'warehouse',
     component: () => import('@/views/basic/warehouse.vue')
+  },{
+    path: '/palletCodeInfo',
+    name: 'palletCodeInfo',
+    component: () => import('@/views/basic/palletCodeInfo.vue')
   }, {
     path: '/inboundOrder',
     name: 'inboundOrder',
@@ -96,93 +81,93 @@
     path: '/task',
     name: 'task',
     component: () => import('@/views/taskinfo/task.vue')
-  }, 
+  },
   {
     path: '/task_hty',
     name: 'task_hty',
     component: () => import('@/views/taskinfo/task_hty.vue')
-  },{
+  }, {
     path: '/stockView',
     name: 'stockView',
     component: () => import('@/views/stock/stockView.vue')
-  },{
+  }, {
     path: '/stockQuantityChangeRecord',
     name: 'stockQuantityChangeRecord',
     component: () => import('@/views/record/stockQuantityChangeRecord.vue')
-  },{
+  }, {
     path: '/locationStatusChangeRecord',
     name: 'locationStatusChangeRecord',
     component: () => import('@/views/record/locationStatusChangeRecord.vue')
-  },{
+  }, {
     path: '/receiveOrder',
     name: 'receiveOrder',
     component: () => import('@/views/inbound/receiveOrder.vue')
-  },{
+  }, {
     path: '/purchaseOrder',
     name: 'purchaseOrder',
     component: () => import('@/views/inbound/purchaseOrder.vue')
   }
-  ,{
+  , {
     path: '/supplierInfo',
     name: 'supplierInfo',
     component: () => import('@/views/basic/supplierInfo.vue')
   }
-  ,{
+  , {
     path: '/checkOrder',
     name: 'checkOrder',
     component: () => import('@/views/check/checkOrder.vue')
   }
-  ,{
+  , {
     path: '/checkOrderResult',
     name: 'checkOrderResult',
     component: () => import('@/views/check/checkOrderResult.vue')
   }
-  ,{
+  , {
     path: '/inboundOrder_Hty',
     name: 'inboundOrder_Hty',
     component: () => import('@/views/inbound/inboundOrder_Hty.vue')
   }
-  ,{
+  , {
     path: '/inboundOrderDetail_Hty',
     name: 'inboundOrderDetail_Hty',
     component: () => import('@/views/inbound/inboundOrderDetail_Hty.vue')
   }
-  ,{
+  , {
     path: '/purchaseOrderDetail',
     name: 'purchaseOrderDetail',
     component: () => import('@/views/inbound/purchaseOrderDetail.vue')
   }
-  ,{
+  , {
     path: '/outboundOrder_Hty',
     name: 'outboundOrder_Hty',
     component: () => import('@/views/outbound/outboundOrder_Hty.vue')
   }
-  ,{
+  , {
     path: '/outboundOrderDetail_Hty',
     name: 'outboundOrderDetail_Hty',
     component: () => import('@/views/outbound/outboundOrderDetail_Hty.vue')
   }
-  ,{
+  , {
     path: '/receiveOrderDetail',
     name: 'receiveOrderDetail',
     component: () => import('@/views/inbound/receiveOrderDetail.vue')
   }
-  ,{
+  , {
     path: '/stockInfo_Hty',
     name: 'stockInfo_Hty',
     component: () => import('@/views/stock/stockInfo_Hty.vue')
   }
-  ,{
+  , {
     path: '/stockInfoDetail_Hty',
     name: 'stockInfoDetail_Hty',
     component: () => import('@/views/stock/stockInfoDetail_Hty.vue')
   }
-  ,{
+  , {
     path: '/customerInfo',
     name: 'customerInfo',
     component: () => import('@/views/basic/customerInfo.vue')
   }
-  ,{
+  , {
     path: '/userInfo',
     name: 'userInfo',
     component: () => import('@/views/basic/userInfo.vue')
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/areaInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/areaInfo.vue"
deleted file mode 100644
index 33c1729..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/areaInfo.vue"
+++ /dev/null
@@ -1,215 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/basic/areaInfo.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "鍖哄煙淇℃伅",
-      name: "areaInfo",
-      url: "/AreaInfo/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      areaCode: "",
-      areaName: "",
-      warehouseId: "",
-      areaDes: "",
-    });
-    const editFormOptions = ref([
-      [
-        {
-          title: "鍖哄煙缂栧彿",
-          required: true,
-          field: "areaCode",
-          type: "string",
-        },
-        {
-          title: "鍖哄煙鍚嶇О",
-          required: true,
-          field: "areaName",
-          type: "string",
-        },
-        {
-          title: "浠撳簱涓婚敭",
-          required: true,
-          field: "warehouseId",
-          type: "select",
-          dataKey: "warehouse",
-          data: [],
-        },
-        
-      ],
-      [
-      {
-          title: "鍖哄煙绫诲瀷",
-          required: true,
-          field: "areaType",
-          type: "int",
-        },
-        {
-          title: "鍖哄煙鎻忚堪",
-          field: "areaDes",
-          type: "textarea",
-        },
-        { title: "鍖哄煙鐘舵��", field: "areaStatus" ,type: "select",dataKey: "enableEnum",data: [],},
-      ],
-    ]);
-    const searchFormFields = ref({
-      areaCode: "",
-      areaName: "",
-      warehouseId: "",
-      areaDes: "",
-    });
-    const searchFormOptions = ref([
-      [
-        { title: "鍖哄煙缂栧彿", field: "areaCode", type: "like" },
-        { title: "鍖哄煙鍚嶇О", field: "areaName", type: "like" },
-        
-        {
-          title: "鍖哄煙鐘舵��",
-          field: "areaStatus",
-          type: "select",
-          dataKey: "enableEnum",
-          data: [],
-        },
-      ],
-      [
-        {
-          title: "浠撳簱涓婚敭",
-          field: "warehouseId",
-          type: "select",
-          dataKey: "warehouse",
-          data: [],
-        },{ title: "鍖哄煙绫诲瀷", field: "areaType" },
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        require: true,
-        align: "left",
-      },
-      {
-        field: "areaCode",
-        title: "鍖哄煙缂栧彿",
-        type: "string",
-        width: 80,
-        align: "left",
-      },
-      {
-        field: "warehouseId",
-        title: "浠撳簱涓婚敭",
-        type: "string",
-        width: 90,
-        align: "left",
-        bind:{ key: "warehouse", data: [] },
-      },
-      {
-        field: "areaName",
-        title: "鍖哄煙鍚嶇О",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "areaType",
-        title: "鍖哄煙绫诲瀷",
-        type: "decimal",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "areaStatus",
-        title: "鍖哄煙鐘舵��",
-        type: "string",
-        width: 90,
-        align: "left",
-        bind: { key: "enableEnum", data: [] },
-      },
-      {
-        field: "areaDes",
-        title: "鍖哄煙鎻忚堪",
-        type: "int",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-        sort: true,
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-        sort: true,
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "#detailCnName",
-      table: "",
-      columns: [],
-      sortName: "",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/areaRouter.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/areaRouter.vue"
deleted file mode 100644
index 3d3cbf1..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/areaRouter.vue"
+++ /dev/null
@@ -1,171 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/basic/areaRouter.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "缂撳瓨鐐�",
-      name: "areaRouter",
-      url: "/areaRouter/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      areaId: "",
-      startArea: "",
-      nextArea: "",
-      routerType: "",
-      isEnd: "",
-    });
-    const editFormOptions = ref([
-      [
-        {title: "璧风偣",required: true,field: "startArea",type: "string",},
-        {title: "缁堢偣鍖哄煙ID",required: true,field: "nextArea",type: "select",dataKey: "areainfo",data: [],},
-        
-      ],
-      [
-        {title: "璺敱绫诲瀷",field: "routerType",type: "like"},
-        {title: "鏄惁涓虹粓鐐�",field: "isEnd",type: "select",dataKey: "enable",data: [],}
-      ],
-    ]);
-    const searchFormFields = ref({
-      areaId: "",
-      pointCode: "",
-      pointStatus: "",
-      enableStatus: "",
-      pointType: "",
-    });
-    const searchFormOptions = ref([
-      [
-        {title: "璧风偣",required: true,field: "startArea",type: "string",},
-        {title: "缁堢偣鍖哄煙ID",field: "nextArea",type: "select",dataKey: "areainfo",data: [],},
-        // {title: "缁堢偣鍖哄煙ID",required: true,field: "nextArea",type: "string",},
-      ],
-      [
-        {title: "璺敱绫诲瀷",field: "routerType",type: "like"},
-        {title: "鏄惁涓虹粓鐐�",field: "isEnd",type: "select",dataKey: "enable",data: [],}
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        require: true,
-        align: "left",
-      },
-      {
-        field: "startArea",
-        title: "璧风偣",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "nextArea",
-        title: "缁堢偣鍖哄煙ID",
-        type: "string",
-        width: 150,
-        align: "left",
-        bind:{ key: "areainfo", data: [] },
-      },
-      {
-        field: "routerType",
-        title: "璺敱绫诲瀷",
-        type: "string",
-        width: 90,
-        align: "left",
-        // bind: { key: "locationStatusEnum", data: [] },
-      },
-      {
-        field: "isEnd",
-        title: "鏄惁鏄粓鐐�",
-        type: "byte",
-        width: 90,
-        align: "left",
-        bind: { key: "enable", data: [] },
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-        sort: true,
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-        sort: true,
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "#detailCnName",
-      table: "",
-      columns: [],
-      sortName: "",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/cachePoint.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/cachePoint.vue"
deleted file mode 100644
index e448d8c..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/cachePoint.vue"
+++ /dev/null
@@ -1,209 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-    <script>
-import extend from "@/extension/basic/CachePoint.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "缂撳瓨鐐�",
-      name: "CachePoint",
-      url: "/CachePoint/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      areaId: "",
-      pointCode: "",
-      pointStatus: "",
-      enableStatus: "",
-      pointType: "",
-      row: "",
-      column: "",
-      depth: "",
-    });
-    const editFormOptions = ref([
-      [
-        {title: "缂撳瓨鐐圭紪鍙�",required: true,field: "pointCode",type: "string",},
-        {title: "鍖哄煙涓婚敭",required: true,field: "areaId",type: "select",dataKey: "areainfo", data: [] ,},
-        {title: "缂撳瓨鐐圭姸鎬�",field: "pointStatus",type: "select",dataKey: "locationStatusEnum",data: [],},
-        {title: "鏄惁绂佺敤",field: "enableStatus",type: "select",dataKey: "enableStatusEnum",data: [],},
-      ],[
-        { title: "琛�", field: "row", type: "string" },
-        { title: "鍒�", field: "column", type: "string" },
-        { title: "娣卞害", field: "depth", type: "string" },
-        { title: "缂撳瓨鐐圭被鍨�", field: "pointType", type: "string"},
-      ],
-    ]);
-    const searchFormFields = ref({
-      areaId: "",
-      pointCode: "",
-      pointStatus: "",
-      enableStatus: "",
-      pointType: "",
-      row: "",
-      column: "",
-      depth: "",
-    });
-    const searchFormOptions = ref([
-      [
-        {title: "缂撳瓨鐐圭紪鍙�",field: "pointCode",type: "string",},
-        {title: "鍖哄煙涓婚敭",field: "areaId",type: "select",dataKey: "areainfo",data: [],},
-        {title: "缂撳瓨鐐圭姸鎬�",field: "pointStatus",type: "select",dataKey: "locationStatusEnum",data: [],},
-        {title: "鏄惁绂佺敤",field: "enableStatus",type: "select",dataKey: "enableStatusEnum",data: [],},
-      ],[
-        { title: "琛�", field: "row", type: "string" },
-        { title: "鍒�", field: "column", type: "string" },
-        { title: "娣卞害", field: "depth", type: "string" },
-        { title: "缂撳瓨鐐圭被鍨�", field: "pointType", type: "string"},
-      ],
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        require: true,
-        align: "left",
-      },
-      {
-        field: "areaId",
-        title: "鍖哄煙涓婚敭",
-        type: "int",
-        width: 120,
-        align: "left",
-        bind:{ key: "areainfo", data: [] },
-      },
-      {
-        field: "pointCode",
-        title: "缂撳瓨鐐圭紪鍙�",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "pointStatus",
-        title: "缂撳瓨鐐圭姸鎬�",
-        type: "string",
-        width: 90,
-        align: "left",
-        bind: { key: "locationStatusEnum", data: [] },
-      },
-      {
-        field: "enableStatus",
-        title: "鏄惁绂佺敤",
-        type: "decimal",
-        width: 90,
-        align: "left",
-        bind: { key: "enableStatusEnum", data: [] },
-      },
-      {
-        field: "row",
-        title: "琛�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "column",
-        title: "鍒�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "depth",
-        title: "娣卞害",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "pointType",
-        title: "缂撳瓨鐐圭被鍨�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "Remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-        sort: true,
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-        sort: true,
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "#detailCnName",
-      table: "",
-      columns: [],
-      sortName: "",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-    
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/palletCodeInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/palletCodeInfo.vue"
new file mode 100644
index 0000000..07adcbf
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/palletCodeInfo.vue"
@@ -0,0 +1,159 @@
+
+<template>
+  <view-grid
+    ref="grid"
+    :columns="columns"
+    :detail="detail"
+    :editFormFields="editFormFields"
+    :editFormOptions="editFormOptions"
+    :searchFormFields="searchFormFields"
+    :searchFormOptions="searchFormOptions"
+    :table="table"
+    :extend="extend"
+  >
+  </view-grid>
+</template>
+      <script>
+import extend from "@/extension/basic/palletCodeInfo.js";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+  setup() {
+    const table = ref({
+      key: "id",
+      footer: "Foots",
+      cnName: "鎵樼洏淇℃伅",
+      name: "palletCodeInfo",
+      url: "/PalletCodeInfo/",
+      sortName: "id",
+    });
+    const editFormFields = ref({});
+    const editFormOptions = ref([
+      [
+        {
+          title: "浠撳簱",
+          field: "warehouseId",
+          type: "select",
+          dataKey: "warehouses",
+          data: [],
+          required: true,
+        },
+        {
+          title: "鏁伴噺",
+          field: "count",
+          type: "int",
+          required: true,
+        },
+      ],
+    ]);
+    const searchFormFields = ref({
+      palletCode: "",
+    });
+    const searchFormOptions = ref([
+      [{ title: "鎵樼洏缂栧彿", field: "palletCode", type: "like" }],
+    ]);
+    const columns = ref([
+      {
+        field: "id",
+        title: "Id",
+        type: "int",
+        width: 90,
+        hidden: true,
+        readonly: true,
+        require: true,
+        align: "left",
+      },
+      {
+        field: "warehouseId",
+        title: "浠撳簱涓婚敭",
+        type: "string",
+        width: 90,
+        align: "left",
+        bind: { key: "warehouse", data: [] },
+      },
+      {
+        field: "palletType",
+        title: "鎵樼洏绫诲瀷",
+        type: "string",
+        width: 150,
+        align: "left",
+      },
+      {
+        field: "palletCode",
+        title: "鎵樼洏缂栧彿",
+        type: "decimal",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "status",
+        title: "鎵撳嵃鐘舵��",
+        type: "string",
+        width: 90,
+        align: "left",
+        bind: { key: "enableEnum", data: [] },
+      },
+      {
+        field: "size",
+        title: "灏哄",
+        type: "int",
+        width: 120,
+        align: "left",
+      },
+      {
+        field: "creater",
+        title: "鍒涘缓浜�",
+        type: "string",
+        width: 90,
+        align: "left",
+      },
+      {
+        field: "createDate",
+        title: "鍒涘缓鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+        sort: true,
+      },
+      {
+        field: "modifier",
+        title: "淇敼浜�",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+      {
+        field: "modifyDate",
+        title: "淇敼鏃堕棿",
+        type: "datetime",
+        width: 160,
+        align: "left",
+        sort: true,
+      },
+      {
+        field: "remark",
+        title: "澶囨敞",
+        type: "string",
+        width: 100,
+        align: "left",
+      },
+    ]);
+    const detail = ref({
+      cnName: "#detailCnName",
+      table: "",
+      columns: [],
+      sortName: "",
+    });
+    return {
+      table,
+      extend,
+      editFormFields,
+      editFormOptions,
+      searchFormFields,
+      searchFormOptions,
+      columns,
+      detail,
+    };
+  },
+});
+</script>
+      
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/roadwayInfo.vue" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/roadwayInfo.vue"
deleted file mode 100644
index dea7725..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSClient/src/views/basic/roadwayInfo.vue"
+++ /dev/null
@@ -1,236 +0,0 @@
-
-<template>
-  <view-grid
-    ref="grid"
-    :columns="columns"
-    :detail="detail"
-    :editFormFields="editFormFields"
-    :editFormOptions="editFormOptions"
-    :searchFormFields="searchFormFields"
-    :searchFormOptions="searchFormOptions"
-    :table="table"
-    :extend="extend"
-  >
-  </view-grid>
-</template>
-      <script>
-import extend from "@/extension/basic/roadwayInfo.js";
-import { ref, defineComponent } from "vue";
-export default defineComponent({
-  setup() {
-    const table = ref({
-      key: "id",
-      footer: "Foots",
-      cnName: "宸烽亾淇℃伅",
-      name: "roadwayInfo",
-      url: "/roadwayInfo/",
-      sortName: "id",
-    });
-    const editFormFields = ref({
-      roadwayNo: "",
-      areaId: "",
-      enalbeStatus: "",
-      deviceNo: "",
-      inStationCode: "",
-      inSCStationCode: "",
-      outStationCode: "",
-      outSCStationCode: "",
-    });
-    const editFormOptions = ref([
-      [
-      {title: "鍖哄煙涓婚敭",field: "areaId",type: "select",dataKey: "areainfo",data: [],},
-        {
-          title: "宸烽亾缂栧彿",
-          required: true,
-          field: "roadwayNo",
-          type: "string",
-        },
-        {
-          title: "璁惧缂栧彿",
-          required: true,
-          field: "deviceNo",
-          type: "string",
-        },
-        {
-          title: "绂佺敤鐘舵��",
-          required: true,
-          field: "enalbeStatus",
-          type: "select",
-          dataKey: "enableStatusEnum",
-          data: [],
-       },
-      ],
-      [
-        {
-          title: "鍏ュ簱绔欏彴缂栧彿",
-          field: "inStationCode",
-          type: "string",
-        },
-        {
-          title: "鍫嗗灈鏈哄叆搴撶珯鍙扮紪鍙�",
-          field: "inSCStationCode",
-          type: "string",
-        },
-        {
-          title: "鍑哄簱绔欏彴缂栧彿",
-          field: "outStationCode",
-          type: "string",
-        },
-        {
-          title: "鍫嗗灈鏈哄嚭搴撶珯鍙扮紪鍙�",
-          field: "outSCStationCode",
-          type: "string",
-        },
-      ],
-    ]);
-    const searchFormFields = ref({
-      roadwayNo: "",
-      areaId: "",
-      enableStatus: "",
-      deviceNo: "",
-      inStationCode: "",
-      inSCStationCode: "",
-      outStationCode: "",
-      outSCStationCode: "",
-    });
-    const searchFormOptions = ref([
-      [
-        { title: "宸烽亾缂栧彿", field: "roadwayNo", type: "like" },
-        {title: "鍖哄煙涓婚敭",field: "areaId",type: "select",dataKey: "areainfo",data: [],},
-        { title: "绂佺敤鐘舵��", field: "enableStatus",type: "select",dataKey: "enableStatusEnum",data: [],},
-      ],
-      [
-        { title: "鍏ュ簱绔欏彴缂栧彿", field: "inStationCode", type: "like" },
-        { title: "鍫嗗灈鏈哄叆搴撶珯鍙扮紪鍙�", field: "inSCStationCode", type: "like" },
-        { title: "璁惧缂栧彿", field: "deviceNo", type: "like" },
-      ],
-      [
-        { title: "鍑哄簱绔欏彴缂栧彿", field: "outStationCode", type: "like" },
-        { title: "鍫嗗灈鏈哄嚭搴撶珯鍙扮紪鍙�",field: "outSCStationCode",type: "like",},
-      ]
-    ]);
-    const columns = ref([
-      {
-        field: "id",
-        title: "Id",
-        type: "int",
-        width: 90,
-        hidden: true,
-        readonly: true,
-        require: true,
-        align: "left",
-      },
-      {
-        field: "roadwayNo",
-        title: "宸烽亾缂栧彿",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "areaId",
-        title: "鍖哄煙涓婚敭",
-        type: "int",
-        width: 150,
-        align: "left",
-        bind:{ key: "areainfo", data: [] },
-      },
-      {
-        field: "enableStatus",
-        title: "绂佺敤鐘舵��",
-        type: "select",
-        width: 150,
-        align: "left",
-        bind: { key: "enableStatusEnum", data: [] },
-      },
-      {
-        field: "deviceNo",
-        title: "璁惧缂栧彿",
-        type: "decimal",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "inStationCode",
-        title: "鍏ュ簱绔欏彴缂栧彿",
-        type: "string",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "inSCStationCode",
-        title: "鍫嗗灈鏈哄叆搴撶珯鍙扮紪鍙�",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "outStationCode",
-        title: "鍑哄簱绔欏彴缂栧彿",
-        type: "decimal",
-        width: 120,
-        align: "left",
-      },
-      {
-        field: "outSCStationCode",
-        title: "鍫嗗灈鏈哄嚭搴撶珯鍙扮紪鍙�",
-        type: "string",
-        width: 150,
-        align: "left",
-      },
-      {
-        field: "creater",
-        title: "鍒涘缓浜�",
-        type: "string",
-        width: 90,
-        align: "left",
-      },
-      {
-        field: "createDate",
-        title: "鍒涘缓鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "modifier",
-        title: "淇敼浜�",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-      {
-        field: "modifyDate",
-        title: "淇敼鏃堕棿",
-        type: "datetime",
-        width: 160,
-        align: "left",
-      },
-      {
-        field: "remark",
-        title: "澶囨敞",
-        type: "string",
-        width: 100,
-        align: "left",
-      },
-    ]);
-    const detail = ref({
-      cnName: "#detailCnName",
-      table: "",
-      columns: [],
-      sortName: "",
-    });
-    return {
-      table,
-      extend,
-      editFormFields,
-      editFormOptions,
-      searchFormFields,
-      searchFormOptions,
-      columns,
-      detail,
-    };
-  },
-});
-</script>
-      
\ No newline at end of file
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/06b6ba59-2c2a-4213-bfcb-89a257c39dfa.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/06b6ba59-2c2a-4213-bfcb-89a257c39dfa.vsidx"
new file mode 100644
index 0000000..a9a2335
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/06b6ba59-2c2a-4213-bfcb-89a257c39dfa.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/3bdb0da1-c42c-4531-99e8-2d9f1d8c02e8.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3bdb0da1-c42c-4531-99e8-2d9f1d8c02e8.vsidx"
new file mode 100644
index 0000000..f50dced
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/3bdb0da1-c42c-4531-99e8-2d9f1d8c02e8.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/667cf3f4-f093-4903-a0e6-6399be7c70b7.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/667cf3f4-f093-4903-a0e6-6399be7c70b7.vsidx"
deleted file mode 100644
index 0a5d460..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/667cf3f4-f093-4903-a0e6-6399be7c70b7.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/8c2e982d-ad7f-4e3a-9e0e-ad39ee70751d.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8c2e982d-ad7f-4e3a-9e0e-ad39ee70751d.vsidx"
new file mode 100644
index 0000000..678ee82
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/8c2e982d-ad7f-4e3a-9e0e-ad39ee70751d.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/be46b995-1948-4e27-9de5-d740316e7adb.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/be46b995-1948-4e27-9de5-d740316e7adb.vsidx"
new file mode 100644
index 0000000..a9ba207
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/be46b995-1948-4e27-9de5-d740316e7adb.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/e4d2b89c-c9d8-4512-858a-0ac416e979cb.vsidx" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e4d2b89c-c9d8-4512-858a-0ac416e979cb.vsidx"
new file mode 100644
index 0000000..8d8bf74
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/e4d2b89c-c9d8-4512-858a-0ac416e979cb.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"
deleted file mode 100644
index e69de29..0000000
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/read.lock"
+++ /dev/null
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/PalletCodeInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/PalletCodeInfoRepository.cs"
new file mode 100644
index 0000000..ed89fe0
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicRepository/PalletCodeInfoRepository.cs"
@@ -0,0 +1,18 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_IBasicRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_BasicRepository
+{
+    public class PalletCodeInfoRepository : RepositoryBase<Dt_PalletCodeInfo>, IPalletCodeInfoRepository
+    {
+        public PalletCodeInfoRepository(IUnitOfWorkManage unitOfWorkManage) : base(unitOfWorkManage)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs"
new file mode 100644
index 0000000..870efab
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/PalletCodeInfoService.cs"
@@ -0,0 +1,69 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Core.Helper;
+using WIDESEA_IBasicRepository;
+using WIDESEA_IBasicService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_BasicService
+{
+    public class PalletCodeInfoService : ServiceBase<Dt_PalletCodeInfo, IPalletCodeInfoRepository>, IPalletCodeInfoService
+    {
+        public PalletCodeInfoService(IPalletCodeInfoRepository BaseDal) : base(BaseDal)
+        {
+        }
+
+        static object locker = new object();
+        public override WebResponseContent AddData(SaveModel saveModel)
+        {
+            int warehouseId = 0;
+            int count = 0;
+            if (saveModel.MainData.TryGetValue("warehouseId", out object? warehouse) && warehouse != null)
+            {
+                warehouseId = warehouse.ObjToInt();
+            }
+            if (saveModel.MainData.TryGetValue("count", out object? countValue) && countValue != null)
+            {
+                count = countValue.ObjToInt();
+            }
+            lock (locker)
+            {
+                List<Dt_PalletCodeInfo> palletCodeInfos = new List<Dt_PalletCodeInfo>();
+                int serialNo = 0;
+                DateTime now = DateTime.Now;
+                Dt_PalletCodeInfo palletCodeInfo = BaseDal.QueryFirst(x => x.WarehouseId == warehouseId, new Dictionary<string, OrderByType> { { nameof(Dt_PalletCodeInfo.SerialNo), OrderByType.Desc } });
+                if (palletCodeInfo != null && palletCodeInfo.CreateDate.Year == now.Year && palletCodeInfo.CreateDate.Month == now.Month && palletCodeInfo.CreateDate.Day == now.Day)
+                {
+                    serialNo = palletCodeInfo.SerialNo + 1;
+
+                }
+                else
+                {
+                    serialNo = 1;
+                }
+                for (int i = 0; i < count; i++)
+                {
+                    palletCodeInfos.Add(new Dt_PalletCodeInfo
+                    {
+                        SerialNo = serialNo,
+                        PalletCode = now.ToString("yyyyMMdd") + serialNo.ToString().PadLeft(3, '0'),
+                        PalletType = 1,
+                        PalletTypeId = 0,
+                        WarehouseId = warehouseId,
+                        Status = 0,
+                        Size = 0
+                    });
+
+                    serialNo = serialNo + 1;
+                }
+                return base.AddData(palletCodeInfos);
+            }
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs"
index 9c037f2..8750b59 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_BC.cs"
@@ -71,15 +71,15 @@
                 List<Dt_LocationInfo> definedTypeLocations = locationInfos.Where(x => x.LocationType == palletType.ObjToInt()).ToList();
 
                 //鏈畾涔夌被鍨嬬殑绌鸿揣浣�
-                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
-                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
                 if ((locationInfos.Count * weightValue_BC >= definedTypeLocations.Count && undefinedTypeEmptyLocations.Any()) || !definedTypeEmptyLocations.Any())//濡傛灉宸插畾涔夌被鍨嬭揣浣嶆湭瓒呰繃姣斾緥锛屼笖鏈夋湭瀹氫箟绫诲瀷鐨勮揣浣�
                 {
                     if (palletType == PalletTypeEnum.LargePallet || palletType == PalletTypeEnum.LargestPallet)
                     {
-                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Depth % 2 == 1).ToList();
+                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Column % 2 == 1).ToList();
                     }
                     for (int i = 0; i < undefinedTypeEmptyLocations.Count; i++)
                     {
@@ -122,7 +122,7 @@
             {
                 case PalletTypeEnum.LargestPallet:
                 case PalletTypeEnum.LargePallet:
-                    if (emptyLocation.Depth % 2 == 0)
+                    if (emptyLocation.Column % 2 == 0)
                     {
                         return null;
                     }
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 7ec54d5..b5999c3 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"
@@ -1,4 +1,5 @@
-锘縰sing System;
+锘縰sing SqlSugar;
+using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
@@ -84,9 +85,9 @@
                 List<Dt_LocationInfo> definedTypeLocations = locationInfos.Where(x => x.LocationType == palletType.ObjToInt()).ToList();
 
                 //鏈畾涔夌被鍨嬬殑绌鸿揣浣�
-                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
-                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
                 if ((locationInfos.Count * weightValue_CSJ >= definedTypeLocations.Count && undefinedTypeEmptyLocations.Any()) || !definedTypeEmptyLocations.Any())//濡傛灉宸插畾涔夌被鍨嬭揣浣嶆湭瓒呰繃姣斾緥锛屼笖鏈夋湭瀹氫箟绫诲瀷鐨勮揣浣�
                 {
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs"
index 3fedb80..bd9d5ef 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_GM.cs"
@@ -71,15 +71,15 @@
                 List<Dt_LocationInfo> definedTypeLocations = locationInfos.Where(x => x.LocationType == palletType.ObjToInt()).ToList();
 
                 //鏈畾涔夌被鍨嬬殑绌鸿揣浣�
-                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
-                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
                 if ((locationInfos.Count * weightValue_GM >= definedTypeLocations.Count && undefinedTypeEmptyLocations.Any()) || !definedTypeEmptyLocations.Any())//濡傛灉宸插畾涔夌被鍨嬭揣浣嶆湭瓒呰繃姣斾緥锛屼笖鏈夋湭瀹氫箟绫诲瀷鐨勮揣浣�
                 {
                     if (palletType == PalletTypeEnum.LargePallet || palletType == PalletTypeEnum.LargestPallet)
                     {
-                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Depth % 2 == 1).ToList();
+                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Column % 2 == 1).ToList();
                     }
                     for (int i = 0; i < undefinedTypeEmptyLocations.Count; i++)
                     {
@@ -122,7 +122,7 @@
             {
                 case PalletTypeEnum.LargestPallet:
                 case PalletTypeEnum.LargePallet:
-                    if (emptyLocation.Depth % 2 == 0)
+                    if (emptyLocation.Column % 2 == 0)
                     {
                         return null;
                     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_PP.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_PP.cs"
index 0eac5f3..2a006d0 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_PP.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_PP.cs"
@@ -71,15 +71,15 @@
                 List<Dt_LocationInfo> definedTypeLocations = locationInfos.Where(x => x.LocationType == palletType.ObjToInt()).ToList();
 
                 //鏈畾涔夌被鍨嬬殑绌鸿揣浣�
-                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
-                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
                 if ((locationInfos.Count * weightValue_PP >= definedTypeLocations.Count && undefinedTypeEmptyLocations.Any()) || !definedTypeEmptyLocations.Any())//濡傛灉宸插畾涔夌被鍨嬭揣浣嶆湭瓒呰繃姣斾緥锛屼笖鏈夋湭瀹氫箟绫诲瀷鐨勮揣浣�
                 {
                     if (palletType == PalletTypeEnum.LargePallet || palletType == PalletTypeEnum.LargestPallet)
                     {
-                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Depth % 2 == 1).ToList();
+                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Column % 2 == 1).ToList();
                     }
                     for (int i = 0; i < undefinedTypeEmptyLocations.Count; i++)
                     {
@@ -122,7 +122,7 @@
             {
                 case PalletTypeEnum.LargestPallet:
                 case PalletTypeEnum.LargePallet:
-                    if (emptyLocation.Depth % 2 == 0)
+                    if (emptyLocation.Column % 2 == 0)
                     {
                         return null;
                     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs"
index e0e812b..a6ec2f1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/AssignLocation/LocationInfoService_ZH.cs"
@@ -71,15 +71,15 @@
                 List<Dt_LocationInfo> definedTypeLocations = locationInfos.Where(x => x.LocationType == palletType.ObjToInt()).ToList();
 
                 //鏈畾涔夌被鍨嬬殑绌鸿揣浣�
-                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> undefinedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == LocationTypeEnum.Undefined.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
-                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Row).ThenBy(x => x.Column).ToList();
+                List<Dt_LocationInfo> definedTypeEmptyLocations = locationInfos.Where(x => (x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() || x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt()) && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == palletType.ObjToInt() && !lockLocationCodes.Contains(x.LocationCode)).OrderByDescending(x => x.Depth).ThenBy(x => x.Layer).ThenBy(x => x.Column).ThenBy(x => x.Row).ToList();
 
                 if ((locationInfos.Count * weightValue_ZH >= definedTypeLocations.Count && undefinedTypeEmptyLocations.Any()) || !definedTypeEmptyLocations.Any())//濡傛灉宸插畾涔夌被鍨嬭揣浣嶆湭瓒呰繃姣斾緥锛屼笖鏈夋湭瀹氫箟绫诲瀷鐨勮揣浣�
                 {
                     if (palletType == PalletTypeEnum.LargePallet || palletType == PalletTypeEnum.LargestPallet)
                     {
-                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Depth % 2 == 1).ToList();
+                        undefinedTypeEmptyLocations = undefinedTypeEmptyLocations.Where(x => x.Column % 2 == 0).ToList();
                     }
                     for (int i = 0; i < undefinedTypeEmptyLocations.Count; i++)
                     {
@@ -122,7 +122,7 @@
             {
                 case PalletTypeEnum.LargestPallet:
                 case PalletTypeEnum.LargePallet:
-                    if (emptyLocation.Depth % 2 == 0)
+                    if (emptyLocation.Column % 2 != 0)
                     {
                         return null;
                     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
index 3cd8b9c..4a0ddcd 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService_Common.cs"
@@ -45,28 +45,6 @@
             };
         }
 
-        //public bool LittleDepthLocationIsEmpty(Dt_LocationInfo locationInfo, PalletTypeEnum palletType)
-        //{
-        //    Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseId == locationInfo.WarehouseId);
-        //    if (warehouse == null)
-        //    {
-        //        throw new Exception($"鏈壘鍒颁粨搴撲俊鎭�");
-        //    }
-
-        //    return warehouse.WarehouseName switch
-        //    {
-        //        "鏉挎潗浠�" => false,
-        //        "PP浠�" => false,
-        //        "骞茶啘浠�" => false,
-        //        "娴嬭瘯鏋朵粨" => LittleDepthLocationIsEmpty_CSJ(locationInfo, palletType),
-        //        "闃荤剨浠�" => false,
-        //        "娌瑰ⅷ浠�" => true,
-        //        "鎴愬搧浠�" => true,
-        //        "杈呮枡浠�" => true,
-        //        _ => throw new Exception($"鏈壘鍒颁粨搴撹揣浣嶅垎閰嶆柟娉�")
-        //    };
-        //}
-
         private readonly static object _locker = new object();
         private static List<LocationCache> locationCaches = new List<LocationCache>();
         /// <summary>
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs"
index fc1a9f0..c020a67 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Core/Helper/HttpHelper.cs"
@@ -13,7 +13,7 @@
 {
     public class HttpHelper
     {
-        public static async Task<string> GetAsync(string serviceAddress, string contentType = "application/json", Dictionary<string, string>? headers = null)
+        public static async Task<string> GetAsync(string serviceAddress, Dictionary<string, string>? headers = null)
         {
             string result = string.Empty;
             DateTime beginDate = DateTime.Now;
@@ -21,7 +21,7 @@
             {
                 using HttpClient httpClient = new HttpClient();
                 httpClient.Timeout = new TimeSpan(0, 0, 60);
-
+                
                 if (headers != null)
                 {
                     foreach (var header in headers)
@@ -41,7 +41,7 @@
             }
         }
 
-        public static async Task<string?> PostAsync(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
+        public static async Task<string?> PostAsync(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
             string result = string.Empty;
             DateTime beginDate = DateTime.Now;
@@ -69,7 +69,7 @@
             }
             finally
             {
-                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
+                Logger.Add(serviceAddress, requestJson, result, beginDate);
             }
         }
 
@@ -101,7 +101,7 @@
             }
         }
 
-        public static string Post(string serviceAddress, string requestJson = null, string contentType = "application/json", Dictionary<string, string>? headers = null)
+        public static string Post(string serviceAddress, string requestJson = "", string contentType = "application/json", Dictionary<string, string>? headers = null)
         {
             string result = string.Empty;
             DateTime beginDate = DateTime.Now;
@@ -129,7 +129,7 @@
             }
             finally
             {
-                Logger.Add(serviceAddress, requestJson == null ? "" : requestJson, result, beginDate);
+                Logger.Add(serviceAddress, requestJson, result, beginDate);
             }
         }
     }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicRepository/IPalletCodeInfoRepository.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicRepository/IPalletCodeInfoRepository.cs"
new file mode 100644
index 0000000..a348322
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicRepository/IPalletCodeInfoRepository.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseRepository;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IBasicRepository
+{
+    public interface IPalletCodeInfoRepository : IRepository<Dt_PalletCodeInfo>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IPalletCodeInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IPalletCodeInfoService.cs"
new file mode 100644
index 0000000..47eef01
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/IPalletCodeInfoService.cs"
@@ -0,0 +1,14 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.BaseServices;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_IBasicService
+{
+    public interface IPalletCodeInfoService : IService<Dt_PalletCodeInfo>
+    {
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletCodeInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletCodeInfo.cs"
new file mode 100644
index 0000000..16d765a
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletCodeInfo.cs"
@@ -0,0 +1,38 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    [SugarTable(nameof(Dt_PalletCodeInfo), "鎵樼洏缂栧彿淇℃伅")]
+    public class Dt_PalletCodeInfo : BaseEntity
+    {
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱涓婚敭")]
+        public int WarehouseId { get; set; }
+
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎵樼洏绫诲瀷")]
+        public int PalletType { get; set; }
+
+        [SugarColumn(IsNullable = false, Length = 20, ColumnDescription = "鎵樼洏缂栧彿")]
+        public string PalletCode { get; set; }
+
+        [SugarColumn(IsNullable = false, ColumnDescription = "娴佹按鍙�")]
+        public int SerialNo { get; set; }
+
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎵撳嵃鐘舵��")]
+        public int Status { get; set; }
+
+        [SugarColumn(IsNullable = false, ColumnDescription = "灏哄")]
+        public int Size { get; set; }
+
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎵樼洏绫诲瀷涓婚敭")]
+        public int PalletTypeId { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletTypeInfo.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletTypeInfo.cs"
new file mode 100644
index 0000000..4eecf5a
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_Model/Models/Basic/Dt_PalletTypeInfo.cs"
@@ -0,0 +1,71 @@
+锘縰sing SqlSugar;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using WIDESEA_Core.DB.Models;
+
+namespace WIDESEA_Model.Models
+{
+    /// <summary>
+    /// 
+    /// </summary>
+    [SugarTable(nameof(Dt_PalletTypeInfo), "鎵樼洏绫诲瀷")]
+    public class Dt_PalletTypeInfo : BaseEntity
+    {
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsPrimaryKey = true, IsIdentity = true, ColumnDescription = "涓婚敭")]
+        public int Id { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鎵樼洏绫诲瀷")]
+        public int PalletType { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵樼洏绫诲瀷鍚嶇О")]
+        public string TypeName { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "闀垮害")]
+        public int Length { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "瀹藉害")]
+        public int Width { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "楂樺害")]
+        public int Height { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "鐘舵��")]
+        public int Enbale { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, ColumnDescription = "浠撳簱缂栧彿")]
+        public int WarehouseId { get; set; }
+
+        /// <summary>
+        /// 
+        /// </summary>
+        [SugarColumn(IsNullable = false, Length = 50, ColumnDescription = "鎵�灞炲眰")]
+        public string SortNum { get; set; }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
index 759f4e4..4bb32e3 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService_Inbound.cs"
@@ -52,7 +52,7 @@
                 {
                     return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
                 }
-                if(warehouseId != stockInfo.WarehouseId)
+                if (warehouseId != stockInfo.WarehouseId)
                 {
                     return WebResponseContent.Instance.Error($"浠撳簱涓嶆纭�");
                 }
@@ -80,7 +80,80 @@
                 {
                     stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
                 }
-                    _unitOfWorkManage.BeginTran();
+                _unitOfWorkManage.BeginTran();
+                int taskId = BaseDal.AddData(newTask);
+                newTask.TaskId = taskId;
+                _stockRepository.StockInfoRepository.UpdateData(stockInfo);
+                _unitOfWorkManage.CommitTran();
+                PushTasksToWCS(new List<Dt_Task> { newTask });
+                return WebResponseContent.Instance.OK(data: newTask);
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        public WebResponseContent DeviceRequestInboundTask(string stationCode, string roadwayNo, string palletCode)
+        {
+            try
+            {
+                Dt_Task task = Repository.QueryFirst(x => x.PalletCode == palletCode);
+                if (task != null)
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡鐢熸垚浠诲姟");
+                }
+
+                if (Repository.QueryFirst(x => x.SourceAddress == stationCode && x.TaskStatus == TaskStatusEnum.New.ObjToInt()) != null)
+                {
+                    return WebResponseContent.Instance.Error($"璇ョ珯鐐瑰凡鏈夋湭鎵ц鐨勪换鍔�");
+                }
+
+                Dt_StockInfo stockInfo = _stockRepository.StockInfoRepository.QueryFirst(x => x.PalletCode == palletCode);
+                if (stockInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"鏈壘鍒扮粍鐩樹俊鎭�");
+                }
+                if (stockInfo.StockStatus != StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt() && stockInfo.StockStatus != StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩樼姸鎬佷笉姝g‘,涓嶅彲鐢宠鍏ュ簱");
+                }
+                if (!string.IsNullOrEmpty(stockInfo.LocationCode))
+                {
+                    return WebResponseContent.Instance.Error($"璇ユ墭鐩樺凡缁戝畾璐т綅");
+                }
+
+                Dt_LocationInfo? locationInfo = _basicService.LocationInfoService.AssignLocation(roadwayNo, (PalletTypeEnum)stockInfo.PalletType, stockInfo.WarehouseId);
+                if (locationInfo == null)
+                {
+                    return WebResponseContent.Instance.Error($"璐т綅鍒嗛厤澶辫触,鏈壘鍒板彲鍒嗛厤璐т綅");
+                }
+
+                Dt_Task newTask = new Dt_Task()
+                {
+                    CurrentAddress = stationCode,
+                    Grade = 0,
+                    NextAddress = locationInfo.LocationCode,
+                    PalletCode = palletCode,
+                    Roadway = roadwayNo,
+                    SourceAddress = stationCode,
+                    TargetAddress = locationInfo.LocationCode,
+                    TaskType = TaskTypeEnum.Inbound.ObjToInt(),
+                    TaskStatus = TaskStatusEnum.New.ObjToInt(),
+                    WarehouseId = stockInfo.WarehouseId,
+                    PalletType = stockInfo.PalletType
+                };
+
+                if (stockInfo.StockStatus == StockStatusEmun.鎵嬪姩缁勭洏鏆傚瓨.ObjToInt())
+                {
+                    stockInfo.StockStatus = StockStatusEmun.鎵嬪姩缁勭洏鍏ュ簱纭.ObjToInt();
+                }
+                else
+                {
+                    stockInfo.StockStatus = StockStatusEmun.鍏ュ簱纭.ObjToInt();
+                }
+                _unitOfWorkManage.BeginTran();
                 int taskId = BaseDal.AddData(newTask);
                 newTask.TaskId = taskId;
                 _stockRepository.StockInfoRepository.UpdateData(stockInfo);
@@ -111,7 +184,7 @@
                     return WebResponseContent.Instance.Error($"鏈壘鍒拌鍏ュ簱浠诲姟");
                 }
 
-                if(_basicRepository.LocationInfoRepository.QueryFirst(x=>x.LocationCode == task.TargetAddress) != null)
+                if (_basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress) != null)
                 {
                     return WebResponseContent.Instance.OK(data: task.TargetAddress);
                 }
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs"
new file mode 100644
index 0000000..ce7247f
--- /dev/null
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Basic/PalletCodeInfoController.cs"
@@ -0,0 +1,17 @@
+锘縰sing Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using WIDESEA_Core.BaseController;
+using WIDESEA_IBasicService;
+using WIDESEA_Model.Models;
+
+namespace WIDESEA_WMSServer.Controllers.Basic
+{
+    [Route("api/[controller]")]
+    [ApiController]
+    public class PalletCodeInfoController : ApiBaseController<IPalletCodeInfoService, Dt_PalletCodeInfo>
+    {
+        public PalletCodeInfoController(IPalletCodeInfoService service) : base(service)
+        {
+        }
+    }
+}
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs"
index 671db48..2a23123 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Program.cs"
@@ -43,7 +43,7 @@
 builder.Services.AddWebSocketSetup();
 builder.Services.AddSqlsugarSetup();//SqlSugar 启动服务
 builder.Services.AddDbSetup();//Db 启动服务
-builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
+//builder.Services.AddInitializationHostServiceSetup();//应用初始化服务注入
 builder.Services.AddHostedService<PermissionDataHostService>();//应用初始化服务注入
 builder.Services.AddAutoMapperSetup();
 

--
Gitblit v1.9.3