using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; using Win_in.Sfs.Basedata.Application.Contracts; using Win_in.Sfs.Wms.Store.Application.Contracts; namespace Win_in.Sfs.Wms.Pda.Controllers.Stores; /// /// 注塑计划请求 /// [ApiController] [Route($"{PdaHostConst.ROOT_ROUTE}store/injection-plan-request")] public class InjectionPlanRequestController : AbpController { private readonly IInjectionPlanRequestAppService _injectionRequestAppService; private readonly IItemContainerAppService _itemContainerAppService; /// /// /// /// public InjectionPlanRequestController(IInjectionPlanRequestAppService InjectionPlanRequestAppService, IItemContainerAppService itemContainerAppService) { _injectionRequestAppService = InjectionPlanRequestAppService; _itemContainerAppService = itemContainerAppService; } /// /// 注塑叫料申请 /// /// /// [HttpPost("")] public virtual async Task> CreateAsync(InjectionPlanRequestEditInput input) { var result = await _injectionRequestAppService.CreateAndHandleAsync(input).ConfigureAwait(false); return Ok(result); } /// /// 根据number获取注塑叫料申请详情 /// /// /// [HttpGet("{number}")] public virtual async Task> GetAsync(string number) { var result = await _injectionRequestAppService.GetByNumberAsync(number).ConfigureAwait(false); return Ok(result); } /// /// 获取物品类别名称 /// /// [HttpGet("item-category-name")] public virtual async Task> GetItemCategoryNameAsync() { var entities = await _injectionRequestAppService.GetItemCategoryListAsync().ConfigureAwait(false); var categoryNames = entities.Select(p => p.Category).Distinct().ToList(); return categoryNames; } /// /// 根据类别名称获取物品类别列表 /// /// /// [HttpGet("list/item-category")] public virtual async Task> GetItemCategoryListAsync(string categoryName) { var entities = await _injectionRequestAppService.GetItemCategoryListAsync().ConfigureAwait(false); var itemEntities = entities.Where(p => p.Category == categoryName).ToList(); foreach (var item in itemEntities) { var itemContainerDto = await _itemContainerAppService.GetByItemCodeAsync(item.Code).ConfigureAwait(false); if(itemContainerDto != null) { item.StdPackQty = itemContainerDto.Qty; item.BasicUom = itemContainerDto.BasicUom; } else { item.StdPackQty = 1; } } return itemEntities; } }