From 3c024b153548ca391c9c56dd30c44d4dd2360854 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期三, 10 十二月 2025 14:18:58 +0800
Subject: [PATCH] 1

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |   57 +++++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 37 insertions(+), 20 deletions(-)

diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
index 84eef92..017d19a 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs"
@@ -360,7 +360,7 @@
                 });
                 //鏇存柊浠诲姟鐘舵��
                 task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
-                
+                FeedBackWCSTaskCompleted(taskNum);
                 _unitOfWorkManage.BeginTran();
                 BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐瀹屾垚 : OperateTypeEnum.鑷姩瀹屾垚);
                 _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, stockInfo.PalletType, LocationStatusEnum.InStock, stockInfo.WarehouseId);
@@ -391,7 +391,7 @@
                         _inboundOrderService.FeedbackInboundOrder(inboundOrder.Id);
                     }
                 }
-                FeedBackWCSTaskCompleted(taskNum);
+                
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -496,8 +496,8 @@
                     x.ProOutDetailStatus = StockStatusEmun.鍏ュ簱瀹屾垚.ObjToInt();
                 });
 
-                #region todo:涓存椂鏇存柊鎵�鏈夌爺鍙戣浆鎴愬搧
-                if (proStockInfo.ProStockAttribute == ProStockAttributeEnum.鐮斿彂.ObjToInt())
+                #region todo:涓存椂鏇存柊鎵�鏈夌爺鍙戞垨灏炬暟杞垚鍝�
+                if (proStockInfo.ProStockAttribute == ProStockAttributeEnum.鐮斿彂.ObjToInt() || proStockInfo.ProStockAttribute == ProStockAttributeEnum.灏炬暟.ObjToInt())
                 {
                     proStockInfo.ProStockAttribute = ProStockAttributeEnum.鎴愬搧.ObjToInt();
                     proStockInfo.WarehouseId = locationInfo.WarehouseId;
@@ -702,10 +702,10 @@
                 }
 
                 task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
-                
+                FeedBackWCSTaskCompleted(taskNum);
                 _unitOfWorkManage.BeginTran();
 
-                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutQuality.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt())
+                if (task.TaskType == TaskTypeEnum.Outbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutQuality.ObjToInt() || task.TaskType == TaskTypeEnum.OutAllocate.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandPickOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.MesHandOutbound.ObjToInt() || task.TaskType == TaskTypeEnum.OutSale.ObjToInt())
                 {
                     //澶勭悊鍑哄簱璇︽儏浠ュ強搴撳瓨鐘舵��
                     if (outboundOrderDetails.Count > 0)
@@ -771,14 +771,14 @@
                 _unitOfWorkManage.CommitTran();
 
                 //PP鍑哄簱浠诲姟瀹屾垚鍒ゆ柇銆傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘�傘��
-                if (warehouse.WarehouseCode == WarehouseEnum.HA58.ToString() && task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
-                {
-                    _outboundService.MesPPOutboundOrderService.Repository.UpdateData(mesPPOutboundOrders);
-                    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesPPOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesPPOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
-                    UploadMesMaterialLotaAcept(model);
-                    _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
-                    _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
-                }
+                //if (warehouse.WarehouseCode == WarehouseEnum.HA58.ToString() && task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
+                //{
+                //    _outboundService.MesPPOutboundOrderService.Repository.UpdateData(mesPPOutboundOrders);
+                //    MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesPPOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesPPOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
+                //    UploadMesMaterialLotaAcept(model);
+                //    _stockService.StockInfoService.Repository.DeleteAndMoveIntoHty(stockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                //    _stockService.StockInfoDetailService.Repository.DeleteAndMoveIntoHty(stockInfo.Details, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                //}
                 if (warehouse.WarehouseCode != WarehouseEnum.HA64.ToString() && task.TaskType == TaskTypeEnum.Outbound.ObjToInt())
                 {
                     _outboundService.OutboundOrderService.TestOutUpload(outboundOrderDetails.FirstOrDefault().OrderId, outStockLockInfos);
@@ -788,7 +788,7 @@
                     MesMaterialLotaAceptModel model = GetMesMaterialLotaAceptModel(stockInfo, stockInfo.Details.FirstOrDefault(), mesOutboundOrders.FirstOrDefault().TaskNo, warehouse.WarehouseCode, stockInfo.Details.Where(x => x.MaterielCode == mesOutboundOrders.FirstOrDefault().MaterialCode).Sum(x => x.StockQuantity));
                     UploadMesMaterialLotaAcept(model);
                 }
-                FeedBackWCSTaskCompleted(taskNum);
+                
                 return WebResponseContent.Instance.OK();
             }
             catch (Exception ex)
@@ -920,7 +920,7 @@
                 //MES鎴愬搧鍑哄簱鍚屾
                 if (task.TaskType!= TaskTypeEnum.OutSendProduct.ObjToInt())
                 {
-                    MesShipmentOrderSync shipmentOrderSync = MesOutSync(outProStockInfo, proOutOrderDetail, proStockInfoDetails);
+                    MesShipmentOrderSync shipmentOrderSync = MesOutSync(outProStockInfo, proOutOrderDetail, proStockInfoDetails,task);
                     ShipmentOrderSync(shipmentOrderSync);
                     ShipmentOrderMESSync(shipmentOrderSync);
                 }
@@ -1012,6 +1012,7 @@
             }
             return content;
         }
