| | |
| | | } |
| | | var palceInfo = await _wmsplaceRepository.FindByNameAsync(input.PlaceNo); |
| | | |
| | | var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo); |
| | | //if (container == null) |
| | | //{ |
| | | // throw new UserFriendlyException("托盘信息不存在"); |
| | |
| | | wmsmaterialstock.MaterialId = Guid.NewGuid().ToString("N"); |
| | | wmsmaterialstock.MaterialNo = material.MaterialNo; |
| | | wmsmaterialstock.MaterialName = material.MaterialName; |
| | | |
| | | var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo }); |
| | | if (wmsmaterialstockList.Count > 0) |
| | | { |
| | | if (wmsmaterialstock.StorageTypeNo == PlaceTypeEnum.YUANLIAOKUWEI) |
| | | { |
| | | wmsmaterialstock.ContainerNo = wmsmaterialstockList[0].ContainerNo; |
| | | input.ContainerNo = wmsmaterialstockList[0].ContainerNo; |
| | | } |
| | | if (wmsmaterialstockList[0].MaterialNo != material.MaterialNo) |
| | | { |
| | | throw new UserFriendlyException("当前库位已存放别的物料"); |
| | | } |
| | | } |
| | | |
| | | var container = await _wmscontainerRepository.FindByNameAsync(input.ContainerNo); |
| | | |
| | | wmsmaterialstock.ContainerStatus = ContainerStatusEnum.KUWEI; |
| | | wmsmaterialstock.ContainerType = container == null ? ContainerTypeEnum.XUNI : container.ContainerType; |
| | |
| | | |
| | | await _wmsplaceRepository.UpdateAsync(place); |
| | | } |
| | | var wmsmaterialstockList = await _wmsmaterialstockRepository.GetStockListAsync(new WmsMaterialStock { PlaceNo = input.PlaceNo }); |
| | | if (wmsmaterialstockList.Count > 0) |
| | | { |
| | | if(wmsmaterialstock.StorageTypeNo == PlaceTypeEnum.YUANLIAOKUWEI) |
| | | { |
| | | wmsmaterialstock.ContainerNo = wmsmaterialstockList[0].ContainerNo; |
| | | input.ContainerNo = wmsmaterialstockList[0].ContainerNo; |
| | | } |
| | | if (wmsmaterialstockList[0].MaterialNo != material.MaterialNo) |
| | | { |
| | | throw new UserFriendlyException("当前库位已存放别的物料"); |
| | | } |
| | | } |
| | | |
| | | |
| | | var maxSort = await _wmsmaterialstockRepository.GetMaxSortAsync(); |
| | | var sort = input.Sort ?? maxSort; |
| | |
| | | { |
| | | container = new WmsContainer |
| | | { |
| | | ContainerNo = input.ContainerNo, |
| | | ContainerNo = wmsmaterialstock.ContainerNo, |
| | | ContainerType = Domain.Shared.Enums.ContainerTypeEnum.XUNI, |
| | | ContainerStatus = Domain.Shared.Enums.ContainerStatusEnum.KUWEI, |
| | | }; |
| | |
| | | Check.Length(input.Remark, "备注", WmsMaterialStockConsts.MaxRemarkLength); |
| | | return Task.CompletedTask; |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 根据条件获取出入库单据详情列表 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | public async Task<List<WmsMaterialStock>> GetListByFilterAsync(Expression<Func<WmsMaterialStock, bool>> whereConditions, CancellationToken cancellationToken = default) |
| | | { |
| | | return await _wmsmaterialstockRepository.GetListByFilterAsync(whereConditions); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据条件获取单个出入库单据详情 |
| | | /// </summary> |
| | | /// <param name="whereConditions"></param> |
| | | /// <param name="isMultipleThrowException">是否查询出多条就报错</param> |
| | | /// <param name="cancellationToken"></param> |
| | | /// <returns></returns> |
| | | /// <exception cref="UserFriendlyException"></exception> |
| | | public async Task<WmsMaterialStock> GetSingleByFilterAsync(Expression<Func<WmsMaterialStock, bool>> whereConditions, bool isMultipleThrowException = false, CancellationToken cancellationToken = default) |
| | | { |
| | | return await _wmsmaterialstockRepository.GetSingleByFilterAsync(whereConditions, isMultipleThrowException); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据条件获取出入库单据详情列表 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<List<WmsMaterialStockDto>> FindListByFilterAsync(GetWmsMaterialStockInput input, CancellationToken cancellationToken = default) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialStock.Sort); |
| | | } |
| | | |
| | | #region 动态构造查询条件 |
| | | |
| | | //动态构造查询条件 |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var list = await _wmsmaterialstockRepository.GetListByFilterAsync(whereConditions?.data); |
| | | |
| | | return new List<WmsMaterialStockDto>(ObjectMapper.Map<List<WmsMaterialStock>, List<WmsMaterialStockDto>>(list)); |
| | | } |
| | | /// <summary> |
| | | /// 根据条件获取单个出入库单据详情 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | public virtual async Task<WmsMaterialStockDto> FindSingleByFilterAsync(GetWmsMaterialStockInput input, CancellationToken cancellationToken = default) |
| | | { |
| | | Check.NotNull(input, nameof(input)); |
| | | |
| | | if (input.Sorting.IsNullOrWhiteSpace()) |
| | | { |
| | | input.Sorting = nameof(WmsMaterialStock.Sort); |
| | | } |
| | | |
| | | #region 动态构造查询条件 |
| | | |
| | | //动态构造查询条件 |
| | | var whereConditions = DynamicGetQueryParams(input); |
| | | |
| | | #endregion |
| | | |
| | | var dataObj = await _wmsmaterialstockRepository.GetSingleByFilterAsync(whereConditions?.data); |
| | | |
| | | return (ObjectMapper.Map<WmsMaterialStock, WmsMaterialStockDto>(dataObj)); |
| | | } |
| | | } |