lss
2025-06-05 71129e21a35a2d4be75ee0f1e96e2c51ced5f23b
HH.WCS.Mobox3/HH.WCS.Mobox3.DaYang/process/TaskProcess.cs
@@ -12,6 +12,7 @@
using System.Text;
using static HH.WCS.DaYang.api.ApiModel;
using static HH.WCS.DaYang.util.Settings;
using static System.Net.WebRequestMethods;
namespace HH.WCS.DaYang.process
{
@@ -109,33 +110,52 @@
        internal static bool Intercept(WCSTask mst)
        {
            var result = false;
            #region 空托回库任务需要判断有没有执行中的出库任务,接驳位有无托盘,如果有先不推送任务
            if (mst.S_TYPE == "空托回库" && mst.S_SCHEDULE_TYPE == "1")
            #region 空托回库任务需要判断有没有执行中的出库任务,接驳位有无托盘,如果有先不推送任务,任务任务需要agv任务完成再推
            if (mst.S_TYPE == "空托回库")
            {
                //判断有无出库中的任务
                var task = WCSHelper.GetTaskbyType("出库");
                if (task.Count == 0)
                {   //获取接驳位设备状态
                    HttpHelper httpHelper = new HttpHelper();
                    TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3);
                    if (tableUrl != null)
                    {
                        Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url);
                        //设备状态空则允许推送
                        if (DeviceStatu != null && DeviceStatu.Data[0].PhotoStatus == 0)
                if (mst.N_SCHEDULE_TYPE == 1)
                {
                    //判断有无出库中的任务
                    var task = WCSHelper.GetTaskbyType("出库");
                    if (task.Count == 0)
                    {   //获取接驳位设备状态
                        HttpHelper httpHelper = new HttpHelper();
                        TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3);
                        if (tableUrl != null)
                        {
                            result = true;
                            Result<DeviceStatusModel> DeviceStatu = httpHelper.GetDeviceStatus(new string[] { mst.S_END_LOC }, tableUrl.url);
                            //设备状态空则允许推送
                            if (DeviceStatu != null && DeviceStatu.Data[0].PhotoStatus == 0)
                            {
                                result = true;
                            }
                            else
                            {
                                LogHelper.Info($"Intercept:设备状态不允许推送");
                            }
                        }
                        else
                        {
                            LogHelper.Info($"Intercept:设备状态不允许推送");
                            LogHelper.Info($"Intercept:获取接口url失败");
                        }
                    }
                    else
                    {
                        LogHelper.Info($"Intercept:获取接口url失败");
                    }
                }
                if (mst.N_SCHEDULE_TYPE == 2)
                {
                    var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3);
                    if (task != null)
                    { result = true; }
                }
            }
            if (mst.S_TYPE == "出库")
            {
                //推送agv任务,判断设备任务是否完成
                if (mst.N_SCHEDULE_TYPE == 1)
                {
                    var task = WCSHelper.GetTaskByOpName(mst.S_OP_CODE, 3);
                    if (task != null)
                    { result = true; }
                }
            }
            #endregion
@@ -317,8 +337,8 @@
            var result = false;
            var start = "0"; var end = "0";
            var taskType = mst.S_TYPE.Trim();
            // if (mst.N_B_STATE == 0) {
            if (mst.N_SCHEDULE_TYPE == 1)
            if (mst.N_SCHEDULE_TYPE == 1)//agv任务
            {
                start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                end = LocationHelper.GetAgvSite(mst.S_END_LOC);
@@ -352,34 +372,21 @@
                    result = true;
                }
            }
            //else if (mst.N_SCHEDULE_TYPE == 5) {
            //    //调第三方接口
            //    var model = new HanAo.TaskInfoModel
            //    {
            //        requestPk = mst.S_CODE,
            //        frmPos = mst.S_START_LOC,
            //        toPos = mst.S_END_LOC,
            //        trkType = mst.S_OP_NAME == "入库" ? "1" : "2",
            //        contNo = mst.S_CNTR_CODE
            //    };
            //    if (HanAo.CreateOrder(model)) {
            //        mst.N_B_STATE = 1;
            //        WCSHelper.UpdateStatus(mst);
            //    }
            //}
            //else if (mst.N_SCHEDULE_TYPE == 3) {
            //    var code = GZRobot.CreateOrder(mst.S_CODE, mst.N_PRIORITY, JsonConvert.SerializeObject(new { src = mst.S_START_LOC, dst = mst.S_END_LOC }), "p2p");
            //    if (code > 0) {
            //        //更新任务状态
            //        mst.N_B_STATE = 1;
            //        mst.S_EQ_TASK_CODE = code.ToString();
            //        WCSHelper.UpdateStatus(mst);
            //        WCSHelper.UpdateEQNo(mst);
            //    }
            //}
            //  }
            else if (mst.N_SCHEDULE_TYPE == 2)//输送线任务
            {
                HttpHelper http = new HttpHelper();
                TableUrl tableUrl = Settings.tableUrls.Find(a => a.id == 3);
                if (tableUrl != null)
                {
                    var Wcsrsult = http.TaskAssignment(mst, tableUrl.url);
                    if (Wcsrsult.Code == 200)
                    {
                        mst.N_B_STATE = 1;
                        WCSHelper.UpdateStatus(mst);
                        result = true;
                    }
                }
            }
            return result;
        }