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 setting, IBllTaskSyncServer taskSyncSvc) { _config = setting.Value; _taskSyncSvc = taskSyncSvc; } #endregion /// /// 任务同步列表 /// /// /// [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 }); } } /// /// 处理WCS同步过来的任务 /// /// /// [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}" }); } } /// /// 处理WCS同步过来的任务-无需处理 /// /// /// [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}" }); } } /// /// 获取单据列表 /// /// /// [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 }); } } } }