From 2950220f98f891a64cc452478e2a2ae61b82a8cd Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期日, 13 四月 2025 16:21:52 +0800
Subject: [PATCH] 优化代码、添加大屏

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/50c56e15-47e1-4795-b6c9-2c025997ff34.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs                         |   17 ++-
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/fa8502a9-61dd-4861-9163-b1d608a7f9fc.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs                                                    |    2 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin                                            |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs                                      |    5 +
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/WCSInterfaceController.cs                 |    4 
 /dev/null                                                                                                    |    0 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/84f959ce-ebac-4741-9ac4-ce8d64779034.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs                                   |   14 ++
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/602f5cae-8926-4c6a-91e8-770b3f127a3d.vsidx |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs                  |   55 +++++++++++++
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6855f602-a964-45db-8412-82429bed1009.vsidx |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs                               |   53 ++++++++++++
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs                                         |    3 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs             |   39 +++++++--
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2                                           |    0 
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs                                     |    3 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9c38a34d-18e2-4e47-a9de-0141309ea5a8.vsidx |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/903d2997-d863-4f7f-ace5-9e0b1935c919.vsidx |    0 
 项目代码/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo                                                    |    0 
 21 files changed, 168 insertions(+), 27 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/4b0ec078-98ea-4b55-b93a-79926ca1c474.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/4b0ec078-98ea-4b55-b93a-79926ca1c474.vsidx"
deleted file mode 100644
index 87e4b8d..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/4b0ec078-98ea-4b55-b93a-79926ca1c474.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba992fbb-32f0-4374-9143-4d91137d8d09.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/50c56e15-47e1-4795-b6c9-2c025997ff34.vsidx"
similarity index 76%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba992fbb-32f0-4374-9143-4d91137d8d09.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/50c56e15-47e1-4795-b6c9-2c025997ff34.vsidx"
index 669848e..5fa2d41 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/ba992fbb-32f0-4374-9143-4d91137d8d09.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/50c56e15-47e1-4795-b6c9-2c025997ff34.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c462d495-cadd-42f9-b77c-4e63924b9489.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6855f602-a964-45db-8412-82429bed1009.vsidx"
similarity index 78%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c462d495-cadd-42f9-b77c-4e63924b9489.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6855f602-a964-45db-8412-82429bed1009.vsidx"
index 34cf1a9..459f6b7 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/c462d495-cadd-42f9-b77c-4e63924b9489.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/6855f602-a964-45db-8412-82429bed1009.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5c28d63e-420d-4593-9231-466799689cce.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/84f959ce-ebac-4741-9ac4-ce8d64779034.vsidx"
similarity index 64%
rename from "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5c28d63e-420d-4593-9231-466799689cce.vsidx"
rename to "\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/84f959ce-ebac-4741-9ac4-ce8d64779034.vsidx"
index 8f49b16..5a9a802 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/5c28d63e-420d-4593-9231-466799689cce.vsidx"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/84f959ce-ebac-4741-9ac4-ce8d64779034.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/fa8502a9-61dd-4861-9163-b1d608a7f9fc.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/fa8502a9-61dd-4861-9163-b1d608a7f9fc.vsidx"
new file mode 100644
index 0000000..5af81fb
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/fa8502a9-61dd-4861-9163-b1d608a7f9fc.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
index bc18a51..7c88d88 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/TaskEnumHelper.cs"
@@ -64,6 +64,11 @@
                 List<int> taskInboundTypes = type.GetEnumIndexList();
                 return taskInboundTypes.Where(x => x > currentStatus && x < (int)TaskRelocationStatusEnum.RelocationFinish).OrderBy(x => x).FirstOrDefault();
             }
