using Elastic.Clients.Elasticsearch;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using WCS.Application.Entity;
namespace WCS.Application;
///
/// 示例开放接口
///
[ApiDescriptionSettings("开放接口", Name = "Demo", Order = 100)]
//[Authorize(AuthenticationSchemes = SignatureAuthenticationDefaults.AuthenticationScheme)]
[AllowAnonymous]
public class DemoOpenApi : IDynamicApiController
{
private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
private readonly UserManager _userManager;
public DemoOpenApi(UserManager userManager)
{
_userManager = userManager;
}
//[HttpGet("helloWord")]
//public Task HelloWord()
//{
// return Task.FromResult($"Hello word. {_userManager.Account}");
//}
//
/// WCS接受WMS下发的任务(单条任务)
///
/// 任务信息
/// 反馈信息
[AllowAnonymous]
public ResponseModel AddWcsTasks(List modelList)
{
ResponseModel result = new ResponseModel();
result.StatusCode = 0;
try
{
foreach (var models in modelList)
{
var res = AddWcsTask(models);
if (res.StatusCode == -1)
{
result.StatusCode = -1;
result.Msg = res.Msg;
}
else if (res.StatusCode == 0)
{
result.StatusCode = 0;
result.Msg = models.TaskNo + "任务" + res.Msg;
}
}
}
catch (Exception ex)
{
return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
}
return result;
}
///
/// WCS接受WMS下发的任务(单条任务)
///
/// 任务信息
/// 反馈信息
[AllowAnonymous]
public ResponseModel AddWcsTask(ResponseTasksModel models)
{
ResponseModel result = new ResponseModel();
try
{
// 验证任务是否已存在
var taskInfo = _db.Queryable().First(w => w.TaskNo == models.TaskNo);
if (taskInfo != null)
{
result.StatusCode = -1;
result.Msg = "任务:" + models.TaskNo + ";已存在!";
return result;
}
if (models.TaskType == "0")
{
models.Order = 1;
}
else
{
models.Order = 2;
}
//新增任务
var taskAdd = new WcsTask()
{
TaskNo = models.TaskNo,
TaskType = TaskTypeEnum.Out,
Status = TaskStatusEnum.Wait,
//IsSuccess =TaskSuccessEnum.Success,
Levels = 999,
Origin = "WMS",
StartRoadway= models.StartRoadway,
StartLocate = models.StartLocate,
EndLocate = models.EndLocate,
EndRoadway= models.EndRoadway,
PalletNo = models.PalletNo,
//LotNo =models.LotNo,
//SkuNo=models.SkuNo,
//SkuName=models.SkuName,
//Qty=models.Qty
};
_db.Insertable(taskAdd).ExecuteCommand();
return new ResponseModel() { StatusCode = 0, Msg = "插入成功" };
}
catch (Exception ex)
{
return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
}
}
///
/// WCS接收WMS下发的入库单任务
///
///
///
[HttpPost]
[AllowAnonymous]
public ResponseModel AddOrderTask(List models)
{
ResponseModel result = new ResponseModel();
try
{
foreach (var item in models)
{
// 验证任务是否已存在
//var taskInfo = _db.Queryable().First(w => w.OrderNo == item.OrderNo && w.SkuNo == item.SkuNo && w.LotNo == item.LotNo);
//if (taskInfo == null)
//{
var orderAdd = new WcsOderTask()
{
OrderNo = item.OrderNo,
TaskNo = "",
LotNo = item.LotNo,
SkuNo = item.SkuNo,
SkuName = item.SkuName,
BoxType = item.BoxType,
Qty = item.Qty,
TaskType = (TaskTypeEnum)item.TaskType,
};
_db.Insertable(orderAdd).ExecuteCommand();
//}
}
return new ResponseModel() { StatusCode = 0, Msg = "插入成功" };
}
catch (Exception ex)
{
return new ResponseModel() { StatusCode = -1, Msg = ex.Message };
}
}
}