From 823f0ece05689758ae8f42e26c4ec994db77bc56 Mon Sep 17 00:00:00 2001
From: chenyong <chenyong@hnkhzn.com>
Date: 星期五, 04 七月 2025 16:10:39 +0800
Subject: [PATCH] 新增异常库位提示页面,优化前端显示

---
 Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock_Hty.jsx               |  201 ++++++++++++
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json                                      |   92 ++--
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/GWTask/RequestInbound.cs            |   49 +--
 Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js                                   |    2 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs                         |    9 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                               |    8 
 Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue                              |   21 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs                             |    9 
 Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_Hty.vue                                         |   11 
 Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_OutTime.jsx                          |  201 ++++++++++++
 Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue                          |    4 
 Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json                                      |   52 +-
 Code Management/WCS/WIDESEAWCS_Client/src/extension/ProcessParameters/extend/importDevicePro.vue              |    0 
 Code Management/WMS/WIDESEA_WMSClient/src/api/http.js                                                         |    8 
 Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue                   |   94 +++++
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs                     |    5 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml.user |   11 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs              |   14 
 Code Management/WCS/WIDESEAWCS_Client/src/views/ProcessParameters/extend/importDevicePro.vue                  |    0 
 Code Management/WCS/WIDESEAWCS_Client/src/api/http.js                                                         |    7 
 Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationStatus.vue                   |   85 +++++
 Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue                                             |    2 
 Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js                                                    |   15 
 Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml      |   17 +
 24 files changed, 784 insertions(+), 133 deletions(-)

diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js b/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
index a92c0c7..ef542f6 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/api/http.js
@@ -11,16 +11,15 @@
 
 let loadingInstance;
 let loadingStatus = false;
-if (process.env.NODE_ENV == 'development') {
-     axios.defaults.baseURL = 'http://127.0.0.1:9291/';
+if (process.env.NODE_ENV == 'development') {axios.defaults.baseURL = 'http://127.0.0.1:9291/';
     // axios.defaults.baseURL = 'http://192.168.20.251:9291/';
 }
 else if (process.env.NODE_ENV == 'debug') {
-    axios.defaults.baseURL = 'http://127.0.0.1:8098/';
+    axios.defaults.baseURL = 'http://192.168.15.253:9291/';
 }
 
 else if (process.env.NODE_ENV == 'production') {
-    axios.defaults.baseURL = 'http://192.168.20.253:9291/';
+    axios.defaults.baseURL = 'http://192.168.15.253:9291/';
 }
 if (!axios.defaults.baseURL.endsWith('/')) {
     axios.defaults.baseURL+="/";
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/extend/importDevicePro.vue b/Code Management/WCS/WIDESEAWCS_Client/src/extension/ProcessParameters/extend/importDevicePro.vue
similarity index 100%
rename from Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/extend/importDevicePro.vue
rename to Code Management/WCS/WIDESEAWCS_Client/src/extension/ProcessParameters/extend/importDevicePro.vue
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js b/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js
index 54d708c..e5457dc 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/deviceInfo.js
@@ -1,4 +1,4 @@
-import gridBody from "./extend/importDevicePro.vue";
+import gridBody from '@/extension/ProcessParameters/extend/importDevicePro.vue';
 let extension = {
   components: {
     //鏌ヨ鐣岄潰鎵╁睍缁勪欢
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/extend/importDevicePro.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/ProcessParameters/extend/importDevicePro.vue
similarity index 100%
copy from Code Management/WCS/WIDESEAWCS_Client/src/extension/quartzJob/extend/importDevicePro.vue
copy to Code Management/WCS/WIDESEAWCS_Client/src/views/ProcessParameters/extend/importDevicePro.vue
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue
index f306f76..8f4c81b 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task.vue
@@ -176,7 +176,7 @@
         type: "string",
         width: 90,
         align: "left",
-        hidden: true,
+       
       },
       {
         field: "grade",
diff --git a/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_Hty.vue b/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_Hty.vue
index 3ba651f..8048fa8 100644
--- a/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_Hty.vue
+++ b/Code Management/WCS/WIDESEAWCS_Client/src/views/taskinfo/task_Hty.vue
@@ -68,7 +68,7 @@
         { title: "宸烽亾鍙�", field: "roadway", type: "text" },
         { "title": "鐢熶骇浜х嚎", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
         { title: "鍒涘缓浜�", field: "creater", type: "text" },
-        { title: "鍒涘缓鏃堕棿", field: "createDate", type: "datetime" },
+        { title: "瀹屾垚鏃堕棿", field: "createDate", type: "datetime" },
       ],
     ]);
     const columns = ref([
@@ -161,7 +161,7 @@
         type: "string",
         width: 90,
         align: "left",
-        hidden: true,
+       
       },
       {
         field: "grade",
@@ -176,6 +176,7 @@
         type: "datetime",
         width: 150,
         align: "left",
+        hidden: true,
       },
       {
         field: "wMSId",
@@ -188,7 +189,7 @@
       
       {
         field: "createDate",
-        title: "鍒涘缓鏃堕棿",
+        title: "瀹屾垚鏃堕棿",
         type: "datetime",
         width: 150,
         align: "left",
@@ -199,10 +200,11 @@
         type: "datetime",
         width: 160,
         align: "left",
+        hidden: true,
       },
       {
         field: "creater",
-        title: "鍒涘缓浜�",
+        title: "瀹屾垚鑰�",
         type: "string",
         width: 90,
         align: "left",
@@ -213,6 +215,7 @@
         type: "string",
         width: 90,
         align: "left",
+        hidden: true,
       },
       {
         field: "remark",
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
index e729c68..2f5d80f 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs
@@ -157,7 +157,7 @@
         /// <param name="taskNum">浠诲姟鍙�</param>
         /// <param name="nextAddress">涓嬩竴鍦板潃</param>
         /// <returns></returns>
-        Dt_Task QueryExecutingConveyorLineTask(string nextAddress, string Barcode)
+        Dt_Task QueryExecutingConveyorLineTask(string nextAddress, string Barcode);
 
         /// <summary>
         /// 鏍规嵁鎵樼洏鍙枫�佷笅涓�鍦板潃鏌ヨ杈撻�佺嚎鎵ц涓殑浠诲姟
@@ -320,5 +320,12 @@
         /// <param name="deviceNo"></param>
         /// <returns></returns>
         Dt_Task QueryOutFireAlarmTask(string deviceNo);
+
+        /// <summary>
+        /// 鍒犻櫎浠诲姟
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        WebResponseContent Delete(Dt_Task task);
     }
 }
\ No newline at end of file
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
index 0c8f095..3c01be4 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/appsettings.json
@@ -1,28 +1,28 @@
 {
-  "urls": "http://*:9291", //web鏈嶅姟绔彛锛屽鏋滅敤IIS閮ㄧ讲锛屾妸杩欎釜鍘绘帀
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
-    }
-  },
-  "dics": "deviceType,devicePlcType,jobAssembly,jobClassName,deviceStatus,taskType,taskState,inOutType",
-  "AllowedHosts": "*",
-  "ConnectionStringsEncryption": false,
-  "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
-  //杩炴帴瀛楃涓�
-  //"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WCSDBB2F;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionString": "Data Source=127.0.0.1;Initial Catalog=WIDESEA_WCSDB_BB3F;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  //璺ㄥ煙
-  "Cors": {
-    "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
-    "EnableAllIPs": true, //褰撲负true鏃讹紝寮�鏀炬墍鏈塈P鍧囧彲璁块棶銆�
-    // 鏀寔澶氫釜鍩熷悕绔彛锛屾敞鎰忕鍙e彿鍚庝笉瑕佸甫/鏂滄潌锛氭瘮濡俵ocalhost:8000/锛屾槸閿欑殑
-    // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
-    "IPs": "http://127.0.0.1:8080,http://localhost:8080,http://127.0.0.1:8081,http://localhost:8081"
-  },
-  "ApiName": "WIDESEA",
-  "ExpMinutes": 120,
-  "QuartzJobAutoStart": true,
-  "LogDeubgEnable": true
+    "urls": "http://*:9291", //web鏈嶅姟绔彛锛屽鏋滅敤IIS閮ㄧ讲锛屾妸杩欎釜鍘绘帀
+    "Logging": {
+        "LogLevel": {
+            "Default": "Information",
+            "Microsoft.AspNetCore": "Warning"
+        }
+    },
+    "dics": "deviceType,devicePlcType,jobAssembly,jobClassName,deviceStatus,taskType,taskState,inOutType",
+    "AllowedHosts": "*",
+    "ConnectionStringsEncryption": false,
+    "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
+    //杩炴帴瀛楃涓�
+    //"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WCSDBB2F;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WCSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    //璺ㄥ煙
+    "Cors": {
+        "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
+        "EnableAllIPs": true, //褰撲负true鏃讹紝寮�鏀炬墍鏈塈P鍧囧彲璁块棶銆�
+        // 鏀寔澶氫釜鍩熷悕绔彛锛屾敞鎰忕鍙e彿鍚庝笉瑕佸甫/鏂滄潌锛氭瘮濡俵ocalhost:8000/锛屾槸閿欑殑
+        // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
+        "IPs": "http://127.0.0.1:8080,http://localhost:8080,http://127.0.0.1:8081,http://localhost:8081"
+    },
+    "ApiName": "WIDESEA",
+    "ExpMinutes": 120,
+    "QuartzJobAutoStart": true,
+    "LogDeubgEnable": true
 }
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
index daa6bbc..f7ba7c6 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs
@@ -935,7 +935,13 @@
             }
             return wcsBasez + address;
         }
