From b6837f097e9cdb2645368aed4ddb03f580c331e4 Mon Sep 17 00:00:00 2001
From: z8018 <1282578289@qq.com>
Date: 星期一, 05 五月 2025 17:29:07 +0800
Subject: [PATCH] 1

---
 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_TaskInfoService/TaskService.cs |  391 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 200 insertions(+), 191 deletions(-)

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 6057dff..f0eb3c3 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"
@@ -15,8 +15,10 @@
  *----------------------------------------------------------------*/
 #endregion << 鐗� 鏈� 娉� 閲� >>
 
+using System.Text;
 using System.Threading.Tasks;
 using AutoMapper;
+using HslCommunication;
 using HslCommunication.WebSocket;
 using SqlSugar;
 using WIDESEAWCS_BasicInfoRepository;
@@ -82,16 +84,9 @@
                     return WebResponseContent.Instance.Error("鏈壘鍒拌鍗曟槑缁嗕俊鎭�");
                 }
 
-                
-
-                Dt_Container putContainer = _containerRepository.QueryFirst(x => x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt());
-                if (putContainer == null)
-                {
-                    return WebResponseContent.Instance.Error("鏀捐揣浣嶇疆涓嶅瓨鍦�");
-                }
-
-                
                 List<PlacedBlock> placedBlocks = new List<PlacedBlock>();
