| | |
| | | using Microsoft.CodeAnalysis.Operations; |
| | | using Admin.NET.Application.Service.WmsTask.WmsRbLineTask.Dto; |
| | | using Furion.DatabaseAccessor; |
| | | using Admin.NET.Application.Service.WmsCommonnQuery.Dto; |
| | | |
| | | namespace Admin.NET.Application; |
| | | /// <summary> |
| | |
| | | private readonly SqlSugarRepository<WmsRecordPackageProcess> _wmsRecordPackageProcessRep; |
| | | private readonly SqlSugarRepository<Mes_Upi_LineQueue> _mes_Upi_LineQueueRep; |
| | | private readonly SqlSugarRepository<WmsRecordUpiNg> _wmsRecordUpiNgRep; |
| | | private readonly WmsCommonnQueryService _wmsCommonnQueryService; |
| | | |
| | | public WmsOperationTaskService( |
| | | SqlSugarRepository<Mes_Upi_LineQueue> mes_Upi_LineQueueRep, |
| | |
| | | , SqlSugarRepository<WmsRecordUpiProcess> wmsRecordUpiProcessRep |
| | | , SqlSugarRepository<WmsRecordPackageProcess> wmsRecordPackageProcessRep |
| | | , SqlSugarRepository<WmsRecordUpiNg> wmsRecordUpiNgRep |
| | | , WmsCommonnQueryService wmsCommonnQueryService |
| | | ) |
| | | { |
| | | _wmsCommonnQueryService = wmsCommonnQueryService; |
| | | _wmsRecordUpiNgRep = wmsRecordUpiNgRep; |
| | | _sysConfigRep = sysConfigRep; |
| | | _mesPackageGatherRep = mesPackageGatherRep; |
| | |
| | | { |
| | | throw Oops.Oh("参数不能为空"); |
| | | } |
| | | //验证传递的包是否都在齐包之内。 |
| | | List<WmsPackListOutput> packList = await _wmsCommonnQueryService.PackList(new Service.WmsCommonnQuery.Dto.PackListInput() { IsPack = false }); |
| | | |
| | | List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>(); |
| | | foreach (var item in input.PackageCodeList) |
| | | { |
| | | var isExistCount = packList.Where(x => x.PackageCode == item).Count(); |
| | | if (isExistCount == 0) |
| | | { |
| | | throw Oops.Oh($"包{item}不是缺包状态,请检查!"); |
| | | } |
| | | |
| | | var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync(); |
| | | var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.齐包待出库).Count(); |
| | | var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.齐包待出库 || x.StockStatus == StockStatusEnum.人工齐包出库任务已创建).Count(); |
| | | if (isExist > 0) |
| | | { |
| | | throw Oops.Oh($"包{item}中其中有板状态是'{StockStatusEnum.齐包待出库.ToString()}',不允许强制出库"); |
| | | throw Oops.Oh($"包{item}中其中有板状态是'{StockStatusEnum.齐包待出库.ToString()}' 或'{StockStatusEnum.人工齐包出库任务已创建.ToString()}',不允许强制出库"); |
| | | } |
| | | |
| | | //更新状态 |
| | |
| | | |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 人工齐包出库 |
| | | /// </summary> |
| | | /// <param name="input"></param> |
| | | /// <returns></returns> |
| | | [HttpPost] |
| | | [ApiDescriptionSettings(Name = "PersonOutbound")] |
| | | [Description("WmsOperationTask/PersonOutbound")] |
| | | [UnitOfWork] |
| | | public async Task PersonOutbound(PersonOutboundInput input) |
| | | { |
| | | if (input == null || input.PackageCodeList?.Count == 0) |
| | | { |
| | | throw Oops.Oh("参数不能为空"); |
| | | } |
| | | //验证传递的包是否都在齐包之内。 |
| | | List<WmsPackListOutput> packList = await _wmsCommonnQueryService.PackList(new Service.WmsCommonnQuery.Dto.PackListInput() { IsPack = true }); |
| | | |
| | | List<WmsStockQuan> updateQuanList = new List<WmsStockQuan>(); |
| | | foreach (var item in input.PackageCodeList) |
| | | { |
| | | var isExistCount = packList.Where(x => x.PackageCode == item).Count(); |
| | | if (isExistCount == 0) |
| | | { |
| | | throw Oops.Oh($"包{item}不是齐包状态,请检查!"); |
| | | } |
| | | |
| | | var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync(); |
| | | var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.人工强制待出库 || x.StockStatus == StockStatusEnum.人工强制任务已创建).Count(); |
| | | if (isExist > 0) |
| | | { |
| | | throw Oops.Oh($"包{item}中其中有板状态是'{StockStatusEnum.人工强制待出库.ToString()}'或'{StockStatusEnum.人工强制任务已创建.ToString()}',不允许人工齐包出库"); |
| | | } |
| | | |
| | | //更新状态 |
| | | foreach (var quan in quanList) |
| | | { |
| | | quan.StockStatus = StockStatusEnum.齐包待出库; |
| | | quan.StockStatusName = StockStatusEnum.齐包待出库.ToString(); |
| | | quan.UpdateTime = DateTime.Now; |
| | | quan.OperReason = "人工齐包出库"; |
| | | } |
| | | updateQuanList.AddRange(quanList); |
| | | } |
| | | |
| | | await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList); |
| | | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 判断齐套 |
| | | /// </summary> |