From 1caea0fdc7ed1788d854a2aba8853984b4494e01 Mon Sep 17 00:00:00 2001
From: wankeda <Administrator@DESKTOP-HAU3ST3>
Date: 星期二, 24 六月 2025 09:56:28 +0800
Subject: [PATCH] 代码提交

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |  707 +++++++++++++---------------------------------------------
 1 files changed, 164 insertions(+), 543 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 9a8155e..48b89a1 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -84,7 +84,117 @@
             _taskHtyService = taskHtyService;
             _locationInfoService = locationInfoService;
         }
+        public WebResponseContent UpdateTaskStatus(int taskNum)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
+                if (task == null)
+                {
+                    return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�");
+                }
+                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
+                {
+                    task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
+                }
+                else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt())
+                {
+                    task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
+                }
+                //else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
+                //{
+                //    task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
+                //}
+                else
+                {
+                    throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
+                }
+                _unitOfWorkManage.BeginTran();
+                task.Dispatchertime = DateTime.Now;
+                task.ModifyDate = DateTime.Now;
+                task.Modifier = App.User.UserId > 0 ? App.User.UserName : "System";
+                BaseDal.UpdateData(task);
+                _unitOfWorkManage.CommitTran();
+                return content = WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
 
+        /// <summary>
+        /// 绌烘墭鐩樺叆搴撳畬鎴愬鐞�
+        /// </summary>
+        /// <param name="task">浠诲姟瀹炰綋瀵硅薄</param>
+        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
+        public WebResponseContent PalletInboundTaskCompleted(Dt_Task task)
+        {
+            try
+            {
+                _unitOfWorkManage.BeginTran();
+
+                Dt_StockInfo stockInfo = new Dt_StockInfo()
+                {
+                    PalletCode = task.PalletCode,
+                    LocationCode = task.TargetAddress,
+                    StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(),
+                    Creater = App.User.UserId > 0 ? App.User.UserName : "System",
+                    CreateDate = DateTime.Now,
+                };
+                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
+
+                CheckCompleted(stockInfo, locationInfo);
+
+                _stockService.StockInfoService.Repository.AddData(stockInfo);
+
+                int beforeStatus = locationInfo.LocationStatus;
+                locationInfo.LocationStatus = StatusEnum.Pallet.ObjToInt();
+                _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
+                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
+
+                task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
+                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
+
+                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum);
+
+                _unitOfWorkManage.CommitTran();
+                return WebResponseContent.Instance.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
+            }
+        }
+
+        /// <summary>
+        /// 楠岃瘉鏁版嵁
+        /// </summary>
+        /// <param name="stockInfo"></param>
+        /// <param name="locationInfo"></param>
+        /// <returns></returns>
+        private (bool, string) CheckCompleted(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, bool isCheckStockDetail = true)
+        {
+            if (stockInfo == null)
+            {
+                return (false, "鏈壘鍒扮粍鐩樹俊鎭�");
+            }
+
+            if (locationInfo == null)
+            {
+                return (false, "鏈壘鍒拌揣浣嶄俊鎭�");
+            }
+
+            if (isCheckStockDetail && (stockInfo.Details == null || stockInfo.Details.Count == 0))
+            {
+                return (false, "鏈壘鍒扮粍鐩樻槑缁嗕俊鎭�");
+            }
+
+            return (true, "鎴愬姛");
+        }
         /// <summary>
         /// 鎵嬪姩浠诲姟瀹屾垚
         /// </summary>
@@ -141,47 +251,34 @@
                 WriteLog.GetLog("浠诲姟瀹屾垚").Write($"鎿嶄綔浜猴細{(App.User.UserId > 0 ? App.User.UserName : "System")}{Environment.NewLine}浠诲姟鍙凤細{taskNum}{Environment.NewLine}{JsonConvert.SerializeObject(content)}", "浠诲姟瀹屾垚");
             }
         }
