using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.Extensions.Options;
|
using Model.ModelVm.BllTaskVm;
|
using System;
|
using System.Collections.Generic;
|
using System.Linq;
|
using System.Security.Claims;
|
using System.Threading.Tasks;
|
using Wms.Tools;
|
using WMS.IBLL.IBllTaskServer;
|
|
namespace Wms.Controllers
|
{
|
[Route("api/[controller]/[action]")]
|
[ApiController]
|
[Authorize]
|
public class BllTaskController : ControllerBase
|
{
|
#region 依赖注入
|
private readonly ApiUrlConfig _config; //接口交互路径
|
private readonly IBllTaskSyncServer _taskSyncSvc; // 入库单据Svc
|
#endregion
|
|
#region 构造函数
|
public BllTaskController(IOptions<ApiUrlConfig> setting, IBllTaskSyncServer taskSyncSvc)
|
{
|
_config = setting.Value;
|
_taskSyncSvc = taskSyncSvc;
|
}
|
#endregion
|
|
/// <summary>
|
/// 任务同步列表
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult GetTaskSyncList(TaskSyncVm model)
|
{
|
try
|
{
|
var bolls = _taskSyncSvc.GetTaskSyncList(model, out int count);
|
|
return Ok(new { code = 0, count, msg = "任务同步信息", data = bolls });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
/// <summary>
|
/// 处理WCS同步过来的任务
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult HandleTaskSync(TaskSyncInfoVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var uId = int.Parse(userId);
|
_taskSyncSvc.HandleTaskSync(model.TaskNo, model.OrderNo, _config.WcsHost + _config.IssueComApiUrl, uId);
|
|
return Ok(new { data = "", code = 0, msg = "处理成功" });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
|
}
|
}
|
/// <summary>
|
/// 处理WCS同步过来的任务-无需处理
|
/// </summary>
|
/// <param name="model"></param>
|
/// <returns></returns>
|
[HttpPost]
|
public IActionResult NoHandleTaskSync(TaskSyncInfoVm model)
|
{
|
try
|
{
|
//获取当前登录的用户ID
|
var claimsIdentity = this.User.Identity as ClaimsIdentity;
|
if (claimsIdentity == null)
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var userId = claimsIdentity.FindFirst(ClaimTypes.Name)?.Value;
|
if (string.IsNullOrWhiteSpace(userId))
|
{
|
return Ok(new { code = 1, msg = "未获取到当前操作人信息" });
|
}
|
var uId = int.Parse(userId);
|
_taskSyncSvc.NoHandleTaskSync(model.TaskNo, uId);
|
|
return Ok(new { data = "", code = 0, msg = "处理成功" });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { data = "", code = 1, msg = $"异常:{e.Message}" });
|
}
|
}
|
/// <summary>
|
/// 获取单据列表
|
/// </summary>
|
/// <param name="type"></param>
|
/// <returns></returns>
|
[HttpGet]
|
public IActionResult GetOrderNoList(string type)
|
{
|
try
|
{
|
var models = _taskSyncSvc.GetOrderNoList(type);
|
|
return Ok(new { code = 0, msg = "入库单信息", data = models });
|
}
|
catch (Exception e)
|
{
|
return Ok(new { code = 1, msg = e.Message });
|
}
|
}
|
}
|
}
|