+        //鎶ュ簾鍑哄簱瀹屾垚
         public WebResponseContent OutProScrapCompleted(Dt_Task task)
         {
             WebResponseContent content = new WebResponseContent();
@@ -1030,7 +1031,6 @@
                     return content.Error("鏈壘鍒版垚鍝佸嚭搴撹鎯�");
                 }
                 //鑾峰彇鎴愬搧鎶ュ簾鍗�
-
                 Dt_ErpProScrapSheet erpProScrapSheet = _outboundRepository.ErpProScrapSheetRepository.Db.Queryable<Dt_ErpProScrapSheet>().Where(x => x.ProScrapSheetOrderNo == outProStockInfo.OrderNo).Includes(x=>x.Details).First();
                 if (erpProScrapSheet == null)
                 {
@@ -1045,12 +1045,21 @@
                 {
                     return content.Error($"鎴愬搧鎶ュ簾鍗曟槑缁嗚{erpProScrapSheetDetail.Id}宸插畬鎴�");
                 }
-                erpProScrapSheetDetail.ScrapProDetailStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
+                
                 //鑾峰彇褰撳墠搴撳瓨
                 Dt_ProStockInfo proStockInfo = _stockRepository.ProStockInfoRepository.Db.Queryable<Dt_ProStockInfo>().Where(x => x.PalletCode == task.PalletCode).Includes(x => x.proStockInfoDetails).First();
                 if (proStockInfo == null)
                 {
                     return content.Error($"鏈壘鍒皗task.PalletCode}搴撳瓨淇℃伅");
+                }
+                if (((int)outProStockInfo.AssignQuantity+erpProScrapSheetDetail.OverScrapPcsQty) == erpProScrapSheetDetail.ScrapPcsQty)
+                {
+                    erpProScrapSheetDetail.OverScrapPcsQty += (int)outProStockInfo.AssignQuantity;
+                    erpProScrapSheetDetail.ScrapProDetailStatus = OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
+                }
+                else
+                {
+                    erpProScrapSheetDetail.OverScrapPcsQty += (int)outProStockInfo.AssignQuantity;
                 }
                 List<Dt_ProStockInfoDetail> proStockInfoDetails = proStockInfo.proStockInfoDetails;
                 if (proStockInfoDetails.Count <= 0)
@@ -1203,7 +1212,10 @@
                         BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐鍒犻櫎 : OperateTypeEnum.鑷姩鍒犻櫎);
                         _stockService.ProStockInfoService.Repository.DeleteAndMoveIntoHty(proStockInfo, App.User.UserId == 0 ? OperateTypeEnum.鑷姩鍒犻櫎 : OperateTypeEnum.浜哄伐鍒犻櫎);
                         _stockService.ProStockInfoDetailService.Repository.DeleteAndMoveIntoHty(proStockInfo.proStockInfoDetails, App.User.UserId == 0 ? OperateTypeEnum.鑷姩鍒犻櫎 : OperateTypeEnum.浜哄伐鍒犻櫎);
-                        _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+                        if (prolocationInfo != null)
+                        {
+                            _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+                        }
                         _unitOfWorkManage.CommitTran();
                         return WebResponseContent.Instance.OK();
                     }
@@ -1220,7 +1232,10 @@
                         BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId > 0 ? OperateTypeEnum.浜哄伐鍒犻櫎 : OperateTypeEnum.鑷姩鍒犻櫎);
                         _stockService.ProStockInfoService.Repository.UpdateData(proStockInfo);
                         _stockService.ProStockInfoDetailService.Repository.UpdateData(proStockInfo.proStockInfoDetails);
-                        _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+                        if (prolocationInfo != null)
+                        {
+                            _basicService.LocationInfoService.UpdateLocationStatus(prolocationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, proStockInfo.WarehouseId);
+                        }
                         _unitOfWorkManage.CommitTran();
                         return WebResponseContent.Instance.OK();
                     }
@@ -1326,6 +1341,7 @@
             }
             catch(Exception ex)
             {
+                _unitOfWorkManage.RollbackTran();
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }
@@ -1414,6 +1430,7 @@
             }
             catch (Exception ex)
             {
+                _unitOfWorkManage.RollbackTran();
                 return WebResponseContent.Instance.Error(ex.Message);
             }
         }

--
Gitblit v1.9.3