From fbc6fae6c793220d0b67ac603ce9bbf22837de79 Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期四, 19 六月 2025 17:50:47 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0aec83b0-940b-410b-b815-b7567a3ab526.vsidx |    0 
 /dev/null                                                                                                    |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs                                       |    1 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user            |    2 
 项目代码/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/90edce4e-5c7d-43a1-a1ca-a45f82992279.vsidx |    0 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs                              |    4 
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs                           |  208 +++++++++++++++++++++++++++++++++++++++++
 项目代码/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js                                                    |   39 +++++--
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/ManualTaskEnum.cs                                      |   28 +++++
 9 files changed, 268 insertions(+), 14 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js"
index 85dcb16..86b29e1 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Client/src/extension/taskinfo/task.js"
@@ -25,19 +25,35 @@
             let ManualBtn = this.buttons.find(x => x.value == 'Manual');
             if (ManualBtn) {
                 ManualBtn.data = [
-                    // {
-                    //     name: '瀹屾垚',
-                    //     icon: 'el-icon-check',
-                    //     onClick: () => {
-                    //         params.Extra = 1
-                    //         this.Manual(params, "瀹屾垚")
-                    //     }
-                    // },
                     {
-                        name: '鍙栨秷',
-                        icon: 'el-icon-delete',
+                        name: '閲嶆柊涓嬪彂鍫嗗灈鏈轰换鍔�',
+                        icon: 'el-icon-check',
+                        onClick: () => {
+                            params.Extra = 0
+                            this.Manual(params, "閲嶆柊涓嬪彂鍫嗗灈鏈�")
+                        }
+                    },
+                    {
+                        name: '瀹屾垚鍫嗗灈鏈轰换鍔�',
+                        icon: 'el-icon-check',
+                        onClick: () => {
+                            params.Extra = 1
+                            this.Manual(params, "瀹屾垚鍫嗗灈鏈�")
+                        }
+                    },
+                    {
+                        name: '瀹屾垚浠诲姟',
+                        icon: 'el-icon-check',
                         onClick: () => {
                             params.Extra = 2
+                            this.Manual(params, "瀹屾垚")
+                        }
+                    },
+                    {
+                        name: '鍙栨秷浠诲姟',
+                        icon: 'el-icon-delete',
+                        onClick: () => {
+                            params.Extra = 3
                             this.Manual(params, "鍙栨秷")
                         }
                     }
@@ -73,6 +89,7 @@
         Manual(params, Remark) {
             let rows = this.$refs.table.getSelected();
             if (rows.length == 0) return this.$error("璇烽�夋嫨浠诲姟!");
+            if (rows.length > 1) return this.$error("鍙彲閫夋嫨涓�鏉′换鍔�!");
             params.DelKeys = rows.map(x => {
                 return x[this.table.key];
             });
@@ -85,7 +102,7 @@
                 showClose: true,//鏄惁鏄剧ず鍙充笂瑙掑叧闂寜閽�
                 type: "warning",//鎻愮ず绫诲瀷 success:鎴愬姛/info:淇℃伅/warning:璀﹀憡/error:鎶ラ敊
             }).then(() => {
-                this.http.post("api/Task/ManualTask", params, "姝e湪" + Remark + "浠诲姟....").then(x => {
+                this.http.post("api/Task/ManualTask?TaskId="+params.DelKeys+"&TaskType="+params.Extra, {}, "姝e湪" + Remark + "浠诲姟....").then(x => {
                     if (!x.status) return this.$error(x.message);
                     this.$success(Remark + "浠诲姟鎴愬姛!");
                     this.refresh();
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0aec83b0-940b-410b-b815-b7567a3ab526.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0aec83b0-940b-410b-b815-b7567a3ab526.vsidx"
new file mode 100644
index 0000000..ef932d8
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/0aec83b0-940b-410b-b815-b7567a3ab526.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/90edce4e-5c7d-43a1-a1ca-a45f82992279.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/90edce4e-5c7d-43a1-a1ca-a45f82992279.vsidx"
new file mode 100644
index 0000000..60bb9be
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/90edce4e-5c7d-43a1-a1ca-a45f82992279.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/bb49972a-b044-4a21-ac51-b32604fe6d49.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bb49972a-b044-4a21-ac51-b32604fe6d49.vsidx"
deleted file mode 100644
index 4d430b0..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/bb49972a-b044-4a21-ac51-b32604fe6d49.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/f14b15c4-d0de-4059-a7fd-8efd859d0da6.vsidx" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f14b15c4-d0de-4059-a7fd-8efd859d0da6.vsidx"
deleted file mode 100644
index 6bf8aad..0000000
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/.vs/WIDESEAWCS_Server/FileContentIndex/f14b15c4-d0de-4059-a7fd-8efd859d0da6.vsidx"
+++ /dev/null
Binary files differ
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/ManualTaskEnum.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/ManualTaskEnum.cs"
new file mode 100644
index 0000000..e49f465
--- /dev/null
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Common/TaskEnum/ManualTaskEnum.cs"
@@ -0,0 +1,28 @@
+锘縰sing System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace WIDESEAWCS_Common.TaskEnum
+{
+    public enum ManualTaskEnum
+    {
+        /// <summary>
+        /// 閲嶆柊涓嬪彂鍫嗗灈鏈轰换鍔�
+        /// </summary>
+        SCTaskSend,
+        /// <summary>
+        /// 瀹屾垚鍫嗗灈鏈轰换鍔�
+        /// </summary>
+        SCTaskCompleted,
+        /// <summary>
+        /// 瀹屾垚
+        /// </summary>
+        Completed,
+        /// <summary>
+        /// 鍙栨秷
+        /// </summary>
+        Cancel
+    }
+}
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
index 751f62a..28e3886 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_ITaskInfoService/ITaskService.cs"
@@ -282,6 +282,7 @@
         /// <returns></returns>
         WebResponseContent AGVUpdateTaskState(AGVUpdateTaskDTO saveModel);
         WebResponseContent OutTaskFinish(string address);
+        WebResponseContent ManualTask(int TaskId, int TaskType);
         WebResponseContent ManualTask(SaveModel saveModel);
         WebResponseContent ModifyBarcode(WMSTaskDTO taskDTO);
     }
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
index c2f6d8d..fb1b489 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Controllers/Task/TaskController.cs"
@@ -33,9 +33,9 @@
 
 
         [HttpPost, Route("ManualTask"), AllowAnonymous]
-        public WebResponseContent ManualTask([FromBody] SaveModel saveModel)
+        public WebResponseContent ManualTask(int TaskId, int TaskType)
         {
-            return Service.ManualTask(saveModel);
+            return Service.ManualTask(TaskId, TaskType);
         }
 
         [HttpPost, HttpGet, Route("UpdateTaskExceptionMessage")]
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user"
index 2357434..6b3854c 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_Server/Properties/PublishProfiles/FolderProfile.pubxml.user"
@@ -6,7 +6,7 @@
 <Project>
   <PropertyGroup>
     <_PublishTargetUrl>E:\IISText\鑺滄箹涓変竴\WCS</_PublishTargetUrl>
-    <History>True|2025-06-17T07:08:30.3988621Z;True|2025-06-17T11:49:45.7757057+08:00;False|2025-06-17T11:46:12.2872897+08:00;True|2025-06-17T11:14:34.8780060+08:00;True|2025-06-17T10:58:01.4890300+08:00;True|2025-05-20T11:49:19.9344988+08:00;True|2025-05-19T16:43:32.2157734+08:00;True|2025-05-19T16:12:01.9378787+08:00;True|2025-05-15T16:58:47.2930537+08:00;True|2025-05-15T13:17:15.3596644+08:00;True|2025-05-15T13:11:17.2616075+08:00;True|2025-05-15T12:57:49.7942020+08:00;True|2025-05-15T12:38:37.7925022+08:00;True|2025-05-15T12:28:15.6975809+08:00;True|2025-05-15T11:44:00.9991686+08:00;True|2025-05-15T10:37:45.5900920+08:00;True|2025-05-14T11:31:54.9438366+08:00;True|2025-05-14T09:59:15.2570833+08:00;True|2025-05-14T09:57:55.8054307+08:00;True|2025-05-14T09:39:18.3194886+08:00;True|2025-05-13T17:13:53.4476748+08:00;True|2025-05-13T15:21:11.2441407+08:00;True|2025-05-13T10:39:40.0223843+08:00;True|2025-05-09T11:16:41.1746344+08:00;True|2025-04-27T19:58:33.9706872+08:00;True|2025-04-27T14:52:52.9853720+08:00;True|2025-04-21T17:54:03.6534614+08:00;True|2025-04-19T10:28:25.0898569+08:00;True|2025-04-17T14:04:50.3243452+08:00;True|2025-03-27T16:23:43.2657011+08:00;True|2025-03-25T12:01:47.0052741+08:00;True|2025-02-14T17:36:18.5767695+08:00;True|2025-02-14T14:39:49.5856199+08:00;</History>
+    <History>True|2025-06-19T09:43:29.0660951Z;True|2025-06-19T15:33:15.5169520+08:00;True|2025-06-17T15:08:30.3988621+08:00;True|2025-06-17T11:49:45.7757057+08:00;False|2025-06-17T11:46:12.2872897+08:00;True|2025-06-17T11:14:34.8780060+08:00;True|2025-06-17T10:58:01.4890300+08:00;True|2025-05-20T11:49:19.9344988+08:00;True|2025-05-19T16:43:32.2157734+08:00;True|2025-05-19T16:12:01.9378787+08:00;True|2025-05-15T16:58:47.2930537+08:00;True|2025-05-15T13:17:15.3596644+08:00;True|2025-05-15T13:11:17.2616075+08:00;True|2025-05-15T12:57:49.7942020+08:00;True|2025-05-15T12:38:37.7925022+08:00;True|2025-05-15T12:28:15.6975809+08:00;True|2025-05-15T11:44:00.9991686+08:00;True|2025-05-15T10:37:45.5900920+08:00;True|2025-05-14T11:31:54.9438366+08:00;True|2025-05-14T09:59:15.2570833+08:00;True|2025-05-14T09:57:55.8054307+08:00;True|2025-05-14T09:39:18.3194886+08:00;True|2025-05-13T17:13:53.4476748+08:00;True|2025-05-13T15:21:11.2441407+08:00;True|2025-05-13T10:39:40.0223843+08:00;True|2025-05-09T11:16:41.1746344+08:00;True|2025-04-27T19:58:33.9706872+08:00;True|2025-04-27T14:52:52.9853720+08:00;True|2025-04-21T17:54:03.6534614+08:00;True|2025-04-19T10:28:25.0898569+08:00;True|2025-04-17T14:04:50.3243452+08:00;True|2025-03-27T16:23:43.2657011+08:00;True|2025-03-25T12:01:47.0052741+08:00;True|2025-02-14T17:36:18.5767695+08:00;True|2025-02-14T14:39:49.5856199+08:00;</History>
     <LastFailureDetails />
   </PropertyGroup>
 </Project>
\ No newline at end of file
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs"
index 8010356..56e84de 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/PartialTaskService_Manual.cs"
@@ -7,12 +7,220 @@
 using WIDESEAWCS_Common.TaskEnum;
 using WIDESEAWCS_Core;
 using WIDESEAWCS_DTO.TaskInfo;
+using WIDESEAWCS_ITaskInfoService;
 using WIDESEAWCS_Model.Models;
+using WIDESEAWCS_QuartzJob;
 
 namespace WIDESEAWCS_TaskInfoService
 {
     public partial class TaskService
     {
+        public WebResponseContent ManualTask(int TaskId, int TaskType)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                var Task = BaseDal.QueryFirst(x => x.TaskId == TaskId);
+                if (Task == null) throw new Exception("鏈壘鍒颁换鍔′俊鎭�");
+                switch ((ManualTaskEnum)TaskType)
+                {
+                    case ManualTaskEnum.SCTaskSend:
+                        content = SCTaskSend(Task);
+                        break;
+                    case ManualTaskEnum.SCTaskCompleted:
+                        content = SCTaskCompleted(Task);
+                        break;
+                    case ManualTaskEnum.Completed:
+                        content = Completed(Task);
+                        break;
+                    case ManualTaskEnum.Cancel:
+                        content = Cancel(Task);
+                        break;
+                    default:
+                        break;
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 閲嶆柊涓嬪彂鍫嗗灈鏈轰换鍔�
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent SCTaskSend(Dt_Task task)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                if (TaskInboundTypes.Contains(task.TaskType))
+                {
+                    if (task.TaskState != TaskInStatusEnum.SC_InExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄叆搴撴墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+                    task.TaskState = TaskInStatusEnum.Line_InFinish.ObjToInt();
+                    content = UpdateData(task);
+                }
+                else if (TaskOutboundTypes.Contains(task.TaskType))
+                {
+                    if (task.TaskState != TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄嚭搴撴墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+                    task.TaskState = TaskOutStatusEnum.Car_OutFinish.ObjToInt();
+                    content = UpdateData(task);
+                }
+                else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+                {
+                    if (task.TaskState != TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ搴撴墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+                    task.TaskState = TaskRelocationStatusEnum.CarSource_Finish.ObjToInt();
+                    content = UpdateData(task);
+
+                }
+                else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
+                {
+                    if (task.TaskState != TaskCarStatusEnum.SC_CarExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+                    task.TaskState = TaskCarStatusEnum.ShuttleCar_Finish.ObjToInt();
+                    content = UpdateData(task);
+                }
+                else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+                {
+                    if (task.TaskState != CarChargingTaskEnum.CarChargingSC_CarExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑锛屼笉鍙噸鏂颁笅鍙�");
+                    task.TaskState = CarChargingTaskEnum.CarCharging_Finish.ObjToInt();
+                    content = UpdateData(task);
+                }
+            }
+            catch (Exception ex)
+            {
+                content.Error(ex.Message);
+            }
+            return content;
+        }
+        /// <summary>
+        /// 瀹屾垚鍫嗗灈鏈轰换鍔�
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent SCTaskCompleted(Dt_Task task)
+        {
+            try
+            {
+                if (TaskInboundTypes.Contains(task.TaskType))
+                {
+                    if (task.TaskState != TaskInStatusEnum.SC_InExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄叆搴撴墽琛屼腑");
+                }
+                else if (TaskOutboundTypes.Contains(task.TaskType))
+                {
+                    if (task.TaskState != TaskOutStatusEnum.SC_OutExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈哄嚭搴撴墽琛屼腑");
+                }
+                else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+                {
+                    if (task.TaskState != TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ搴撴墽琛屼腑");
+                }
+                else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
+                {
+                    if (task.TaskState != TaskCarStatusEnum.SC_CarExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑");
+                }
+                else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+                {
+                    if (task.TaskState != CarChargingTaskEnum.CarChargingSC_CarExecuting.ObjToInt())
+                        throw new Exception("浠诲姟鐘舵�佷笉绛変簬鍫嗗灈鏈虹Щ杞︽墽琛屼腑");
+                }
+                return StackCraneTaskCompleted(task.TaskNum);
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 瀹屾垚浠诲姟
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent Completed(Dt_Task task)
+        {
+            try
+            {
+                if (TaskInboundTypes.Contains(task.TaskType))
+                {
+                    if (task.TaskState < TaskInStatusEnum.SC_InFinish.ObjToInt())
+                    {
+                        task.TaskState = TaskInStatusEnum.SC_InExecuting.ObjToInt();
+                        UpdateData(task);
+                        StackCraneTaskCompleted(task.TaskNum);
+                    }
+                    AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+                }
+                else if (TaskOutboundTypes.Contains(task.TaskType))
+                {
+                    if (task.TaskState < TaskOutStatusEnum.SC_OutFinish.ObjToInt())
+                    {
+                        task.TaskState = TaskOutStatusEnum.SC_OutExecuting.ObjToInt();
+                        UpdateData(task);
+                        StackCraneTaskCompleted(task.TaskNum);
+                    }
+                    AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+                }
+                else if (task.TaskType == TaskRelocationTypeEnum.Relocation.ObjToInt())
+                {
+                    if (task.TaskState < TaskRelocationStatusEnum.SC_RelocationFinish.ObjToInt())
+                    {
+                        task.TaskState = TaskRelocationStatusEnum.SC_RelocationExecuting.ObjToInt();
+                        UpdateData(task);
+                        StackCraneTaskCompleted(task.TaskNum);
+                    }
+                    AddTask_Hty(task, TaskOperateTypeEnum.ManualCompletion);
+                }
+                else if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt())
+                {
+                    task.TaskState = TaskCarStatusEnum.SC_CarFinish.ObjToInt();
+                    UpdateData(task);
+                }
+                else if (task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+                {
+                    task.TaskState = CarChargingTaskEnum.CarChargingSC_CarFinish.ObjToInt();
+                    UpdateData(task);
+                }
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+        /// <summary>
+        /// 鍙栨秷浠诲姟
+        /// </summary>
+        /// <param name="task"></param>
+        /// <returns></returns>
+        public WebResponseContent Cancel(Dt_Task task)
+        {
+            try
+            {
+                if (task.TaskType == TaskOtherTypeEnum.RelocationCar.ObjToInt() || task.TaskType == TaskOtherTypeEnum.RelocationCarCharging.ObjToInt())
+                    AddTask_Hty(task, TaskOperateTypeEnum.ManualDeletion);
+                if (!TaskInboundTypes.Contains(task.TaskType))
+                    throw new Exception("鏃犳潈闄�");
+                if (task.TaskState > TaskInStatusEnum.Line_InExecuting.ObjToInt() && !string.IsNullOrEmpty(task.TargetAddress))
+                    throw new Exception("宸插垎閰嶇洰鏍囧湴鍧�,涓嶅彲鍙栨秷");
+                task.TaskState = TaskInStatusEnum.InCancel.ObjToInt();
+                BaseDal.UpdateData(task);
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
         /// <summary>
         /// 浜哄伐鎿嶄綔浠诲姟
         /// 1锛氬畬鎴愶紱2锛氬彇娑�

--
Gitblit v1.9.3