using OfficeOpenXml.FormulaParsing.Excel.Functions.Text; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using WIDESEA_DTO.Basic; using WIDESEAWCS_Common.LocationEnum; using WIDESEAWCS_Core; using WIDESEAWCS_Core.BaseRepository; using WIDESEAWCS_Core.BaseServices; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_Core.Utilities; using WIDESEAWCS_IBasicInfoService; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_BasicInfoService { public class KLSLocationInfoService : ServiceBase>, IKLSLocationInfoService { public KLSLocationInfoService(IRepository BaseDal) : base(BaseDal) { } public IRepository Repository => BaseDal; /// /// 获取可用空货位 /// /// /// /// public Dt_KLSLocationInfo GetFreeLocationInfo(string AreaCode, int containerType) { Dt_KLSLocationInfo? kLSLocationInfo = BaseDal.QueryFirst(x => x.WarehouseId.ToString() == AreaCode && x.EnableStatus == EnableStatusEnum.Normal.ObjToInt() && x.LocationStatus == LocationStatusEnum.Free.ObjToInt() && x.LocationType == containerType); return kLSLocationInfo; } public WebResponseContent InitializationLocation(InitializationLocationDTO initializationLocationDTO) { try { (bool, string, object?) result = ModelValidate.ValidateModelData(initializationLocationDTO); if (!result.Item1) return WebResponseContent.Instance.Error(result.Item2); List locationInfos = new List(); for (int i = 9; i < initializationLocationDTO.MaxRow; i++) { for (int j = 0; j < initializationLocationDTO.MaxColumn; j++) { for (int k = 0; k < initializationLocationDTO.MaxLayer; k++) { Dt_KLSLocationInfo locationInfo = new Dt_KLSLocationInfo() { Column = j + 1, EnableStatus = EnableStatusEnum.Normal.ObjToInt(), Layer = k + 1, LocationStatus = LocationStatusEnum.Free.ObjToInt(), RoadwayNo = $"{initializationLocationDTO.Roadway}", Row = i + 1, LocationType = LocationTypeEnum.SmallPallet.ObjToInt(), Depth = initializationLocationDTO.Depth, }; 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); } } } }