+
+                string putPosition = "";
 
                 for (int i = 0; i < orderDetails.Count; i++)
                 {
@@ -103,118 +98,107 @@
                             int width = Convert.ToInt32(orderDetails[i].Orderdetails_width);
                             int height = Convert.ToInt32(orderDetails[i].Orderdetails_thickness);
 
+                            if (length < 300 || width < 50)
+                            {
+                                continue;
+                            }
+
                             OrderInfo orderInfo = _orderDetailsService.GetOrderInfoByBarcode(orderDetails[i].Orderdetails_outid);
-                            Dt_OrderContainer orderContainer = _orderContainerRepository.QueryFirst(x => x.OrderNo == orderInfo.OrderNo && x.ContainerCode == putContainer.ContainerCode);
 
-                            ContainerSize containerSize = new ContainerSize(putContainer.ContainerLength, putContainer.ContainerWidth, putContainer.ContainerHeight);
-
-                            int lengthThreshold = AppSettings.Get("LengthThreshold").ObjToInt();
-                            bool isAdd = false;
-                            bool isUpdate = false;
-                            if (orderContainer == null)
+                            var (flag, taskPosition, message) = _containerService.GetPosition(orderInfo.OrderHeadId, orderInfo.OrderNo, length, width, height);
+                            if (flag && taskPosition != null)
                             {
-                                orderContainer = new Dt_OrderContainer()
+                                if (string.IsNullOrEmpty(putPosition))
                                 {
-                                    OrderId = orderInfo.OrderHeadId,
-                                    ContainerCode = putContainer.ContainerCode,
-                                    ContainerId = putContainer.Id,
-                                    OrderNo = orderInfo.OrderNo,
-                                };
+                                    putPosition = taskPosition.PutPosition;
+                                }
 
-                                if (length > lengthThreshold)
+                                if (putPosition != taskPosition.PutPosition)
                                 {
+                                    continue;
+                                }
+
+                                Dt_OrderContainer orderContainer = _orderContainerRepository.QueryFirst(x => x.OrderNo == orderInfo.OrderNo && x.ContainerCode == taskPosition.PutPosition);
+
+                                Dt_Container putContainer = _containerRepository.QueryFirst(x => x.ContainerCode == taskPosition.PutPosition);
+                                if (putContainer == null)
+                                {
+                                    //todo
+                                    throw new Exception("鏈壘鍒版斁璐т綅缃�");
+                                }
+
+                                bool isAdd = false;
+                                if (orderContainer == null)
+                                {
+                                    orderContainer = new Dt_OrderContainer()
+                                    {
+                                        OrderId = orderInfo.OrderHeadId,
+                                        ContainerCode = putContainer.ContainerCode,
+                                        ContainerId = putContainer.Id,
+                                        OrderNo = orderInfo.OrderNo,
+                                    };
                                     orderContainer.MaxLength = putContainer.ContainerLength;
+                                    isAdd = true;
                                 }
-                                else
+
+                                if (taskPosition != null)
                                 {
-                                    orderContainer.MaxLength = lengthThreshold;
+                                    Dt_ContainerItem dt_ContainerItem = new Dt_ContainerItem()
+                                    {
+                                        ContainerId = putContainer.Id,
+                                        ItemCode = orderInfo.Barcode,
+                                        ItemLength = length,
+                                        ItemWidth = width,
+                                        ItemHeight = height,
+                                        ItemPositionX = taskPosition.PositionX,
+                                        ItemPositionY = taskPosition.PositionY,
+                                        ItemPositionZ = taskPosition.PositionZ,
+                                        ItemRelaPositionX = taskPosition.PutPositionX,
+                                        ItemRelaPositionY = taskPosition.PutPositionY,
+                                        ItemRelaPositionZ = taskPosition.PutPositionZ,
+                                        ItemStatus = (int)ItemStatusEnum.Assigned,
+                                        ItemName = orderInfo.Barcode
+                                    };
+
+                                    Dt_Task dt_Task = new Dt_Task()
+                                    {
+                                        PalletCode = orderInfo.Barcode,
+                                        DeviceCode = putContainer.DeviceCode,
+                                        TaskState = (int)TaskStatusEnum.Gantry_Wait,
+                                        TaskType = 0,
+                                        SourceAddress = "",
+                                        TargetAddress = $"F06",
+                                        CurrentAddress = $"F06*{taskPosition.TakePositionX}*{taskPosition.TakePositionY}*{taskPosition.TakePositionZ}*{taskPosition.PositionR}",
+                                        NextAddress = $"{putContainer.ContainerCode}*{taskPosition.PutPositionX}*{taskPosition.PutPositionY}*{taskPosition.PutPositionZ}*{taskPosition.PositionR}",
+                                        ItemInfo = $"{length}*{width}*{height}",
+                                        Grade = 0,
+                                    };
+                                    putContainer.ContainerStatus = ContainerStatusEnum.NonEmpty.ObjToInt();
+                                    _unitOfWorkManage.BeginTran();
+                                    BaseDal.AddData(dt_Task);
+                                    _containerRepository.UpdateData(putContainer);
+                                    _containerItemRepository.AddData(dt_ContainerItem);
+                                    if (isAdd)
+                                    {
+                                        _orderContainerRepository.AddData(orderContainer);
+                                    }
+                                    _unitOfWorkManage.CommitTran();
+
+                                    PlacedBlock placedBlock = new PlacedBlock(new Point3D(taskPosition.PositionX, taskPosition.PositionY, taskPosition.PositionZ), length > width ? length : width, width > length ? length : width, height);
+                                    placedBlocks.Add(placedBlock);
+
+                                    object obj = new
+                                    {
+                                        x = taskPosition.PutCenterPositionX - putContainer.ContainerLength / 2,
+                                        y = taskPosition.PutCenterPositionY - putContainer.ContainerWidth / 2,
+                                        z = taskPosition.PutCenterPositionZ,
+                                        length,
+                                        width,
+                                        height,
+                                    };
+                                    _webSocketServer.PublishAllClientPayload(obj.Serialize());
                                 }
-                                isAdd = true;
                             }
