From bfcd7f5b405e431a5c07fe3fa77d74c892d4e66b Mon Sep 17 00:00:00 2001
From: xiazhengtongxue <133085197+xiazhengtongxue@users.noreply.github.com>
Date: 星期四, 19 三月 2026 15:52:42 +0800
Subject: [PATCH] fix: 修复出入库冲突拦截,系统位置与实际位置的映射和修复

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WMSCruJob.cs |  385 +++++++++----------------------------------------------
 1 files changed, 63 insertions(+), 322 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WMSCruJob.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WMSCruJob.cs"
index f186aaf..56c1438 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WMSCruJob.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/WMSCruJob.cs"
@@ -40,6 +40,7 @@
     {
         private readonly ILogger<WMSCruJob> _logger;
         private Timer _timer;
+        private Timer _timer2;
         private readonly ITaskService _taskService;
         private readonly ILocationInfoService _locationInfoService;
         private readonly IStockInfoService _stockInfoService;
@@ -56,113 +57,74 @@
             _taskService=taskService;
         }
         private static readonly object _taskProcessLock = new object();
-        private const int TASK_PROCESS_TIMEOUT = 3000; // 3绉掕秴鏃�
+        private const int TASK_PROCESS_TIMEOUT = 1000; // 2绉掕秴鏃�
+        private readonly Queue<int> _deviceQueueSC = new Queue<int>();
 
         public Task StartAsync(CancellationToken cancellationToken)
         {
-            _timer = new Timer(DoWorkWheel, null, TimeSpan.Zero, TimeSpan.FromSeconds(3));
+            // 鍒濆鍖栬澶囬槦鍒楋紙1-5锛�
+            for (int i = 1; i <= 5; i++)
+            {
+                _deviceQueueSC.Enqueue(i);
+            }
+
+            _timer = new Timer(SCProcessNextDevice, null, TimeSpan.Zero, TimeSpan.FromSeconds(1));
+            //_timer2 = new Timer(PLCDoDeciceWork, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(2));
             return Task.CompletedTask;
         }
 
-        public static List<string> InStationareaList = new List<string>() { "1113", "1114", "1115", "1116", "1117", "1118", "1119", "1120", "1121", "1122" };
-
-        private void DoWorkWheel(object state)
+        //鍫嗗灈鏈洪槦鍒�
+        private void SCProcessNextDevice(object state)
         {
-            if (!Monitor.TryEnter(_taskProcessLock, TASK_PROCESS_TIMEOUT))
-            {
-                return;
-            }
-
+            if (!Monitor.TryEnter(_taskProcessLock, TASK_PROCESS_TIMEOUT)) return;
             try
             {
-                // 瀹氫箟鐘舵�佸父閲忥紝閬垮厤榄旀硶鏁板瓧
-                const int PLC_IN_FINISH = (int)InTaskStatusEnum.PLC_InFinish;
-                const int PLC_IN_InNew = (int)InTaskStatusEnum.InNew;
-                const int OUT_NEW = (int)OutTaskStatusEnum.OutNew;
-                const int SC_OUT_FINISH = (int)OutTaskStatusEnum.SC_OutFinish;
-                const int SC_IN_EXECUTING = (int)InTaskStatusEnum.SC_IntExecuting;
-                const int SC_OUT_EXECUTING = (int)OutTaskStatusEnum.SC_OutExecuting;
-                const int RELOCATION_EXECUTING = (int)RelocationTaskStatusEnum.RelocationExecuting;
-                const int PLC_OUT_EXECUTING = (int)OutTaskStatusEnum.PLC_OutExecuting;
+                if (_deviceQueueSC.Count == 0)
+                    return;
 
-                // 鑾峰彇褰撳墠浠诲姟鏁版嵁
-                List<Dt_Task> allTasks = _taskService.Repository.QueryData();
+                int deviceId = _deviceQueueSC.Dequeue();
 
-                // 鑾峰彇宸烽亾瓒呰繃3涓换鍔$殑璺
-                HashSet<string> excludedRoadways = allTasks
-                    .Where(x => x.NumberSsuances > 3)
-                    .Select(x => x.Roadway)
-                    .Distinct()
-                    .ToHashSet();
-
-                // 杩囨护闇�瑕佸鐞嗙殑浠诲姟
-                List<Dt_Task> tasksToProcess = allTasks
-                    .Where(x =>
-                        (x.TaskStatus == PLC_IN_FINISH ||
-                         x.TaskStatus == OUT_NEW ||
-                         x.TaskStatus == SC_OUT_FINISH || (x.TaskStatus == PLC_IN_InNew && InStationareaList.Contains(x.SourceAddress))) &&
-                        !excludedRoadways.Contains(x.Roadway))
-                    .ToList();
-
-                // 鎸夌姸鎬佸垎缁勫鐞嗭紝鍑忓皯閲嶅鏌ヨ
-                ProcessInAndNewTasks(tasksToProcess, allTasks, excludedRoadways);   //涓嬪彂鍫嗗灈鏈�
-                ProcessOutFinishTasks(tasksToProcess, allTasks);    //涓嬪彂杈撻�佺嚎浠诲姟
-                ProcessInPalltask(tasksToProcess, allTasks);
-
-            }
-            catch (Exception ex)
-            {
-                Console.WriteLine($"浠诲姟澶勭悊寮傚父锛歿ex.Message}");
+                try
+                {
+                    SCDoDeviceWork(deviceId);
+                    _deviceQueueSC.Enqueue(deviceId);
+                    PLCDoDeciceWork();
+                }
+                catch (Exception ex)
+                {
+                    _deviceQueueSC.Enqueue(deviceId);
+                    Console.WriteLine($"璁惧 {deviceId} 鎵ц澶辫触: {ex.Message}");
+                }
             }
             finally
             {
-                // 蹇呴』閲婃斁閿侊紝鍚﹀垯浼氬鑷存閿�
                 Monitor.Exit(_taskProcessLock);
             }
-
-
         }
 
