From 695571c6009ecbc12e7d4a4fb147df7967a1260e Mon Sep 17 00:00:00 2001
From: wangxinhui <wangxinhui@hnkhzn.com>
Date: 星期一, 07 七月 2025 20:21:19 +0800
Subject: [PATCH] Merge branch 'master' of http://115.159.85.185:8098/r/MeiRuiAn/HuaiAn
---
代码管理/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs | 70 ++++++++++++++++++++++++++++++++---
1 files changed, 64 insertions(+), 6 deletions(-)
diff --git "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs" "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
index 679c7cd..bdba1c5 100644
--- "a/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
+++ "b/\344\273\243\347\240\201\347\256\241\347\220\206/WMS/WIDESEA_WMSServer/WIDESEA_BasicService/Service/LocationInfoService.cs"
@@ -21,19 +21,26 @@
namespace WIDESEA_BasicService
{
- public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, ILocationInfoRepository>, ILocationInfoService
+ public class LocationInfoService_Old
{
- private readonly IRecordService _recordService;
- public LocationInfoService(ILocationInfoRepository BaseDal, IBasicRepository basicRepository, IRecordService recordService) : base(BaseDal)
+ private readonly ILocationInfoRepository Repository;
+
+ public LocationInfoService_Old(ILocationInfoRepository repository)
{
- _basicRepository = basicRepository;
- _recordService = recordService;
+ Repository = repository;
}
double weightValue = 0.5;
private readonly static object _locker = new object();
static List<LocationCache> locationCaches = new List<LocationCache>();
+
+ /// <summary>
+ /// 璐т綅鍒嗛厤閫昏緫
+ /// </summary>
+ /// <param name="roadwayNo">宸烽亾鍙�</param>
+ /// <param name="palletType">鎵樼洏绫诲瀷</param>
+ /// <returns></returns>
public Dt_LocationInfo? AssignLocation(string roadwayNo, PalletTypeEnum palletType)
{
lock (_locker)
@@ -148,7 +155,13 @@
return null;
}
- public void UpdateLocationStatus(string locationCode, PalletTypeEnum palletType, LocationStatusEnum locationStatus, string taskNum = "", string orderNo = "")
+ /// <summary>
+ /// 淇敼璐т綅鐘舵�佸強绫诲瀷
+ /// </summary>
+ /// <param name="locationCode">璐т綅缂栧彿</param>
+ /// <param name="palletType">鎵樼洏绫诲瀷</param>
+ /// <param name="locationStatus">璐т綅鐘舵��</param>
+ public void UpdateLocationStatus(string locationCode, PalletTypeEnum palletType, LocationStatusEnum locationStatus)
{
Dt_LocationInfo location = Repository.QueryFirst(x => x.LocationCode == locationCode);
List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
@@ -188,6 +201,51 @@
Repository.UpdateData(locations);
}
+ /// <summary>
+ /// 淇敼璐т綅鐘舵�佸強绫诲瀷
+ /// </summary>
+ /// <param name="location">璐т綅瀵硅薄</param>
+ /// <param name="palletType">鎵樼洏绫诲瀷</param>
+ /// <param name="locationStatus">璐т綅鐘舵��</param>
+ public void UpdateLocationStatus(Dt_LocationInfo location, PalletTypeEnum palletType, LocationStatusEnum locationStatus)
+ {
+ List<Dt_LocationInfo> locationInfos = Repository.QueryData(x => x.RoadwayNo == location.RoadwayNo);
+
+ List<Dt_LocationInfo> locations = GetGroupLocations(locationInfos, location);
+ if (locationInfos.Max(x => x.Depth) < 3)
+ {
+ for (int i = 0; i < locations.Count; i++)
+ {
+ locations[i].LocationStatus = locationStatus.ObjToInt();
+ locations[i].LocationType = palletType.ObjToInt();
+ }
+
+ Dt_LocationInfo? nearLocation = locationInfos.FirstOrDefault(x => x.Row == location.Row && x.Layer == location.Layer && x.Depth == location.Depth && x.Column == location.Column + 1);
+ if (nearLocation != null)
+ {
+ List<Dt_LocationInfo> nearLocations = GetGroupLocations(locationInfos, nearLocation);
+ for (int i = 0; i < nearLocations.Count; i++)
+ {
+ nearLocations[i].LocationType = palletType.ObjToInt();
+ if (palletType == PalletTypeEnum.LargePallet)
+ {
+ nearLocations[i].LocationStatus = locationStatus.ObjToInt();
+ }
+ }
+ locations.AddRange(nearLocations);
+ }
+ }
+ else
+ {
+ for (int i = 0; i < locations.Count; i++)
+ {
+ locations[i].LocationStatus = locationStatus.ObjToInt();
+ locations[i].LocationType = palletType.ObjToInt();
+ }
+ }
+ Repository.UpdateData(locations);
+ }
+
private List<Dt_LocationInfo> GetGroupLocations(List<Dt_LocationInfo> locationInfos, Dt_LocationInfo location)
{
List<Dt_LocationInfo> groupLocations = new List<Dt_LocationInfo>() { location };
--
Gitblit v1.9.3