chengsc
2025-06-11 413194b8c6a71fea8cb7a567800b11703c6c7d5a
添加叠托机业务
4个文件已修改
110 ■■■■■ 已修改文件
Admin.NET/WCS.Application/Model/AGVModel.cs 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Model/TaskRequest.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/OpenApi/OpenApi.cs 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Util/HttpService.cs 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
Admin.NET/WCS.Application/Model/AGVModel.cs
@@ -185,6 +185,15 @@
        /// 方法名 end : 任务结束
        /// </summary>
        public string Method { get; set; }
        /// <summary>
        /// 托盘号
        /// </summary>
        public string carrierCode { get; set; }
        /// <summary>
        /// 托盘数量
        /// </summary>
        public int pileCount { get; set; }
    }
    public class AGVCallBackResponse
    {
Admin.NET/WCS.Application/Model/TaskRequest.cs
@@ -2,6 +2,27 @@
using WCS.Application.Entity;
namespace WCS.Application;
/// <summary>
/// 空托跺入库申请
/// </summary>
public class NullPallInRequest
{
    public string PalletNo { get; set; }
    /// <summary>
    /// 托盘数量
    /// </summary>
    public int PallNum { get; set; }
    /// <summary>
    /// 储位
    /// </summary>
    public string Locate { get; set; }
    public string HouseNo { get; set; }
}
public class TaskRequest
{
    public string TaskNo { get; set; }                          // 任务号
Admin.NET/WCS.Application/OpenApi/OpenApi.cs
@@ -3,6 +3,7 @@
using Furion.Logging;
using WCS.Application.Entity;
using WCS.Application.Util;
using static SKIT.FlurlHttpClient.Wechat.Api.Models.ComponentTCBBatchCreateContainerServiceVersionRequest.Types;
namespace WCS.Application;
@@ -428,7 +429,11 @@
            Code = "0"
        };
        if (input.robotTaskCode.Substring(0, 3) != "WCS" && input.robotTaskCode.Substring(0, 2) != "TK")
        {
            result.Message = "反馈的任务不是WCS的任务";
            result.Code = "1";
            return result;
        }
        PLCUtil modUtil = null;
        try
        {
@@ -532,6 +537,26 @@
                            }
                        }
                        break;
                    case "notifyFullSite":
                        {
                            var palletNo = input.Extra.Values.carrierCode;
                            var count = input.Extra.Values.pileCount;
                            if (string.IsNullOrWhiteSpace(palletNo) || count <= 0)
                            {
                                throw new Exception("参数:托盘号/数量验证失败");
                            }
                            //向WMS申请空托入库
                            HttpService httpService = new HttpService();
                            var inputs = new NullPallInRequest();
                            inputs.PalletNo = modTask.PalletNo;
                            inputs.PallNum = count;
                            inputs.Locate = "B100101";//叠托盘机位置
                            inputs.HouseNo = "W02";
                            var modResponseTask = httpService.RequestLiKuPallet(inputs);
                        }
                        break;
                    case "cancel"://任务取消
                        {
                            PLCService.AGVStatus = false;
Admin.NET/WCS.Application/Util/HttpService.cs
@@ -37,6 +37,61 @@
        };
    }
    /// <summary>
    /// 调用WMS接口申请叠托机空托入库接口
    /// </summary>
    /// <param name="model"></param>
    /// <returns></returns>
    public string RequestLiKuPallet(NullPallInRequest model)
    {
        string returnStr = "";
        var task = _db.Queryable<WcsTask>().First(m => m.IsDelete == false && (m.Status == TaskStatusEnum.Wait || m.Status == TaskStatusEnum.Doing) && m.TaskType == TaskTypeEnum.In && m.PalletNo == model.PalletNo);
        if (task == null)
        {
            string url = Urls.WMSAddress + ":" + Urls.WMSPort;
            var result = (url + "/api/DownAPi/RequestPalletIn").SetBody(model, "application/json", Encoding.UTF8).PostAsAsync<ResponseTasks>().Result;
            Log.Information("调用WMS接口反馈空托入库任务接口" + result.ToJson());
            if (result.Success == 0)
            {
                var taskAdd = new WcsTask()
                {
                    TaskType = TaskTypeEnum.In,
                    Status = TaskStatusEnum.Wait,
                    Type = PLCTypeEnum.ConveyorLine,
                    Origin = "WMS",
                    PalletNo = model.PalletNo,
                    TaskNo = result.TaskList.TaskNo,
                    Levels = 999,
                    StartLocate = model.Locate,
                    StartRoadway = result.TaskList.StartRoadway,
                    EndLocate = result.TaskList.EndLocate,
                    EndRoadway = result.TaskList.EndRoadway,
                    TaskId = FourWayCarUtil.GetTaskId()
                };
                _db.Insertable(taskAdd).ExecuteCommand();
                returnStr = result.TaskList.EndLocate;
            }
            else
            {
                returnStr = "-1:" + result.Message;
                return returnStr;
            }
        }
        else
        {
            returnStr = task.EndLocate;
        }
        return returnStr;
    }
    /// <summary>
    /// 调用WMS接口申请巷道接口