From 4babfcfde8b26c755850e0066f1c07fac38e96a2 Mon Sep 17 00:00:00 2001
From: yanjinhui <3306209981@qq.com>
Date: 星期三, 29 十月 2025 01:22:41 +0800
Subject: [PATCH] 重新优化上报erp出入库完成接口

---
 新建文件夹/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs |   64 +++++++++++++++++++++++---------
 1 files changed, 46 insertions(+), 18 deletions(-)

diff --git "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs" "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
index 78352b9..e91b4f9 100644
--- "a/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
+++ "b/\346\226\260\345\273\272\346\226\207\344\273\266\345\244\271/WIDESEA_WMSServer/WIDESEA_SquareCabinServices/DeliveryOrderServices.cs"
@@ -227,7 +227,6 @@
                         if (materielInfo == null) throw new Exception($"鏈壘鍒拌嵂鍝佺紪鐮併�恵detail.goods_no}銆戠殑淇℃伅");
                         if (!Enum.IsDefined(typeof(MaterielSourceTypeEnum), materielInfo.MaterielSourceType))
                             throw new Exception($"璇疯缃嵂鍝佺紪鍙枫�恵detail.goods_no}銆戠殑灞炴�у垎绫�");
-                        if (materielInfo.BoxQty < 1) throw new Exception($"璇疯缃嵂鍝佺紪鍙枫�恵detail.goods_no}銆戠殑绠辫鏁伴噺");
                         #endregion
                         #region 澶т欢
                         if (materielInfo.MaterielSourceType == MaterielSourceTypeEnum.PurchasePart)//濡傛灉鐗╂枡鏄ぇ浠�
@@ -309,6 +308,7 @@
                         #endregion
                         else
                         {
+                            if (materielInfo.BoxQty < 1) throw new Exception($"璇疯缃嵂鍝佺紪鍙枫�恵detail.goods_no}銆戠殑绠辫鏁伴噺");
                             List<Dt_SupplyTask> supplyTasks = new List<Dt_SupplyTask>();
                             Dt_DeliveryOrderDetail orderDetail = null;
                             Dt_DeliveryOrderDetail orderDetailLK = null;
@@ -854,6 +854,12 @@
             return content;
         }
 
+
+        /// <summary>
+        /// pad鍑哄簱瀹屾垚
+        /// </summary>
+        /// <param name="saveModel"></param>
+        /// <returns></returns>
         public WebResponseContent OutFinish(SaveModel saveModel)
         {
             WebResponseContent content = new WebResponseContent();
@@ -941,24 +947,27 @@
                 supplyTask.TaskStatus = SupplyStatusEnum.OutFinish.ObjToInt();
                 _supplyTaskService.Repository.DeleteAndMoveIntoHty(supplyTask, OperateTypeEnum.浜哄伐瀹屾垚);
 
-                #region 搴撳瓨鎵规
-                Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode);
-                if (inventory_Batch != null)
+                #region 搴撳瓨鎵规 濡傛灉浠诲姟绫诲瀷鏄皟鎷ㄥ嚭搴撲换鍔★紙8锛夊氨涓嶄慨鏀规壒娆″簱瀛�
+                if (supplyTask.TaskType != TaskTypeEnum.AllocatOut.ObjToInt())
                 {
-                    inventory_Batch.StockQuantity -= supplyTask.StockQuantity;
-                    inventory_Batch.OutboundQuantity -= supplyTask.StockQuantity;
-                    if (inventory_Batch.StockQuantity <= 0)
-                        _inventory_BatchServices.DeleteData(inventory_Batch);
-                    else
-                        _inventory_BatchServices.UpdateData(inventory_Batch);
+                    Dt_Inventory_Batch inventory_Batch = _inventory_BatchServices.Repository.QueryFirst(x => x.BatchNo == inventoryInfo.BatchNo && x.MaterielCode == inventoryInfo.MaterielCode);
+                    if (inventory_Batch != null)
+                    {
+                        inventory_Batch.StockQuantity -= supplyTask.StockQuantity;
+                        inventory_Batch.OutboundQuantity -= supplyTask.StockQuantity;
+                        if (inventory_Batch.StockQuantity <= 0)
+                            _inventory_BatchServices.DeleteData(inventory_Batch);
+                        else
+                            _inventory_BatchServices.UpdateData(inventory_Batch);
+                    }
                 }
                 #endregion
                 if (supplyTask.WarehouseCode == WarehouseEnum.绔嬪簱.ObjToInt().ToString("000"))
                 {
                     materielInfo.Business_qty -= supplyTask.StockQuantity;
                     _basicService.MaterielInfoService.Repository.UpdateData(materielInfo);
-                    //if (materielInfo.Business_qty < materielInfo.MinQty)
-                    //    CreateAllocatInOut(materielInfo);//鍒涘缓璋冩嫧浠诲姟
+                    if (materielInfo.Business_qty < materielInfo.MinQty)
+                        CreateAllocatInOut(materielInfo);//鍒涘缓璋冩嫧浠诲姟
                 }
                 _unitOfWorkManage.CommitTran();
                 #endregion
@@ -971,6 +980,11 @@
             return content;
         }
 
+        /// <summary>
+        /// 浜哄伐鍦ㄥ嚭搴撳崟涓偣鍑诲畬鎴愭寜閽疄鐜颁笂鎶�
+        /// </summary>
+        /// <param name="key">id</param>
+        /// <returns></returns>
         public WebResponseContent FinishOutOrder(int key)
         {
             WebResponseContent content = new WebResponseContent();
@@ -979,16 +993,30 @@
                 Dt_DeliveryOrder deliveryOrder = BaseDal.QueryFirst(x => x.Id == key);
                 List<Dt_DeliveryOrder> deliveryOrders = Db.Queryable<Dt_DeliveryOrder>().Where(x => x.Out_no == deliveryOrder.Out_no).Includes(x => x.Details).ToList();//鎵惧嚭鎵�鏈夊嚭搴撳崟鍙风浉鍚岀殑鍑哄簱鍗�
                 _unitOfWorkManage.BeginTran();
+
                 foreach (var item in deliveryOrders)
                 {
-                    if (item.Details != null)
-                        _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.浜哄伐瀹屾垚);
-                    item.Modifier = App.User.UserName;
-                    item.ModifyDate = DateTime.Now;
-                    item.Details = null;
+                    if (item.Out_type==OutOrderTypeEnum.Allocate.ObjToInt().ToString())
+                    {
+                        if (item.Details!=null)
+                        {
+                            _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.浜哄伐瀹屾垚);
+                            item.Details =null;
+                        }
+                    }
+                    else
+                    {
+                        if (item.Details != null)
+                            _deliveryOrderDetailServices.Repository.DeleteAndMoveIntoHty(item.Details, OperateTypeEnum.浜哄伐瀹屾垚);
+                        item.Modifier = App.User.UserName;
+                        item.ModifyDate = DateTime.Now;
+                        item.Details = null;
+                      
+                    }
+                    BaseDal.DeleteAndMoveIntoHty(deliveryOrders, OperateTypeEnum.浜哄伐瀹屾垚);
                 }
-                BaseDal.DeleteAndMoveIntoHty(deliveryOrders, OperateTypeEnum.浜哄伐瀹屾垚);
                 var url = "http://121.37.118.63:80/GYZ2/95fck/outOrderOk";
+
                 var requestDate = new
                 {
                     order_no = deliveryOrder.Out_no

--
Gitblit v1.9.3