From 37379aa1d6e95c1964419b32031aaccc302888c3 Mon Sep 17 00:00:00 2001
From: kyy <3283105747@qq.com>
Date: 星期六, 30 八月 2025 09:43:32 +0800
Subject: [PATCH] 1、新增批量按送货单删除条码、按明细删除条码

---
 MESApplication/Controllers/BasicData/DeliveryBarcodeController.cs |  131 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 127 insertions(+), 4 deletions(-)

diff --git a/MESApplication/Controllers/BasicData/DeliveryBarcodeController.cs b/MESApplication/Controllers/BasicData/DeliveryBarcodeController.cs
index e7a0768..d6b35e3 100644
--- a/MESApplication/Controllers/BasicData/DeliveryBarcodeController.cs
+++ b/MESApplication/Controllers/BasicData/DeliveryBarcodeController.cs
@@ -137,7 +137,7 @@
             return ResponseResult.ResponseError(ex);
         }
     }
-    
+
     /// <summary>
     /// 鏍规嵁閫佽揣鍗曞彿鍒犻櫎鏉$爜鏁版嵁
     /// </summary>
@@ -194,6 +194,68 @@
     }
     
     /// <summary>
+    /// 鎵归噺鏍规嵁閫佽揣鍗曞彿鍒犻櫎鏉$爜鏁版嵁
+    /// </summary>
+    /// <param name="request">鍖呭惈鎵归噺閫佽揣鍗曞彿鐨勮姹傛ā鍨嬶紙鏁扮粍鏍煎紡锛�</param>
+    /// <returns>缁熶竴鍝嶅簲缁撴灉</returns>
+    [HttpPost("DeleteListByNo")]
+    public ResponseResult DeleteListByNo([FromBody] BatchDeleteByDeliveryNoRequest request)
+    {
+        // 1. 鍒濆鍖栨秷鎭腑蹇冨疄浣�
+        var messageEntity = new MessageCenter
+        {
+            TableName = TARGET_TABLE,
+            Url = BASE_API_URL + "DeleteListByNo",
+            Method = REQUEST_METHOD,
+            Data = JsonConvert.SerializeObject(request),
+            Status = 1, // 澶勭悊涓�
+            CreateBy = "PL017",
+            // 璺敱鏍囪瘑锛氭樉绀哄墠3涓崟鍙�
+            Route =
+                $"Batch_{string.Join(",", request.Take(3).Select(item => item.DeliveryNo))}{(request.Count > 3 ? "..." : "")}",
+            DealWith = 0 // 鏈鐞�
+        };
+
+        try
+        {
+            // 2. 鐩存帴璋冪敤涓氬姟灞傦紙涓嶅啀鍦ㄦ帶鍒跺櫒澶勭悊鍒楄〃锛岄�昏緫绉昏嚦涓氬姟灞傦級
+            dynamic resultData = new ExpandoObject();
+            BatchDeleteResult deleteResult = _deliveryBarcodeManager.DeleteListByDeliveryNo(request);
+
+            // 3. 缁勮杩斿洖鏁版嵁
+            resultData.totalRequested = deleteResult.TotalRequested;
+            resultData.totalDeleted = deleteResult.TotalDeleted;
+            resultData.deletedNos = deleteResult.DeletedNos;
+            resultData.notFoundNos = deleteResult.NotFoundNos;
+            resultData.isSuccess = deleteResult.TotalDeleted > 0;
+
+            // 4. 鏇存柊娑堟伅涓績鐘舵�侊紙鎴愬姛锛�
+            messageEntity.Result = 1;
+            messageEntity.DealWith = 1;
+            messageEntity.ResultData = $"鎵归噺鍒犻櫎瀹屾垚锛屽叡澶勭悊{deleteResult.TotalRequested}涓崟鍙�";
+            _messageCenterManager.save(messageEntity);
+
+            // 5. 杩斿洖鎴愬姛鍝嶅簲
+            return new ResponseResult
+            {
+                status = 0,
+                message = $"鎴愬姛鍒犻櫎{deleteResult.DeletedNos.Count}涓�佽揣鍗曞彿瀵瑰簲鐨勬潯鐮佹暟鎹紝鍏眥deleteResult.TotalDeleted}鏉¤褰�",
+                data = resultData
+            };
+        }
+        catch (Exception ex)
+        {
+            // 6. 寮傚父澶勭悊
+            messageEntity.Result = 0;
+            messageEntity.DealWith = 0;
+            messageEntity.ResultData = ex.Message;
+            _messageCenterManager.save(messageEntity);
+
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+
+    /// <summary>
     /// 鎸夐�佽揣鍗曞彿+琛屽唴鐮佽仈鍚堝垹闄ゆ潯鐮佹暟鎹�
     /// </summary>
     /// <param name="request">鍖呭惈閫佽揣鍗曞彿鍜岃鍐呯爜鐨勮姹傛ā鍨�</param>
@@ -219,7 +281,7 @@
             // 2. 璋冪敤涓氬姟灞傝仈鍚堝垹闄ゆ柟娉�
             dynamic resultData = new ExpandoObject();
             bool deleteSuccess = _deliveryBarcodeManager.DeleteByDeliveryItem(
-                request.DeliveryNo, 
+                request.DeliveryNo,
                 request.LineNo
             );
             // 鍝嶅簲涓繑鍥炲叧閿潯浠讹紝渚夸簬鍓嶇纭鍒犻櫎鑼冨洿
@@ -251,6 +313,67 @@
             // 6. 杩斿洖缁熶竴寮傚父鍝嶅簲
             return ResponseResult.ResponseError(ex);
         }
-    } 
-}
+    }
 
