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 Newtonsoft.Json;
|
using WIDESEA_Core.LogHelper;
|
|
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("QueryOrderInfo")]
|
public WebResponseContent QueryOrderInfo(int pageNo, string orderNo)
|
{
|
return _inboundService.InbounOrderService.QueryOrderInfo(pageNo, orderNo);
|
}
|
|
[HttpPost, HttpGet, Route("UploadApp"), AllowAnonymous]
|
public async Task<WebResponseContent> UploadApk(IEnumerable<IFormFile> 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<string, string> { { ".apk", "application/vnd.android.package-archive" } }[ext], Path.GetFileName(filePath));
|
}
|
|
/// <summary>
|
/// 空托入库
|
/// </summary>
|
/// <param name="PalletCode">托盘号</param>
|
/// <returns></returns>
|
[HttpPost, Route("EmptyInBound"), AllowAnonymous]
|
public WebResponseContent EmptyInBound(string PalletCode)
|
{
|
return _taskService.PalletInboundRequest("R01-001-023-001", PalletCode);
|
}
|
|
|
/// <summary>
|
/// 空托出库
|
/// </summary>
|
/// <param name="PalletCode">托盘号</param>
|
/// <param name="trayType">托盘类型,1,小托盘 2,大托盘</param>
|
/// <returns></returns>
|
[HttpGet, Route("EmptyOutBound"), AllowAnonymous]
|
public WebResponseContent EmptyOutBound(string trayType)
|
{
|
return _taskService.PalletOutboundTask("R01", "R01-001-023-001", trayType);
|
|
}
|
|
/// <summary>
|
/// 组盘
|
/// </summary>
|
/// <param name="materielGroupDTO"></param>
|
/// <returns></returns>
|
[HttpPost, Route("MaterielGroup"), AllowAnonymous]
|
public WebResponseContent MaterielGroup([FromBody] SaveModel saveModel)
|
{
|
string PalletCode = saveModel.MainData["PalletCode"].ToString();
|
var ReceviveSN = saveModel.MainData["SerialNumbers"];
|
|
string str = "1.0 ReceviveSN=" + ReceviveSN;
|
//Logger.Write_Log("System/test", "", str);
|
|
List<string> OldSerialNumbers = JsonConvert.DeserializeObject<List<string>>(ReceviveSN.ToString());
|
List<string> SerialNumbers = new List<string>();
|
string code = "";
|
foreach (var number in OldSerialNumbers)
|
{
|
|
//Logger.Write_Log("System/test", "", "1.0.1 ");
|
if (number.Contains("S:"))
|
{
|
|
//Logger.Write_Log("System/test", "", "1.0.1.1 ");
|
List<string> nums = number.Split(';').ToList();
|
foreach (var item in nums)
|
{
|
if (item.Contains("S:"))
|
{
|
//Logger.Write_Log("System/test", "", "1.0.1.2 ");
|
string SerialNumber = item.Replace("S:", "");
|
if (!string.IsNullOrEmpty(SerialNumber))
|
{
|
SerialNumbers.Add(SerialNumber);
|
code += SerialNumber;
|
}
|
|
}
|
}
|
|
}
|
else
|
{
|
|
//Logger.Write_Log("System/test", "", "1.0.2 ");
|
SerialNumbers.Add(number);
|
code += number;
|
}
|
}
|
|
//Logger.Write_Log("System/test", "", "1.1 " + code);
|
|
MaterielGroupDTO materielGroupDTO = new MaterielGroupDTO();
|
materielGroupDTO.SerialNumbers = SerialNumbers;
|
materielGroupDTO.OrderNo = "";
|
materielGroupDTO.PalletCode = PalletCode;
|
return _inboundService.InbounOrderService.MaterielGroup(materielGroupDTO);
|
}
|
|
/// <summary>
|
/// 原料入库确认
|
/// </summary>
|
/// <param name="PalletCode">托盘号</param>
|
/// <returns></returns>
|
[HttpGet, Route("MaterielInBoundConfirm"), AllowAnonymous]
|
public WebResponseContent MaterielInBoundConfirm(string palletCode)
|
{
|
return _taskService.InboundRequest("R01-001-023-001", palletCode);
|
}
|
|
/// <summary>
|
/// 组盘撤销
|
/// </summary>
|
/// <param name="PalletCode">托盘号</param>
|
/// <returns></returns>
|
[HttpGet, Route("MaterielGroupRevoke"), AllowAnonymous]
|
public WebResponseContent MaterielGroupRevoke(string PalletCode)
|
{
|
return _inboundService.InbounOrderService.MaterielGroupRevoke(PalletCode);
|
}
|
|
/// <summary>
|
/// 余料回退入库确认
|
/// </summary>
|
/// <param name="PalletCode">托盘号</param>
|
/// <returns></returns>
|
[HttpGet, Route("MaterielInBoundReturnConfirm"), AllowAnonymous]
|
public WebResponseContent MaterielInBoundReturnConfirm(string PalletCode)
|
{
|
return _taskService.ReturnInboundRequest("R01-001-023-001", PalletCode);
|
}
|
|
|
|
|
|
}
|
}
|