From f65bfbd6e84fdffc71353acfe7c9ccca5b117c45 Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期五, 23 一月 2026 17:28:41 +0800
Subject: [PATCH] 手动取消、异常上报和数据库维护脚本

---
 项目代码/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 60 insertions(+), 0 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
index c94b3ea..062769d 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCSServices/WIDESEAWCS_TaskInfoService/TaskService.cs"
@@ -809,6 +809,65 @@
             return content;
         }
         /// <summary>
+        /// 浜哄伐鎵嬪姩鍙栨秷鎸囧畾浠诲姟
+        /// </summary>
+        /// <param name="taskNum">浠诲姟缂栧彿</param>
+        /// <returns>鎿嶄綔缁撴灉</returns>
+        public WebResponseContent ManualTaskCancellation(int taskNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                // 1. 鑾峰彇浠诲姟淇℃伅
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                if (task == null)return content.Error($"浠诲姟{taskNum}涓嶅瓨鍦�");
+
+                TaskTypeGroup group = task.TaskType.GetTaskTypeGroup();
+                if (group == TaskTypeGroup.InboundGroup)// 鍏ュ簱浠诲姟鍙栨秷
+                {
+                    // 鑾峰彇鐩爣璐т綅
+                    Dt_LocationInfo locationInfo = _locationInfoRepository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+                    if (locationInfo == null)return content.Error($"鐩爣璐т綅{task.TargetAddress}涓嶅瓨鍦�");
+                    // 楠岃瘉璐т綅鐘舵��
+                    if (locationInfo.LocationStatus != LocationStatusEnum.Lock.ObjToInt())
+                        return content.Error($"{task.TargetAddress}璐т綅鐘舵�佸紓甯革紝鏃犳硶鍙栨秷");
+
+                    // 鎭㈠璐т綅鐘舵��
+                    locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt(); // 鎭㈠涓虹┖闂茬姸鎬�
+                    locationInfo.PalletCode = ""; // 娓呯┖鎵樼洏鍙�
+                    // 鏇存柊鏁版嵁搴�
+                    _unitOfWorkManage.BeginTran();
+                    _locationInfoRepository.UpdateData(locationInfo);
+                    BaseDal.DeleteAndMoveIntoHty(task, OperateTypeEnum.浜哄伐鍒犻櫎);
+                    _unitOfWorkManage.CommitTran();
+                    // 璁板綍鐘舵�佸彉鏇�
+                    _locationStatusChangeRecordService.AddLocationStatusChangeRecord(
+                        locationInfo,
+                        LocationStatusEnum.Lock,
+                        LocationStatusEnum.Free,
+                        LocationChangeType.InboundCancelled,
+                        task.TaskNum
+                    );
+                    content.OK("浠诲姟鍙栨秷鎴愬姛");
+                }
+                else
+                {
+                    content.Error("鍙兘鍏ュ簱浠诲姟鍙栨秷锛�");
+                }
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error($"鍙栨秷澶辫触: {ex.Message}");
+                // 璁板綍璇︾粏閿欒
+                _taskExecuteDetailService.AddTaskExecuteDetail(
+                    new Dt_Task { TaskNum = taskNum },
+                    $"浠诲姟鍙栨秷寮傚父: {ex.Message}"
+                );
+            }
+            return content;
+        }
+        /// <summary>
         /// 浠诲姟鍙栨秷
         /// </summary>
         /// <returns></returns>
@@ -1077,5 +1136,6 @@
             }
             return content;
         }
+
     }
 }

--
Gitblit v1.9.3