From 547436626cfe9cb01ae95b0bde9886b9cf46a9f2 Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期日, 02 三月 2025 23:51:05 +0800 Subject: [PATCH] 第一版完成 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs | 139 +++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 135 insertions(+), 4 deletions(-) diff --git "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" index 8aa16a2..6a6a56d 100644 --- "a/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" +++ "b/\351\241\271\347\233\256\344\273\243\347\240\201/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs" @@ -1,8 +1,12 @@ -锘� - +锘縰sing AutoMapper; +using WIDESEAWCS_Common.LocationEnum; +using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; +using WIDESEAWCS_Core.Helper; +using WIDESEAWCS_Core.Utilities; +using WIDESEAWCS_DTO.BasicInfo; using WIDESEAWCS_IWMSPart; using WIDESEAWCS_Model.Models; @@ -11,12 +15,17 @@ /// <summary> /// 璐т綅淇℃伅涓氬姟鎺ュ彛瀹炵幇灞� /// </summary> - public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService + public class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService { public IRepository<Dt_LocationInfo> Repository => BaseDal; + private readonly IRepository<dt_storagemode> _dt_storagemode; + private readonly IMapper _mapper; + //private readonly Idt_ErrormsginfoService _ErrormsginfoService; - public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal) : base(BaseDal) + public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IMapper mapper) : base(BaseDal) { + _dt_storagemode = storagemode; + _mapper = mapper; } public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options) @@ -46,6 +55,81 @@ { return content = WebResponseContent.Instance.Error(ex.Message); } + } + public WebResponseContent getlocation() + { + WebResponseContent content = new WebResponseContent(); + try + { + List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>(); + for (int i = 1; i < 38; i++) + { + for (int a = 1; a < 7; a++) + { + for (int g = 1; g < 3; g++) + { + Dt_LocationInfo location = new Dt_LocationInfo(); + location.LocationCode = i+"-"+a+"-"+g; + location.LocationName = i+ "琛�" + a + "鍒�" + "宸ヤ綅" + g; + location.RoadwayNo = "TC1"; + location.Row = i; + location.Column = a; + location.Layer = 1; + location.Depth = g; + location.LocationType = (int)LocationTypeEnum.Flat; + location.LocationStatus = (int)LocationStatusEnum.Free; + location.EnableStatus=(int)EnableStatusEnum.Normal; + location.CreateDate = DateTime.Now; + location.ModifyDate = DateTime.Now; + location.Creater = "WCS"; + locationInfos.Add(location); + } + } + } + BaseDal.AddData(locationInfos); + return content = WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return content = WebResponseContent.Instance.Error(ex.Message); + } + } + + /// <summary> + /// 鏍规嵁閫夋嫨鐨勫叆搴撹鍒欏垎閰嶈揣浣� + /// </summary> + /// <param name="InMode"></param> + /// <returns></returns> + public Dt_LocationInfo GetInLocation(int InMode) + { + Dt_LocationInfo location = new Dt_LocationInfo(); + try + { + var mode = _dt_storagemode.QueryFirst(v=>v.Id==1); + if (mode.storagemode==(int)StorageModeEnum.Out) + { + var locations = BaseDal.QueryData(v=>v.EnableStatus== (int)EnableStatusEnum.Normal && v.LocationStatus==(int)LocationStatusEnum.Free).OrderBy(v=>v.Row).ToList(); + if (locations.Count<=0) + { + throw new Exception($"鍑哄簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅"); + } + location = locations[0]; + } + else if(mode.storagemode == (int)StorageModeEnum.In) + { + var locations = BaseDal.QueryData(v => v.EnableStatus == (int)EnableStatusEnum.Normal && v.LocationStatus == (int)LocationStatusEnum.Free).OrderByDescending(v => v.Row).ToList(); + if (locations.Count <= 0) + { + throw new Exception($"鍏ュ簱浼樺厛璐т綅鍒嗛厤澶辫触锛屽綋鍓嶆棤绌洪棽璐т綅"); + } + location = locations[0]; + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + return location; } public WebResponseContent GetLocationConfigs(int layer) @@ -84,6 +168,53 @@ } } + public WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO) + { + try + { + (bool, string, object?) result = ModelValidate.ValidateModelData(initializationLocationDTO); + if (!result.Item1) return WebResponseContent.Instance.Error(result.Item2); + + int side = 1; + List<Dt_LocationInfo> locationInfos = new List<Dt_LocationInfo>(); + for (int i = 0; i < initializationLocationDTO.MaxRow; i++) + { + for (int j = 0; j < initializationLocationDTO.MaxColumn; j++) + { + for (int k = 0; k < initializationLocationDTO.MaxLayer; k++) + { + Dt_LocationInfo locationInfo = new Dt_LocationInfo() + { + Column = j + 1, + EnableStatus = EnableStatusEnum.Normal.ObjToInt(), + Layer = k + 1, + LocationStatus = LocationStatusEnum.Free.ObjToInt(), + LocationType = LocationTypeEnum.Cube.ObjToInt(), + RoadwayNo = initializationLocationDTO.Roadway, + Row = i + 1, + }; + + + locationInfo.Depth = 1; + locationInfo.LocationCode = $"{locationInfo.Row.ToString().PadLeft(3, '0')}-{locationInfo.Column.ToString().PadLeft(3, '0')}-{locationInfo.Layer.ToString().PadLeft(3, '0')}"; + locationInfo.LocationName = $"{locationInfo.Row.ToString().PadLeft(3, '0')}琛寋locationInfo.Column.ToString().PadLeft(3, '0')}鍒梴locationInfo.Layer.ToString().PadLeft(3, '0')}灞�"; + + + + locationInfos.Add(locationInfo); + } + } + } + + BaseDal.AddData(locationInfos); + return WebResponseContent.Instance.OK(); + } + catch (Exception ex) + { + return WebResponseContent.Instance.Error(ex.Message); + } + } + } public class LocationConfig -- Gitblit v1.9.3