+            else if (type == typeof(CarChargingTaskEnum))
+            {
+                List<int> taskInboundTypes = type.GetEnumIndexList();
+                return taskInboundTypes.Where(x => x > currentStatus && x < (int)CarChargingTaskEnum.RelocationCarFinish).OrderBy(x => x).FirstOrDefault();
+            }
             else
             {
                 throw new NotImplementedException();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
index 6b49947..6b36a68 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -640,11 +640,12 @@
                 NextAddress = TargetAddress,
                 CreateDate = DateTime.Now,
                 Creater = "WCS",
-                TaskState = (int)TaskCarStatusEnum.CarNew,
+                TaskState = string.IsNullOrEmpty(remark) ? (int)TaskCarStatusEnum.CarNew : (int)CarChargingTaskEnum.CarNew,
                 ShuttleCarCode = ShuttleCarCode,
                 WMSId = 0,
                 Remark = remark
             };
+            if (SourceAddress == TargetAddress) dt_Task.TaskState = (int)CarChargingTaskEnum.SC_CarFinish;
             return AddData(dt_Task);
             #endregion
         }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
index 06019e8..8de000a 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/AGV/AGVJob.cs"
@@ -91,7 +91,7 @@
                             }
                         }
                     }
-                    Thread.Sleep(1000);
+                    Thread.Sleep(5000);
                 }
                 _taskService.Db.Updateable(Tasks).ExecuteCommand();
                 #endregion
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs"
index bdba05a..0b9005d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarExtend/PartialTaskService.cs"
@@ -74,9 +74,20 @@
         {
             lock (_CarTaskObject)
             {
+                #region 鑾峰彇鏂板缓绉昏溅鍏呯數浠诲姟
+                Dt_Task dt_Task = GetTask((int)CarChargingTaskEnum.CarNew, (int)TaskOtherTypeEnum.RelocationCarCharging);
+                if (dt_Task != null && dt_Task.ShuttleCarCode == shuttleCar.DeviceCode)
+                {
+                    if (!string.IsNullOrEmpty(dt_Task.SourceAddress) && !string.IsNullOrEmpty(dt_Task.TargetAddress) && !string.IsNullOrEmpty(dt_Task.ShuttleCarCode))
+                    {
+                        SendTask(dt_Task);
+                    }
+                }
+                #endregion
+
                 #region 鑾峰彇鏂板缓绉昏溅浠诲姟
-                Dt_Task dt_Task = GetTask((int)TaskCarStatusEnum.CarNew, (int)TaskOtherTypeEnum.RelocationCar);
-                if (dt_Task != null)
+                dt_Task = GetTask((int)TaskCarStatusEnum.CarNew, (int)TaskOtherTypeEnum.RelocationCar);
+                if (dt_Task != null && dt_Task.ShuttleCarCode == shuttleCar.DeviceCode)
                 {
                     if (string.IsNullOrEmpty(dt_Task.SourceAddress))
                     {
@@ -89,8 +100,9 @@
                     else if (string.IsNullOrEmpty(dt_Task.TargetAddress))
                     {
                         #region 鍚慦MS鐢宠
+                        var ShuttleCar = _shuttleCarService.QueryNoCode(dt_Task.ShuttleCarCode);
                         WebResponseContent content = new WebResponseContent();
-                        var ResultData = HttpHelper.PostAsync(WMSInterfaceAddress.GetPosition + $"?position={dt_Task.SourceAddress}", "", headers: new Dictionary<string, string>());
+                        var ResultData = HttpHelper.PostAsync(WMSInterfaceAddress.GetPosition + $"?position={dt_Task.SourceAddress}&&position1={ShuttleCar.ShuttleCarPosition}", "", headers: new Dictionary<string, string>());
                         if (ResultData.Result != null)
                         {
                             content = JsonConvert.DeserializeObject<WebResponseContent>(ResultData.Result);
@@ -216,7 +228,7 @@
             if (shuttleCar != null)
             {
                 ShuttleCarTaskCommandR command = ReadCustomer<ShuttleCarTaskCommandR>(shuttleCar, shuttleCar.DeviceCode);//璇诲彇绌挎杞︿俊鎭�
-                if (command != null && command.Status == (short)ShuttleCarStatus.Standby && command.TaskTypeComplete == (short)ShuttleCarTaskComplete.Standby && command.Err_Status == (short)ShuttleCarErr.Normal)
+                if (command != null && command.Status == (short)ShuttleCarStatus.Standby && command.TaskTypeComplete == (short)ShuttleCarTaskComplete.Standby && (command.Err_Status == (short)ShuttleCarErr.Normal || command.Err_Status == (short)ShuttleCarErr.LowBattery))
                 {
                     #region 鍒ゆ柇灏忚溅浣嶇疆鏃燗B闈笉涓嬪彂浠诲姟
                     short Position = 0;
@@ -226,7 +238,10 @@
                     {
                         var Message = $"{shuttleCar.DeviceName}鏃燗B闈�";
                         if (task.ExceptionMessage != Message)
+                        {
+                            task.ExceptionMessage = Message;
                             _taskService.UpdateData(task);
+                        }
                         return;
                     }
                     #endregion
@@ -252,7 +267,9 @@
                     }
                     else if (task.TaskType == (int)TaskOtherTypeEnum.RelocationCarCharging)
                     {
-                        shuttleCarTaskCommand.TaskType = (short)GetCarTaskType(ShuttleCarTaskType.Charging.ToString());
+                        shuttleCarTaskCommand.TaskType = task.TaskState == CarChargingTaskEnum.CarNew.ObjToInt() ?
+                            (short)GetCarTaskType(task.TaskType, shuttleCarTaskCommand.Direction) :
+                            (short)GetCarTaskType(ShuttleCarTaskType.Charging.ToString());
                     }
                     else
                         shuttleCarTaskCommand.TaskType = (short)GetCarTaskType(task.TaskType, shuttleCarTaskCommand.Direction);
@@ -262,8 +279,9 @@
                     {
                         if (shuttleCar.SendCommand(shuttleCarTaskCommand, shuttleCar.DeviceCode))
                         {
-                            if (!string.IsNullOrEmpty(task.Remark)) task.Remark = task.Remark + "宸蹭笅鍙�";
-                            task.TaskState = GetTaskState(task.TaskType);
+                            if (!string.IsNullOrEmpty(task.Remark) && task.TaskState == CarChargingTaskEnum.CarNew.ObjToInt())
+                                task.Remark = task.Remark + "宸蹭笅鍙�";
+                            task.TaskState = GetTaskState(task.TaskType, task.TaskState);
                             _taskService.UpdateData(task);
                         }
                     }
@@ -324,9 +342,8 @@
         /// </summary>
         /// <param name="TaskType"></param>
         /// <returns></returns>
-        int GetTaskState(int TaskType)
+        int GetTaskState(int TaskType, int state)
         {
-            int state = 0;
             switch (TaskType)
             {
                 case (int)TaskInboundTypeEnum.Inbound:
@@ -341,7 +358,9 @@
                     state = (int)TaskCarStatusEnum.ShuttleCar_Executing;
                     break;
                 case (int)TaskOtherTypeEnum.RelocationCarCharging:
-                    state = (int)CarChargingTaskEnum.ShuttleCar_Charging;
+                    state = state < (int)CarChargingTaskEnum.SC_CarFinish ?
+                        (int)CarChargingTaskEnum.ShuttleCar_Executing :
+                        (int)CarChargingTaskEnum.ShuttleCar_Charging;
                     break;
                 default:
                     break;
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs"
index 9c8b38c..dfe8b78 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/ShuttleCarJob/ShuttleCarJob.cs"
@@ -77,7 +77,7 @@
                         #region 鍒涘缓绉昏溅鍏呯數浠诲姟
                         if (command.Err_Status == (short)ShuttleCarErr.LowBattery || command.ElectricQuantity <= (short)ShuttleCarErr.LowBattery)
                         {
-                            var ShuttleCar = QueryCode(shuttleCar.DeviceCode);
+                            var ShuttleCar = QueryCode(shuttleCar.DeviceCode);//鍦ㄥ厖鐢典綅鐩存帴璁╃┛姊溅鍘诲厖鐢�
                             //鐢熸垚鍫嗗灈鏈虹Щ杞︿换鍔�&绌挎杞﹀厖鐢典换鍔�,鍒ゆ柇鏄惁鏈夌┛姊溅鍦ㄥ厖鐢�
                             Dt_Task _Task = _taskRepository.QueryFirst(x => x.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt());
                             if (_Task != null)
@@ -90,7 +90,6 @@
                                     {
                                         if (command1.Status == (short)ShuttleCarStatus.Charging && command1.ElectricQuantity >= 50)
                                         {
-                                            _taskService.AddRelocationCarTask(ShuttleCar.ShuttleCarPosition, "", ShuttleCar.ShuttleCarCode);
                                             shuttleCar1.SetValue(ShuttleCarDBName.TaskType, (short)ShuttleCarStatus.QuitCharging);
                                         }
                                     }
@@ -98,7 +97,16 @@
                             }
                             else
                             {
-                                _taskService.AddRelocationCarTask(ShuttleCar.ShuttleCarPosition, "003-002-001", ShuttleCar.ShuttleCarCode, ShuttleCarTaskType.Charging.ToString());
+                                //鍒ゆ柇鍏呯數浣嶆槸鍚︽湁杞�
+                                var ShuttleCar1 = _shuttleCarService.QueryShuttleCar("003-002-001");
+                                if (ShuttleCar1 != null && ShuttleCar1.ShuttleCarCode != shuttleCar.DeviceCode)
+                                {
+                                    _taskService.AddRelocationCarTask(ShuttleCar1.ShuttleCarPosition, "", ShuttleCar1.ShuttleCarCode);
+                                }
+                                else
+                                {
+                                    _taskService.AddRelocationCarTask(ShuttleCar.ShuttleCarPosition, "003-002-001", ShuttleCar.ShuttleCarCode, ShuttleCarTaskType.Charging.ToString());
+                                }
                             }
                         }
                         #endregion
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
index 20a859b..7a9f88c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Tasks/StackerCraneJob/CommonStackerCraneJob.cs"
@@ -65,12 +65,17 @@
                     #endregion
 
                     #region 浠诲姟瀹屾垚
-                    DeviceProtocolDetailDTO? deviceProtocolDetail = commonStackerCrane.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.ProtocalDetailValue == commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CompleteStatus).ToString() && x.DeviceProParamName == nameof(StackerCraneTaskCommandR.CompleteStatus));
-                    if (deviceProtocolDetail != null)
+                    var completeStatus = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CompleteStatus);
+                    if (completeStatus == 2 || completeStatus == 3)
                     {
-                        MethodInfo? method = GetType().GetMethod(deviceProtocolDetail.ProtocolDetailType);
-                        if (method != null) method.Invoke(this, new object[] { commonStackerCrane });
+                        NormalCompleted(commonStackerCrane);
                     }
+                    //DeviceProtocolDetailDTO? deviceProtocolDetail = commonStackerCrane.DeviceProtocolDetailDTOs.FirstOrDefault(x => x.ProtocalDetailValue == commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.CompleteStatus).ToString() && x.DeviceProParamName == nameof(StackerCraneTaskCommandR.CompleteStatus));
+                    //if (deviceProtocolDetail != null)
+                    //{
+                    //    MethodInfo? method = GetType().GetMethod(deviceProtocolDetail.ProtocolDetailType);
+                    //    if (method != null) method.Invoke(this, new object[] { commonStackerCrane });
+                    //}
                     #endregion
                     #region 浠诲姟閫昏緫澶勭悊
                     var onlinestate = commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.Onlinestate);
@@ -80,11 +85,11 @@
                         #region 鏌ヨ浠诲姟,閫昏緫澶勭悊
                         if (Enum.Parse<RunStatus>(commonStackerCrane.GetValue<StackerCraneDBName, short>(StackerCraneDBName.RunStatus).ToString()) == RunStatus.Standby)
                         {
-                            var Task = _taskService.GetTaskState(TaskType: (int)TaskOtherTypeEnum.RelocationCar);//鑾峰彇绉昏溅浠诲姟
+                            var Task = _taskService.GetTaskState((int)TaskCarStatusEnum.ShuttleCar_Finish, (int)TaskOtherTypeEnum.RelocationCar);//鑾峰彇绉昏溅浠诲姟
                             var Task1 = _taskService.GetTaskState((int)CarChargingTaskEnum.ShuttleCar_Finish, (int)TaskOtherTypeEnum.RelocationCarCharging);//鑾峰彇绉昏溅鍏呯數浠诲姟
                             if (Task != null)
                             {
-                                if (Task.TaskState == (int)TaskCarStatusEnum.ShuttleCar_Finish) SendTask(commonStackerCrane, Task);
+                                SendTask(commonStackerCrane, Task);
                             }
                             else if (Task1 != null)
                             {
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/1b491b5d-708a-47fa-8233-947a9dfe5dae.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/1b491b5d-708a-47fa-8233-947a9dfe5dae.vsidx"
deleted file mode 100644
index 758592d..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/1b491b5d-708a-47fa-8233-947a9dfe5dae.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/602f5cae-8926-4c6a-91e8-770b3f127a3d.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/602f5cae-8926-4c6a-91e8-770b3f127a3d.vsidx"
new file mode 100644
index 0000000..ada1853
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/602f5cae-8926-4c6a-91e8-770b3f127a3d.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/903d2997-d863-4f7f-ace5-9e0b1935c919.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/903d2997-d863-4f7f-ace5-9e0b1935c919.vsidx"
new file mode 100644
index 0000000..b2b4758
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/903d2997-d863-4f7f-ace5-9e0b1935c919.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9c38a34d-18e2-4e47-a9de-0141309ea5a8.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9c38a34d-18e2-4e47-a9de-0141309ea5a8.vsidx"
new file mode 100644
index 0000000..f85fc27
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/9c38a34d-18e2-4e47-a9de-0141309ea5a8.vsidx"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/a9f62c67-e5cb-4109-8694-4cec2518ac56.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/a9f62c67-e5cb-4109-8694-4cec2518ac56.vsidx"
deleted file mode 100644
index 6f21112..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/a9f62c67-e5cb-4109-8694-4cec2518ac56.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ae00f733-946e-47b3-ba7f-8fd0db44196e.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ae00f733-946e-47b3-ba7f-8fd0db44196e.vsidx"
deleted file mode 100644
index bdbf022..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/FileContentIndex/ae00f733-946e-47b3-ba7f-8fd0db44196e.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
index 1814280..190f45e 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.futdcache.v2"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
index bf02c7c..edf4a70 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/.suo"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin"
index b3d09e8..42f874c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/.vs/WIDESEA_WMSServer/v17/fileList.bin"
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
index 648514e..f68525c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
@@ -1,4 +1,5 @@
-锘縰sing Microsoft.AspNetCore.Mvc.RazorPages;
+锘縰sing Microsoft.AspNetCore.Mvc;
+using Microsoft.AspNetCore.Mvc.RazorPages;
 using OfficeOpenXml.FormulaParsing.Excel.Functions.DateTime;
 using SqlSugar;
 using System;
@@ -207,13 +208,28 @@
             return BaseDal.QueryFirst(x => x.RoadwayNo == locationInfo.RoadwayNo && x.Column == locationInfo.Column && x.Layer == locationInfo.Layer && x.Depth != locationInfo.Depth && x.Row != locationInfo.Row && (SqlFunc.Abs(x.Row - locationInfo.Row) == 1));
         }
 
-        public WebResponseContent GetPosition(string position)
+        public WebResponseContent GetPosition(string position, string position1)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
+                Dt_LocationInfo? locationInfo = null;
                 //Dt_LocationInfo locationInfo = BaseDal.QueryFirst(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && (x.EnableStatus == EnableStatusEnum.OnlyIn.ObjToInt() || x.EnableStatus == EnableStatusEnum.Normal.ObjToInt()) && (x.Row == 1 || x.Row == 3), _emptyAssignOrderBy);
-                Dt_LocationInfo locationInfo = BaseDal.QueryFirst(x => x.CurrentQty < x.MaxQty && x.LocationCode != position, _emptyAssignOrderBy);
+                string position2 = string.Empty;
+                string[] Codes = position1.Split("-");
+                var row = Convert.ToInt16(Codes[0]);
+                if (row < 3)
+                {
+                    position2 = row == 1 ? "002" + "-" + Codes[1] + "-" + Codes[2] : "001" + "-" + Codes[1] + "-" + Codes[2];
+                }
+                if (string.IsNullOrEmpty(position2))
+                {
+                    locationInfo = BaseDal.QueryFirst(x => x.CurrentQty < x.MaxQty && x.LocationCode != position && x.LocationCode != position1, _emptyAssignOrderBy);
+                }
+                else
+                {
+                    locationInfo = BaseDal.QueryFirst(x => x.CurrentQty < x.MaxQty && x.LocationCode != position && x.LocationCode != position1 && x.LocationCode != position2, _emptyAssignOrderBy);
+                }
                 if (locationInfo != null) content.OK(locationInfo.LocationCode);
             }
             catch (Exception ex)
@@ -222,5 +238,36 @@
             }
             return content;
         }
+        /// <summary>
+        /// 鑾峰彇璐т綅淇℃伅
+        /// </summary>
+        /// <param name="model"></param>
+        /// <returns></returns>
+        public WebResponseContent GetLocationInfo(SaveModel model)
+        {
+            WebResponseContent response = new WebResponseContent();
+            try
+            {
+                List<Dt_LocationInfo> locationInfos = BaseDal.QueryData(x => true);
+                var Freelocations = locationInfos.Where(x => x.LocationStatus == LocationStatusEnum.Free.ObjToInt()).ToList();
+                var Palletlocations = locationInfos.Where(x => x.LocationStatus == LocationStatusEnum.Pallet.ObjToInt()).ToList();
+                var InStocklocations = locationInfos.Where(x => x.LocationStatus != LocationStatusEnum.Free.ObjToInt() && x.LocationStatus != LocationStatusEnum.Pallet.ObjToInt()).ToList();
+                //Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
+                //keyValuePairs.Add("绌鸿揣浣�", Freelocations.Count);
+                //keyValuePairs.Add("绌烘墭鐩�", Palletlocations.Count);
+                //keyValuePairs.Add("鏈夎揣", InStocklocations.Count);
+                response.OK(data: new
+                {
+                    FreeQty = Freelocations.Count,
+                    PalletQty = Palletlocations.Count,
+                    InStockQty = InStocklocations.Count,
+                });
+            }
+            catch (Exception ex)
+            {
+                response.Error(ex.Message);
+            }
+            return response;
+        }
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
index 5e5bc46..cfcb0f4 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_IBasicService/ILocationInfoService.cs"
@@ -29,7 +29,7 @@
         WebResponseContent LocationEnableStatus(int key);
 
         WebResponseContent LocationDisableStatus(int key);
-        WebResponseContent GetPosition(string position);
+        WebResponseContent GetPosition(string position, string position1);
         WebResponseContent UpdateEnableStatus(SaveModel saveModel);
         /// <summary>
         /// 鑾峰彇绌挎杞﹀厖鐢靛彲鍏ヨ揣浣�
@@ -63,5 +63,6 @@
         WebResponseContent UpdateStatus(List<string> locationCodes,int Statu);
         WebResponseContent GetLocationCodes();
         object GetLocationLayer();
+        WebResponseContent GetLocationInfo(SaveModel model);
     }
 }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs"