-
+        public WebResponseContent Delete(Dt_Task task)
+        {
+            var taskHty = task.Adapt<Dt_Task_Hty>();
+            taskHty.Creater = App.User.UserName != null ? App.User.UserName : "System";
+            _taskHtyRepository.AddData(taskHty);
+            return base.DeleteData(task);
+        }
         #region 閲嶅啓鏂规硶
 
         public override WebResponseContent DeleteData(object[] key)
diff --git a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/GWTask/RequestInbound.cs b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/GWTask/RequestInbound.cs
index 5987e7e..8f0f5d2 100644
--- a/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/GWTask/RequestInbound.cs
+++ b/Code Management/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ConveyorLineJob_GW/GWTask/RequestInbound.cs
@@ -1,5 +1,7 @@
-锘縰sing Masuit.Tools;
+锘縰sing Mapster;
+using Masuit.Tools;
 using Newtonsoft.Json;
+using System.Threading.Tasks;
 using WIDESEAWCS_Common;
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
@@ -238,34 +240,23 @@
         {
             if (command.ConveyorLineBarcode != "NoRead")
             {
-                //var config = _sys_ConfigService.GetByConfigKey("SYS_BASE", "ISFRINTRAY");
-                //if (config.ConfigValue == "1")
-                //{
-                //    Random random = new Random();
-                //    var task = new Dt_Task()
-                //    {
-                //        CurrentAddress = childDeviceCode,
-                //        Grade = 1,
-                //        NextAddress = "2066",
-                //        PalletCode = command.ConveyorLineBarcode,
-                //        Roadway = "FR",
-                //        SourceAddress = childDeviceCode,
-                //        TargetAddress = "2066",
-                //        TaskNum = random.Next(1,9999),
-                //        TaskType = (int)TaskInboundTypeEnum.InTray,
-                //        TaskState = (int)TaskInStatusEnum.Line_InExecuting,
-                //        WMSId = 0
-                //    };
-                //    var taskCommand = MapTaskCommand(task, command);
-                //    conveyorLine.SendCommand(taskCommand, childDeviceCode);
-                //}
-                //else
-                //{
                 var taskDTO = CreateEmptyTrayTaskDto(command.ConveyorLineBarcode, childDeviceCode);
 
-                if (_taskRepository.QueryFirst(x => x.PalletCode == taskDTO.PalletCode) != null)
+                if (_taskRepository.QueryFirst(x => x.PalletCode == command.ConveyorLineBarcode) != null)
                 {
-                    WriteInfo(conveyorLine.DeviceName, "褰撳墠鎵樼洏瀛樺湪浠诲姟");
+                    List<string> strings = new List<string>() { "1743", "1739", "1837", "1841" };
+
+                    var taskExecuting = _taskRepository.QueryFirst(x => x.PalletCode == command.ConveyorLineBarcode && x.TaskState == (int)TaskOutStatusEnum.Line_OutExecuting && strings.Contains(x.TargetAddress));
+
+                    if (taskExecuting != null)
+                    {
+                        taskExecuting.ExceptionMessage = "鏈帴鏀跺埌绾夸綋瀹屾垚淇″彿绯荤粺鍐呴儴鑷姩瀹屾垚";
+                        _taskService.Delete(taskExecuting);
+                    }
+
+                    ConsoleHelper.WriteErrorLine($"褰撳墠鎵樼洏瀛樺湪浠诲姟锛氥�恵command.ConveyorLineBarcode}銆�");
+
+                    WriteInfo(conveyorLine.DeviceName, $"褰撳墠鎵樼洏瀛樺湪浠诲姟{command.ConveyorLineBarcode}");
                     return;
                 }
 
@@ -319,9 +310,6 @@
         /// </summary>
         private async void RequestWmsTask(CommonConveyorLine_GW conveyorLine, ConveyorLineTaskCommand_After command, string childDeviceCode, Dt_StationManager stationManager)
         {
-            //var taskGW = _taskRepository.QueryFirst(x => x.TargetAddress == childDeviceCode && (x.TaskState == (int)TaskOutStatusEnum.OutFinish || x.TaskState == (int)TaskOutStatusEnum.OutPending));
-            //if (taskGW != null)
-            //    _taskRepository.DeleteData(taskGW);
             if (command.ConveyorLineBarcode.IsNullOrEmpty()) return;
             var content = await _taskService.RequestWMSTask(command.ConveyorLineBarcode, childDeviceCode);
             if (content.Status)
@@ -329,9 +317,6 @@
                 var task = _taskService.QueryBarCodeConveyorLineTask(command.ConveyorLineBarcode, childDeviceCode);
                 if (task != null)
                 {
-                    //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTaskNum, task.TaskNum, childDeviceCode);
-                    //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineTargetAddress, task.NextAddress, childDeviceCode);
-                    //conveyorLine.SetValue(ConveyorLineDBName_After.ConveyorLineBarcode, command.ConveyorLineBarcode, childDeviceCode);
                     var GWTask = _taskRepository.QueryData(x => x.Roadway.Contains("GWSC2") && x.SourceAddress == "1039" && (x.TaskState == (int)TaskInStatusEnum.Line_InExecuting || x.TaskState == (int)TaskInStatusEnum.Line_InFinish)).ToList();
                     if (GWTask.Count >= 2 && childDeviceCode == "1039" && task.Roadway.Contains("GWSC2"))
                     {
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js b/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js
index fd526c5..0b61bce 100644
--- a/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/api/http.js
@@ -11,15 +11,15 @@
 let loadingInstance
 let loadingStatus = false
 if (process.env.NODE_ENV == 'development') {
-  //  axios.defaults.baseURL = 'http://localhost:5000/';
-  axios.defaults.baseURL = 'http://192.168.20.253:5000/';
+   axios.defaults.baseURL = 'http://localhost:5000/';
+  // axios.defaults.baseURL = 'http://192.168.20.253:5000/';
 }
 else if (process.env.NODE_ENV == 'debug') {
-  axios.defaults.baseURL = 'http://192.168.20.253:5000/';
+  axios.defaults.baseURL = 'http://192.168.15.253:5000/';
 }
 else if (process.env.NODE_ENV == 'production') {
   // axios.defaults.baseURL = 'http://127.0.0.1:5000/';
-  axios.defaults.baseURL = 'http://192.168.20.253:5000/';
+  axios.defaults.baseURL = 'http://192.168.15.253:5000/';
 }
 
 //axios.defaults.baseURL = 'http://api.volcore.xyz/';
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock_Hty.jsx b/Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock_Hty.jsx
new file mode 100644
index 0000000..a301399
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_BillGroupStock_Hty.jsx
@@ -0,0 +1,201 @@
+/*****************************************************************************************
+ **  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爜
+
+// import gridHeader from "./demo_Product/Dt_BillGroupStockDetail.vue";
+import gridBody from "./extend/SupplementationData.vue"
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: gridBody,
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {
+      //妗嗘灦鍒濆鍖栭厤缃墠锛�
+      let OutBoundBtn = this.buttons.find((x) => x.value == 'OutBound')
+      if (OutBoundBtn) {
+        OutBoundBtn.onClick = function () {
+          // this.$Message.success('鐐瑰嚮浜嗘寜閽�')
+          let row = this.$refs.table.getSelected() //鑾峰彇閫変腑鐨勮
+          if (row <= 0) {
+            //濡傛灉娌℃湁閫変腑琛�
+            this.$Message.error('璇烽�夋嫨涓�琛屾暟鎹�')
+            return
+          }
+          let locationCode = row[0].locationCode
+          let palletCode = row[0].palletCode
+          this.http
+            .get(
+              `/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`,
+              {},
+              '姝e湪鍒涘缓浠诲姟'
+            )
+            .then((res) => {
+              //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+              if (res.status) {
+                this.$Message.success('鍒涘缓浠诲姟鎴愬姛')
+                console.log(res)
+                this.refresh() //鍒锋柊琛ㄦ牸
+              } else {
+                this.$Message.error(res.message) //閿欒鎻愮ず
+              }
+            })
+        }
+      } 
+     
+
+      var btnSupplementationData = this.buttons.find(x => x.value == "SupplementationData");
+            if (btnSupplementationData != null) {
+                btnSupplementationData.onClick = () => {
+                    let rows = this.$refs.table.getSelected();
+                        if (rows.length == 0) {
+                            return this.$error("璇烽�夋嫨鏁版嵁!");
+                        } else if (rows.length > 1) {
+                            return this.$error("鍙兘閫夋嫨鍗曟潯鏁版嵁");
+                        }
+                        this.$refs.gridBody.open(rows[0].palletCode);
+                        this.refresh();
+                    }
+                
+                }
+      //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+      // this.buttons.unshift({
+      //   //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+      //   name: '鐩存帴鍑哄簱', //鎸夐挳鍚嶇О
+      //   icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+      //   type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+      //   onClick: function () {
+      //     this.$Message.success('鐐瑰嚮浜嗘寜閽�')
+      //     let row = this.$refs.table.getSelected() //鑾峰彇閫変腑鐨勮
+      //     if (row <= 0) {
+      //       //濡傛灉娌℃湁閫変腑琛�
+      //       this.$Message.error('璇烽�夋嫨涓�琛屾暟鎹�')
+      //       return
+      //     }
+      //     let locationCode = row[0].locationCode
+      //     let palletCode = row[0].palletCode
+      //     this.http.get(`/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`, {}, "姝e湪鍒涘缓浠诲姟").then((res) => {
+      //       //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+      //       if (res.status) {
+      //         this.$Message.success('鍒涘缓浠诲姟鎴愬姛')
+      //       } else {
+      //         this.$Message.error(res.message) //閿欒鎻愮ず
+      //       }
+      //     })
+      //   }
+      // })
+
+      //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+      this.boxOptions.labelWidth = 150
+
+      // this.columns.push({
+      //   title: "鎿嶄綔",
+      //   field: "鎿嶄綔",
+      //   width: 150,
+      //   align: "left", // 'center',
+      //   render: (h, { row, column, index }) => {
+      //     return (
+      //       <div>
+      //         <el-button
+      //           onClick={($e) => {
+      //             this.$refs.gridHeader.openModel1(row);
+      //           }}
+      //           type="primary"
+      //           plain
+      //           style="height:26px; padding: 10px !important;"
+      //         >
+      //           鏌ョ湅搴撳瓨鏄庣粏
+      //         </el-button>
+      //       </div>
+      //     );
+      //   },
+      // });
+
+      this.columns.forEach((column) => {
+        //淇敼棰滆壊
+        if (column.field == 'roadwayNo') {
+          column.formatter = (row) => {
+            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
+            return  row?.locationInfo?.roadwayNo 
+          }
+        }
+        if (column.field == 'materielCode') {
+          column.formatter = (row) => {
+            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
+            return  row?.stockInfoDetails[0]?.materielCode 
+          }
+        }
+        //鏍煎紡鍖栨棩鏈�
+        // 妫�鏌ュ綋鍓嶅垪鐨勫瓧娈垫槸鍚︿负 'locationStatus'
+        if (column.field == 'locationStatus') {
+          // 浣跨敤瀵硅薄瀛楅潰閲忔潵鏄犲皠 'locationStatus' 鐨勫�煎拰瀵瑰簲鐨勬枃鏈�
+          const statusMap = {
+            '-1': '鍏ㄩ儴',
+            '0': '绌洪棽',
+            '1': '閿佸畾',
+            '2': '鏈夎揣',
+            '3': '鏈夎揣绂佺敤',
+            '4': '鏃犺揣绂佺敤'
+          };
+          // 瀹氫箟涓�涓牸寮忓寲鍑芥暟锛屾牴鎹� 'locationStatus' 鐨勫�艰繑鍥炵浉搴旂殑鏂囨湰
+          column.formatter = (row) => {
+            // 浣跨敤 statusMap 瀵硅薄鏉ヨ幏鍙栧搴旂殑鏂囨湰锛屽鏋滄病鏈夊尮閰嶅垯杩斿洖 '鏈煡鐘舵��'
+            return statusMap[row?.locationInfo?.locationStatus] || '鏈煡鐘舵��';
+          }
+        }
+      })
+    },
+    onInited() {
+      //妗嗘灦鍒濆鍖栭厤缃悗
+      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+      this.detailOptions.columns.forEach(column=>{ 
+        console.log(column)
+      });
+    },
+    searchBefore(param) {
+      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+      return true
+    },
+    searchAfter(result) {
+     console.log(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/Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_OutTime.jsx b/Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_OutTime.jsx
new file mode 100644
index 0000000..a301399
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/extension/widesea_wms/stock/Dt_OutTime.jsx
@@ -0,0 +1,201 @@
+/*****************************************************************************************
+ **  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爜
+
+// import gridHeader from "./demo_Product/Dt_BillGroupStockDetail.vue";
+import gridBody from "./extend/SupplementationData.vue"
+let extension = {
+  components: {
+    //鏌ヨ鐣岄潰鎵╁睍缁勪欢
+    gridHeader: '',
+    gridBody: gridBody,
+    gridFooter: '',
+    //鏂板缓銆佺紪杈戝脊鍑烘鎵╁睍缁勪欢
+    modelHeader: '',
+    modelBody: '',
+    modelFooter: ''
+  },
+  tableAction: '', //鎸囧畾鏌愬紶琛ㄧ殑鏉冮檺(杩欓噷濉啓琛ㄥ悕,榛樿涓嶇敤濉啓)
+  buttons: { view: [], box: [], detail: [] }, //鎵╁睍鐨勬寜閽�
+  methods: {
+    //涓嬮潰杩欎簺鏂规硶鍙互淇濈暀涔熷彲浠ュ垹闄�
+    onInit() {
+      //妗嗘灦鍒濆鍖栭厤缃墠锛�
+      let OutBoundBtn = this.buttons.find((x) => x.value == 'OutBound')
+      if (OutBoundBtn) {
+        OutBoundBtn.onClick = function () {
+          // this.$Message.success('鐐瑰嚮浜嗘寜閽�')
+          let row = this.$refs.table.getSelected() //鑾峰彇閫変腑鐨勮
+          if (row <= 0) {
+            //濡傛灉娌℃湁閫変腑琛�
+            this.$Message.error('璇烽�夋嫨涓�琛屾暟鎹�')
+            return
+          }
+          let locationCode = row[0].locationCode
+          let palletCode = row[0].palletCode
+          this.http
+            .get(
+              `/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`,
+              {},
+              '姝e湪鍒涘缓浠诲姟'
+            )
+            .then((res) => {
+              //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+              if (res.status) {
+                this.$Message.success('鍒涘缓浠诲姟鎴愬姛')
+                console.log(res)
+                this.refresh() //鍒锋柊琛ㄦ牸
+              } else {
+                this.$Message.error(res.message) //閿欒鎻愮ず
+              }
+            })
+        }
+      } 
+     
+
+      var btnSupplementationData = this.buttons.find(x => x.value == "SupplementationData");
+            if (btnSupplementationData != null) {
+                btnSupplementationData.onClick = () => {
+                    let rows = this.$refs.table.getSelected();
+                        if (rows.length == 0) {
+                            return this.$error("璇烽�夋嫨鏁版嵁!");
+                        } else if (rows.length > 1) {
+                            return this.$error("鍙兘閫夋嫨鍗曟潯鏁版嵁");
+                        }
+                        this.$refs.gridBody.open(rows[0].palletCode);
+                        this.refresh();
+                    }
+                
+                }
+      //绀轰緥锛氬湪鎸夐挳鐨勬渶鍓嶉潰娣诲姞涓�涓寜閽�
+      // this.buttons.unshift({
+      //   //涔熷彲浠ョ敤push鎴栬�卻plice鏂规硶鏉ヤ慨鏀筨uttons鏁扮粍
+      //   name: '鐩存帴鍑哄簱', //鎸夐挳鍚嶇О
+      //   icon: 'el-icon-document', //鎸夐挳鍥炬爣vue2鐗堟湰瑙乮view鏂囨。icon锛寁ue3鐗堟湰瑙乪lement ui鏂囨。icon(娉ㄦ剰涓嶆槸element puls鏂囨。)
+      //   type: 'primary', //鎸夐挳鏍峰紡vue2鐗堟湰瑙乮view鏂囨。button锛寁ue3鐗堟湰瑙乪lement ui鏂囨。button
+      //   onClick: function () {
+      //     this.$Message.success('鐐瑰嚮浜嗘寜閽�')
+      //     let row = this.$refs.table.getSelected() //鑾峰彇閫変腑鐨勮
+      //     if (row <= 0) {
+      //       //濡傛灉娌℃湁閫変腑琛�
+      //       this.$Message.error('璇烽�夋嫨涓�琛屾暟鎹�')
+      //       return
+      //     }
+      //     let locationCode = row[0].locationCode
+      //     let palletCode = row[0].palletCode
+      //     this.http.get(`/api/Task/CreateAndSendOutboundTask?locationCode=${locationCode}&palletCode=${palletCode}`, {}, "姝e湪鍒涘缓浠诲姟").then((res) => {
+      //       //绀轰緥锛氳皟鐢ㄥ悗鍙版帴鍙�
+      //       if (res.status) {
+      //         this.$Message.success('鍒涘缓浠诲姟鎴愬姛')
+      //       } else {
+      //         this.$Message.error(res.message) //閿欒鎻愮ず
+      //       }
+      //     })
+      //   }
+      // })
+
+      //绀轰緥锛氳缃慨鏀规柊寤恒�佺紪杈戝脊鍑烘瀛楁鏍囩鐨勯暱搴�
+      this.boxOptions.labelWidth = 150
+
+      // this.columns.push({
+      //   title: "鎿嶄綔",
+      //   field: "鎿嶄綔",
+      //   width: 150,
+      //   align: "left", // 'center',
+      //   render: (h, { row, column, index }) => {
+      //     return (
+      //       <div>
+      //         <el-button
+      //           onClick={($e) => {
+      //             this.$refs.gridHeader.openModel1(row);
+      //           }}
+      //           type="primary"
+      //           plain
+      //           style="height:26px; padding: 10px !important;"
+      //         >
+      //           鏌ョ湅搴撳瓨鏄庣粏
+      //         </el-button>
+      //       </div>
+      //     );
+      //   },
+      // });
+
+      this.columns.forEach((column) => {
+        //淇敼棰滆壊
+        if (column.field == 'roadwayNo') {
+          column.formatter = (row) => {
+            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
+            return  row?.locationInfo?.roadwayNo 
+          }
+        }
+        if (column.field == 'materielCode') {
+          column.formatter = (row) => {
+            // return '<span style="color: #2d8cf0;">' + row?.locationInfo?.roadwayNo + '</span>'
+            return  row?.stockInfoDetails[0]?.materielCode 
+          }
+        }
+        //鏍煎紡鍖栨棩鏈�
+        // 妫�鏌ュ綋鍓嶅垪鐨勫瓧娈垫槸鍚︿负 'locationStatus'
+        if (column.field == 'locationStatus') {
+          // 浣跨敤瀵硅薄瀛楅潰閲忔潵鏄犲皠 'locationStatus' 鐨勫�煎拰瀵瑰簲鐨勬枃鏈�
+          const statusMap = {
+            '-1': '鍏ㄩ儴',
+            '0': '绌洪棽',
+            '1': '閿佸畾',
+            '2': '鏈夎揣',
+            '3': '鏈夎揣绂佺敤',
+            '4': '鏃犺揣绂佺敤'
+          };
+          // 瀹氫箟涓�涓牸寮忓寲鍑芥暟锛屾牴鎹� 'locationStatus' 鐨勫�艰繑鍥炵浉搴旂殑鏂囨湰
+          column.formatter = (row) => {
+            // 浣跨敤 statusMap 瀵硅薄鏉ヨ幏鍙栧搴旂殑鏂囨湰锛屽鏋滄病鏈夊尮閰嶅垯杩斿洖 '鏈煡鐘舵��'
+            return statusMap[row?.locationInfo?.locationStatus] || '鏈煡鐘舵��';
+          }
+        }
+      })
+    },
+    onInited() {
+      //妗嗘灦鍒濆鍖栭厤缃悗
+      //濡傛灉瑕侀厤缃槑缁嗚〃,鍦ㄦ鏂规硶鎿嶄綔
+      this.detailOptions.columns.forEach(column=>{ 
+        console.log(column)
+      });
+    },
+    searchBefore(param) {
+      //鐣岄潰鏌ヨ鍓�,鍙互缁檖aram.wheres娣诲姞鏌ヨ鍙傛暟
+      //杩斿洖false锛屽垯涓嶄細鎵ц鏌ヨ
+      return true
+    },
+    searchAfter(result) {
+     console.log(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/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js b/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js
index 8167dd3..c6c6ac0 100644
--- a/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/router/tables.js
@@ -29,6 +29,14 @@
     }
   },
   {
+    path: '/Dt_LocationStatus',
+    name: 'Dt_LocationStatus',
+    component: () => import('@/views/widesea_wms/basicinfo/LocationStatusChange.vue'),
+    meta: {
+       
+    }
+  },
+  {
     path: '/Dt_InboundOrderDetail',
     name: 'Dt_InboundOrderDetail',
     component: () => import('@/views/widesea_wms/invoices/Dt_InboundOrderDetail.vue'),
@@ -260,6 +268,13 @@
     meta: {
       keepAlive: false
     }
+  },{
+    path: '/Dt_BillGroupStock_Hty',
+    name: 'Dt_BillGroupStock_Hty',
+    component: () => import('@/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue'),
+    meta: {
+      keepAlive: false
+    }
   },
 ]
 export default tables
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationStatus.vue b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationStatus.vue
new file mode 100644
index 0000000..bd071e5
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/basicinfo/Dt_LocationStatus.vue
@@ -0,0 +1,85 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/basicinfo/Dt_LocationInfo.js姝ゅ缂栧啓
+ -->
+ <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/widesea_wms/basicinfo/Dt_LocationInfo.jsx";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: 'id',
+            footer: "Foots",
+            cnName: '璐т綅淇℃伅',
+            name: '/api',
+            url: "/Task/LocationStatus",
+            sortName: "id"
+        });
+        const editFormFields = ref({ "locationStatus": "" });
+        const editFormOptions = ref([
+            [
+                { "title": "璐т綅鐘舵��", "field": "locationStatus", "type": "select", dataKey: "LocationState", data: [] }, 
+                { "title": "鏄惁绂佺敤", "field": "enalbeStatus", "type": "select", dataKey: "EnalbeStatus", data: [] }, 
+            ]
+        ]);
+        const searchFormFields = ref({ "LocationID": "",roadWayNO:"" });
+        const searchFormOptions = ref([
+            [
+                { "title": "璐т綅缂栧彿", "field": "locationCode", type: "text" },
+                { "title": "璐т綅鐘舵��", "field": "locationStatus", "type": "select", dataKey: "LocationState", data: [] },
+                { "title": "宸烽亾缂栧彿", "field": "roadWayNO", type: "text" },
+            ],
+            [
+                { "title": "琛�", "field": "row", type: "text" },
+                { "title": "鍒�", "field": "column", "type": "text" },
+                { "title": "灞�", "field": "layer", type: "text" },
+            ]
+        ]);
+        const columns = ref([{ field: 'locationID', title: '璐т綅ID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
+        { field: 'locationCode', title: '璐т綅缂栧彿', type: 'string', width: 110, require: true, align: 'left' },
+        { field: 'locationName', title: '璐т綅鍚嶇О', type: 'string', width: 120, align: 'left' },
+        { field: 'roadwayNo', title: '宸烽亾鍙�', type: 'string', width: 110, require: true, align: 'left', sort: true },
+        { field: 'row', title: '琛�', type: 'string', width: 70, align: 'left' },
+        { field: 'column', title: '鍒�', type: 'string', width: 70, align: 'left' },
+        { field: 'layer', title: '灞�', type: 'string', width: 110, align: 'left' },
+        { field: 'depth', title: '娣卞害', type: 'string', width: 110, align: 'left', hidden: true  },
+        { field: 'scNo', title: '瀵瑰簲鍫嗗灈鏈哄彿', type: 'string', width: 110, align: 'left', hidden: true },
+        { field: 'locationType', title: '璐т綅绫诲瀷', type: 'int', width: 110, align: 'left',bind: { key: "LocationType", data: [] } },
+        { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 110, align: 'left', bind: { key: "LocationState", data: [] } },
+        { field: 'enalbeStatus', title: '鏄惁绂佺敤', type: 'int', width: 75, align: 'left', bind: { key: "EnalbeStatus", data: [] }}, 
+        // { field: 'isLocked', title: '鏄惁閿佸畾', type: 'bool', width: 110, align: 'left', bind: { key: "IsLocked", data: [] } },
+        { field: 'locationDesc', title: '璐т綅鎻忚堪', type: 'string', width: 110, align: 'left', hidden: true },
+        { field: 'remark', title: '妫�娴嬫煖鍏佽', type: 'string', width: 110, align: 'left' ,bind: { key: "AllowStatus", data: [] }},
+        { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
+        { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+        { field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 100, align: 'left' },
+        { field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+    ]);
+        const detail = ref({
+            cnName: "#detailCnName",
+            table: "#detailTable",
+            columns: [],
+            sortName: "",
+            key: ""
+        });
+        return {
+            table,
+            extend,
+            editFormFields,
+            editFormOptions,
+            searchFormFields,
+            searchFormOptions,
+            columns,
+            detail,
+        };
+    },
+});
+</script>
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue
new file mode 100644
index 0000000..71f6c38
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_BillGroupStock_Hty.vue
@@ -0,0 +1,94 @@
+<!--
+*Author锛歫xx
+ *Contact锛�283591387@qq.com
+ *浠g爜鐢辨鏋剁敓鎴�,浠讳綍鏇存敼閮藉彲鑳藉鑷磋浠g爜鐢熸垚鍣ㄨ鐩�
+ *涓氬姟璇峰湪@/extension/widesea_wms/stock/Dt_BillGroupStock.js姝ゅ缂栧啓
+ -->
+
+<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/widesea_wms/stock/Dt_BillGroupStock_Hty.jsx";
+import { ref, defineComponent } from "vue";
+export default defineComponent({
+    setup() {
+        const table = ref({
+            key: 'id',
+            footer: "Foots",
+            cnName: '搴撳瓨鍘嗗彶淇℃伅',
+            name: 'stock/Dt_BillGroupStock_Hty',
+            url: "/StockInfoHty/",
+            sortName: "createDate"
+        });
+        const editFormFields = ref({
+            "palletCode": "",
+            "productionLine": "",
+            "outboundTime": "",
+            // "groupType": ""
+        });
+        const editFormOptions = ref([
+            [
+                { "title": "鎵樼洏鏉$爜", "field": "palletCode", type: "text" },
+                { "title": "鐢熶骇浜х嚎", "field": "productionLine", type: "text" },
+                { "title": "搴斿嚭搴撴椂闂�", "field": "outboundTime", type: "datetime" },
+                // { "title": "缁勭洏绫诲瀷", "field": "groupType", type: "select", dataKey: "GroupType", data: [] },
+            ]
+        ]);
+        const searchFormFields = ref({});
+        const searchFormOptions = ref([
+            [
+                { "title": "鎵樼洏鏉$爜", "field": "palletCode", type: "text" },
+                { "title": "鐢熶骇浜х嚎", "field": "productionLine", type: "select", dataKey: "ProductionLine", data: [] },
+                { "title": "搴撳尯", "field": "areaCode", type: "select", dataKey: "AreaType", data: [] },
+                { "title": "搴撳瓨绫诲瀷", "field": "isFull", type: "select", dataKey: "isFull", data: [] },
+            ], [
+                { "title": "搴撲綅鍙�", "field": "locationCode", type: "text" },
+                { "title": "宸烽亾", "field": "roadwayNo", type: "text" },
+                { "title": "璐т綅鐘舵��", "field": "locationStatus", type: "select", dataKey: "LocationState", data: [] },
+                { "title": "鐗╂枡缂栫爜", "field": "materielCode", type: "text"},
+            ]
+        ]);
+        const columns = ref(
+            [{ field: 'id', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
+            { field: 'locationCode', title: '搴撲綅', type: 'string', width: 100, align: 'left', },
+            { field: 'palletCode', title: '鎵樼洏鏉$爜', type: 'string', width: 110, align: 'left', },
+            { field: 'isFull', title: '搴撳瓨绫诲瀷', type: 'bool', width: 60, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '绌虹洏' }, { key: true, value: '瀹炵洏' }] }, },
+            { field: 'linedProcessFeedbackTime', title: '宸ヨ壓寮�濮嬫椂闂�', type: 'string', width: 110, align: 'left', },
+            { field: 'roadwayNo', title: '宸烽亾', type: 'string', width: 60, align: 'left', sort: true },
+            { field: 'materielCode', title: '鐗╂枡缂栫爜', type: 'string', width: 90, align: 'left', sort: true },
+            // { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 60, align: 'left', bind: { key: "LocationState", data: [] } },
+            { field: 'specialParameterDuration', title: '宸ヨ壓鏃堕暱', type: 'string', width: 60, align: 'left', sort: true },
+            { field: 'outboundTime', title: '搴斿嚭搴撴椂闂�', type: 'string', width: 110, align: 'left', sort: true },
+            { field: 'productionLine', title: '鐢熶骇浜х嚎', type: 'string', width: 60, align: 'left', bind: { key: "ProductionLine", data: [] }  },
+            { field: 'areaCode', title: '搴撳尯', type: 'string', width: 60, align: 'left', bind: { key: "AreaType", data: [] } },
+            { field: 'remark', title: '鐢佃姱鏁伴噺', type: 'string', width: 60, align: 'left', },
+            { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left', hidden: true },
+            { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', },
+            { field: 'modifier', title: '鏈�鍚庝慨鏀逛汉', type: 'string', sort: true, width: 100, hidden: true, align: 'left' },
+                // { field: 'modifyDate', title: '鏈�鍚庝慨鏀规椂闂�', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+            ]
+        );
+        const detail = ref({
+            cnName: "#detailCnName",
+            table: "#detailTable",
+            columns: [],
+            sortName: "",
+            key: ""
+        });
+        return {
+            table,
+            extend,
+            editFormFields,
+            editFormOptions,
+            searchFormFields,
+            searchFormOptions,
+            columns,
+            detail,
+        };
+    },
+});
+</script>
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue
index 7cf35e1..000f539 100644
--- a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/stock/Dt_OutTime.vue
@@ -7,21 +7,21 @@
 
  <template>
     <view-grid ref="grid" :columns="columns" :detail="detail" :editFormFields="editFormFields"
-        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" 
+        :editFormOptions="editFormOptions" :searchFormFields="searchFormFields" :searchFormOptions="searchFormOptions"
         :table="table" :extend="extend">
     </view-grid>
 </template>
 <script>
-import extend from "@/extension/widesea_wms/stock/Dt_BillGroupStock.jsx";
+import extend from "@/extension/widesea_wms/stock/Dt_OutTime.jsx";
 import { ref, defineComponent } from "vue";
 export default defineComponent({
     setup() {
         const table = ref({
             key: 'id',
             footer: "Foots",
-            cnName: '瓒呮椂淇℃伅',
-            name: 'stock/Dt_BillGroupStock',
-            url:"/StockInfoTimeout/",
+            cnName: '瓒呮椂搴撳瓨淇℃伅',
+            name: 'stock/StockInfoTimeout',
+            url: "/StockInfo/",
             sortName: "createDate"
         });
         const editFormFields = ref({
@@ -49,18 +49,18 @@
                 { "title": "搴撲綅鍙�", "field": "locationCode", type: "text" },
                 { "title": "宸烽亾", "field": "roadwayNo", type: "text" },
                 { "title": "璐т綅鐘舵��", "field": "locationStatus", type: "select", dataKey: "LocationState", data: [] },
-                { "title": "鍑哄簱鏃堕棿", "field": "outboundTime", type: "datetime"},
+                { "title": "鐗╂枡缂栫爜", "field": "materielCode", type: "text"},
             ]
         ]);
-        const now = new Date();
-        // 鐩存帴鍑忓幓 3 灏忔椂锛堝彲鑳借法澶╋紝Date 瀵硅薄浼氳嚜鍔ㄥ鐞嗭級
-        now.setHours(now.getHours() - 3);
         const columns = ref(
             [{ field: 'id', title: '搴撳瓨ID', type: 'int', width: 110, hidden: true, readonly: true, require: true, align: 'left' },
             { field: 'locationCode', title: '搴撲綅', type: 'string', width: 100, align: 'left', },
             { field: 'palletCode', title: '鎵樼洏鏉$爜', type: 'string', width: 110, align: 'left', },
-            { field: 'isFull', title: '搴撳瓨绫诲瀷', type: 'bool', width: 80, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '绌虹洏' }, { key: true, value: '瀹炵洏' }] }, },
+            { field: 'isFull', title: '搴撳瓨绫诲瀷', type: 'bool', width: 60, align: 'left', bind: { key: "isFull", data: [{ key: false, value: '绌虹洏' }, { key: true, value: '瀹炵洏' }] }, },
             { field: 'linedProcessFeedbackTime', title: '宸ヨ壓寮�濮嬫椂闂�', type: 'string', width: 110, align: 'left', },
+            { field: 'roadwayNo', title: '宸烽亾', type: 'string', width: 60, align: 'left', sort: true },
+            { field: 'materielCode', title: '鐗╂枡缂栫爜', type: 'string', width: 90, align: 'left', sort: true },
+            { field: 'locationStatus', title: '璐т綅鐘舵��', type: 'int', width: 60, align: 'left', bind: { key: "LocationState", data: [] } },
             { field: 'specialParameterDuration', title: '宸ヨ壓鏃堕暱', type: 'string', width: 60, align: 'left', sort: true },
             { field: 'outboundTime', title: '搴斿嚭搴撴椂闂�', type: 'string', width: 110, align: 'left', sort: true },
             { field: 'productionLine', title: '鐢熶骇浜х嚎', type: 'string', width: 60, align: 'left', bind: { key: "ProductionLine", data: [] }  },
@@ -72,7 +72,6 @@
                 // { field: 'modifyDate', title: '鏈�鍚庝慨鏀规椂闂�', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
             ]
         );
-        
         const detail = ref({
             cnName: "#detailCnName",
             table: "#detailTable",
diff --git a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue
index bed5875..848d6d7 100644
--- a/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue
+++ b/Code Management/WMS/WIDESEA_WMSClient/src/views/widesea_wms/taskinfo/Dt_Task_Hty.vue
@@ -83,9 +83,9 @@
         { field: 'dispatchertime', title: '浠诲姟涓嬪彂鏃堕棿', type: 'datetime', width: 150, align: 'left', sort: true },
         { field: 'operateType', title: '鎿嶄綔绫诲瀷', type: 'string', width: 110, align: 'left', bind: { key: "operateType", data: [] }},
         { field: 'remark', title: '澶囨敞', type: 'string', width: 110, align: 'left',hidden: true, },
-        { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
+        { field: 'createDate', title: '鍒涘缓鏃堕棿', type: 'datetime', sort: true, width: 150, hidden: true,align: 'left', sort: true },
         //{ field: 'modifyDate', title: '淇敼鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
-        { field: 'creater', title: '鍒涘缓浜�', type: 'string', sort: true, width: 110, align: 'left' },
+        { field: 'creater', title: '瀹屾垚鑰�', type: 'string', sort: true, width: 110, align: 'left' },
         //{ field: 'modifier', title: '淇敼浜�', type: 'string', sort: true, width: 100, align: 'left' },
         { field: 'finishTime', title: '瀹屾垚鏃堕棿', type: 'datetime', sort: true, width: 150, align: 'left', sort: true },
         { field: 'locationCode', title: '璐т綅鍙�', type: 'string', width: 110, hidden: true, align: 'left' },
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
index b3e4e81..2e46f1a 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_IStorageTaskService/Task/IDt_TaskService.cs
@@ -271,4 +271,9 @@
     /// </summary>
     /// <returns></returns>
     WebResponseContent Getproductionstatistics();
+    /// <summary>
+    /// 鑾峰彇璐т綅鐘舵�佷笉鏄┖闂层�佹湁璐х殑鍏ㄩ儴璐т綅
+    /// </summary>
+    /// <returns></returns>
+    WebResponseContent GetLocationStatus();
 }
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
index 19282f0..f8c87c9 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_StorageTaskServices/Task/Partial/Dt_TaskService.cs
@@ -1637,6 +1637,20 @@
             return content.Error(ex.Message);
         }
     }
+    public WebResponseContent GetLocationStatus()
+    {
+        WebResponseContent content = new WebResponseContent();
+        try
+        {
+            List<DtLocationInfo> LocationList = _locationRepository.Db.Queryable<DtLocationInfo>().Where(x => x.LocationStatus != 2 && x.LocationStatus != 0).ToList();
+            return content.OK1(total1: LocationList.Count, data: LocationList);
+        }
+        catch (Exception ex)
+        {
+            return content.Error(ex.Message);
+        }
+
+    }
 }
 
 internal class TaskHourData
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
index a7ae9dc..a510ec9 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/TaskController.cs
@@ -261,4 +261,13 @@
     {
         return Service.Getproductionstatistics();
     }
+    /// <summary>
+    /// 鑾峰彇涓嶆槸绌洪棽浠ュ強鏈夎揣鐨勫叏閮ㄨ揣浣�
+    /// </summary>
+    /// <returns></returns>
+    [HttpPost, AllowAnonymous, Route("LocationStatusgetPageData")]
+    public WebResponseContent LocationStatus()
+    {
+        return Service.GetLocationStatus();
+    }
 }
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml
new file mode 100644
index 0000000..588f952
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml
@@ -0,0 +1,17 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<!--
+https://go.microsoft.com/fwlink/?LinkID=208121.
+-->
+<Project>
+  <PropertyGroup>
+    <DeleteExistingFiles>false</DeleteExistingFiles>
+    <ExcludeApp_Data>false</ExcludeApp_Data>
+    <LaunchSiteAfterPublish>true</LaunchSiteAfterPublish>
+    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
+    <LastUsedPlatform>Any CPU</LastUsedPlatform>
+    <PublishProvider>FileSystem</PublishProvider>
+    <PublishUrl>D:\2025骞�7鏈�4鏃�</PublishUrl>
+    <WebPublishMethod>FileSystem</WebPublishMethod>
+    <_TargetId>Folder</_TargetId>
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml.user b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml.user
new file mode 100644
index 0000000..1b5f721
--- /dev/null
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Properties/PublishProfiles/FolderProfile1.pubxml.user
@@ -0,0 +1,11 @@
+锘�<?xml version="1.0" encoding="utf-8"?>
+<!--
+https://go.microsoft.com/fwlink/?LinkID=208121.
+-->
+<Project>
+  <PropertyGroup>
+    <_PublishTargetUrl>D:\2025骞�7鏈�4鏃�</_PublishTargetUrl>
+    <History>True|2025-07-04T02:32:33.2226066Z||;</History>
+    <LastFailureDetails />
+  </PropertyGroup>
+</Project>
\ No newline at end of file
diff --git a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
index 78cc774..353a3e3 100644
--- a/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
+++ b/Code Management/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/appsettings.json
@@ -1,49 +1,49 @@
 {
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft.AspNetCore": "Warning"
-    }
-  },
-  "AllowedHosts": "*",
-  "urls": "http://*:5000",
-  "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
-  //杩炴帴瀛楃涓�
-  //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
-  //"ConnectionString": "Data Source=192.168.15.253;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  //"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WMSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  //"ConnectionStringWCS": "Data Source=192.168.15.253;Initial Catalog=WIDESEA_WCSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  "ConnectionStringWCS": "Data Source=.;Initial Catalog=WIDESEA_WCSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
-  //璺ㄥ煙
-  "Cors": {
-    "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
-    "EnableAllIPs": true, //褰撲负true鏃讹紝寮�鏀炬墍鏈塈P鍧囧彲璁块棶銆�
-    // 鏀寔澶氫釜鍩熷悕绔彛锛屾敞鎰忕鍙e彿鍚庝笉瑕佸甫/鏂滄潌锛氭瘮濡俵ocalhost:8000/锛屾槸閿欑殑
-    // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
-    "IPs": "http://127.0.0.1:8080,http://localhost:8080,http://127.0.0.1:8081,http://localhost:8081"
-  },
-  "ApiName": "WIDESEA",
-  "ExpMinutes": 120,
+    "Logging": {
+        "LogLevel": {
+            "Default": "Information",
+            "Microsoft.AspNetCore": "Warning"
+        }
+    },
+    "AllowedHosts": "*",
+    "urls": "http://*:5000",
+    "MainDB": "DB_WIDESEA", //褰撳墠椤圭洰鐨勪富搴擄紝鎵�瀵瑰簲鐨勮繛鎺ュ瓧绗︿覆鐨凟nabled蹇呴』涓簍rue
+    //杩炴帴瀛楃涓�
+    //"ConnectionString": "HTI6FB1H05Krd07mNm9yBCNhofW6edA5zLs9TY~MNthRYW3kn0qKbMIsGp~3yyPDF1YZUCPBQx8U0Jfk4PH~ajNFXVIwlH85M3F~v_qKYQ3CeAz3q1mLVDn8O5uWt1~3Ut2V3KRkEwYHvW2oMDN~QIDXPxDgXN0R2oTIhc9dNu7QNaLEknblqmHhjaNSSpERdDVZIgHnMKejU_SL49tralBkZmDNi0hmkbL~837j1NWe37u9fJKmv91QPb~16JsuI9uu0EvNZ06g6PuZfOSAeFH9GMMIZiketdcJG3tHelo=",
+    //"ConnectionString": "Data Source=192.168.15.253;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    "ConnectionString": "Data Source=.;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    //"ConnectionString": "Data Source=.\\LIULEI;Initial Catalog=WIDESEA_WMSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    //"ConnectionString": "Data Source=192.168.20.251;Initial Catalog=WIDESEA_WMSDB;User ID=sa;Password=123456@gy;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    //"ConnectionStringWCS": "Data Source=192.168.15.253;Initial Catalog=WIDESEA_WCSDB_BBMain;User ID=sa;Password=P@ssw0rd;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    "ConnectionStringWCS": "Data Source=.;Initial Catalog=WIDESEA_WCSDB_BBMain;User ID=sa;Password=123456;Integrated Security=False;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False",
+    //璺ㄥ煙
+    "Cors": {
+        "PolicyName": "CorsIpAccess", //绛栫暐鍚嶇О
+        "EnableAllIPs": true, //褰撲负true鏃讹紝寮�鏀炬墍鏈塈P鍧囧彲璁块棶銆�
+        // 鏀寔澶氫釜鍩熷悕绔彛锛屾敞鎰忕鍙e彿鍚庝笉瑕佸甫/鏂滄潌锛氭瘮濡俵ocalhost:8000/锛屾槸閿欑殑
+        // 娉ㄦ剰锛宧ttp://127.0.0.1:1818 鍜� http://localhost:1818 鏄笉涓�鏍风殑
+        "IPs": "http://127.0.0.1:8080,http://localhost:8080,http://127.0.0.1:8081,http://localhost:8081"
+    },
+    "ApiName": "WIDESEA",
+    "ExpMinutes": 120,
 
-  // 闇�瑕佺Щ搴撶殑琛�
-  "TransfertRows": "1,4,5,8",
-  "CacheSettings": {
-    "UseRedis": false,
-    "RedisSettings": {
-      "Address": "127.0.0.1:6379",
-      "Password": "123456",
-      "Db": 9,
-      "ClearRedis": true
-    }
-  },
-  // 鍏佽鍑哄簱鐨勭紪鐮�
-  "OutBoundMateriel": [
-    //{
-    //    "MaterielCode": "CC01050001348",
-    //    "ProductionLine": "ZJ-8",
-    //    "ProcessCode": "CH001"
-    //}
-  ]
+    // 闇�瑕佺Щ搴撶殑琛�
+    "TransfertRows": "1,4,5,8",
+    "CacheSettings": {
+        "UseRedis": false,
+        "RedisSettings": {
+            "Address": "127.0.0.1:6379",
+            "Password": "123456",
+            "Db": 9,
+            "ClearRedis": true
+        }
+    },
+    // 鍏佽鍑哄簱鐨勭紪鐮�
+    "OutBoundMateriel": [
+        //{
+        //    "MaterielCode": "CC01050001348",
+        //    "ProductionLine": "ZJ-8",
+        //    "ProcessCode": "CH001"
+        //}
+    ]
 }

--
Gitblit v1.9.3