using System.Diagnostics.CodeAnalysis;
using System.Text;
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,
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 };
}
}
}