-        private void ProcessInAndNewTasks(List<Dt_Task> tasksToProcess, List<Dt_Task> allTasks, HashSet<string> excludedRoadways)
+        //鎵ц鏂规硶
+        private void SCDoDeviceWork(int deviceId)
         {
             const int PLC_IN_FINISH = (int)InTaskStatusEnum.PLC_InFinish;
-            const int OUT_NEW = (int)OutTaskStatusEnum.OutNew;
             const int SC_IN_EXECUTING = (int)InTaskStatusEnum.SC_IntExecuting;
             const int SC_OUT_EXECUTING = (int)OutTaskStatusEnum.SC_OutExecuting;
-            const int RELOCATION_EXECUTING = (int)RelocationTaskStatusEnum.RelocationExecuting;
-            const int RELOCCATION_NEW = (int)RelocationTaskStatusEnum.RelocationNew;
-
-            var inAndNewTasks = tasksToProcess
-                .Where(x => x.TaskStatus == PLC_IN_FINISH || x.TaskStatus == OUT_NEW).OrderBy(x=>x.CreateDate)
-                .ToList();
-            if(inAndNewTasks.Count > 0)
+            try
             {
-                foreach (var task in inAndNewTasks)
+                //鍒ゆ柇褰撳墠鍫嗗灈鏈烘槸鍚︽湁鎵ц浠诲姟
+                if (_taskService.CurrentTaskProgress(deviceId.ToString())) return;
+                // 鑾峰彇褰撳墠鍫嗗灈鏈轰换鍔�
+                List<Dt_Task> taskList = _taskService.GetaskQueue(deviceId.ToString());
+                if (taskList.Count == 0) return;
+
+                foreach (Dt_Task task in taskList)
                 {
-                    // 妫�鏌ュ悓涓�宸烽亾鏄惁鏈夋鍦ㄦ墽琛岀殑浠诲姟
-                    bool hasExecutingTask = allTasks.Any(x =>
-                        x.TaskId != task.TaskId &&
-                        x.Roadway == task.Roadway &&
-                        (x.TaskStatus == SC_IN_EXECUTING ||
-                         x.TaskStatus == SC_OUT_EXECUTING ||
-                         x.TaskStatus == RELOCATION_EXECUTING));
-
-                    if (hasExecutingTask)
-                        continue;
-
-                    if (task.TaskStatus == OUT_NEW)
+                    WebResponseContent webResponse = JudgmentIsRelocations(task);
+                    if (!webResponse.Status)
                     {
-                        bool SCNewTasks = allTasks.Any(x => x.TaskStatus != OUT_NEW && x.TargetAddress == task.TargetAddress);
-                        if (SCNewTasks)
-                            continue;
+                        WriteLog.Write_Log("WMS_绉诲簱鏁呴殰", $"绉诲簱杩斿洖澶辫触鍐呭", "澶辫触", $"绉诲簱澶辫触,鍘熷洜锛歿webResponse.Message}");
+                        return;
                     }
 
-                    //鍒ゆ柇鏄惁闇�瑕佺Щ搴�
-                    WebResponseContent webResponse = JudgmentIsRelocations(task);
-                    if (!webResponse.Status) continue;
-
-
-                    // 涓嬪彂鍫嗗灈鏈轰换鍔�
                     WCSginseng result = _taskService.SC_IssueTasks(
                         task.TaskId,
                         int.Parse(task.Roadway),
@@ -175,78 +137,38 @@
 
                     UpdateTaskStatus(task, result,
                         successStatus: task.TaskStatus == PLC_IN_FINISH ? SC_IN_EXECUTING : SC_OUT_EXECUTING, 1);
+                    return;
                 }
             }
-
-            
-        }
-
-        private void ProcessOutFinishTasks(List<Dt_Task> tasksToProcess, List<Dt_Task> allTasks)
-        {
-            const int SC_OUT_FINISH = (int)OutTaskStatusEnum.SC_OutFinish;
-            const int PLC_OUT_EXECUTING = (int)OutTaskStatusEnum.PLC_OutExecuting;
-
-            var outFinishTasks = tasksToProcess
-                .Where(x => x.TaskStatus == SC_OUT_FINISH)
-                .ToList();
-            if(outFinishTasks.Count > 0)
+            catch (Exception ex)
             {
-                foreach (var task in outFinishTasks)
-                {
-                    // 妫�鏌ュ悓涓�宸烽亾鏄惁鏈夊叾浠栧凡瀹屾垚鐨勪换鍔�
-                    bool hasOtherFinishTask = allTasks.Any(x =>
-                        x.Roadway == task.Roadway &&
-                        x.TaskStatus == SC_OUT_FINISH &&
-                        x.TaskId != task.TaskId);
-
-                    if (hasOtherFinishTask)
-                        continue;
-
-                    // 涓嬪彂PLC浠诲姟
-                    WCSginseng result = _taskService.PLC_IssueTasks(
-                        task.TaskId,
-                        int.Parse(task.Roadway),
-                        task.TaskNum,
-                        task.PalletCode,
-                        int.Parse(task.PalletType),
-                        task.CurrentAddress,
-                        task.NextAddress,
-                        "");
-
-                    UpdateTaskStatus(task, result, PLC_OUT_EXECUTING, 2);
-                }
+                Console.WriteLine($"浠诲姟澶勭悊寮傚父锛歿ex.Message}");
             }
-
-            
         }
 
-        private void ProcessInPalltask(List<Dt_Task> tasksToProcess, List<Dt_Task> allTasks)
+        private void PLCDoDeciceWork()
         {
-            const int PLC_IN_InNew = (int)InTaskStatusEnum.InNew;
-            const int PLC_PLC_INEXECUTING = (int)InTaskStatusEnum.PLC_InExecuting;
-            var outFinishTasks = tasksToProcess
-                .Where(x => x.TaskStatus == PLC_IN_InNew && InStationareaList.Contains(x.SourceAddress))
-                .ToList();
-            if(outFinishTasks.Count > 0)
+            try
             {
-                foreach (var task in outFinishTasks)
+                // 鑾峰彇褰撳墠浠诲姟鏁版嵁
+                List<Dt_Task> allTasks = _taskService.GetaskQueuePLC();
+                if (allTasks.Count == 0) return;
+                foreach (var task in allTasks)
                 {
                     // 涓嬪彂PLC浠诲姟
-                    WCSginseng result = _taskService.PLC_IssueTasks(
-                        task.TaskId,
-                        int.Parse(task.Roadway),
-                        task.TaskNum,
-                        task.PalletCode,
-                        int.Parse(task.PalletType),
-                        task.CurrentAddress,
-                        task.NextAddress,
-                        "");
-
-                    UpdateTaskStatus(task, result, PLC_PLC_INEXECUTING, 2);
+                    WCSginseng result = _taskService.PLC_IssueTasks(task.TaskId, task.WarehouseId, task.TaskNum, task.PalletCode, int.Parse(task.PalletType), task.CurrentAddress, task.NextAddress, "");
+                    UpdateTaskStatus(task, result, (int)OutTaskStatusEnum.PLC_OutExecuting, 2);
                 }
             }
+            catch (Exception ex)
+            {
+                Console.WriteLine($"鍫嗗灈鏈哄畬鎴愶紝涓嬪彂杈撻�佺嚎鎵ц浠诲姟澶辫触锛� 鍘熷洜: {ex.Message}");
+            }
         }
+        
 
+        
+        //淇敼鐘舵��
         private void UpdateTaskStatus(Dt_Task task, WCSginseng result, int successStatus,int statype)
         {
             if (result.IsSuccess)
@@ -258,22 +180,19 @@
                     string Result = MesOutTaskStatusEnum.Start.GetDescription();
                     //璋冨彇涓婃父绯荤粺鍙嶉寮�濮嬩换鍔�
                     _taskService.OutStoreDocCallback(task.TaskNum,Result, "鎿嶄綔鎴愬姛");
-                }else if(task.TaskStatus == (int)InTaskStatusEnum.PLC_InExecuting)
-                {
-                    string Result = MesInTaskStatusEnum.Start.GetDescription();
-                    //璋冨彇涓婃父绯荤粺鍙嶉寮�濮嬩换鍔�
-                    _taskService.InStoreDocCallback(task.TaskNum, Result, "鎿嶄綔鎴愬姛",task.PalletCode,"");
                 }
             }
             else
             {
                 task.Remark = result.Message;
-                task.NumberSsuances++;
+                //task.NumberSsuances++;
             }
 
             _taskService.Repository.UpdateData(task);
         }
 
