| | |
| | | var entity = input.Adapt<WmsBasePlace>(); |
| | | |
| | | //重复性验证 |
| | | await CheckExist(entity, true); |
| | | await CheckExist(entity,true); |
| | | |
| | | await _rep.AsUpdateable(entity).IgnoreColumns(ignoreAllNullColumns: true).ExecuteCommandAsync(); |
| | | } |
| | |
| | | .WhereIF(input.PlaceType.HasValue, u => u.PlaceType == input.PlaceType) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.PlaceTypeName), u => u.PlaceTypeName.Contains(input.PlaceTypeName.Trim())) |
| | | .WhereIF(input.PlaceStatus.HasValue, u => u.PlaceStatus == input.PlaceStatus) |
| | | .WhereIF(input.AreaId > 0, u => u.AreaId == input.AreaId) |
| | | .WhereIF(input.AreaId>0, u => u.AreaId == input.AreaId) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.AreaCode), u => u.AreaCode.Contains(input.AreaCode.Trim())) |
| | | .WhereIF(!string.IsNullOrWhiteSpace(input.AreaName), u => u.AreaName.Contains(input.AreaName.Trim())) |
| | | .WhereIF(input.ColumnNo > 0, u => u.ColumnNo == input.ColumnNo) |
| | | .WhereIF(input.LayerNo > 0, u => u.LayerNo == input.LayerNo) |
| | | .WhereIF(input.LaneNo > 0, u => u.LaneNo == input.LaneNo) |
| | | .WhereIF(input.ColumnNo>0, u => u.ColumnNo == input.ColumnNo) |
| | | .WhereIF(input.LayerNo>0, u => u.LayerNo == input.LayerNo) |
| | | .WhereIF(input.LaneNo>0, u => u.LaneNo == input.LaneNo) |
| | | .WhereIF(input.IsVirtually.HasValue, u => u.IsVirtually == input.IsVirtually) |
| | | .WhereIF(input.IsDisabled.HasValue, u => u.IsDisabled == input.IsDisabled) |
| | | .Select<WmsBasePlaceOutput>(); |
| | | return query; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重复性验证 |
| | | /// </summary> |
| | | /// <param name="input">验证对象</param> |
| | | /// <param name="isEdit">是否是编辑</param> |
| | | /// <returns></returns> |
| | | private async Task CheckExist(WmsBasePlace input, bool isEdit = false) |
| | | { |
| | | |
| | | |
| | | |
| | | //没有配置组合校验,不需要验重 |
| | | |
| | | |
| | | //没有配置单独校验,不需要验重 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据组合校验和单独校验验证数据是否已存在-导入时验证 |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsBasePlace> inputs) |
| | | { |
| | | if (inputs?.Count <= 0) |
| | | if(input.CreateTimeRange != null && input.CreateTimeRange.Count >0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //根据组合校验验证表格中中是否已存在相同数据 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //根据单独校验验证表格中中是否已存在相同数据 |
| | | |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | /// <summary> |
| | | /// 批量增加货位基础信息 |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [ApiDescriptionSettings(Name = "BatchAdd")] |
| | | public async Task BatchAdd() |
| | | { |
| | | List<WmsBasePlace> places = new List<WmsBasePlace>(); |
| | | |
| | | for (int aisle = 1; aisle <= 6; aisle++)//排 |
| | | { |
| | | for (int column = 1; column <= 20; column++)//列 |
| | | DateTime? start= input.CreateTimeRange[0].Value; |
| | | query = query.WhereIF(start.HasValue, u => u.CreateTime >= start); |
| | | if (input.CreateTimeRange.Count >1 && input.CreateTimeRange[1].HasValue) |
| | | { |
| | | for (int layer = 1; layer <= 3; layer++)//层 |
| | | { |
| | | PlaceTypeEnum placeTypeEnum = default(PlaceTypeEnum); |
| | | |
| | | if (layer == 1) |
| | | { |
| | | placeTypeEnum = PlaceTypeEnum.中货位; |
| | | } |
| | | else if (layer == 2) |
| | | { |
| | | placeTypeEnum = PlaceTypeEnum.小货位; |
| | | } |
| | | else if (layer == 3) |
| | | { |
| | | placeTypeEnum = PlaceTypeEnum.大货位; |
| | | } |
| | | |
| | | WmsBasePlace place = new WmsBasePlace(); |
| | | place.PlaceType = placeTypeEnum; |
| | | place.PlaceTypeName = placeTypeEnum.ToString(); |
| | | place.PlaceCode = aisle.ToString("00") + column.ToString("00") + layer.ToString("00"); |
| | | place.PlaceName = aisle.ToString("00") + column.ToString("00") + layer.ToString("00"); |
| | | place.AreaCode = ""; |
| | | place.PlaceStatus = PlaceStatusEnum.正常; |
| | | place.AreaName = "机器人岛缓存区"; |
| | | place.ColumnNo = column; |
| | | place.LayerNo = layer; |
| | | //place.DeepcellNo = 0; |
| | | //place.GoodsShelfNo = ""; |
| | | place.LaneNo = aisle; |
| | | place.IsVirtually = false; |
| | | //place.Line = 0; |
| | | //place.Islock = (int)YesNoEnum.N; |
| | | //place.EmptyContainer = (int)YesNoEnum.Y; |
| | | //place.PositionnoForSrm = ""; |
| | | |
| | | place.Length = new decimal(100); |
| | | place.Width = new decimal(100); |
| | | place.Height = new decimal(000); |
| | | //place.MaxWeight = 630; |
| | | //place.HeightLevel = (int)Heightlevel.DI; |
| | | //place.Priority = (int)PlacePriority.GAO; |
| | | places.Add(place); |
| | | } |
| | | var end = input.CreateTimeRange[1].Value; |
| | | query = query.Where(u => u.CreateTime <= end); |
| | | } |
| | | } |
| | | if(input.UpdateTimeRange != null && input.UpdateTimeRange.Count >0) |
| | | { |
| | | DateTime? start= input.UpdateTimeRange[0].Value; |
| | | query = query.WhereIF(start.HasValue, u => u.UpdateTime >= start); |
| | | if (input.UpdateTimeRange.Count >1 && input.UpdateTimeRange[1].HasValue) |
| | | { |
| | | var end = input.UpdateTimeRange[1].Value; |
| | | query = query.Where(u => u.UpdateTime <= end); |
| | | } |
| | | } |
| | | return query; |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 重复性验证 |
| | | /// </summary> |
| | | /// <param name="input">验证对象</param> |
| | | /// <param name="isEdit">是否是编辑</param> |
| | | /// <returns></returns> |
| | | private async Task CheckExist( WmsBasePlace input,bool isEdit=false) |
| | | { |
| | | |
| | | |
| | | |
| | | //没有配置组合校验,不需要验重 |
| | | |
| | | |
| | | //没有配置单独校验,不需要验重 |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据组合校验和单独校验验证数据是否已存在-导入时验证 |
| | | /// </summary> |
| | | /// <param name="inputs"></param> |
| | | /// <returns></returns> |
| | | private async Task CheckExisitForImport(List<WmsBasePlace> inputs) |
| | | { |
| | | if (inputs?.Count <= 0) |
| | | { |
| | | throw Oops.Oh($"导入数据不能为空"); |
| | | } |
| | | //根据组合校验验证表格中中是否已存在相同数据 |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | //根据单独校验验证表格中中是否已存在相同数据 |
| | | |
| | | |
| | | |
| | | } |
| | | #endregion |
| | | |
| | | |
| | | await _rep.InsertRangeAsync(places); |
| | | } |
| | | } |
| | | |