From 679893ee68e2f7d422431bb22b665e9217f23410 Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期四, 16 四月 2026 16:41:11 +0800
Subject: [PATCH] 深库位与浅库位出库时,进行浅货位移库不可直接出库
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs | 112 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 66 insertions(+), 46 deletions(-)
diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs"
index bbc1ed2..0225954 100644
--- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs"
+++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs"
@@ -84,18 +84,21 @@
// 鑾峰彇鏂扮殑搴撲綅鐨勪换鍔�
var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == newLocationID && x.Roadway == outboundTask.Roadway && x.TaskState == (int)TaskOutStatusEnum.OutNew);
-
-
LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鑾峰彇鏂板簱浣嶇殑浠诲姟", $"鏂板簱浣嶄换鍔★細{internalTransferTask}");
+
+
+ LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏈幏鍙栧埌鏂板簱浣嶄换鍔�", $"");
+ return await HandleNoTaskAtLocation(outboundTask.SourceAddress, newLocationID, outboundTask);
// 濡傛灉鏂扮殑搴撲綅娌℃湁鎵惧埌瀵瑰簲鐨勪换鍔�
- if (internalTransferTask == null)
+ /*if (internalTransferTask == null)
{
LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏈幏鍙栧埌鏂板簱浣嶄换鍔�", $"");
return await HandleNoTaskAtLocation(outboundTask.SourceAddress, newLocationID, outboundTask);
}
+
LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鑾峰彇鍒版柊搴撲綅浠诲姟鐩存帴杩斿洖", $"鏂板簱浣嶄换鍔★細{internalTransferTask}");
// 鐩存帴杩斿洖涓�娣变綅鍑哄簱浠诲姟
- return internalTransferTask;
+ return internalTransferTask;*/
}
// 杩斿洖褰撳墠搴撲綅鐨勫嚭搴撲换鍔�
@@ -382,53 +385,70 @@
/// <returns>鐢熸垚鐨勭Щ搴撲换鍔℃垨鍘熷鍑哄簱浠诲姟</returns>
private async Task<Dt_Task> HandleNoTaskAtLocation(string originalLocationID, string newLocationID, Dt_Task outboundTask)
{
- // 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
- var stockInfo = await _WheelsStockRepository.QueryFirstAsync(x => x.Wheels_Location == newLocationID);
-
- // 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
- var zdpInfo = await _zdpStockRepository.QueryFirstAsync(x => x.Zdp_Location == newLocationID);
-
-
- LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏈幏鍙栧埌鏂板簱浣嶄换鍔�", $"璇ヤ綅缃槸鍚︽湁搴撳瓨锛歿stockInfo}");
- if (stockInfo == null && zdpInfo==null)
+ try
{
- LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏈幏鍙栧埌搴撳瓨鏁版嵁", $"鐩存帴杩斿洖鍘熷厛鍑哄簱浠诲姟锛歿outboundTask}");
- // 濡傛灉娌℃湁搴撳瓨锛岀洿鎺ヨ繑鍥炲綋鍓嶅嚭搴撲换鍔�
- return outboundTask;
- }
- else
- {
- // 濡傛灉鏈夊簱瀛橈紝鐢熸垚绉诲簱浠诲姟
- var emptyLocation = RequestLocation("SC1");
- if (emptyLocation == null) throw new Exception("鏆傛棤绌哄簱");
+ // 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
+ var stockInfo = await _WheelsStockRepository.QueryFirstAsync(x => x.Wheels_Location == newLocationID);
- LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏌ユ壘鑳界Щ搴撹揣浣�", $"璐т綅鏁版嵁锛歿emptyLocation}");
- var taskNo = await _taskRepository.GetTaskNo();
- Dt_Task newTransferTask = new Dt_Task()
+ // 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
+ var zdpInfo = await _zdpStockRepository.QueryFirstAsync(x => x.Zdp_Location == newLocationID);
+
+
+ LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "鑾峰彇鐨勫簱瀛樹俊鎭�", $"鏍规嵁璐т綅缂栧彿锛歿newLocationID}锛岃浣嶇疆鏄惁鏈夊簱瀛橈細{stockInfo.ToJson()}");
+ if (stockInfo == null && zdpInfo == null)
{
- CreateDate = DateTime.Now,
- Creater = App.User.UserName == null ? "admin" : App.User.UserName,
- CurrentAddress = stockInfo != null ?stockInfo.Wheels_Location: zdpInfo.Zdp_Location,
- Grade = 99,
- MaterialNo = stockInfo != null ? stockInfo.Wheels_Type: "2",
- NextAddress = emptyLocation.LocationCode,
- PalletCode = stockInfo != null ? stockInfo.Wheels_Num : zdpInfo.Zdp_code,
- Remark = "绉诲簱",
- Roadway = "SC1",
- SourceAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location,
- TaskNum = taskNo,
- TargetAddress = emptyLocation.LocationCode,
- TaskState = (int)TaskStatus.Created,
- TaskType = (int)TaskTypeEnum.Relocation,
- Dispatchertime = DateTime.Now,
- };
- LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏂板缓绉诲簱浠诲姟", $"绉诲簱浠诲姟鏁版嵁锛歿newTransferTask}");
+ LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏈幏鍙栧埌搴撳瓨鏁版嵁", $"鐩存帴杩斿洖鍘熷厛鍑哄簱浠诲姟锛歿outboundTask}");
+ // 濡傛灉娌℃湁搴撳瓨锛岀洿鎺ヨ繑鍥炲綋鍓嶅嚭搴撲换鍔�
+ return outboundTask;
+ }
+ else
+ {
+ // 濡傛灉鏈夊簱瀛橈紝鐢熸垚绉诲簱浠诲姟
+ var emptyLocation = RequestLocation("SC1");
+ if (emptyLocation == null) throw new Exception("鏆傛棤绌哄簱");
- //淇敼搴撲綅鐘舵��
- emptyLocation.LocationStatus = (int)LocationEnum.FreeDisable;
- BaseDal.UpdateData(emptyLocation);
+ LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏌ユ壘鑳界Щ搴撹揣浣�", $"璐т綅鏁版嵁锛歿emptyLocation}");
+ var taskNo = await _taskRepository.GetTaskNo();
+ Dt_Task newTransferTask = new Dt_Task()
+ {
+ CreateDate = DateTime.Now,
+ Creater = App.User.UserName == null ? "admin" : App.User.UserName,
+ CurrentAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location,
+ Grade = 99,
+ MaterialNo = stockInfo != null ? stockInfo.Wheels_Type : "2",
+ NextAddress = emptyLocation.LocationCode,
+ PalletCode = stockInfo != null ? stockInfo.Wheels_Num : zdpInfo.Zdp_code,
+ Remark = "绉诲簱",
+ Roadway = "SC1",
+ SourceAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location,
+ TaskNum = taskNo,
+ TargetAddress = emptyLocation.LocationCode,
+ TaskState = (int)TaskStatus.Created,
+ TaskType = (int)TaskTypeEnum.Relocation,
+ Dispatchertime = DateTime.Now,
+ };
+ LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏂板缓绉诲簱浠诲姟", $"绉诲簱浠诲姟鏁版嵁锛歿newTransferTask.ToJson()}");
- return await _taskRepository.Create(newTransferTask);
+ // 鑾峰彇鏂扮殑搴撲綅鐨勪换鍔�
+ var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == newLocationID && x.Roadway == outboundTask.Roadway && x.TaskState == (int)TaskOutStatusEnum.OutNew);
+ if (internalTransferTask != null)
+ {
+ internalTransferTask.SourceAddress = emptyLocation.LocationCode;
+ internalTransferTask.CurrentAddress = emptyLocation.LocationCode;
+ await _taskRepository.Update(internalTransferTask);
+ }
+
+ //淇敼搴撲綅鐘舵��
+ emptyLocation.LocationStatus = (int)LocationEnum.FreeDisable;
+ BaseDal.UpdateData(emptyLocation);
+
+ return await _taskRepository.Create(newTransferTask);
+ }
+ }
+ catch (Exception ex)
+ {
+ LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "鏂规硶锛欻andleNoTaskAtLocation", $"鍑洪敊锛屽師鍥狅細{ex.ToJson()}");
+ throw;
}
}
--
Gitblit v1.9.3