-        public WebResponseContent TaskCancel(int taskNum)
+        public WebResponseContent TaskCancel(string taskNum)
         {
             WebResponseContent content = new WebResponseContent();
             try
             {
-                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
-                if (task == null)
+                var tasknums = taskNum.Split(',');
+                foreach (var item in tasknums)
                 {
-                    return content = WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�");
+                    Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == item.ObjToInt() && (x.TaskStatus == AGVTaskStatusEnum.AGV_Wait.ObjToInt() || x.TaskStatus == AGVTaskStatusEnum.AGV_Query.ObjToInt()));
+                    if (task == null)
+                    {
+                        return content = WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭垨浠诲姟鐘舵�佷笉鍖归厤");
+                    }
+                    //_unitOfWorkManage.BeginTran();
+                    int TaskStatus = AGVTaskStatusEnum.AGV_ManuallyCancel.ObjToInt();
+                    _taskHtyService.AddTaskHty(task, TaskStatus);
+                    Dt_CachePoint source = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress);
+                    Dt_CachePoint target = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.TargetAddress);
+                    var toaddress = JsonConvert.SerializeObject(target);
+                    if (target != null && source != null)
+                    {
+                        source.PointStatus = LocationStatusEnum.Free.ObjToInt();
+                        _basicService.CachePointService.Repository.UpdateData(source);
+                        target.PointStatus = LocationStatusEnum.Free.ObjToInt();
+                        _basicService.CachePointService.Repository.UpdateData(target);
+                    }
+                    BaseDal.DeleteData(task);
                 }
-                //_unitOfWorkManage.BeginTran();
-                int TaskStatus = AGVTaskStatusEnum.AGV_ManuallyCancel.ObjToInt();
-                _taskHtyService.AddTaskHty(task, TaskStatus);
-                //HCJFree(task, TaskStatus);
-                BaseDal.DeleteData(task);
-                #region
-                //MethodInfo? methodInfo = GetType().GetMethod(((TaskTypeEnum)task.TaskType) + "TaskCancel");
-                //if (methodInfo != null)
-                //{
-                //    WebResponseContent? responseContent = (WebResponseContent?)methodInfo.Invoke(this, new object[] { task });
-                //    if (responseContent != null)
-                //    {
-                //        if (responseContent != null)
-                //        {
-                //            if (App.User.UserId > 0)
-                //            {
-                //                var response = HttpHelper.Post<WebResponseContent>(url + "TaskCancel?taskNum=" + task.TaskNum, "", "浠诲姟鍙栨秷");
-                //                if (!response.Status)
-                //                {
-                //                    _unitOfWorkManage.RollbackTran();
-                //                    return content = WebResponseContent.Instance.Error(response.Message);
-                //                }
-                //                _unitOfWorkManage.CommitTran();
-                //                return content = responseContent;
-                //            }
-                //            _unitOfWorkManage.CommitTran();
-                //            return content = responseContent;
-                //        }
-                //    }
-                //}
-                #endregion
                 return content = WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -195,499 +292,6 @@
             }
         }
 
