using CMS.Extensions.Abp.AspNetCore.Mvc.Filters;
|
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.BindInstockDto;
|
using CMS.Plugin.HIAWms.Application.Contracts.Dtos.WmsPlace;
|
using CMS.Plugin.HIAWms.Application.Contracts.Services;
|
using CMS.Plugin.MaterialManagement.Abstractions.Models;
|
using Microsoft.AspNetCore.Mvc;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
|
namespace CMS.Plugin.HIAWms.Controller
|
{
|
/// <summary>
|
/// 入库服务
|
/// </summary>
|
[ApiController]
|
[TypeFilter(typeof(CMSLanguageFilter))]
|
[TypeFilter(typeof(CMSUowActionFilter))]
|
[TypeFilter(typeof(CMSAuditActionFilter))]
|
[TypeFilter(typeof(CMSExceptionFilter))]
|
[Route("api/v{version:apiVersion}/HIAWms/[controller]")]
|
public class WmsInsStockController
|
{
|
private readonly IWmsBindInStockAppService _wmsBindInStockAppService;
|
private readonly IWmsCommonAppService _wmsCommonAppService;
|
|
public WmsInsStockController(IWmsBindInStockAppService wmsBindInStockAppService, IWmsCommonAppService wmsCommonAppService)
|
{
|
_wmsBindInStockAppService = wmsBindInStockAppService;
|
_wmsCommonAppService = wmsCommonAppService;
|
}
|
|
/// <summary>
|
/// 组盘
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
[HttpPost]
|
[Route("BindContainer")]
|
public async Task BindMaterialContaienrAsync(BindInstockInput input)
|
{
|
await _wmsBindInStockAppService.BindMaterialContaienrAsync(input);
|
}
|
|
/// <summary>
|
/// 组盘入库
|
/// </summary>
|
/// <param name="input"></param>
|
/// <returns></returns>
|
[HttpPost]
|
[Route("BindInstock")]
|
public async Task BindInStockAsync(BindInstockInput input)
|
{
|
await _wmsBindInStockAppService.BindInStockAsync(input);
|
}
|
|
/// <summary>
|
/// 查找空库位
|
/// </summary>
|
/// <param name="materialModel"></param>
|
/// <param name="requiredNum"></param>
|
/// <param name="materialNo"></param>
|
/// <returns></returns>
|
[HttpGet]
|
[Route("FindEmptyPlace")]
|
public async Task<List<string>> FindEmptyPlaceAsync(string materialModel, int requiredNum, string materialNo = "")
|
{
|
var result = await _wmsCommonAppService.FindAvailablePlacesAsync(materialModel, requiredNum, materialNo = "");
|
List<string> placeList = new List<string>();
|
foreach (var place in result)
|
{
|
string v = $"Key={place.Key},Value={place.Value}";
|
var str = v;
|
placeList.Add(str);
|
}
|
return placeList;
|
}
|
}
|
}
|