From 2fbbc3ccaa4123a2d550fa64d91fa8ac25323a58 Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期五, 11 七月 2025 15:32:03 +0800
Subject: [PATCH] 上传最新

---
 代码管理/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/TaskService.cs |   86 +++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 86 insertions(+), 0 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 b3dcf34..b453a70 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"
@@ -829,6 +829,9 @@
                     case (int)TaskTypeEnum.OutMesRworkProduct:
                         content = OutMesRworkCompleted(task);
                         break;
+                    case (int)TaskTypeEnum.OutProScrap:
+                        content = OutProScrapCompleted(task);
+                        break;
                     default:
                         content.Error("鏈煡浠诲姟绫诲瀷");
                         break;
@@ -1023,6 +1026,89 @@
             }
             return content;
         }
+        public WebResponseContent OutProScrapCompleted(Dt_Task task)
+        {
+            WebResponseContent content = new WebResponseContent();
+            try
+            {
+                //鑾峰彇璐т綅
+                Dt_LocationInfo locationInfo = _basicRepository.LocationInfoRepository.QueryFirst(x => x.LocationCode == task.SourceAddress);
+                if (locationInfo == null)
+                {
+                    return content.Error("鏈壘鍒拌揣浣嶄俊鎭�");
+                }
+                //鏍规嵁浠诲姟鑾峰彇鎴愬搧鍑哄簱璇︽儏浠诲姟鍙婄墿鏂欎俊鎭�
+                Dt_OutProStockInfo outProStockInfo = _outProStockInfoRepository.QueryFirst(x => x.TaskNum == task.TaskNum);
+                if (outProStockInfo == null)
+                {
+                    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)
+                {
+                    return content.Error("鏈壘鍒版垚鍝佹姤搴熷崟");
+                }
+                Dt_ErpProScrapSheetDetail erpProScrapSheetDetail = erpProScrapSheet.Details.FirstOrDefault(x => x.Id == outProStockInfo.OrderDetailId);
+                if (erpProScrapSheetDetail == null)
+                {
+                    return content.Error("鏈壘鍒版垚鍝佹姤搴熷崟鏄庣粏");
+                }
+                if (erpProScrapSheetDetail.ScrapProDetailStatus == OutOrderStatusEnum.鍑哄簱瀹屾垚.ObjToInt())
+                {
+                    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}搴撳瓨淇℃伅");
+                }
+                List<Dt_ProStockInfoDetail> proStockInfoDetails = proStockInfo.proStockInfoDetails;
+                if (proStockInfoDetails.Count <= 0)
+                {
+                    return content.Error("鎴愬搧搴撳瓨鏄庣粏涓虹┖");
+                }
+                proStockInfoDetails.ForEach(x =>
+                {
+                    x.OutboundQuantity = 0;
+                    x.ProOutDetailStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
+                });
+                proStockInfo.StockStatus = StockStatusEmun.鍑哄簱瀹屾垚.ObjToInt();
+                //鑾峰彇鎴愬搧骞冲簱
+                Dt_Warehouse warehouse = _basicRepository.WarehouseRepository.QueryFirst(x => x.WarehouseCode == WarehouseEnum.HA101.ToString());
+                proStockInfo.WarehouseId = warehouse.WarehouseId;
+                proStockInfo.LocationCode = "鎴愬搧鍖呰鎷h揣鍖�";
+                task.TaskStatus = TaskStatusEnum.Finish.ObjToInt();
+                outProStockInfo.Status = OutLockStockStatusEnum.鍑哄簱瀹屾垚.ObjToInt();
+                _unitOfWorkManage.BeginTran();
+                //璐т綅鍙樺姩璁板綍
+                int beforeStatus = locationInfo.LocationStatus;
+                locationInfo.LocationStatus = LocationStatusEnum.Free.ObjToInt();
+                _basicService.LocationInfoService.UpdateLocationStatus(locationInfo, proStockInfo.PalletType, LocationStatusEnum.Free, locationInfo.WarehouseId);
+                _recordService.LocationStatusChangeRecordSetvice.AddLocationStatusChangeRecord(locationInfo, (LocationStatusEnum)beforeStatus, LocationStatusEnum.Free, LocationChangeType.OutboundCompleted, erpProScrapSheet?.ProScrapSheetOrderNo ?? "", task.TaskNum);
+                _stockRepository.ProStockInfoRepository.UpdateData(proStockInfo);
+                _stockRepository.ProStockInfoDetailRepository.UpdateData(proStockInfoDetails);
+                _outProStockInfoRepository.UpdateData(outProStockInfo);
+                BaseDal.DeleteAndMoveIntoHty(task, App.User.UserId == 0 ? OperateTypeEnum.鑷姩瀹屾垚 : OperateTypeEnum.浜哄伐瀹屾垚);
+                //MES鎴愬搧搴撳瓨鏉垮嚭搴撳悓姝�
+                //WebResponseContent responseContent = ProductOutBoundSync(MesProOutBound(mesRworkOutboundOrder, proStockInfoDetails));
+                //if (!responseContent.Status)
+                //{
+                //    throw new Exception("鍚屾MES搴撳瓨鏉垮嚭搴撳け璐�,閿欒:"+ responseContent.Message);
+                //}
+                _unitOfWorkManage.CommitTran();
+                content.OK();
+            }
+            catch (Exception ex)
+            {
+                _unitOfWorkManage.RollbackTran();
+                content.Error(ex.Message);
+            }
+            return content;
+        }
         /// <summary>
         /// 鐩樼偣鍑哄簱瀹屾垚
         /// </summary>

--
Gitblit v1.9.3