From c29940a5ff8b56d96d4fe0fee2076a278e52e9c5 Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期三, 28 一月 2026 09:54:45 +0800
Subject: [PATCH] 优化出库

---
 项目代码/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs |  102 +++++++++++++++++++++++++++++++++++---------------
 1 files changed, 71 insertions(+), 31 deletions(-)

diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs"
index 4095b80..42ce9c5 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_TaskInfoService/MESTaskService.cs"
@@ -177,46 +177,86 @@
                 if (string.IsNullOrWhiteSpace(mES_In.endPosition)) return apiResponse.Error("鐩爣浣嶇疆涓嶈兘涓虹┖");
 
 
-                Dt_StockInfo dt_Stock=_stockInfoService.Repository.QueryData(x=>x.PalletCode== mES_In.containerNo && x.StockStatus== (int)StockStatusEmun.宸插叆搴�).FirstOrDefault();
+                Dt_StockInfo dt_Stock=_stockInfoService.Repository.QueryData(x=>x.PalletCode== mES_In.containerNo).FirstOrDefault();
                 if (dt_Stock == null) return apiResponse.Error($"WMS鏈兘鏌ユ壘閬撹鎵樼洏鏉$爜鐨勫簱瀛樿揣浣嶄俊鎭紝鏉$爜锛歿mES_In.containerNo}");
 
-                Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus== (int)LocationStatusEnum.InStock).FirstOrDefault();
-                if (dt_LocationInfo == null) return apiResponse.Error($"WMS鏈兘鏌ユ壘閬撹鎵樼洏鏉$爜鐨勫簱瀛樿揣浣嶄俊鎭紝鏉$爜锛歿mES_In.containerNo}锛屾湭鎵惧埌璐т綅鍙凤細{dt_Stock.LocationCode}");
+                if(dt_Stock.StockStatus == (int)StockStatusEmun.宸插叆搴�)
+                {
+                    Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus == (int)LocationStatusEnum.InStock).FirstOrDefault();
+                    if (dt_LocationInfo == null) return apiResponse.Error($"WMS鏈兘鏌ユ壘閬撹鎵樼洏鏉$爜鐨勫簱瀛樿揣浣嶄俊鎭紝鏉$爜锛歿mES_In.containerNo}锛屾湭鎵惧埌璐т綅鍙凤細{dt_Stock.LocationCode}");
 
-                Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo);
+                    Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo);
 
-                Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault();
-                if (setask != null) return apiResponse.Error($"WMS宸叉湁褰撳墠浠诲姟锛屼笉鍙噸澶嶄笅鍙戯紝鎵樼洏缂栧彿锛歿mES_In.containerNo}");
+                    Dt_Task setask = BaseDal.QueryData(x => x.PalletCode == mES_In.containerNo).FirstOrDefault();
+                    if (setask != null) return apiResponse.Error($"WMS宸叉湁褰撳墠浠诲姟锛屼笉鍙噸澶嶄笅鍙戯紝鎵樼洏缂栧彿锛歿mES_In.containerNo}");
 
-                Dt_Task task = new Dt_Task();
-                task.TaskNum = mES_In.transNo;
-                task.PalletCode = dt_Stock.PalletCode;
-                task.PalletType = dt_Stock.PalletType;
-                task.Roadway = dt_LocationInfo.RoadwayNo;
-                task.TaskType = (int)TaskTypeEnum.Outbound;
-                task.TaskStatus = (int)OutTaskStatusEnum.OutNew;
-                task.SourceAddress = dt_LocationInfo.LocationCode;
-                task.TargetAddress = mES_In.endPosition;
-                task.CurrentAddress = dt_LocationInfo.LocationCode;
-                task.NextAddress = _Roadwayinfo.OutSCStationCode;
-                task.WarehouseId = dt_LocationInfo.WarehouseId;
-                task.OrderNo = mES_In.transDate.ToString();
-                task.Grade = 1;
-                task.Creater = "MES";
-                task.CreateDate = DateTime.Now;
+                    Dt_Task task = new Dt_Task();
+                    task.TaskNum = mES_In.transNo;
+                    task.PalletCode = dt_Stock.PalletCode;
+                    task.PalletType = dt_Stock.PalletType;
+                    task.Roadway = dt_LocationInfo.RoadwayNo;
+                    task.TaskType = (int)TaskTypeEnum.Outbound;
+                    task.TaskStatus = (int)OutTaskStatusEnum.OutNew;
+                    task.SourceAddress = dt_LocationInfo.LocationCode;
+                    task.TargetAddress = mES_In.endPosition;
+                    task.CurrentAddress = dt_LocationInfo.LocationCode;
+                    task.NextAddress = _Roadwayinfo.OutSCStationCode;
+                    task.WarehouseId = dt_LocationInfo.WarehouseId;
+                    task.OrderNo = mES_In.transDate.ToString();
+                    task.Grade = 1;
+                    task.Creater = "MES";
+                    task.CreateDate = DateTime.Now;
 
