From ec3daa05f122738f18d4474b9257e4cf794dc5cf Mon Sep 17 00:00:00 2001
From: Admin <Admin@ADMIN>
Date: 星期五, 06 三月 2026 10:36:01 +0800
Subject: [PATCH] 接口新增
---
项目代码/WMS/WIDESEA_WMSServer/WIDESEA_StorageBasicServices/Location/LocationInfoService.cs | 68 +++++++++++++++++++++++-----------
1 files changed, 46 insertions(+), 22 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 e320f9d..bbc1ed2 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"
@@ -21,6 +21,7 @@
private readonly ITaskExecuteDetailRepository _taskExecuteDetailRepository;
private readonly ILocationStatusChangeRecordRepository _locationStatusChangeRecordRepository;
private readonly IDt_WheelsStockRepository _WheelsStockRepository;
+ private readonly IDt_ZdpStockRepository _zdpStockRepository;
private readonly IMapper _mapper;
public LocationInfoService(ILocationInfoRepository BaseDal,
@@ -33,7 +34,8 @@
IStockInfoDetailRepository stockInfoDetailRepository,
IMapper mapper,
IDt_TaskService taskService,
- IDt_WheelsStockRepository wheelsStockRepository) : base(BaseDal)
+ IDt_WheelsStockRepository wheelsStockRepository,
+ IDt_ZdpStockRepository zdpStockRepository) : base(BaseDal)
{
_unitOfWorkManage = unitOfWorkManage;
_taskRepository = taskRepository;
@@ -45,6 +47,7 @@
_mapper = mapper;
_taskService = taskService;
_WheelsStockRepository = wheelsStockRepository;
+ _zdpStockRepository = zdpStockRepository;
}
/// <summary>
@@ -80,6 +83,8 @@
// 鑾峰彇鏂扮殑搴撲綅鐨勪换鍔�
var internalTransferTask = await _taskRepository.QueryFirstAsync(x => x.SourceAddress == newLocationID && x.Roadway == outboundTask.Roadway && x.TaskState == (int)TaskOutStatusEnum.OutNew);
+
+
LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鑾峰彇鏂板簱浣嶇殑浠诲姟", $"鏂板簱浣嶄换鍔★細{internalTransferTask}");
// 濡傛灉鏂扮殑搴撲綅娌℃湁鎵惧埌瀵瑰簲鐨勪换鍔�
@@ -310,21 +315,32 @@
#endregion 鍚敤绂佺敤璐т綅
#region 澶у睆搴撲綅鐘舵�佽幏鍙�
- public WebResponseContent LocationStatus()
+ public WebResponseContent LocationStatuskt()
{
WebResponseContent content = new WebResponseContent();
// 鑾峰彇鎵�鏈夊簱浣嶆暟鎹�
List<DtLocationInfo> locations = BaseDal.QueryData();
+ // 瀹氫箟鎵�鏈夊彲鑳界殑鐘舵�佸強鍏跺搴旂殑鏄剧ず鏂囨湰
+ var allStatuses = new Dictionary<int, string>
+{
+ { 0, "绌鸿揣浣�" },
+ { 1, "閿佸畾" },
+ { 2, "鏈夎揣" },
+ { 3, "鏈夎揣绂佺敤" }
+};
+
// 鎸塋ocationStatus鍒嗙粍缁熻
- var statusGroups = locations
- .GroupBy(l => l.LocationStatus)
- .Select(g => new
- {
- Status = g.Key==0?"绌鸿揣浣�": g.Key == 1 ? "閿佸畾": g.Key == 2 ? "鏈夎揣": "鏈夎揣绂佺敤",
- Count = g.Count(),
- })
+ var statusGroups = allStatuses
+ .GroupJoin(locations.GroupBy(l => l.LocationStatus),
+ status => status.Key,
+ group => group.Key,
+ (status, groups) => new
+ {
+ Status = status.Value,
+ Count = groups.SelectMany(g => g).Any() ? groups.First().Count() : 0
+ })
.ToList();
// 灏嗙粺璁$粨鏋滄斁鍏ュ搷搴斿唴瀹�
@@ -369,8 +385,12 @@
// 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
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)
+ if (stockInfo == null && zdpInfo==null)
{
LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏈幏鍙栧埌搴撳瓨鏁版嵁", $"鐩存帴杩斿洖鍘熷厛鍑哄簱浠诲姟锛歿outboundTask}");
// 濡傛灉娌℃湁搴撳瓨锛岀洿鎺ヨ繑鍥炲綋鍓嶅嚭搴撲换鍔�
@@ -388,14 +408,14 @@
{
CreateDate = DateTime.Now,
Creater = App.User.UserName == null ? "admin" : App.User.UserName,
- CurrentAddress = stockInfo.Wheels_Location,
+ CurrentAddress = stockInfo != null ?stockInfo.Wheels_Location: zdpInfo.Zdp_Location,
Grade = 99,
- MaterialNo = stockInfo.Wheels_Type,
+ MaterialNo = stockInfo != null ? stockInfo.Wheels_Type: "2",
NextAddress = emptyLocation.LocationCode,
- PalletCode = stockInfo.Wheels_Num,
+ PalletCode = stockInfo != null ? stockInfo.Wheels_Num : zdpInfo.Zdp_code,
Remark = "绉诲簱",
Roadway = "SC1",
- SourceAddress = stockInfo.Wheels_Location,
+ SourceAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location,
TaskNum = taskNo,
TargetAddress = emptyLocation.LocationCode,
TaskState = (int)TaskStatus.Created,
@@ -424,8 +444,12 @@
// 鍒ゆ柇璇ヤ綅缃槸鍚︽湁搴撳瓨
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)
+ if (stockInfo == null && zdpInfo == null)
{
LogFactory.GetLog("妫�鏌ユ槸鍚﹂渶瑕佺Щ搴�").InfoFormat(true, "闇�瑕佺Щ搴�,鏈幏鍙栧埌搴撳瓨鏁版嵁", $"鐩存帴杩斿洖鍘熷厛鍑哄簱浠诲姟锛歿inboundTask}");
// 濡傛灉娌℃湁搴撳瓨锛岀洿鎺ヨ繑鍥炲綋鍓嶅嚭搴撲换鍔�
@@ -443,14 +467,14 @@
{
CreateDate = DateTime.Now,
Creater = App.User.UserName == null ? "admin" : App.User.UserName,
- CurrentAddress = stockInfo.Wheels_Location,
+ CurrentAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location,
Grade = 99,
- MaterialNo = stockInfo.Wheels_Type,
+ MaterialNo = stockInfo != null ? stockInfo.Wheels_Type : "2",
NextAddress = emptyLocation.LocationCode,
- PalletCode = stockInfo.Wheels_Num,
+ PalletCode = stockInfo != null ? stockInfo.Wheels_Num : zdpInfo.Zdp_code,
Remark = "绉诲簱",
Roadway = "SC1",
- SourceAddress = stockInfo.Wheels_Location,
+ SourceAddress = stockInfo != null ? stockInfo.Wheels_Location : zdpInfo.Zdp_Location,
TaskNum = taskNo,
TargetAddress = emptyLocation.LocationCode,
TaskState = (int)TaskStatus.Created,
@@ -497,7 +521,7 @@
//List<DtLocationInfo> locations = new List<DtLocationInfo>();
if (locationInfos == null || locationInfos.Count == 0)
{
- locationInfos = BaseDal.QueryData(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == "SC1" && x.EnalbeStatus == 1 && x.LocationType == 1);
+ locationInfos = BaseDal.QueryData(x => x.LocationStatus == 0 && x.RoadwayNo == "SC1" && x.EnalbeStatus == 1 && x.LocationType == 1);
}
@@ -518,7 +542,7 @@
{
locationInfos.Remove(location);
if (locationInfos.Count == 0) return null;
- RequestLocation(RoadWayNo, locationInfos);
+ return RequestLocation(RoadWayNo, locationInfos);
}
}
}
@@ -539,7 +563,7 @@
}
private DtLocationInfo GetEmptyLocation(List<DtLocationInfo> dtLocationInfos)
{
- var locationinfo = dtLocationInfos.Where(x => x.LocationStatus == (int)LocationEnum.Free && x.RoadwayNo == "SC1" && x.EnalbeStatus == 1 && x.LocationType == 1).OrderBy(x => x.Layer).ThenByDescending(x => x.Depth).ThenBy(x => x.Row).ThenBy(x => x.Column).FirstOrDefault();
+ var locationinfo = dtLocationInfos.Where(x => x.LocationStatus == 0 && x.RoadwayNo == "SC1" && x.EnalbeStatus == 1 && x.LocationType == 1).OrderBy(x => x.Layer).ThenByDescending(x => x.Depth).ThenBy(x => x.Row).ThenBy(x => x.Column).FirstOrDefault();
return locationinfo;
}
--
Gitblit v1.9.3