bklLiudl
2024-10-15 dd973f741617e3bbf5ecf11747ff71960991549c
Admin.NET/WCS.Application/OpenApi/DemoOpenApi.cs
@@ -1,22 +1,160 @@
namespace WCS.Application;
using Elastic.Clients.Elasticsearch;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using System.Text;
using WCS.Application.Entity;
///// <summary>
///// 示例开放接口
///// </summary>
//[ApiDescriptionSettings("开放接口", Name = "Demo", Order = 100)]
namespace WCS.Application;
/// <summary>
/// 示例开放接口
/// </summary>
[ApiDescriptionSettings("开放接口", Name = "Demo", Order = 100)]
//[Authorize(AuthenticationSchemes = SignatureAuthenticationDefaults.AuthenticationScheme)]
//public class DemoOpenApi : IDynamicApiController
//{
//    private readonly UserManager _userManager;
[AllowAnonymous]
public class DemoOpenApi : IDynamicApiController
{
    private static readonly ISqlSugarClient _db = SqlSugarSetup.ITenant.GetConnectionScope(SqlSugarConst.MainConfigId);
//    public DemoOpenApi(UserManager userManager)
//    {
//        _userManager = userManager;
//    }
    private readonly UserManager _userManager;
    public DemoOpenApi(UserManager userManager)
    {
        _userManager = userManager;
    }
//    [HttpGet("helloWord")]
//    public Task<string> HelloWord()
//    {
//        return Task.FromResult($"Hello word. {_userManager.Account}");
//    }
    // <summary>
    /// WCS接受WMS下发的任务(单条任务)
    /// </summary>
    /// <param name="models">任务信息</param>
    /// <returns>反馈信息</returns>
    [AllowAnonymous]
    public ResponseModel AddWcsTasks(List<ResponseTasksModel> 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;
    }
    /// <summary>
    /// WCS接受WMS下发的任务(单条任务)
    /// </summary>
    /// <param name="models">任务信息</param>
    /// <returns>反馈信息</returns>
    [AllowAnonymous]
    public ResponseModel AddWcsTask(ResponseTasksModel models)
    {
        ResponseModel result = new ResponseModel();
        try
        {
            // 验证任务是否已存在
            var taskInfo = _db.Queryable<WcsTask>().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 };
        }
    }
    /// <summary>
    /// WCS接收WMS下发的入库单任务
    /// </summary>
    /// <param name="models"></param>
    /// <returns></returns>
    [AllowAnonymous]
    public ResponseModel AddOrderTask(List<ResponseOrderTaskModel> models)
    {
        ResponseModel result = new ResponseModel();
        try
        {
            foreach (var item in models)
            {
                // 验证任务是否已存在
                //var taskInfo = _db.Queryable<WcsOderTask>().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 };
        }
    }
}