-                dt_Stock.StockStatus = (int)StockStatusEmun.鍑哄簱涓�;
-                dt_LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
+                    dt_Stock.StockStatus = (int)StockStatusEmun.鍑哄簱涓�;
+                    dt_LocationInfo.LocationStatus = (int)LocationStatusEnum.Lock;
 
-                _unitOfWorkManage.BeginTran();
-                BaseDal.AddData(task);
-                _stockInfoService.Repository.UpdateData(dt_Stock);
-                _locationInfoService.Repository.UpdateData(dt_LocationInfo);
-                _unitOfWorkManage.CommitTran();
+                    _unitOfWorkManage.BeginTran();
+                    BaseDal.AddData(task);
+                    _stockInfoService.Repository.UpdateData(dt_Stock);
+                    _locationInfoService.Repository.UpdateData(dt_LocationInfo);
+                    _unitOfWorkManage.CommitTran();
 
 
-                WriteLog.Write_Log("MES_鎺ユ敹MES鍑哄簱浠诲姟涓嬪彂", $"鍑哄簱浠诲姟娣诲姞", "鎴愬姛", $"娣诲姞鎴愬姛锛屾墭鐩樻潯鐮侊細{dt_Stock.PalletCode}");
-                return apiResponse.OK();
+                    WriteLog.Write_Log("MES_鎺ユ敹MES鍑哄簱浠诲姟涓嬪彂", $"鍑哄簱浠诲姟娣诲姞", "鎴愬姛", $"娣诲姞鎴愬姛锛屾墭鐩樻潯鐮侊細{dt_Stock.PalletCode}");
+                    return apiResponse.OK();
+                }else if(dt_Stock.StockStatus == (int)StockStatusEmun.绉诲簱閿佸畾)
+                {
+                    Dt_LocationInfo dt_LocationInfo = _locationInfoService.Repository.QueryData(x => x.LocationCode == dt_Stock.LocationCode && x.LocationStatus == (int)LocationStatusEnum.Lock).FirstOrDefault();
+                    if (dt_LocationInfo == null) return apiResponse.Error($"WMS鏈兘鏌ユ壘閬撹鎵樼洏鏉$爜鐨勫簱瀛樿揣浣嶄俊鎭紝鏉$爜锛歿mES_In.containerNo}锛屾湭鎵惧埌璐т綅鍙凤細{dt_Stock.LocationCode}");
+
+                    Dt_roadwayinfo _Roadwayinfo = _roadWayinfoService.QbtainPlatform(dt_LocationInfo.RoadwayNo);
+
+                    Dt_Task task = new Dt_Task();
+                    task.TaskNum = mES_In.transNo;
+                    task.PalletCode = dt_Stock.PalletCode;
+                    task.PalletType = dt_Stock.PalletType;
+                    task.Roadway = dt_LocationInfo.RoadwayNo;
+                    task.TaskType = (int)TaskTypeEnum.Outbound;
+                    task.TaskStatus = (int)OutTaskStatusEnum.OutWait;
+                    task.SourceAddress = dt_LocationInfo.LocationCode;
+                    task.TargetAddress = mES_In.endPosition;
+                    task.CurrentAddress = dt_LocationInfo.LocationCode;
+                    task.NextAddress = _Roadwayinfo.OutSCStationCode;
+                    task.WarehouseId = dt_LocationInfo.WarehouseId;
+                    task.OrderNo = mES_In.transDate.ToString();
+                    task.Grade = 1;
+                    task.Creater = "MES";
+                    task.CreateDate = DateTime.Now;
+
+                    _unitOfWorkManage.BeginTran();
+                    BaseDal.AddData(task);
+                    _unitOfWorkManage.CommitTran();
+                    WriteLog.Write_Log("MES_鎺ユ敹MES鍑哄簱浠诲姟涓嬪彂", $"鍑哄簱浠诲姟娣诲姞", "鎴愬姛", $"娣诲姞鎴愬姛锛屾墭鐩樻潯鐮侊細{dt_Stock.PalletCode}");
+                    return apiResponse.OK();
+
+                }
+                else
+                {
+                    WriteLog.Write_Log("MES_鎺ユ敹MES鍑哄簱浠诲姟涓嬪彂", $"鍑哄簱浠诲姟娣诲姞", $"澶辫触,鎵樼洏鏉$爜锛歿dt_Stock.PalletCode}", $"搴撳瓨鐘舵�侀敊璇紝璇锋煡鐪媁MS绯荤粺搴撳瓨,搴撳瓨鐘舵�侊細{dt_Stock.StockStatus}");
+                    return apiResponse.Error("搴撳瓨鐘舵�侀敊璇紝璇锋煡鐪媁MS绯荤粺搴撳瓨");
+                }
+
+                
             }
             catch (Exception ex)
             {

--
Gitblit v1.9.3