From c1aabd3aaa92b072591fc368d81ab2cc37a0aa14 Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期五, 27 三月 2026 17:33:25 +0800
Subject: [PATCH] 路由变更

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs |  223 ++++++++++++++++++++++++++++++-------------------------
 1 files changed, 122 insertions(+), 101 deletions(-)

diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
index 1bf9205..8e3c669 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
@@ -102,46 +102,53 @@
         public async Task<WebResponseContent> GroupPalletAsync(StockDTO stock)
         {
             WebResponseContent content = new WebResponseContent();
-            var now = DateTime.Now;
-            var details = stock.Details.Select(item => new Dt_StockInfoDetail
+            try
             {
-                MaterielCode = "鐢佃姱",
-                MaterielName = "鐢佃姱",
-                StockQuantity = item.Quantity,
-                Unit = "PCS",
-                Creater = "system",
-                OrderNo = "111",
-                ProductionDate = now.ToString(),
-                EffectiveDate = now.AddYears(1).ToString(),
-                SerialNumber = item.CellBarcode,
-                InboundOrderRowNo = item.Channel,
-                Status = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
-            }).ToList();
-
-            return await ExecuteWithinTransactionAsync(async () =>
-            {
-                var existingStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.TargetPalletNo);
-                var result = false;
-                if (existingStock != null)
+                var now = DateTime.Now;
+                var details = stock.Details.Select(item => new Dt_StockInfoDetail
                 {
-                    details.ForEach(d => d.StockId = existingStock.Id);
-                    result = await StockInfoDetailService.Repository.AddDataAsync(details) > 0;
-                    return result ? content.OK("缁勭洏鎴愬姛") : content.Error("缁勭洏澶辫触");
-                }
-
-                var entity = new Dt_StockInfo
-                {
-                    PalletCode = stock.TargetPalletNo,
-                    //WarehouseId = stock.WarehouseId > 0 ? stock.WarehouseId : 1,
-                    WarehouseId = 1,
-                    StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
+                    MaterielCode = "鐢佃姱",
+                    MaterielName = "鐢佃姱",
+                    StockQuantity = item.Quantity,
+                    Unit = "PCS",
                     Creater = "system",
-                    Details = details
-                };
+                    OrderNo = "111",
+                    ProductionDate = now.ToString(),
+                    EffectiveDate = now.AddYears(1).ToString(),
+                    SerialNumber = item.CellBarcode,
+                    InboundOrderRowNo = item.Channel,
+                    Status = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
+                }).ToList();
 
-                result = StockInfoService.Repository.AddData(entity, x => x.Details);
-                return result ? content.OK("缁勭洏鎴愬姛") : content.Error("缁勭洏澶辫触");
-            });
+                return await ExecuteWithinTransactionAsync(async () =>
+                {
+                    var existingStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.TargetPalletNo);
+                    var result = false;
+                    if (existingStock != null)
+                    {
+                        details.ForEach(d => d.StockId = existingStock.Id);
+                        result = await StockInfoDetailService.Repository.AddDataAsync(details) > 0;
+                        return result ? content.OK("缁勭洏鎴愬姛") : content.Error("缁勭洏澶辫触");
+                    }
+
+                    var entity = new Dt_StockInfo
+                    {
+                        PalletCode = stock.TargetPalletNo,
+                        //WarehouseId = stock.WarehouseId > 0 ? stock.WarehouseId : 1,
+                        WarehouseId = 1,
+                        StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
+                        Creater = "system",
+                        Details = details
+                    };
+
+                    result = StockInfoService.Repository.AddData(entity, x => x.Details);
+                    return result ? content.OK("缁勭洏鎴愬姛") : content.Error("缁勭洏澶辫触");
+                });
+            }
+            catch (Exception ex)
+            {
+                return content.Error($"缁勭洏澶辫触: {ex.Message}");
+            }
         }
 
         /// <summary>
