From 89e2243271a81bd6a11612b95d986f0972b6a08e Mon Sep 17 00:00:00 2001
From: dengjunjie <dengjunjie@hnkhzn.com>
Date: 星期五, 24 十月 2025 20:04:50 +0800
Subject: [PATCH] 添加出入库退货单

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs |   55 +++++++++++++++++++++++++++++--------------------------
 1 files changed, 29 insertions(+), 26 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
index a4d154b..c61496f 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/InventoryServices.cs"
@@ -237,37 +237,40 @@
                                 #endregion
 
                                 //UpdateInboundOrderDetailStatus(request.orderNo, detail.batchNo, detail.productCode);
-                                break;
                             }
-                        case "2":
-                            #region 鎵惧嚭搴撲换鍔�
-                            Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First();
-                            if (supplyTask == null) throw new Exception($"鏈壘鍒拌鍗曞彿銆恵request.orderNo}銆戠墿鏂欑紪鍙枫�恵detail.productCode}銆戠殑鍑哄簱浠诲姟");
-                            #endregion
-
-                            #region 澶勭悊鍑哄簱鍗曘�佸簱瀛樹俊鎭�佸嚭搴撲换鍔°�佽皟鎷ㄤ换鍔�
-                            _deliveryOrderServices.OutTaskFinish(supplyTask);
-                            #endregion
                             break;
+                        case "2":
+                            {
+                                #region 鎵惧嚭搴撲换鍔�
+                                Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewOut.ObjToInt()).First();
+                                if (supplyTask == null) throw new Exception($"鏈壘鍒拌鍗曞彿銆恵request.orderNo}銆戠墿鏂欑紪鍙枫�恵detail.productCode}銆戠殑鍑哄簱浠诲姟");
+                                if (supplyTask.StockQuantity != orderQty) throw new Exception($"璁㈠崟鍙枫�恵request.orderNo}銆戠墿鏂欑紪鍙枫�恵detail.productCode}銆戠殑鍑哄簱鏁伴噺涓庡嚭搴撲换鍔℃暟閲忎笉鐩哥瓑");
+                                #endregion
 
+                                #region 澶勭悊鍑哄簱鍗曘�佸簱瀛樹俊鎭�佸嚭搴撲换鍔°�佽皟鎷ㄤ换鍔�
+                                _deliveryOrderServices.OutTaskFinish(supplyTask);
+                                #endregion
+                            }
+                            break;
                         case "3": // 鐩樼偣
-                            decimal diff = detail.ea ?? 0;             // 宸紓鏁�
-                            int flag = detail.isLossOrProfit ?? 3;     // 1=鐩樹簭, 2=鐩樼泩, 3=鐩樹腑
-                            if (flag == 1) // 鐩樹簭
                             {
-                                //搴撳瓨鏁�-宸紓鏁�=鐩樹簭
-                                //batch.SupplyQuantity += (batch.StockQuantity - diff);
-                                //batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樹簭";
-                            }
-                            else if (flag == 2) // 鐩樼泩
-                            {
-                                //搴撳瓨鏁�+宸紓鏁�=鐩樼泩
-                                //batch.SupplyQuantity += (batch.StockQuantity + diff);
-                                //batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樼泩";
-                            }
-                            else // 鐩樹腑
-                            {
-                                //batch.Remark = "鐩樼偣鍗曞洖浼� - 鐩樹腑";
+                                #region 鎵剧洏鐐逛换鍔�
+                                Dt_SupplyTask supplyTask = Db.Queryable<Dt_SupplyTask>().Where(x => x.MaterielCode == detail.productCode && x.BatchNo == detail.batchNo && x.OrderNo == request.orderNo && x.WarehouseCode == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000") && x.TaskStatus == SupplyStatusEnum.NewCheck.ObjToInt()).First();
+                                if (supplyTask == null) throw new Exception($"鏈壘鍒拌鍗曞彿銆恵request.orderNo}銆戠墿鏂欑紪鍙枫�恵detail.productCode}銆戠殑鐩樼偣浠诲姟");
+                                #endregion
+                                if (detail.isLossOrProfit == 1) // 鐩樹簭
+                                {
+                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity - detail.ea;
+                                }
+                                else if (detail.isLossOrProfit == 2) // 鐩樼泩
+                                {
+                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity + detail.ea;
+                                }
+                                else // 鐩樹腑
+                                {
+                                    supplyTask.SupplyQuantity = supplyTask.StockQuantity;
+                                }
+                               _deliveryOrderServices.CheckTaskFinish(supplyTask);
                             }
                             break;
                     }

--
Gitblit v1.9.3