| | |
| | | public string AccessingTunnel(int WarehouseId, int LocationType) |
| | | { |
| | | List<Dt_LocationInfo> locationData = BaseDal.QueryData(x => x.WarehouseId == WarehouseId); |
| | | var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.EnableStatus== (int)EnableStatusEnum.Normal).GroupBy(x => x.RoadwayNo) |
| | | var roadwayGroups = locationData.Where(x => x.LocationType == LocationType && x.LocationStatus== (int)LocationStatusEnum.Free && x.EnableStatus== (int)EnableStatusEnum.Normal).GroupBy(x => x.RoadwayNo) |
| | | .Select(g => new |
| | | { |
| | | RoadwayNo = g.Key, |
| | |
| | | .Select(x => new |
| | | { |
| | | x.RoadwayNo, |
| | | x.LocationCode, |
| | | x.WarehouseId, |
| | | x.Row, |
| | | x.Column, |
| | |
| | | depths = columnGroup.Select(d => new |
| | | { |
| | | row = d.Row, |
| | | LocationCode = d.LocationCode, |
| | | depth = d.Depth, |
| | | locationType = d.LocationType, |
| | | locationStatus = d.LocationStatus, |
| | |
| | | |
| | | return WebResponseContent.Instance.OK("æå", result); |
| | | } |
| | | |
| | | public WebResponseContent GetWarehouseCapacity() |
| | | { |
| | | // æ¥è¯¢ææä»åºçè´§ä½æ°æ® |
| | | var allLocations = BaseDal.QueryData() |
| | | .Select(x => new |
| | | { |
| | | x.WarehouseId, |
| | | x.LocationStatus |
| | | }) |
| | | .ToList(); |
| | | |
| | | // å¦ææ²¡ææ°æ®ï¼è¿å空å表 |
| | | if (allLocations == null || !allLocations.Any()) |
| | | { |
| | | return WebResponseContent.Instance.OK("æªæ¾å°ä»»ä½è´§ä½æ°æ®", new List<object>()); |
| | | } |
| | | |
| | | // è®¡ç®æ¯ä¸ªä»åºç容éä½¿ç¨æ
åµ |
| | | var result = allLocations |
| | | .GroupBy(x => x.WarehouseId) |
| | | .Select(g => new |
| | | { |
| | | WarehouseId = g.Key, |
| | | FreeLocations = g.Count(x => x.LocationStatus == 0), |
| | | RemainingCapacityPercentage = (int)Math.Round((double)g.Count(x => x.LocationStatus == 0) / g.Count() * 100) |
| | | }) |
| | | .ToList(); |
| | | |
| | | return WebResponseContent.Instance.OK("æå", result); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸é®å¯ç¨å··éææè´§ä½ |
| | | /// </summary> |
| | | /// <param name="warehouseId">ä»åºID</param> |
| | | /// <param name="roadwayNo">å··éç¼å·</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent EnableAllLocationsInRoadway(string roadwayNo) |
| | | { |
| | | if (string.IsNullOrEmpty(roadwayNo)) |
| | | return WebResponseContent.Instance.Error("å··éç¼å·ä¸è½ä¸ºç©º"); |
| | | |
| | | var locations = Repository.QueryData(x => |
| | | x.RoadwayNo == roadwayNo && |
| | | x.EnableStatus != EnableStatusEnum.Normal.ObjToInt()); |
| | | |
| | | if (locations == null || locations.Count == 0) |
| | | return WebResponseContent.Instance.OK("è¯¥å··éæ²¡æéè¦å¯ç¨çè´§ä½"); |
| | | |
| | | locations.ForEach(x => x.EnableStatus = EnableStatusEnum.Normal.ObjToInt()); |
| | | Repository.UpdateData(locations); |
| | | |
| | | return WebResponseContent.Instance.OK($"æåå¯ç¨å··é[{roadwayNo}]ç{locations.Count}个货ä½"); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// ä¸é®ç¦ç¨å··éææè´§ä½ |
| | | /// </summary> |
| | | /// <param name="warehouseId">ä»åºID</param> |
| | | /// <param name="roadwayNo">å··éç¼å·</param> |
| | | /// <returns></returns> |
| | | public WebResponseContent DisableAllLocationsInRoadway(string roadwayNo) |
| | | { |
| | | if (string.IsNullOrEmpty(roadwayNo)) |
| | | return WebResponseContent.Instance.Error("å··éç¼å·ä¸è½ä¸ºç©º"); |
| | | var locations = Repository.QueryData(x => |
| | | x.RoadwayNo == roadwayNo && |
| | | x.EnableStatus != EnableStatusEnum.Disable.ObjToInt()); |
| | | if (locations == null || locations.Count == 0) |
| | | return WebResponseContent.Instance.OK("è¯¥å··éæ²¡æéè¦ç¦ç¨çè´§ä½"); |
| | | // æ£æ¥è´§ä½æ¯å¦æåºå |
| | | var locationIds = locations.Select(x => x.Id).ToList(); |
| | | locations.ForEach(x => x.EnableStatus = EnableStatusEnum.Disable.ObjToInt()); |
| | | Repository.UpdateData(locations); |
| | | return WebResponseContent.Instance.OK($"æåç¦ç¨å··é[{roadwayNo}]ç{locations.Count}个货ä½"); |
| | | } |
| | | } |
| | | } |