From 73e0e7c3886bc88e7ed37db24d28d8f6d159f1c0 Mon Sep 17 00:00:00 2001 From: qinchulong <qinchulong@hnkhzn.com> Date: 星期六, 08 三月 2025 18:57:10 +0800 Subject: [PATCH] 优先级修改 --- 项目代码/WCS/WIDESEAWCS_Server/WIDESEAWCS_WMSPart/LocationInfoService.cs | 126 +++++++++++++++++++++++++++++++++++++++-- 1 files changed, 118 insertions(+), 8 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 38f3e7f..f1d957e 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,6 +1,6 @@ -锘� - +锘縰sing AutoMapper; using WIDESEAWCS_Common.LocationEnum; +using WIDESEAWCS_Common.TaskEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; @@ -15,19 +15,34 @@ /// <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) { return base.GetPageData(options); } - + public override WebResponseContent UpdateData(SaveModel saveModel) + { + int id = saveModel.MainData["id"].ObjToInt(); + int locationStatus = saveModel.MainData["locationStatus"].ObjToInt(); + int enableStatus = saveModel.MainData["enableStatus"].ObjToInt(); + Dt_LocationInfo locationInfo = BaseDal.QueryFirst(x => x.Id == id); + locationInfo.LocationStatus = locationStatus; + locationInfo.EnableStatus = enableStatus; + return UpdateData(locationInfo); + //return base.UpdateData(saveModel); + } public WebResponseContent GetLocationLayer() { WebResponseContent content = new WebResponseContent(); @@ -50,6 +65,101 @@ { 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 < 12; 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]; + } + if (location!=null) + { + //鏌ユ壘鐩搁偦鐨勫簱浣� + Dt_LocationInfo Towlocation = new Dt_LocationInfo(); + + var Onelocation = BaseDal.QueryFirst(v => v.LocationCode == location.LocationCode); + + if (Onelocation.Depth == 1) + { + Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2); + } + else + { + Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1); + } + location.LocationStatus = (int)LocationStatusEnum.Lock; + Towlocation.LocationStatus = (int)LocationStatusEnum.Lock; + BaseDal.UpdateData(location); + BaseDal.UpdateData(Towlocation); + } + } + catch (Exception ex) + { + throw new Exception(ex.Message); + } + return location; } public WebResponseContent GetLocationConfigs(int layer) @@ -114,12 +224,12 @@ 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); } -- Gitblit v1.9.3