@@ -150,55 +157,62 @@
         public async Task<WebResponseContent> ChangePalletAsync(StockDTO stock)
         {
             WebResponseContent content = new WebResponseContent();
-            if (stock == null ||
-                string.IsNullOrWhiteSpace(stock.TargetPalletNo) ||
-                string.IsNullOrWhiteSpace(stock.SourcePalletNo) ||
-                string.Equals(stock.SourcePalletNo, stock.TargetPalletNo, StringComparison.OrdinalIgnoreCase))
+            try
             {
-                return content.Error("婧愭墭鐩樺彿涓庣洰鏍囨墭鐩樺彿鐩稿悓");
-            }
-
-            return await ExecuteWithinTransactionAsync(async () =>
-            {
-                var sourceStock = await StockInfoService.Repository.QueryDataNavFirstAsync(s => s.PalletCode == stock.SourcePalletNo);
-                if (sourceStock == null) return content.Error("婧愭墭鐩樹笉瀛樺湪");
-
-                var targetStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.TargetPalletNo);
-                if (targetStock == null)
+                if (stock == null ||
+                    string.IsNullOrWhiteSpace(stock.TargetPalletNo) ||
+                    string.IsNullOrWhiteSpace(stock.SourcePalletNo) ||
+                    string.Equals(stock.SourcePalletNo, stock.TargetPalletNo, StringComparison.OrdinalIgnoreCase))
                 {
-                    var newStock = new Dt_StockInfo
-                    {
-                        PalletCode = stock.TargetPalletNo,
-                        WarehouseId = sourceStock.WarehouseId,
-                        StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
-                        Creater = "system",
-                    };
-
-                    var newId = StockInfoService.Repository.AddData(newStock);
-                    if (newId <= 0) return content.Error("鎹㈢洏澶辫触");
-
-                    targetStock = newStock;
-                    targetStock.Id = newId;
+                    return content.Error("婧愭墭鐩樺彿涓庣洰鏍囨墭鐩樺彿鐩稿悓");
                 }
 
-                var serialNumbers = stock.Details.Select(d => d.Channel).Distinct().ToList();
-                if (!serialNumbers.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴忓垪鍙�");
+                return await ExecuteWithinTransactionAsync(async () =>
+                {
+                    var sourceStock = await StockInfoService.Repository.QueryDataNavFirstAsync(s => s.PalletCode == stock.SourcePalletNo);
+                    if (sourceStock == null) return content.Error("婧愭墭鐩樹笉瀛樺湪");
 
-                var detailEntities = StockInfoDetailService.Repository.QueryData(
-                    d => d.StockId == sourceStock.Id && serialNumbers.Contains(d.InboundOrderRowNo));
-                if (!detailEntities.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴撳瓨鏄庣粏");
+                    var targetStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.TargetPalletNo);
+                    if (targetStock == null)
+                    {
+                        var newStock = new Dt_StockInfo
+                        {
+                            PalletCode = stock.TargetPalletNo,
+                            WarehouseId = sourceStock.WarehouseId,
+                            StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
+                            Creater = "system",
+                        };
 
-                if (await StockInfoDetail_HtyService.Repository.AddDataAsync(CreateDetailHistory(detailEntities, "鎹㈢洏")) <= 0)
-                    return content.Error("鎹㈢洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+                        var newId = StockInfoService.Repository.AddData(newStock);
+                        if (newId <= 0) return content.Error("鎹㈢洏澶辫触");
 
-                if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock, targetStock }, "鎹㈢洏")) <= 0)
-                    return content.Error("鎹㈢洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+                        targetStock = newStock;
+                        targetStock.Id = newId;
+                    }
 
-                detailEntities.ForEach(d => d.StockId = targetStock.Id);
-                var result = await StockInfoDetailService.Repository.UpdateDataAsync(detailEntities);
-                if (!result) return content.Error("鎹㈢洏澶辫触");
-                return content.OK("鎹㈢洏鎴愬姛");
-            });
+                    var serialNumbers = stock.Details.Select(d => d.Channel).Distinct().ToList();
+                    if (!serialNumbers.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴忓垪鍙�");
+
+                    var detailEntities = StockInfoDetailService.Repository.QueryData(
+                        d => d.StockId == sourceStock.Id && serialNumbers.Contains(d.InboundOrderRowNo));
+                    if (!detailEntities.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴撳瓨鏄庣粏");
+
+                    if (await StockInfoDetail_HtyService.Repository.AddDataAsync(CreateDetailHistory(detailEntities, "鎹㈢洏")) <= 0)
+                        return content.Error("鎹㈢洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+
+                    if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock, targetStock }, "鎹㈢洏")) <= 0)
+                        return content.Error("鎹㈢洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+
+                    detailEntities.ForEach(d => d.StockId = targetStock.Id);
+                    var result = await StockInfoDetailService.Repository.UpdateDataAsync(detailEntities);
+                    if (!result) return content.Error("鎹㈢洏澶辫触");
+                    return content.OK("鎹㈢洏鎴愬姛");
+                });
+            }
+            catch (Exception ex)
+            {
+                return content.Error($"鎹㈢洏澶辫触: {ex.Message}");
+            }
         }
 
         /// <summary>