+    /// <summary>
+    /// 鎵归噺鎸夐�佽揣鍗曞彿+琛屽唴鐮佸垹闄ゆ潯鐮佹暟鎹�
+    /// </summary>
+    /// <param name="request">鍖呭惈鎵归噺閫佽揣鍗曡鐨勮姹傛ā鍨嬶紙鏁扮粍鏍煎紡锛�</param>
+    /// <returns>缁熶竴鍝嶅簲缁撴灉</returns>
+    [HttpPost("DeleteListByItem")]
+    public ResponseResult DeleteListByItem([FromBody] BatchDeleteByDeliveryItemRequest request)
+    {
+        // 1. 鍒濆鍖栨秷鎭腑蹇冨疄浣�
+        var messageEntity = new MessageCenter
+        {
+            TableName = TARGET_TABLE,
+            Url = BASE_API_URL + "DeleteListByItem",
+            Method = REQUEST_METHOD,
+            Data = JsonConvert.SerializeObject(request),
+            Status = 1, // 澶勭悊涓�
+            CreateBy = "PL017",
+            // 璺敱鏍囪瘑锛氭樉绀哄墠3涓�"DeliveryNo_LineNo"缁勫悎
+            Route =
+                $"BatchItem_{string.Join(",", request.Take(3).Select(item => $"{item.DeliveryNo}_{item.LineNo}"))}{(request.Count > 3 ? "..." : "")}",
+            DealWith = 0 // 鏈鐞�
+        };
+
+        try
+        {
+            // 2. 璋冪敤涓氬姟灞傛墽琛屾壒閲忓垹闄�
+            dynamic resultData = new ExpandoObject();
+            BatchDeleteResult deleteResult = _deliveryBarcodeManager.DeleteListByDeliveryItem(request);
+
+            // 3. 缁勮杩斿洖鏁版嵁
+            resultData.totalRequested = deleteResult.TotalRequested;
+            resultData.totalDeleted = deleteResult.TotalDeleted;
+            resultData.deletedItems = deleteResult.DeletedNos; // 鏍煎紡锛歔"DN1_1", "DN1_2"]
+            resultData.notFoundItems = deleteResult.NotFoundNos;
+            resultData.isSuccess = deleteResult.TotalDeleted > 0;
+
+            // 4. 鏇存柊娑堟伅涓績鐘舵�侊紙鎴愬姛锛�
+            messageEntity.Result = 1;
+            messageEntity.DealWith = 1;
+            messageEntity.ResultData = $"鎵归噺鍒犻櫎瀹屾垚锛屽叡澶勭悊{deleteResult.TotalRequested}鏉¢�佽揣鍗曡";
+            _messageCenterManager.save(messageEntity);
+
+            // 5. 杩斿洖鎴愬姛鍝嶅簲
+            return new ResponseResult
+            {
+                status = 0,
+                message = $"鎴愬姛鍒犻櫎{deleteResult.DeletedNos.Count}鏉¢�佽揣鍗曡鏁版嵁锛屽叡{deleteResult.TotalDeleted}鏉¤褰�",
+                data = resultData
+            };
+        }
+        catch (Exception ex)
+        {
+            // 6. 寮傚父澶勭悊
+            messageEntity.Result = 0;
+            messageEntity.DealWith = 0;
+            messageEntity.ResultData = ex.Message;
+            _messageCenterManager.save(messageEntity);
+
+            return ResponseResult.ResponseError(ex);
+        }
+    }
+}
\ No newline at end of file

--
Gitblit v1.9.3