new file mode 100644
index 0000000..848802a
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/LargeScreenController.cs"
@@ -0,0 +1,55 @@
+锘縰sing Microsoft.AspNetCore.Authorization;
+using Microsoft.AspNetCore.Http;
+using Microsoft.AspNetCore.Mvc;
+using SqlSugar;
+using SqlSugar.Extensions;
+using WIDESEA_Common.TaskEnum;
+using WIDESEA_Core;
+using WIDESEA_Core.Enums;
+using WIDESEA_IBasicService;
+using WIDESEA_IInboundRepository;
+using WIDESEA_ITaskInfoRepository;
+using WIDESEA_Model.Models;
+using WIDESEAWCS_DTO.WCSInfo;
+
+namespace WIDESEA_WMSServer.Controllers
+{
+    [Route("api/LargeScreen")]
+    [ApiController, AllowAnonymous]
+    public class LargeScreenController : Controller
+    {
+        private readonly ILocationInfoService _locationInfoService;
+        private readonly ITaskRepository _taskRepository;
+        private readonly ITask_HtyRepository _taskHtyRepository;
+        private readonly IInboundOrderDetailRepository _inboundOrderDetailRepository;
+        public LargeScreenController(ILocationInfoService locationInfoService, ITaskRepository taskRepository, ITask_HtyRepository taskHtyRepository, IInboundOrderDetailRepository inboundOrderDetailRepository)
+        {
+            _locationInfoService = locationInfoService;
+            _taskRepository = taskRepository;
+            _taskHtyRepository = taskHtyRepository;
+            _inboundOrderDetailRepository = inboundOrderDetailRepository;
+        }
+
+        [HttpPost, Route("GetLocationInfo")]
+        public WebResponseContent GetLocationInfo([FromBody] SaveModel model)
+        {
+            return _locationInfoService.GetLocationInfo(model);
+        }
+
+        [HttpPost, Route("GetTask")]
+        public WebResponseContent GetTask([FromBody] SaveModel model)
+        {
+            List<Dt_Task_Hty> task_Hties = _taskHtyRepository.QueryData(x => x.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt()).ToList();
+            var task_htys = task_Hties.Where(x => x.InsertTime.Date == DateTime.Now.Date).ToList();
+            var tasks = _taskRepository.QueryData(x => x.TaskType == TaskInboundTypeEnum.Inbound.ObjToInt()).ToList();
+            List<Dt_InboundOrderDetail> inboundOrderDetails = _inboundOrderDetailRepository.QueryData(x => x.OrderDetailStatus <= OrderDetailStatusEnum.GroupAndInbound.ObjToInt()).ToList();
+            return WebResponseContent.Instance.OK(data: new
+            {
+                task_Htiesqty = task_Hties.Count,
+                task_htysqty = task_htys.Count,
+                tasksqty = tasks.Count,
+                inboundOrderDetailsqty = inboundOrderDetails.Sum(x => x.OrderQuantity - x.OverInQuantity)
+            });
+        }
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/WCSInterfaceController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/WCSInterfaceController.cs"
index d10438b..8662a59 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/WCSInterfaceController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_WMSServer/Controllers/Interface/WCSInterfaceController.cs"
@@ -25,9 +25,9 @@
         /// <param name="position"></param>
         /// <returns></returns>
         [HttpPost, Route("GetPosition")]
-        public WebResponseContent GetPosition(string position)
+        public WebResponseContent GetPosition(string position, string position1)
         {
-            return _locationInfoService.GetPosition(position);
+            return _locationInfoService.GetPosition(position,position1);
         }
         /// <summary>
         /// 淇敼浠诲姟鐘舵��

--
Gitblit v1.9.3