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;
using System.Net;
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("Bind"), AllowAnonymous]
public WebResponseContent Bind(string qty, string point)
{
return _taskService.Bind(qty, point);
}
///
/// 释放缓存点
///
///
///
[HttpPost, Route("AcrossFloorCallMat"), AllowAnonymous]
public WebResponseContent AcrossFloorCallMat(string point)
{
return _taskService.AcrossFloorCallMat(point);
}
///
/// 叫料
///
///
///
[HttpPost, Route("CallMateriel"), AllowAnonymous]
public WebResponseContent CallMateriel(string endPoint)
{
return _taskService.CallMateriel(endPoint);
}
///
/// 搬运
///
///
///
[HttpPost, Route("MaterielCarry"), AllowAnonymous]
public WebResponseContent MaterielCarry(string startPoint)
{
return _taskService.MaterielCarry(startPoint);
}
[HttpPost, Route("MaterielGroup")]
public WebResponseContent MaterielGroup([FromBody] SaveModel saveModel)
{
return _inboundService.InbounOrderService.MaterielGroup(saveModel);
}
///
/// 查询入库单详情
///
///
///
///
[HttpPost, Route("QueryOrderDetailInfo")]
public WebResponseContent QueryOrderDetailInfo(int pageNo, string orderNo)
{
return _inboundService.InbounOrderService.QueryOrderDetailInfo(pageNo, orderNo);
}
///
/// 组盘
///
///
///
//[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));
}
}
}