using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using WIDESEA_Core;
using WIDESEA_Core.BaseController;
using WIDESEA_Core.Helper;
using WIDESEA_DTO.Inbound;
using WIDESEA_IInboundService;
using WIDESEA_IOutboundService;
using WIDESEA_ITaskInfoService;
using System.IO;
using WIDESEA_Model.Models;
using System;
namespace WIDESEA_WMSServer.Controllers
{
[Route("api/PDA")]
[Authorize, ApiController]
public class PDAController : Controller
{
private readonly IInboundService _inboundService;
private readonly IOutboundService _outboundService;
private readonly ITaskService _taskService;
public PDAController(ITaskService taskService, IInboundService inboundService, IOutboundService outboundService)
{
_inboundService = inboundService;
_outboundService = outboundService;
_taskService = taskService;
}
///
/// 叫料
///
///
///
[HttpPost, Route("CallMateriel"), AllowAnonymous]
public WebResponseContent CallMateriel([FromBody] string endPoint)
{
return _taskService.CallMateriel(endPoint);
}
[HttpPost, Route("MaterielCarry"), AllowAnonymous]
public WebResponseContent MaterielCarry([FromBody] string startPoint)
{
return _taskService.MaterielCarry(startPoint);
}
[HttpPost, Route("MaterielGroup")]
public WebResponseContent MaterielGroup([FromBody] MaterielGroupDTO materielGroupDTO)
{
return _inboundService.InbounOrderService.MaterielGroup(materielGroupDTO);
}
[HttpPost, Route("QueryOrderInfo")]
public WebResponseContent QueryOrderInfo(int pageNo, string orderNo)
{
return _inboundService.InbounOrderService.QueryOrderInfo(pageNo, orderNo);
}
[HttpPost, HttpGet, Route("UploadApp"), AllowAnonymous]
public async Task UploadApk(IEnumerable fileInput)
{
// 检查是否有文件上传
if (fileInput == null || !fileInput.Any())
{
return WebResponseContent.Instance.Error("文件未上传");
}
var formFile = fileInput.First();
var uploadFolder = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot", "Upload");
Directory.CreateDirectory(uploadFolder);
var fileName = $"WMS-PDA.apk";
var filePath = Path.Combine(uploadFolder, fileName);
using (var stream = new FileStream(filePath, FileMode.Create))
{
await formFile.CopyToAsync(stream);
}
return WebResponseContent.Instance.OK("文件上传成功"); ;
}
[HttpPost, HttpGet, Route("GetPDAVersion"), AllowAnonymous]
public WebResponseContent GetPDAVersion(string version)
{
try
{
string versionPDA = AppSettings.Configuration["PDAVersion"];
if (Convert.ToInt32(versionPDA) > Convert.ToInt32(version))
return WebResponseContent.Instance.OK(data: true);
else return WebResponseContent.Instance.OK(data: false);
}
catch (Exception ex)
{
return WebResponseContent.Instance.Error(ex.Message);
}
}
[HttpPost, HttpGet, Route("DownLoadApp"), AllowAnonymous]
public virtual ActionResult DownLoadApp()
{
var filename = "WMS-PDA.apk";
var filePath = Path.Combine(Directory.GetCurrentDirectory(), "wwwroot/Upload", filename);
var memory = new MemoryStream();
using (var stream = new FileStream(filePath, FileMode.Open))
{
stream.CopyTo(memory);
}
memory.Position = 0;
var ext = Path.GetExtension(filePath).ToLowerInvariant();
return File(memory, new Dictionary{{ ".apk", "application/vnd.android.package-archive" }}[ext], Path.GetFileName(filePath));
}
}
}