using Admin.NET.Core.Service; using Admin.NET.Application.Entity; using Microsoft.AspNetCore.Http; using System.Data; using System.Web; using System.Text; namespace Admin.NET.Application; /// /// 操作任务服务 /// [ApiDescriptionSettings(ApplicationConst.WmsTaskGroupName, Order = 100)] public class WmsOperationTaskService : IDynamicApiController, ITransient { private readonly SqlSugarRepository _rep; private readonly SqlSugarRepository _wmsStockQuanRep; public WmsOperationTaskService(SqlSugarRepository rep, SqlSugarRepository wmsStockQuanRep) { _rep = rep; _wmsStockQuanRep = wmsStockQuanRep; } /// /// 强制出库 /// /// /// [HttpPost] [ApiDescriptionSettings(Name = "ForceOutbound")] [Description("WmsOperationTask/ForceOutbound")] public async Task ForceOutbound(ForceOutboundInput input) { if (input == null || input.PackageCodeList?.Count == 0) { throw Oops.Oh("参数不能为空"); } List updateQuanList = new List(); foreach (var item in input.PackageCodeList) { var quanList = await _wmsStockQuanRep.AsQueryable().Where(x => x.PackageCode == item).ToListAsync(); var isExist = quanList.Where(x => x.StockStatus == StockStatusEnum.齐包待出库).Count(); if (isExist > 0) { throw Oops.Oh($"包{item}中其中有板状态是'{StockStatusEnum.齐包待出库.ToString()}',不允许强制出库"); } //更新状态 foreach (var quan in quanList) { quan.StockStatus = StockStatusEnum.人工强制待出库; quan.UpdateTime = DateTime.Now; quan.OperReason = "人工强制待出库"; } updateQuanList.AddRange(quanList); } await _wmsStockQuanRep.UpdateRangeAsync(updateQuanList); } }