|  |  | 
 |  |  |         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, IRepository<dt_storagemode> storagemode, IMapper mapper) : base(BaseDal) | 
 |  |  |         public LocationInfoService(IRepository<Dt_LocationInfo> BaseDal, IRepository<dt_storagemode> storagemode, IRepository<Dt_StockInfo> stockInfoRepository, IRepository<dt_batchInfo> batchInfoRepository, IMapper mapper) : base(BaseDal) | 
 |  |  |         { | 
 |  |  |             _dt_storagemode = storagemode; | 
 |  |  |             _mapper = mapper; | 
 |  |  |             _stockInfoRepository = stockInfoRepository; | 
 |  |  |             _batchInfoRepository = batchInfoRepository; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         public override PageGridData<Dt_LocationInfo> GetPageData(PageDataOptions options) | 
 |  |  | 
 |  |  |             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); | 
 |  |  |         } | 
 |  |  | 
 |  |  |             try | 
 |  |  |             { | 
 |  |  |                 var mode = _dt_storagemode.QueryFirst(v=>v.Id==1); | 
 |  |  |                 if (mode.storagemode==(int)StorageModeEnum.Out) | 
 |  |  |                 if (InMode == 6) | 
 |  |  |                 { | 
 |  |  |                     var locations = BaseDal.QueryData(v=>v.EnableStatus== (int)EnableStatusEnum.Normal && v.LocationStatus==(int)LocationStatusEnum.Free).OrderBy(v=>v.Row).ToList(); | 
 |  |  |                     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($"åºåºä¼å
è´§ä½åé
失败ï¼å½åæ ç©ºé²è´§ä½"); | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 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(); | 
 |  |  |                     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($"å
¥åºä¼å
è´§ä½åé
失败ï¼å½åæ ç©ºé²è´§ä½"); | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 if (location!=null) | 
 |  |  |                 { | 
 |  |  |                     //æ¥æ¾ç¸é»çåºä½ | 
 |  |  |                     Dt_LocationInfo Towlocation = new Dt_LocationInfo(); | 
 |  |  |  | 
 |  |  |                     var Onelocation = BaseDal.QueryFirst(v => v.LocationCode == location.LocationCode); | 
 |  |  |  | 
 |  |  |                     if (Onelocation.Depth == 1) | 
 |  |  |                     if (InMode == 6) | 
 |  |  |                     { | 
 |  |  |                         Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 2); | 
 |  |  |                         location.LocationStatus = (int)LocationStatusEnum.Lock; | 
 |  |  |                         BaseDal.UpdateData(location); | 
 |  |  |                     } | 
 |  |  |                     else | 
 |  |  |                     { | 
 |  |  |                         Towlocation = BaseDal.QueryFirst(v => v.Row == Onelocation.Row && v.Column == Onelocation.Column && v.Depth == 1); | 
 |  |  |                         //æ¥æ¾ç¸é»çåºä½ | 
 |  |  |                         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); | 
 |  |  |                     } | 
 |  |  |                     location.LocationStatus = (int)LocationStatusEnum.Lock; | 
 |  |  |                     Towlocation.LocationStatus = (int)LocationStatusEnum.Lock; | 
 |  |  |                     BaseDal.UpdateData(location); | 
 |  |  |                     BaseDal.UpdateData(Towlocation); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |             catch (Exception ex) |