@@ -207,37 +221,44 @@
         public async Task<WebResponseContent> SplitPalletAsync(StockDTO stock)
         {
             WebResponseContent content = new WebResponseContent();
-            if (stock == null || string.IsNullOrWhiteSpace(stock.SourcePalletNo))
-                return content.Error("婧愭墭鐩樺彿涓嶈兘涓虹┖");
-
-            return await ExecuteWithinTransactionAsync(async () =>
+            try
             {
-                var sourceStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.SourcePalletNo);
-                if (sourceStock == null) return content.Error("婧愭墭鐩樹笉瀛樺湪");
+                if (stock == null || string.IsNullOrWhiteSpace(stock.SourcePalletNo))
+                    return content.Error("婧愭墭鐩樺彿涓嶈兘涓虹┖");
 
-                var serialNumbers = stock.Details.Select(d => d.CellBarcode).Distinct().ToList();
-                if (!serialNumbers.Any())
+                return await ExecuteWithinTransactionAsync(async () =>
                 {
-                    serialNumbers = sourceStock.Details
-                                                .Where(x => stock.Details.Any(d => d.Channel == x.InboundOrderRowNo))
-                                                .Select(x => x.SerialNumber)
-                                                .ToList();
-                }
+                    var sourceStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.SourcePalletNo);
+                    if (sourceStock == null) return content.Error("婧愭墭鐩樹笉瀛樺湪");
 
-                var detailEntities = StockInfoDetailService.Repository.QueryData(
-                    d => d.StockId == sourceStock.Id && serialNumbers.Contains(d.SerialNumber));
-                if (!detailEntities.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴撳瓨鏄庣粏");
+                    var serialNumbers = stock.Details.Select(d => d.CellBarcode).Distinct().ToList();
+                    if (!serialNumbers.Any())
+                    {
+                        serialNumbers = sourceStock.Details
+                                                    .Where(x => stock.Details.Any(d => d.Channel == x.InboundOrderRowNo))
+                                                    .Select(x => x.SerialNumber)
+                                                    .ToList();
+                    }
 
-                if (await StockInfoDetail_HtyService.Repository.AddDataAsync(CreateDetailHistory(detailEntities, "鎷嗙洏")) <= 0)
-                    return content.Error("鎷嗙洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+                    var detailEntities = StockInfoDetailService.Repository.QueryData(
+                        d => d.StockId == sourceStock.Id && serialNumbers.Contains(d.SerialNumber));
+                    if (!detailEntities.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴撳瓨鏄庣粏");
 
-                if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock }, "鎷嗙洏")) <= 0)
-                    return content.Error("鎷嗙洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+                    if (await StockInfoDetail_HtyService.Repository.AddDataAsync(CreateDetailHistory(detailEntities, "鎷嗙洏")) <= 0)
+                        return content.Error("鎷嗙洏鍘嗗彶璁板綍淇濆瓨澶辫触");
 
-                var result = await StockInfoDetailService.Repository.DeleteDataAsync(detailEntities);
-                if (!result) return content.Error("鎷嗙洏澶辫触");
-                return content.OK("鎷嗙洏鎴愬姛");
-            });
+                    if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock }, "鎷嗙洏")) <= 0)
+                        return content.Error("鎷嗙洏鍘嗗彶璁板綍淇濆瓨澶辫触");
+
+                    var result = await StockInfoDetailService.Repository.DeleteDataAsync(detailEntities);
+                    if (!result) return content.Error("鎷嗙洏澶辫触");
+                    return content.OK("鎷嗙洏鎴愬姛");
+                });
+            }
+            catch (Exception ex)
+            {
+                return content.Error($"鎷嗙洏澶辫触: {ex.Message}");
+            }
         }
 
         /// <summary>

--
Gitblit v1.9.3