-                            else
-                            {
-                                if (length < lengthThreshold)
-                                {
-                                    isUpdate = true;
-                                    orderContainer.MaxLength = lengthThreshold;
-                                }
-                                containerSize = new ContainerSize(orderContainer.MaxLength, putContainer.ContainerWidth, putContainer.ContainerHeight);
-                            }
-
-                           
-
-                            TaskPosition? taskPosition = new TaskPosition();
-                            taskPosition = _containerService.GetTaskPosition(length, width, height, containerSize, placedBlocks);
-
-                            if (taskPosition != null)
-                            {
-                                
-                               
-
-                                Dt_ContainerItem dt_ContainerItem = new Dt_ContainerItem()
-                                {
-                                    ContainerId = putContainer.Id,
-                                    ItemCode = orderInfo.Barcode,
-                                    ItemLength = length,
-                                    ItemWidth = width,
-                                    ItemHeight = height,
-                                    ItemPositionX = taskPosition.PositionX,
-                                    ItemPositionY = taskPosition.PositionY,
-                                    ItemPositionZ = taskPosition.PositionZ,
-                                    ItemRelaPositionX = taskPosition.PositionX,
-                                    ItemRelaPositionY = taskPosition.PositionY,
-                                    ItemRelaPositionZ = taskPosition.PositionZ,
-                                    ItemStatus = (int)ItemStatusEnum.Assigned,
-                                    ItemName = orderInfo.Barcode
-                                };
-
-                                Dt_Task dt_Task = new Dt_Task()
-                                {
-                                    PalletCode = orderInfo.Barcode,
-                                    DeviceCode = putContainer.DeviceCode,
-                                    TaskState = (int)TaskStatusEnum.Gantry_Wait,
-                                    TaskType = 0,
-                                    SourceAddress = "",
-                                    TargetAddress = $"F06",
-                                    CurrentAddress = $"F06*{taskPosition.TakePositionX}*{taskPosition.TakePositionY}*{taskPosition.TakePositionZ}*{taskPosition.PositionR}",
-                                    NextAddress = $"{putContainer.ContainerCode}*{taskPosition.PutPositionX}*{taskPosition.PutPositionY}*{taskPosition.PutPositionZ}*{taskPosition.PositionR}",
-                                    ItemInfo = $"{length}*{width}*{height}",
-                                    Grade = 0,
-                                };
-                                putContainer.ContainerStatus = ContainerStatusEnum.NonEmpty.ObjToInt();
-                                _unitOfWorkManage.BeginTran();
-                                BaseDal.AddData(dt_Task);
-                                _containerRepository.UpdateData(putContainer);
-                                _containerItemRepository.AddData(dt_ContainerItem);
-                                if (isAdd)
-                                {
-                                    _orderContainerRepository.AddData(orderContainer);
-                                }
-                                else if (isUpdate)
-                                {
-                                    _orderContainerRepository.UpdateData(orderContainer);
-                                }
-                                _unitOfWorkManage.CommitTran();
-
-                                PlacedBlock placedBlock = new PlacedBlock(new Point3D(taskPosition.PositionX, taskPosition.PositionY, taskPosition.PositionZ), length, width, height);
-                                placedBlocks.Add(placedBlock);
-
-                                object obj = new
-                                {
-                                    x = taskPosition.PutCenterPositionX - containerSize.Length / 2,
-                                    y = taskPosition.PutCenterPositionY - containerSize.Width / 2,
-                                    z = taskPosition.PutCenterPositionZ,
-                                    length,
-                                    width,
-                                    height,
-                                };
-                                if (i == 0)
-                                    Thread.Sleep(5000);
-                                _webSocketServer.PublishAllClientPayload(obj.Serialize());
-                                Thread.Sleep(500);
-                            }
-
-
                         }
                     }
                     catch (Exception ex)
@@ -240,19 +224,27 @@
                     return WebResponseContent.Instance.Error("鍙栬揣浣嶇疆涓嶅瓨鍦�");
                 }
 
+                List<Dt_Container> containers = _containerRepository.QueryData(x => x.DeviceCode == deviceCode && x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt());
+
                 Dt_Container putContainer = _containerRepository.QueryFirst(x => x.ContainerCode == putPosition && x.ContainerType == ContainerTypeEnum.PutContainer.ObjToInt());
                 if (putContainer == null)
                 {
                     return WebResponseContent.Instance.Error("鏀捐揣浣嶇疆涓嶅瓨鍦�");
                 }
 
+                int edge = 0;
+                if (putContainer.ContainerNo == containers.Min(x => x.ContainerNo))
+                {
+                    edge = 1;
+                }
+
                 ContainerSize containerSize = new ContainerSize(putContainer.ContainerLength, putContainer.ContainerWidth, putContainer.ContainerHeight);
                 List<Dt_ContainerItem> containerItems = _containerItemRepository.QueryData(x => x.ContainerId == putContainer.Id);
 
