|  |  | 
 |  |  |  | 
 |  |  |  | 
 |  |  | using 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; | 
 |  |  |  | 
 |  |  | 
 |  |  |     /// <summary> | 
 |  |  |     /// è´§ä½ä¿¡æ¯ä¸å¡æ¥å£å®ç°å± | 
 |  |  |     /// </summary> | 
 |  |  |     public partial class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService | 
 |  |  |     public class LocationInfoService : ServiceBase<Dt_LocationInfo, IRepository<Dt_LocationInfo>>, ILocationInfoService | 
 |  |  |     { | 
 |  |  |         private readonly IUnitOfWorkManage _unitOfWorkManage; | 
 |  |  |         public IRepository<Dt_LocationInfo> Repository => BaseDal; | 
 |  |  |         private readonly IRepository<dt_storagemode> _dt_storagemode; | 
 |  |  |         private readonly IMapper _mapper; | 
 |  |  |         private readonly IRepository<Dt_StockInfo> _stockInfoRepository; | 
 |  |  |         private readonly IRepository<dt_batchInfo> _batchInfoRepository; | 
 |  |  |         //private readonly Idt_ErrormsginfoService _ErrormsginfoService; | 
 |  |  |  | 
 |  |  |         public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IUnitOfWorkManage unitOfWorkManage) : base(BaseDal) | 
 |  |  |         public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<dt_batchInfo> batchInfoRepository, IMapper mapper) : base(BaseDal) | 
 |  |  |         { | 
 |  |  |             _unitOfWorkManage = unitOfWorkManage; | 
 |  |  |             _dt_storagemode = storagemode; | 
 |  |  |             _mapper = mapper; | 
 |  |  |             _stockInfoRepository = stockInfoRepository; | 
 |  |  |             _batchInfoRepository = batchInfoRepository; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         | 
 |  |  |         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; | 
 |  |  |             //æè´§çæåºåä¿¡æ¯ | 
 |  |  |             if (locationStatus == 2) | 
 |  |  |             { | 
 |  |  |                 //夿æ¯å¦åå¨åºåä¿¡æ¯ | 
 |  |  |                 var w = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode); | 
 |  |  |                 if(w == null) | 
 |  |  |                 { | 
 |  |  |                         Dt_StockInfo stockInfo = new Dt_StockInfo(); | 
 |  |  |                         //æ¥è¯¢å½åéè¦åºåºçæ¹æ¬¡å·ï¼ä»¥ååºåºç©æç±»å | 
 |  |  |                         var batch = _batchInfoRepository.QueryFirst(v => v.Id == 1); | 
 |  |  |                         stockInfo.BatchNo = batch.OutBatch; | 
 |  |  |                         stockInfo.Weight = 4; | 
 |  |  |                         stockInfo.LocationCode = locationInfo.LocationCode; | 
 |  |  |                         stockInfo.WarehouseId = 0; | 
 |  |  |                         stockInfo.StockStatus = 0; | 
 |  |  |                         stockInfo.Remark = 1; | 
 |  |  |                         _stockInfoRepository.AddData(stockInfo); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             //æ è´§å é¤åºåä¿¡æ¯ | 
 |  |  |             else if(locationStatus == 0) | 
 |  |  |             { | 
 |  |  |                 //夿æ¯å¦åå¨åºåä¿¡æ¯ | 
 |  |  |                 var w = _stockInfoRepository.QueryFirst(x => x.LocationCode == locationInfo.LocationCode); | 
 |  |  |                 if (w != null) | 
 |  |  |                 { | 
 |  |  |                     _stockInfoRepository.DeleteData(w); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             return UpdateData(locationInfo); | 
 |  |  |             //return base.UpdateData(saveModel); | 
 |  |  |         } | 
 |  |  |         public WebResponseContent GetLocationLayer() | 
 |  |  |         { | 
 |  |  |             WebResponseContent content = new WebResponseContent(); | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 List<object> data = new List<object>(); | 
 |  |  |                 var layerNum = Repository.QueryData().Max(v => v.Layer); | 
 |  |  |                 for (int i = 0; i < layerNum; i++) | 
 |  |  |                 { | 
 |  |  |                     object obj = new | 
 |  |  |                     { | 
 |  |  |                         value = i + 1, | 
 |  |  |                         label = (i + 1) + "å±" | 
 |  |  |                     }; | 
 |  |  |                     data.Add(obj); | 
 |  |  |                 } | 
 |  |  |                 return content = WebResponseContent.Instance.OK(data: data); | 
 |  |  |             } | 
 |  |  |             catch (Exception ex) | 
 |  |  |             { | 
 |  |  |                 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 (InMode == 6) | 
 |  |  |                 { | 
 |  |  |                     var locations = BaseDal.QueryData(v => v.EnableStatus == (int)EnableStatusEnum.Normal && v.LocationStatus == (int)LocationStatusEnum.Free && v.LocationType==(int)LocationTypeEnum.Cube).OrderBy(v => v.Row).ToList(); | 
 |  |  |                     if (locations.Count <= 0) | 
 |  |  |                     { | 
 |  |  |                         throw new Exception($"å
¥åºä¼å
è´§ä½åé
失败ï¼å½åæ ç©ºé²è´§ä½"); | 
 |  |  |                     } | 
 |  |  |                     location = locations[0]; | 
 |  |  |                 } | 
 |  |  |                 else if (mode.storagemode==(int)StorageModeEnum.Out) | 
 |  |  |                 { | 
 |  |  |                     var locations = BaseDal.QueryData(v=>v.EnableStatus== (int)EnableStatusEnum.Normal && v.LocationStatus==(int)LocationStatusEnum.Free && v.LocationType == (int)LocationTypeEnum.Flat).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 && v.LocationType == (int)LocationTypeEnum.Flat).OrderByDescending(v => v.Row).ToList(); | 
 |  |  |                     if (locations.Count <= 0) | 
 |  |  |                     { | 
 |  |  |                         throw new Exception($"å
¥åºä¼å
è´§ä½åé
失败ï¼å½åæ ç©ºé²è´§ä½"); | 
 |  |  |                     } | 
 |  |  |                     location = locations[0]; | 
 |  |  |                 } | 
 |  |  |                 if (location!=null) | 
 |  |  |                 { | 
 |  |  |                     if (InMode == 6) | 
 |  |  |                     { | 
 |  |  |                         location.LocationStatus = (int)LocationStatusEnum.Lock; | 
 |  |  |                         BaseDal.UpdateData(location); | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         //æ¥æ¾ç¸é»çåºä½ | 
 |  |  |                         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) | 
 |  |  |         { | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 object locationConfigs = Repository.QueryData(x => x.Layer == layer).GroupBy(x => x.RoadwayNo).Select(x => new | 
 |  |  |                 { | 
 |  |  |                     colNum = x.Max(v => v.Column), | 
 |  |  |                     rowNum = x.Max(v => v.Row), | 
 |  |  |                     layer = layer, | 
 |  |  |                     tunnel = x.Key, | 
 |  |  |                     tunnelRowNo = x.Key, | 
 |  |  |                     location = layer + "å±", | 
 |  |  |                     locationList = x.Select(v => new LocationConfig | 
 |  |  |                     { | 
 |  |  |                         col = v.Column, | 
 |  |  |                         row = v.Row, | 
 |  |  |                         state = v.LocationStatus, | 
 |  |  |                         code = v.LocationCode, | 
 |  |  |                         islock = v.EnableStatus, | 
 |  |  |                         layer = layer, | 
 |  |  |                         name = v.LocationName, | 
 |  |  |                         materiaCode = "", | 
 |  |  |                         materialName = "", | 
 |  |  |                         barcode = "", | 
 |  |  |                         qty = 0 | 
 |  |  |                     }) | 
 |  |  |                 }).ToList(); | 
 |  |  |  | 
 |  |  |                 return WebResponseContent.Instance.OK(data: locationConfigs); | 
 |  |  |             } | 
 |  |  |             catch (Exception ex) | 
 |  |  |             { | 
 |  |  |                 return WebResponseContent.Instance.Error(ex.Message); | 
 |  |  |             } | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         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 WebResponseContent setlocations(int k) | 
 |  |  |         { | 
 |  |  |             WebResponseContent content = new WebResponseContent(); | 
 |  |  |             if (k == 1) | 
 |  |  |             { | 
 |  |  |                 List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id<=2537&&v.Id>=2526); | 
 |  |  |                 //夿æ¯å¦æè´§ | 
 |  |  |                 if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock) | 
 |  |  |                 { | 
 |  |  |                     return content.OK("2"); | 
 |  |  |                 } | 
 |  |  |                 //å餿¹ææ£å¸¸ | 
 |  |  |                 if (ben[0].LocationType == (int)LocationTypeEnum.Cube) | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |                 //æ£å¸¸æ¹æåé¤ | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             else if (k == 2) | 
 |  |  |             { | 
 |  |  |                 List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id <= 2515 && v.Id >= 2504); | 
 |  |  |                 //夿æ¯å¦æè´§ | 
 |  |  |                 if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock) | 
 |  |  |                 { | 
 |  |  |                     return content.OK("2"); | 
 |  |  |                 } | 
 |  |  |                 //å餿¹ææ£å¸¸ | 
 |  |  |                 if (ben[0].LocationType == (int)LocationTypeEnum.Cube) | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |                 //æ£å¸¸æ¹æåé¤ | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             else if (k == 3) | 
 |  |  |             { | 
 |  |  |                 List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id <= 2493 && v.Id >= 2482); | 
 |  |  |                 //夿æ¯å¦æè´§ | 
 |  |  |                 if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock) | 
 |  |  |                 { | 
 |  |  |                     return content.OK("2"); | 
 |  |  |                 } | 
 |  |  |                 //å餿¹ææ£å¸¸ | 
 |  |  |                 if (ben[0].LocationType == (int)LocationTypeEnum.Cube) | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |                 //æ£å¸¸æ¹æåé¤ | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             else if (k == 4) | 
 |  |  |             { | 
 |  |  |                 List<Dt_LocationInfo> ben = BaseDal.QueryData(v => v.Id <= 2471 && v.Id >= 2460); | 
 |  |  |                 //夿æ¯å¦æè´§ | 
 |  |  |                 if (ben[0].LocationStatus == (int)LocationStatusEnum.InStock || ben[1].LocationStatus == (int)LocationStatusEnum.InStock || ben[2].LocationStatus == (int)LocationStatusEnum.InStock || ben[3].LocationStatus == (int)LocationStatusEnum.InStock || ben[4].LocationStatus == (int)LocationStatusEnum.InStock || ben[5].LocationStatus == (int)LocationStatusEnum.InStock || ben[6].LocationStatus == (int)LocationStatusEnum.InStock || ben[7].LocationStatus == (int)LocationStatusEnum.InStock || ben[8].LocationStatus == (int)LocationStatusEnum.InStock || ben[9].LocationStatus == (int)LocationStatusEnum.InStock || ben[10].LocationStatus == (int)LocationStatusEnum.InStock || ben[11].LocationStatus == (int)LocationStatusEnum.InStock) | 
 |  |  |                 { | 
 |  |  |                     return content.OK("2"); | 
 |  |  |                 } | 
 |  |  |                 //å餿¹ææ£å¸¸ | 
 |  |  |                 if (ben[0].LocationType == (int)LocationTypeEnum.Cube) | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Flat; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Normal; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |                 //æ£å¸¸æ¹æåé¤ | 
 |  |  |                 else | 
 |  |  |                 { | 
 |  |  |                     ben[0].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[1].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[2].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[3].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[4].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[5].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[6].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[7].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[8].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[9].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |  | 
 |  |  |                     ben[10].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].LocationType = (int)LocationTypeEnum.Cube; | 
 |  |  |                     ben[11].EnableStatus = (int)EnableStatusEnum.Disable; | 
 |  |  |                     BaseDal.UpdateData(ben); | 
 |  |  |                     return content.OK("1"); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             return content.OK("4"); | 
 |  |  |         } | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public class LocationConfig | 
 |  |  |     { | 
 |  |  |         public int layer { get; set; } | 
 |  |  |         public int col { get; set; } | 
 |  |  |  | 
 |  |  |         public int row { get; set; } | 
 |  |  |  | 
 |  |  |         public string name { get; set; } | 
 |  |  |  | 
 |  |  |         public string code { get; set; } | 
 |  |  |  | 
 |  |  |         public int state { get; set; } | 
 |  |  |  | 
 |  |  |         public int islock { get; set; } | 
 |  |  |  | 
 |  |  |         public string materiaCode { get; set; } | 
 |  |  |  | 
 |  |  |         public string materialName { get; set; } | 
 |  |  |  | 
 |  |  |         public string barcode { get; set; } | 
 |  |  |  | 
 |  |  |         public decimal? qty { get; set; } | 
 |  |  |     } | 
 |  |  | } |