-        public WebResponseContent UpdateTaskStatus(int taskNum)
-        {
-            WebResponseContent content = new WebResponseContent();
-            try
-            {
-                Dt_Task task = BaseDal.QueryFirst(x => x.TaskNum == taskNum);
-                if (task == null)
-                {
-                    return WebResponseContent.Instance.Error("鏈壘鍒颁换鍔′俊鎭�");
-                }
-                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletOutbound.ObjToInt())
-                {
-                    task.TaskStatus = OutTaskStatusEnum.SC_OutExecuting.ObjToInt();
-                }
-                else if (task.TaskType == TaskTypeEnum.Inbound.ObjToInt() || task.TaskType == TaskTypeEnum.PalletInbound.ObjToInt())
-                {
-                    task.TaskStatus = InTaskStatusEnum.SC_InExecuting.ObjToInt();
-                }
-                else if (task.TaskType == TaskTypeEnum.Relocation.ObjToInt())
-                {
-                    task.TaskStatus = InTaskStatusEnum.RelocationExecuting.ObjToInt();
-                }
-                else
-                {
-                    throw new Exception($"浠诲姟绫诲瀷閿欒,鏈壘鍒拌浠诲姟绫诲瀷,浠诲姟鍙�:銆恵task.TaskNum}銆�,浠诲姟绫诲瀷:銆恵task.TaskType}銆�");
-                }
-                _unitOfWorkManage.BeginTran();
-                task.Dispatchertime = DateTime.Now;
-                task.ModifyDate = DateTime.Now;
-                task.Modifier = App.User.UserId > 0 ? App.User.UserName : "System";
-                BaseDal.UpdateData(task);
-                _unitOfWorkManage.CommitTran();
-                return content = WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-        public WebResponseContent InboundTaskCompleted(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                decimal beforeQuantity = 0;
-
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-
-                CheckCompleted(stockInfo, locationInfo);
-
-                stockInfo.LocationCode = locationInfo.LocationCode;
-                stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
-                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
-                beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
-
-                int beforeStatus = locationInfo.LocationStatus;
-                locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
-                _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
-
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-                task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
-
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) + beforeQuantity, StockChangeType.Inbound, task.TaskNum);
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-
-        }
-
-        /// <summary>
-        /// 绌烘墭鐩樺叆搴撳畬鎴愬鐞�
-        /// </summary>
-        /// <param name="task">浠诲姟瀹炰綋瀵硅薄</param>
-        /// <returns>杩斿洖澶勭悊缁撴灉</returns>
-        public WebResponseContent PalletInboundTaskCompleted(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-
-                Dt_StockInfo stockInfo = new Dt_StockInfo()
-                {
-                    PalletCode = task.PalletCode,
-                    LocationCode = task.TargetAddress,
-                    StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt(),
-                    Creater = App.User.UserId > 0 ? App.User.UserName : "System",
-                    CreateDate = DateTime.Now,
-                };
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-
-                CheckCompleted(stockInfo, locationInfo);
-
-                _stockService.StockInfoService.Repository.AddData(stockInfo);
-
-                int beforeStatus = locationInfo.LocationStatus;
-                locationInfo.LocationStatus = LocationStatusEnum.Pallet.ObjToInt();
-                _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Inbound.ObjToInt(), false);
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-
-                task.TaskStatus = InTaskStatusEnum.InFinish.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        /// <summary>
-        /// 楠岃瘉鏁版嵁
-        /// </summary>
-        /// <param name="stockInfo"></param>
-        /// <param name="locationInfo"></param>
-        /// <returns></returns>
-        private (bool, string) CheckCompleted(Dt_StockInfo stockInfo, Dt_LocationInfo locationInfo, bool isCheckStockDetail = true)
-        {
-            if (stockInfo == null)
-            {
-                return (false, "鏈壘鍒扮粍鐩樹俊鎭�");
-            }
-
-            if (locationInfo == null)
-            {
-                return (false, "鏈壘鍒拌揣浣嶄俊鎭�");
-            }
-
-            if (isCheckStockDetail && (stockInfo.Details == null || stockInfo.Details.Count == 0))
-            {
-                return (false, "鏈壘鍒扮粍鐩樻槑缁嗕俊鎭�");
-            }
-
-            return (true, "鎴愬姛");
-        }
-
-        public WebResponseContent OutboundTaskCompleted(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                decimal beforeQuantity = 0;
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
-
-                CheckCompleted(stockInfo, locationInfo);
-
-                stockInfo.LocationCode = locationInfo.LocationCode;
-                stockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
-                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-                int beforeStatus = locationInfo.LocationStatus;
-                if (locationInfo.Depth == 2)
-                {
-                    if (DepthTask(locationInfo) == false)
-                    {
-                        _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
-
-                    }
-                }
-                locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-
-                task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-                _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-                _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) - beforeQuantity, StockChangeType.Outbound, task.TaskNum);
-
-                _unitOfWorkManage.CommitTran();
-                return OnOutboundTaskCompleted?.Invoke(task) ?? WebResponseContent.Instance.OK();
-
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        public WebResponseContent PalletOutboundTaskCompleted(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
-
-                CheckCompleted(stockInfo, locationInfo);
-
-                int beforeStatus = locationInfo.LocationStatus;
-
-                if (locationInfo.Depth == 2)
-                {
-                    if (DepthTask(locationInfo) == false)
-                    {
-                        _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
-                    }
-                }
-                locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-
-                task.TaskStatus = OutTaskStatusEnum.OutFinish.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-                _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        public WebResponseContent RelocationTaskCompleted(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
-                Dt_LocationInfo locationEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-                Dt_LocationInfo locationStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
-
-                CheckCompleted(stockInfo, locationEnd);
-
-                stockInfo.LocationCode = locationEnd.LocationCode;
-                stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
-                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
-                if (locationStart.Depth == 1)
-                {
-                    if (DepthTask(locationStart) == false)
-                    {
-                        locationStart.LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                        _basicService.LocationInfoService.RelocationFree(locationEnd, task.TaskNum);
-                        _basicService.LocationInfoService.Repository.UpdateData(locationStart);
-                    }
-                    else
-                    {
-                        locationStart.LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                        _basicService.LocationInfoService.Repository.UpdateData(locationStart);
-                    }
-                }
-
-                _basicService.LocationInfoService.RelocationFree(locationEnd, task.TaskNum);
-
-                task.TaskStatus = InTaskStatusEnum.RelocationFinish.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        public WebResponseContent InboundTaskCancel(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                decimal beforeQuantity = 0;
-
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-
-                CheckCompleted(stockInfo, locationInfo);
-
-                stockInfo.StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.ObjToInt();
-                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
-                beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
-
-                int beforeStatus = locationInfo.LocationStatus;
-                locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                if (locationInfo.Depth == 2)
-                {
-                    _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
-                }
-
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-                task.TaskStatus = InTaskStatusEnum.InCancel.ObjToInt();
-
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-
-        }
-
-        public WebResponseContent PalletInboundTaskCancel(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-
-                int beforeStatus = locationInfo.LocationStatus;
-
-                locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                if (locationInfo.Depth == 2)
-                {
-                    _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), false);
-                }
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-
-                task.TaskStatus = InTaskStatusEnum.InCancel.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Inbound.ObjToInt(), "", task.TaskNum);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-
-        public WebResponseContent OutboundTaskCancel(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                decimal beforeQuantity = 0;
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-                Dt_StockInfoDetail stockInfoDetail = _stockService.StockInfoDetailService.Repository.QueryFirst(x => x.StockId == stockInfo.Id);
-
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
-
-                CheckCompleted(stockInfo, locationInfo);
-
-                stockInfo.LocationCode = locationInfo.LocationCode;
-                stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
-                stockInfoDetail.OutboundQuantity = beforeQuantity;
-
-                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-                _stockService.StockInfoDetailService.Repository.UpdateData(stockInfoDetail);
-                int beforeStatus = locationInfo.LocationStatus;
-
-                if (locationInfo.Depth == 2)
-                {
-                    if (DepthTask(locationInfo) == false)
-                    {
-                        _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), true);
-                    }
-                }
-                locationInfo.LocationStatus = LocationStatusEnum.InStock.ObjToInt();
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-
-
-                task.TaskStatus = OutTaskStatusEnum.OutCancel.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                beforeQuantity = stockInfo.Details.Where(x => x.Id != 0).Sum(x => x.StockQuantity);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
-                _recordService.StockQuantityChangeRecordService.AddStockChangeRecord(stockInfo, stockInfo.Details, beforeQuantity, stockInfo.Details.Sum(x => x.StockQuantity) - beforeQuantity, StockChangeType.Outbound, task.TaskNum);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        public WebResponseContent PalletOutboundTaskCancel(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
-                Dt_LocationInfo locationInfo = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
-
-                CheckCompleted(stockInfo, locationInfo);
-
-                int beforeStatus = locationInfo.LocationStatus;
-
-                if (locationInfo.Depth == 2)
-                {
-                    if (DepthTask(locationInfo) == false)
-                    {
-                        _basicService.LocationInfoService.UpdateLocationFree(locationInfo, task.TaskNum, StockChangeType.Outbound.ObjToInt(), true);
-                    }
-                }
-                locationInfo.LocationStatus = LocationStatusEnum.Pallet.ObjToInt();
-                _basicService.LocationInfoService.Repository.UpdateData(locationInfo);
-
-                stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
-                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
-                task.TaskStatus = OutTaskStatusEnum.OutCancel.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, beforeStatus, StockChangeType.Outbound.ObjToInt(), stockInfo.Details.FirstOrDefault()?.OrderNo ?? "", task.TaskNum);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-
-        public WebResponseContent RelocationTaskCancel(Dt_Task task)
-        {
-            try
-            {
-                _unitOfWorkManage.BeginTran();
-                Dt_StockInfo stockInfo = _stockService.StockInfoService.Repository.GetStockInfo(task.PalletCode);
-
-                Dt_LocationInfo locationEnd = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.TargetAddress);
-                Dt_LocationInfo locationStart = _basicService.LocationInfoService.Repository.QueryFirst(x => x.LocationCode == task.SourceAddress);
-
-                stockInfo.StockStatus = StockStatusEmun.宸插叆搴�.ObjToInt();
-                _stockService.StockInfoService.Repository.UpdateData(stockInfo);
-
-                locationEnd.LocationStatus = LocationStatusEnum.Free.ObjToInt();
-                _basicService.LocationInfoService.RelocationFree(locationStart, task.TaskNum);
-                _basicService.LocationInfoService.Repository.UpdateData(locationEnd);
-
-                task.TaskStatus = InTaskStatusEnum.RelocationCancel.ObjToInt();
-                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateType.鑷姩瀹屾垚 : OperateType.浜哄伐瀹屾垚);
-
-                _unitOfWorkManage.CommitTran();
-                return WebResponseContent.Instance.OK();
-            }
-            catch (Exception ex)
-            {
-                _unitOfWorkManage.RollbackTran();
-                return WebResponseContent.Instance.Error(ex.Message);
-            }
-        }
-        public bool DepthTask(Dt_LocationInfo location)
-        {
-            if (location != null)
-            {
-                Dt_LocationInfo locations = _locationInfoService.Repository.QueryFirst(x => x.RoadwayNo == location.RoadwayNo && x.Column == location.Column && x.Layer == location.Layer && x.Depth != location.Depth && x.Row != location.Row && (SqlFunc.Abs(x.Row - location.Row) == 1));
-                if (locations != null)
-                {
-                    Dt_Task tasks = BaseDal.QueryFirst(x => x.SourceAddress == locations.LocationCode);
-                    return tasks != null ? true : false;
-                }
-            }
-            return false;
-        }
         public WebResponseContent GetTaskInfo()
         {
             WebResponseContent content = new WebResponseContent();
@@ -781,25 +385,42 @@
             Dt_CachePoint source = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress);
             Dt_CachePoint target = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.TargetAddress);
             var toaddress = JsonConvert.SerializeObject(target);