-                List<PlacedBlock> placedBlocks = containerItems.Select(x => new PlacedBlock(new Point3D(x.ItemRelaPositionX, x.ItemRelaPositionY, x.ItemRelaPositionZ), x.ItemLength, x.ItemWidth, x.ItemHeight)).ToList();
+                List<PlacedBlock> placedBlocks = containerItems.Select(x => new PlacedBlock(new Point3D(x.ItemPositionX, x.ItemPositionY, x.ItemPositionZ), x.ItemLength > x.ItemLength ? x.ItemLength : x.ItemWidth, x.ItemLength > x.ItemLength ? x.ItemWidth : x.ItemLength, x.ItemHeight)).ToList();
 
 
-                TaskPosition? taskPosition = _containerService.GetTaskPosition(length, width, height, containerSize, placedBlocks);
+                TaskPosition? taskPosition = _containerService.GetTaskPosition(length, width, height, containerSize, placedBlocks, edge);
                 if (taskPosition == null)
                 {
                     return WebResponseContent.Instance.Error("鏈壘鍒板悎閫傛斁缃綅缃�");
@@ -279,12 +271,12 @@
                     ItemLength = length,
                     ItemWidth = width,
                     ItemHeight = height,
-                    ItemPositionX = taskPosition.PutPositionX,
-                    ItemPositionY = taskPosition.PutPositionY,
-                    ItemPositionZ = taskPosition.PutPositionZ,
-                    ItemRelaPositionX = taskPosition.PositionX,
-                    ItemRelaPositionY = taskPosition.PositionY,
-                    ItemRelaPositionZ = taskPosition.PositionZ,
+                    ItemPositionX = taskPosition.PositionX,
+                    ItemPositionY = taskPosition.PositionY,
+                    ItemPositionZ = taskPosition.PositionZ,
+                    ItemRelaPositionX = taskPosition.PutPositionX,
+                    ItemRelaPositionY = taskPosition.PutPositionY,
+                    ItemRelaPositionZ = taskPosition.PutPositionZ,
                     ItemStatus = (int)ItemStatusEnum.Assigned,
                     ItemName = code
                 };
@@ -314,7 +306,7 @@
             }
         }
 
-        public Dt_Task GenerateTask(OrderInfo orderInfo)
+        public (bool, Dt_Task?, string) GenerateTask(OrderInfo orderInfo)
         {
             try
             {
@@ -322,30 +314,23 @@
                 int width = Convert.ToInt32(orderInfo.Width);
                 int height = Convert.ToInt32(orderInfo.Thickness);
 
-                TaskPosition? taskPosition = _containerService.GetPosition(orderInfo.OrderNo, length, width, height);
-                if (taskPosition != null)
+                var (flag, taskPosition, message) = _containerService.GetPosition(orderInfo.OrderHeadId, orderInfo.OrderNo, length, width, height);
+                if (flag && taskPosition != null)
                 {
-                    int lengthThreshold = AppSettings.Get("LengthThreshold").ObjToInt();
-                    if (taskPosition.TakePositionY > lengthThreshold)
-                    {
-                        throw new Exception("10002,闀垮害瓒呭嚭闄愬埗");
-                    }
-
                     Dt_Container putContainer = _containerRepository.QueryFirst(x => x.ContainerCode == taskPosition.PutPosition);
                     if (putContainer == null)
                     {
-                        //todo
-                        throw new Exception("鏈壘鍒版斁璐т綅缃�");
+                        return (false, null, "鏈壘鍒版斁璐т綅缃�");
                     }
 
                     Dt_Container? takeContainer = GetTakePosition(putContainer.DeviceCode);
                     if (takeContainer == null)
                     {
-                        throw new Exception("鏈壘鍒板彇璐т綅缃�");
+                        return (false, null, "鏈壘鍒板彇璐т綅缃�");
                     }
 
                     Dt_OrderContainer orderContainer = _orderContainerRepository.QueryFirst(x => x.OrderNo == orderInfo.OrderNo && x.ContainerCode == putContainer.ContainerCode);
-                   
+
                     bool isAdd = false;
                     bool isUpdate = false;
                     if (orderContainer == null)
@@ -357,24 +342,8 @@
                             ContainerId = putContainer.Id,
                             OrderNo = orderInfo.OrderNo,
                         };
-
-                        if (length > lengthThreshold)
-                        {
-                            orderContainer.MaxLength = putContainer.ContainerLength;
-                        }
-                        else
-                        {
-                            orderContainer.MaxLength = lengthThreshold;
-                        }
+                        orderContainer.MaxLength = putContainer.ContainerLength;
                         isAdd = true;
-                    }
-                    else
-                    {
-                        if (length < lengthThreshold)
-                        {
-                            isUpdate = true;
-                            orderContainer.MaxLength = lengthThreshold;
-                        }
                     }
 
                     Dt_ContainerItem dt_ContainerItem = new Dt_ContainerItem()
@@ -387,11 +356,12 @@
                         ItemPositionX = taskPosition.PositionX,
                         ItemPositionY = taskPosition.PositionY,
                         ItemPositionZ = taskPosition.PositionZ,
-                        ItemRelaPositionX = taskPosition.PositionX,
-                        ItemRelaPositionY = taskPosition.PositionY,
-                        ItemRelaPositionZ = taskPosition.PositionZ,
+                        ItemRelaPositionX = taskPosition.PutPositionX,
+                        ItemRelaPositionY = taskPosition.PutPositionY,
+                        ItemRelaPositionZ = taskPosition.PutPositionZ,
                         ItemStatus = (int)ItemStatusEnum.Assigned,
-                        ItemName = orderInfo.Barcode
+                        ItemName = orderInfo.Barcode,
+                        Remark = $"{takeContainer.ContainerCode}*{taskPosition.TakePositionX}*{taskPosition.TakePositionY}*{taskPosition.TakePositionZ}*{taskPosition.PositionR}"
                     };
 
                     Dt_Task dt_Task = new Dt_Task()
