From 7a2d709d935075bcdc48e0f3f0ae9f4641663b9f Mon Sep 17 00:00:00 2001
From: wanshenmean <cathay_xy@163.com>
Date: 星期二, 17 三月 2026 09:12:34 +0800
Subject: [PATCH] docs: add repository contributor guidelines

---
 Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs |  108 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 78 insertions(+), 30 deletions(-)

diff --git a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
index bbe42f9..1271ec3 100644
--- a/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
+++ b/Code/WMS/WIDESEA_WMSServer/WIDESEA_StockService/StockSerivce.cs
@@ -1,4 +1,5 @@
 锘縰sing WIDESEA_Common.StockEnum;
+using WIDESEA_Core;
 using WIDESEA_DTO.Stock;
 using WIDESEA_IStockService;
 using WIDESEA_Model.Models;
@@ -6,16 +7,38 @@
 namespace WIDESEA_StockService
 {
     /// <summary>
-    /// 搴撳瓨鏈嶅姟
+    /// 搴撳瓨鏈嶅姟鑱氬悎瀹炵幇绫�
     /// </summary>
-    public class StockSerivce : IStockService
+    public class StockService : IStockService
     {
+        /// <summary>
+        /// 搴撳瓨鏄庣粏鏈嶅姟
+        /// </summary>
         public IStockInfoDetailService StockInfoDetailService { get; }
+
+        /// <summary>
+        /// 搴撳瓨淇℃伅鏈嶅姟
+        /// </summary>
         public IStockInfoService StockInfoService { get; }
+
+        /// <summary>
+        /// 搴撳瓨鏄庣粏鍘嗗彶鏈嶅姟
+        /// </summary>
         public IStockInfoDetail_HtyService StockInfoDetail_HtyService { get; }
+
+        /// <summary>
+        /// 搴撳瓨鍘嗗彶鏈嶅姟
+        /// </summary>
         public IStockInfo_HtyService StockInfo_HtyService { get; }
 
-        public StockSerivce(
+        /// <summary>
+        /// 鏋勯�犲嚱鏁�
+        /// </summary>
+        /// <param name="stockInfoDetailService">搴撳瓨鏄庣粏鏈嶅姟</param>
+        /// <param name="stockInfoService">搴撳瓨淇℃伅鏈嶅姟</param>
+        /// <param name="stockInfoDetail_HtyService">搴撳瓨鏄庣粏鍘嗗彶鏈嶅姟</param>
+        /// <param name="stockInfo_HtyService">搴撳瓨鍘嗗彶鏈嶅姟</param>
+        public StockService(
             IStockInfoDetailService stockInfoDetailService,
             IStockInfoService stockInfoService,
             IStockInfoDetail_HtyService stockInfoDetail_HtyService,
@@ -30,8 +53,9 @@
         /// <summary>
         /// 缁勭洏
         /// </summary>
-        public async Task<bool> GroupPallet(StockDTO stock)
+        public async Task<WebResponseContent> GroupPalletAsync(StockDTO stock)
         {
+            WebResponseContent content = new WebResponseContent();
             var now = DateTime.Now;
             var details = stock.Details.Select(item => new Dt_StockInfoDetail
             {
@@ -49,10 +73,13 @@
             }).ToList();
 
             var existingStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.TargetPalletNo);
+            var result = false;
             if (existingStock != null)
             {
                 details.ForEach(d => d.StockId = existingStock.Id);
-                return await StockInfoDetailService.Repository.AddDataAsync(details) > 0;
+                result = await StockInfoDetailService.Repository.AddDataAsync(details) > 0;
+                if (result) return content.OK("缁勭洏鎴愬姛");
+                return content.Error("缁勭洏澶辫触");
             }
 
             var entity = new Dt_StockInfo
@@ -64,24 +91,27 @@
                 Details = details
             };
 
-            return StockInfoService.Repository.AddData(entity, x => x.Details);
+            result = StockInfoService.Repository.AddData(entity, x => x.Details);
+            if (result) return content.OK("缁勭洏鎴愬姛");
+            return content.Error("缁勭洏澶辫触");
         }
 
         /// <summary>
         /// 鎹㈢洏
         /// </summary>
-        public async Task<bool> ChangePallet(StockDTO stock)
+        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))
             {
-                return false;
+                return content.Error("婧愭墭鐩樺彿涓庣洰鏍囨墭鐩樺彿鐩稿悓");
             }
 
             var sourceStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.SourcePalletNo);
-            if (sourceStock == null) return false;
+            if (sourceStock == null) return content.Error("婧愭墭鐩樹笉瀛樺湪");
 
             var targetStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.TargetPalletNo);
             if (targetStock == null)
@@ -90,74 +120,92 @@
                 {
                     PalletCode = stock.TargetPalletNo,
                     WarehouseId = sourceStock.WarehouseId,
-                    StockStatus = sourceStock.StockStatus,
-                    Creater = "system"
+                    StockStatus = StockStatusEmun.缁勭洏鏆傚瓨.GetHashCode(),
+                    Creater = "system",
                 };
 
                 var newId = StockInfoService.Repository.AddData(newStock);
-                if (newId <= 0) return false;
+                if (newId <= 0) return content.Error("鎹㈢洏澶辫触");
 
                 targetStock = newStock;
                 targetStock.Id = newId;
             }
 
             var serialNumbers = stock.Details.Select(d => d.CellBarcode).Distinct().ToList();