-            if (target != null && source != null)
+            if (!source.PointCode.Contains("鍘熸潗鏂欏簱"))
             {
-                if (toaddress.Contains("鎴愬搧搴�"))
+                if (target != null && source != null)
                 {
-                    source.PointStatus = LocationStatusEnum.Free.ObjToInt();
-                    _basicService.CachePointService.Repository.UpdateData(source);
-                    target.PointStatus = LocationStatusEnum.InStock.ObjToInt();
-                    _basicService.CachePointService.Repository.UpdateData(target);
+                    if (toaddress.Contains("鎴愬搧搴�"))
+                    {
+                        source.PointStatus = LocationStatusEnum.Free.ObjToInt();
+                        _basicService.CachePointService.Repository.UpdateData(source);
+                        target.PointStatus = LocationStatusEnum.InStock.ObjToInt();
+                        _basicService.CachePointService.Repository.UpdateData(target);
+                    }
+                    else
+                    {
+                        source.PointStatus = LocationStatusEnum.Free.ObjToInt();
+                        _basicService.CachePointService.Repository.UpdateData(source);
+                        //target.PointStatus = LocationStatusEnum.Free.ObjToInt();
+                        //_basicService.CachePointService.Repository.UpdateData(target);
+                    }
                 }
-                else
-                {
-                    source.PointStatus = LocationStatusEnum.Free.ObjToInt();
-                    _basicService.CachePointService.Repository.UpdateData(source);
-                    //target.PointStatus = LocationStatusEnum.Free.ObjToInt();
-                    //_basicService.CachePointService.Repository.UpdateData(target);
-                }
+            }
+
+            return content;
+        }
+
+        public WebResponseContent HCJCope(Dt_Task task, int TaskStatus)
+        {
+            WebResponseContent content = new WebResponseContent();
+            Dt_CachePoint source = _basicService.CachePointService.Repository.QueryFirst(x => x.PointCode == task.SourceAddress);
+            if (source != null && source.PointCode.Contains("鍘熸潗鏂欏簱"))
+            {
+                source.PointStatus = LocationStatusEnum.Free.ObjToInt();
+                _basicService.CachePointService.Repository.UpdateData(source);
             }
             return content;
         }
+
         public WebResponseContent CacheStatus(SaveModel saveModel)
         {
             WebResponseContent response = new WebResponseContent();
@@ -809,7 +430,7 @@
                 List<Dt_CachePoint> cachePoints = _basicService.CachePointService.Repository.QueryData(x => x.PointCode.Contains("鎴愬搧搴�")).ToList();
                 foreach (var cachePoint in cachePoints)
                 {
-                    bool isState = (cachePoint.PointStatus == LocationStatusEnum.Free.ObjToInt());
+                    //bool isState = (cachePoint.PointStatus == LocationStatusEnum.Free.ObjToInt());
                     string stateName = "";
                     switch (cachePoint.PointStatus)
                     {
@@ -825,7 +446,7 @@
                         default:
                             break;
                     }
-                    list.Add(new { name = cachePoint.Depth, state = isState, statename = stateName });
+                    list.Add(new { name = cachePoint.PointName, state = cachePoint.PointStatus, statename = stateName });
                 }
 
                 response.OK(data: new { list });

--
Gitblit v1.9.3