@@ -422,14 +392,17 @@
                     }
                     _unitOfWorkManage.CommitTran();
 
-                    return dt_Task;
+                    return (true, dt_Task, "");
                 }
-                throw new Exception($"鏃犲彲鏀剧疆浣嶇疆");
+                else
+                {
+                    return (false, null, $"鏃犲彲鏀剧疆浣嶇疆,{orderInfo.Serialize()}");
+                }
             }
             catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
-                throw new Exception(ex.Message);
+                return (false, null, $"閿欒,{ex.ExceptionToString()}");
             }
         }
 
@@ -476,72 +449,108 @@
             return containers.FirstOrDefault();
         }
 
-        public void TaskComplete(Dt_Task task)
+        public WebResponseContent TaskComplete(Dt_Task task)
         {
             try
             {
                 task.TaskState = TaskStatusEnum.Gantry_Completed.ObjToInt();
-
-
+                _unitOfWorkManage.BeginTran();
                 OrderDetails orderDetails = _orderDetailsRepository.QueryFirst(x => x.Orderdetails_outid == task.PalletCode);
                 if (orderDetails != null)
                 {
                     orderDetails.Orderdetails_status = PalletingStatusEnmu.PalletingSuccess.ObjToInt();
-
 
                     Orderrows orderrows = _orderrowsRepository.QueryFirst(x => x.id == orderDetails.Orderrowsid);
                     if (orderrows != null)
                     {
                         orderrows.Orderrows_PalletNum = orderrows.Orderrows_PalletNum ?? 0 + 1;
 
-
                         Dt_Container container = _containerRepository.QueryFirst(x => task.NextAddress.Contains(x.ContainerCode));
 
-                        _unitOfWorkManage.BeginTran();
-                        BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
                         _orderDetailsRepository.UpdateData(orderDetails);
                         _orderrowsRepository.UpdateData(orderrows);
 
-                        _unitOfWorkManage.CommitTran();
-
-                        List<object> list = new List<object>();
-
-                        List<OrderDetails> totalDetails = _orderDetailsRepository.QueryData(x => x.Orderrowsid == orderDetails.Orderrowsid);
-
-                        List<OrderDetails> details = totalDetails.Where(x => x.Orderrowsid == orderDetails.Orderrowsid && x.Orderdetails_status == PalletingStatusEnmu.PalletingSuccess.ObjToInt()).ToList();
-                        foreach (var item in details)
+                        try
                         {
-                            object obj = new
+                            List<string> containerItemCodes = _containerItemRepository.QueryData(x => x.ContainerId == container.Id).Select(x => x.ItemCode).ToList();
+
+                            List<OrderDetails> totalDetails = _orderDetailsRepository.QueryData(x => x.Orderrowsid == orderrows.id);
+                            List<OrderDetails> details = totalDetails.Where(x => x.Orderrowsid == orderrows.id && x.Orderdetails_status == PalletingStatusEnmu.PalletingSuccess.ObjToInt() && containerItemCodes.Contains(x.Orderdetails_outid)).ToList();
+
+                            int sortedNum = totalDetails.Where(x => x.Orderrowsid == orderrows.id && x.Orderdetails_status == PalletingStatusEnmu.PalletingSuccess.ObjToInt()).Count();
+                            object data = new object();
+                            if (totalDetails.Count <= sortedNum)
                             {
-                                orderCode = orderrows.Orderrows_orderid,
-                                cusName = orderrows.Orderrows_customer,
-                                orderName = orderrows.Orderrows_name,
-                                batch = orderrows.Orderrows_batchid,
-                                productName = ""
-                            };
-                            list.Add(obj);
+                                data = new
+                                {
+                                    stationCode = task.NextAddress.Split("*").FirstOrDefault(),
+                                    release = 1,
+                                    data = new
+                                    {
+                                        stationCode = task.NextAddress.Split("*").FirstOrDefault(),
+                                        orderTotalNum = totalDetails.Count,
+                                        sortedNum = sortedNum,
+                                        unsortedNum = totalDetails.Count - sortedNum,
+                                        stationSortedNum = details.Count,
+                                        orderId = orderrows.id,
+                                        orderData = new
+                                        {
+                                            orderCode = orderrows.Orderrows_orderid,
+                                            cusName = orderrows.Orderrows_customer,
+                                            orderName = orderrows.Orderrows_name,
+                                            batch = orderrows.Orderrows_batchid,
+                                            productName = "",
+                                        }
+                                    }
+                                };
+                            }
+                            else
+                            {
+                                data = new
+                                {
+                                    stationCode = task.NextAddress.Split("*").FirstOrDefault(),
+                                    release = 0,
+                                    data = new
+                                    {
+                                        stationCode = task.NextAddress.Split("*").FirstOrDefault(),
+                                        orderTotalNum = totalDetails.Count,
+                                        sortedNum = sortedNum,
+                                        unsortedNum = totalDetails.Count - sortedNum,
+                                        stationSortedNum = details.Count,
+                                        orderId = orderrows.id,
+                                        orderData = new
+                                        {
+                                            orderCode = orderrows.Orderrows_orderid,
+                                            cusName = orderrows.Orderrows_customer,
+                                            orderName = orderrows.Orderrows_name,
+                                            batch = orderrows.Orderrows_batchid,
+                                            productName = "",
+                                        }
+                                    }
+                                };
+                            }
+                            List<WebSocketSession> webSocketSessions2 = _webSocketServer.OnlineSessions.ToList();
+                            List<WebSocketSession> webSocketSessions = _webSocketServer.OnlineSessions.Where(x => x.Url.Contains(task.DeviceCode ?? "")).ToList();
+                            foreach (var item in webSocketSessions)
+                            {
+                                _webSocketServer.SendClientPayload(item, data.Serialize());
+                            }
                         }
+                        catch (Exception ex)
+                        {
 
-                        object data = new
-                        {
-                            stationCode = task.NextAddress.Split("*").FirstOrDefault(),
-                            orderTotalNum = totalDetails.Count,
-                            sortedNum = details.Count,
-                            unsortedNum = totalDetails.Count - details.Count,
-                            orderData = list
-                        };
-                        List<WebSocketSession> webSocketSessions2 = _webSocketServer.OnlineSessions.ToList();
-                        List<WebSocketSession> webSocketSessions = _webSocketServer.OnlineSessions.Where(x => x.Url.Contains(task.DeviceCode ?? "")).ToList();
-                        foreach (var item in webSocketSessions)
-                        {
-                            _webSocketServer.SendClientPayload(item, data.Serialize());
                         }
                     }
                 }
+
+                BaseDal.DeleteAndMoveIntoHty(task, App.User?.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
+                _unitOfWorkManage.CommitTran();
+                return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
             {
                 _unitOfWorkManage.RollbackTran();
+                return WebResponseContent.Instance.Error(ex.Message);
             }
         }
     }

--
Gitblit v1.9.3