-            if (!serialNumbers.Any()) return false;
+            if (!serialNumbers.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴忓垪鍙�");
 
             var detailEntities = StockInfoDetailService.Repository.QueryData(
                 d => d.StockId == sourceStock.Id && serialNumbers.Contains(d.SerialNumber));
-            if (!detailEntities.Any()) return false;
+            if (!detailEntities.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴撳瓨鏄庣粏");
 
             if (await StockInfoDetail_HtyService.Repository.AddDataAsync(CreateDetailHistory(detailEntities, "鎹㈢洏")) <= 0)
-                return false;
+                return content.Error("鎹㈢洏鍘嗗彶璁板綍淇濆瓨澶辫触");
 
             if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock, targetStock }, "鎹㈢洏")) <= 0)
-                return false;
+                return content.Error("鎹㈢洏鍘嗗彶璁板綍淇濆瓨澶辫触");
 
             detailEntities.ForEach(d => d.StockId = targetStock.Id);
-            return await StockInfoDetailService.Repository.UpdateDataAsync(detailEntities);
+            var result = await StockInfoDetailService.Repository.UpdateDataAsync(detailEntities);
+            if (!result) return content.Error("鎹㈢洏澶辫触");
+            return content.OK("鎹㈢洏鎴愬姛");
         }
 
         /// <summary>
         /// 鎷嗙洏
         /// </summary>
-        public async Task<bool> SplitPallet(StockDTO stock)
+        public async Task<WebResponseContent> SplitPalletAsync(StockDTO stock)
         {
+            WebResponseContent content = new WebResponseContent();
             if (stock == null || string.IsNullOrWhiteSpace(stock.SourcePalletNo))
-                return false;
+                return content.Error("婧愭墭鐩樺彿涓嶈兘涓虹┖");
 
             var sourceStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.SourcePalletNo);
-            if (sourceStock == null) return false;
+            if (sourceStock == null) return content.Error("婧愭墭鐩樹笉瀛樺湪");
 
             var serialNumbers = stock.Details.Select(d => d.CellBarcode).Distinct().ToList();
-            if (!serialNumbers.Any()) return false;
+            if (!serialNumbers.Any())
+            {
+                serialNumbers = sourceStock.Details
+                                            .Where(x => stock.Details.Any(d => d.Channel == x.InboundOrderRowNo))
+                                            .Select(x => x.SerialNumber)
+                                            .ToList();
+            }
 
             var detailEntities = StockInfoDetailService.Repository.QueryData(
                 d => d.StockId == sourceStock.Id && serialNumbers.Contains(d.SerialNumber));
-            if (!detailEntities.Any()) return false;
+            if (!detailEntities.Any()) return content.Error("鏈壘鍒版湁鏁堢殑搴撳瓨鏄庣粏");
 
             if (await StockInfoDetail_HtyService.Repository.AddDataAsync(CreateDetailHistory(detailEntities, "鎷嗙洏")) <= 0)
-                return false;
+                return content.Error("鎷嗙洏鍘嗗彶璁板綍淇濆瓨澶辫触");
 
             if (await StockInfo_HtyService.Repository.AddDataAsync(CreateStockHistory(new[] { sourceStock }, "鎷嗙洏")) <= 0)
-                return false;
+                return content.Error("鎷嗙洏鍘嗗彶璁板綍淇濆瓨澶辫触");
 
-            return await StockInfoDetailService.Repository.DeleteDataAsync(detailEntities);
+            var result = await StockInfoDetailService.Repository.DeleteDataAsync(detailEntities);
+            if (!result) return content.Error("鎷嗙洏澶辫触");
+            return content.OK("鎷嗙洏鎴愬姛");
         }
 
-        public async Task<bool> UpdateStockInfo(StockInfoDTO stock)
+        /// <summary>
+        /// 鍫嗗灈鏈烘崲鐩樺悗鏇存柊搴撳瓨淇℃伅锛堟竻绌哄簱浣嶄俊鎭級
+        /// </summary>
+        /// <param name="stock"></param>
+        /// <returns></returns>
+        public async Task<WebResponseContent> UpdateStockInfoAsync(StockInfoDTO stock)
         {
-            if (stock == null) return false;
+            WebResponseContent content = new WebResponseContent();
+            if (string.IsNullOrWhiteSpace(stock.PalletCode)) return content.Error("鎵樼洏鍙蜂笉鑳戒负绌�");
 
             var existingStock = StockInfoService.Repository.QueryFirst(s => s.PalletCode == stock.PalletCode);
-            if (existingStock == null) return false;
+            if (existingStock == null) return content.Error("鎵樼洏淇℃伅涓嶅瓨鍦�");
 
             existingStock.LocationCode = "";
             existingStock.LocationId = 0;
 
-            return await StockInfoService.Repository.UpdateDataAsync(existingStock);
+            var result = await StockInfoService.Repository.UpdateDataAsync(existingStock);
+            if (!result) return content.Error("鏇存柊搴撳瓨淇℃伅澶辫触");
+            return content.OK("鏇存柊搴撳瓨淇℃伅鎴愬姛");
         }
-
 
         private static List<Dt_StockInfoDetail_Hty> CreateDetailHistory(IEnumerable<Dt_StockInfoDetail> details, string operateType)
         {

--
Gitblit v1.9.3