+
+        
 
         public Task StopAsync(CancellationToken cancellationToken)
         {
@@ -284,184 +203,6 @@
         public void Dispose()
         {
             throw new NotImplementedException();
-        }
-
-        /// <summary>
-        /// 鍒ゆ柇宸烽亾鍐呯Щ搴�
-        /// </summary>
-        /// <param name="TaskNum"></param>
-        /// <param name="SourceAddress"></param>
-        /// <returns></returns>
-        public WebResponseContent JudgmentIsRelocations(Dt_Task dt_Task)
-        {
-            const int PLC_IN_FINISH = (int)InTaskStatusEnum.PLC_InFinish;
-            const int SC_IN_EXECUTING = (int)InTaskStatusEnum.SC_IntExecuting;
-            const int SC_OUT_EXECUTING = (int)OutTaskStatusEnum.SC_OutExecuting;
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                string Locationcodeadd = dt_Task.TaskType == (int)TaskTypeEnum.Inbound ? dt_Task.NextAddress:  dt_Task.CurrentAddress ;
-
-                Dt_LocationInfo dt_Location = _locationInfoService.Repository.QueryData(x => x.LocationCode == Locationcodeadd).FirstOrDefault();
-                if(dt_Location == null) { return content.Error("鏈兘鏌ユ壘鍒板簱浣�"); }
-                if (dt_Location.Depth == 1 || dt_Location.RoadwayNo == "5") return content.OK();
-                int locrow = judgmentRow(dt_Location.RoadwayNo, dt_Location.Row);
-                Dt_LocationInfo shallowLocation = _locationInfoService.Repository.QueryData(x => x.RoadwayNo == dt_Location.RoadwayNo && x.Row == locrow && x.Layer == dt_Location.Layer && x.Column == dt_Location.Column).FirstOrDefault();
-                if (shallowLocation.LocationStatus == (int)LocationStatusEnum.Free) return content.OK();
-                
-
-                //鍒ゆ柇鏄惁鏈夌Щ搴撲换鍔�
-                var TransferTask = _taskService.Repository.QueryData(x=>x.TaskStatus== (int)RelocationTaskStatusEnum.RelocationNew && x.CurrentAddress== shallowLocation.LocationCode).FirstOrDefault();
-                if(TransferTask != null)
-                {
-                    //杩涜涓嬪彂缁欏爢鍨涙満浠诲姟
-                    WCSginseng result = _taskService.SC_IssueTasks(
-                        TransferTask.TaskId,
-                        int.Parse(TransferTask.Roadway),
-                        TransferTask.TaskNum,
-                        TransferTask.PalletCode,
-                        int.Parse(TransferTask.PalletType),
-                        TransferTask.CurrentAddress,
-                        TransferTask.NextAddress,
-                        dt_Task.TargetAddress);
-                    if (result.IsSuccess)
-                    {
-                        TransferTask.TaskStatus = (int)RelocationTaskStatusEnum.RelocationExecuting;
-                        _taskService.UpdateData(TransferTask);
-                        return content.OK();
-                    }
-                    else
-                    {
-                        UpdateTaskStatus(dt_Task, result,
-                        successStatus: dt_Task.TaskStatus == PLC_IN_FINISH ? SC_IN_EXECUTING : SC_OUT_EXECUTING, 1);
-
-                        WriteLog.GetLog("鍒ゆ柇宸烽亾鍐呯Щ搴�").Write($"涓嬪彂鍫嗗灈鏈轰换鍔″け璐ワ紝鍘熷洜锛歿result.Message}", $"鐢熸垚绉诲簱浠诲姟:GenerateTransferTask");
-                        return content.Error();
-                    }
-                }
-
-                var CuttTransferTask = _taskService.Repository.QueryData(x => x.TaskStatus == (int)RelocationTaskStatusEnum.RelocationNew).FirstOrDefault();
-                //鍒ゆ柇褰撳墠鏄惁鏈夌Щ搴撲换鍔�
-                if (CuttTransferTask!=null) return content.Error();
-
-
-                if (shallowLocation.LocationStatus != (int)LocationStatusEnum.InStock) return content.Error();
-
-                //鐢熸垚绉诲簱浠诲姟锛岃繘琛屼笅鍙�
-                return content =GenerateTransferTask(shallowLocation.LocationCode);
-            }
-            catch (Exception ex)
-            {
-                WriteLog.GetLog("鍒ゆ柇宸烽亾鍐呯Щ搴�").Write($"鍒ゆ柇绉诲簱澶辫触锛屽師鍥狅細{ex.Message}", $"鍒ゆ柇宸烽亾鍐呯Щ搴撴柟娉�:JudgmentIsRelocations");
-                return content.Error();
-                
-            }
-        }
-        
-        private int judgmentRow(string RoadwayNo,int locrow)
-        {
-            if (RoadwayNo == "1" || RoadwayNo == "3")
-            {
-                return locrow == 1 ? 2 : 3;
-            }
-            else if (RoadwayNo == "2" || RoadwayNo == "4")
-            {
-                return locrow == 5 ? 6 : 7;
-            }
-            else
-            {
-                return 0;
-            }
-        }
-    
-        public WebResponseContent GenerateTransferTask(string shallowLocation)
-        {
-            WebResponseContent webResponse=new WebResponseContent();
-            try
-            {
-                Dt_LocationInfo OriginalLocation = _locationInfoService.Repository.QueryData(x => x.LocationCode == shallowLocation).FirstOrDefault();
-                Dt_StockInfo dt_StockInfo = _stockInfoService.Repository.QueryData(x => x.LocationCode == shallowLocation).FirstOrDefault();
-                Dt_LocationInfo newLocation = _locationInfoService.GetLocation(OriginalLocation.RoadwayNo, OriginalLocation.LocationType);
-                List<Dt_LocationInfo> dt_Locations = new List<Dt_LocationInfo>();
-
-                MES_parameter mES_Parame = _taskService.ApplicationChangeStorageLocation(dt_StockInfo.PalletCode, OriginalLocation.LocationCode, newLocation.LocationCode);
-                if (mES_Parame != null)
-                {
-                    if (mES_Parame.Result == "Y")
-                    {
-                        //杩涜鐢熸垚浠诲姟锛屼笅鍙戜换鍔¤嚦MES
-                        Dt_Task task = new Dt_Task();
-                        task.TaskNum = "0";
-                        task.PalletCode = dt_StockInfo.PalletCode;
-                        task.PalletType = dt_StockInfo.PalletType;
-                        task.Roadway = OriginalLocation.RoadwayNo;
-                        task.TaskType = (int)TaskTypeEnum.Relocation;
-                        task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationNew;
-                        task.SourceAddress = OriginalLocation.LocationCode;
-                        task.TargetAddress = newLocation.LocationCode;
-                        task.CurrentAddress = OriginalLocation.LocationCode;
-                        task.NextAddress = newLocation.LocationCode;
-                        task.WarehouseId = OriginalLocation.WarehouseId;
-                        task.OrderNo = "";
-                        task.Grade = 1;
-                        task.Creater = "MES";
-                        task.CreateDate = DateTime.Now;
-
-                        OriginalLocation.LocationStatus = (int)LocationStatusEnum.Lock;
-                        newLocation.LocationStatus = (int)LocationStatusEnum.Lock;
-                        dt_StockInfo.StockStatus = (int)StockStatusEmun.绉诲簱閿佸畾;
-
-                        dt_Locations.Add(OriginalLocation);
-                        dt_Locations.Add(newLocation);
-
-                        _unitOfWorkManage.BeginTran();
-                        _taskService.AddData(task);
-                        _locationInfoService.UpdateData(dt_Locations);
-                        _stockInfoService.UpdateData(dt_StockInfo);
-                        _unitOfWorkManage.CommitTran();
-
-
-                        return webResponse.Error("宸茬敓鎴愮Щ搴撲换鍔�");
-                        //杩涜涓嬪彂缁欏爢鍨涙満浠诲姟
-                        /*WCSginseng result = _taskService.SC_IssueTasks(
-                            task.TaskId,
-                            int.Parse(task.Roadway),
-                            task.TaskNum,
-                            task.PalletCode,
-                            int.Parse(task.PalletType),
-                            task.CurrentAddress,
-                            task.NextAddress,
-                            task.TargetAddress);
-                        if (result.IsSuccess)
-                        {
-                            task.TaskStatus = (int)RelocationTaskStatusEnum.RelocationExecuting;
-                            _taskService.UpdateData(task);
-                            return webResponse.OK();
-                        }
-                        else
-                        {
-                            WriteLog.GetLog("鍒ゆ柇宸烽亾鍐呯Щ搴�").Write($"涓嬪彂鍫嗗灈鏈轰换鍔″け璐ワ紝鍘熷洜锛歿result.Message}", $"鐢熸垚绉诲簱浠诲姟:GenerateTransferTask");
-                            return webResponse.Error();
-                        }*/
-                    }
-                    else
-                    {
-                        WriteLog.GetLog("鍒ゆ柇宸烽亾鍐呯Щ搴�").Write($"鐢宠鍌ㄤ綅寮傚姩锛孧ES涓嶅厑璁哥Щ鍔�", $"鐢熸垚绉诲簱浠诲姟:GenerateTransferTask");
-                        return webResponse.Error();
-                    }
-                }
-                else
-                {
-                    WriteLog.GetLog("鍒ゆ柇宸烽亾鍐呯Щ搴�").Write($"鐢宠鍌ㄤ綅寮傚姩锛孧ES杩斿洖涓虹┖", $"鐢熸垚绉诲簱浠诲姟:GenerateTransferTask");
-                    return webResponse.Error();
-                }
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                WriteLog.GetLog("鍒ゆ柇宸烽亾鍐呯Щ搴�").Write($"鐢熸垚绉诲簱浠诲姟澶辫触锛歿ex.Message}", $"鐢熸垚绉诲簱浠诲姟:GenerateTransferTask");
-                return webResponse.Error();
-            }
         }
     }
 }

--
Gitblit v1.9.3