杨前锦
2025-06-06 16d2162a833cebeae72c363962917bb9da8145ef
HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_BZP/process/TaskProcess.cs
@@ -12,6 +12,7 @@
using System.Reflection;
using System.Security.Cryptography;
using static HH.WCS.Mobox3.YNJT_BZP.util.Settings;
using static HH.WCS.Mobox3.YNJT_BZP.dispatch.WCSDispatch;
namespace HH.WCS.Mobox3.YNJT_BZP.process {
    internal class TaskProcess {
@@ -91,6 +92,16 @@
                if (state == 1102)
                {
                    LogHelper.Info("向WCS发送取货完成安全退出信号", "AGV");
                    var locCntrRels = LocationHelper.GetLocCntr(cst.S_START_LOC);
                    if (locCntrRels.Count == 1)
                    {
                        var container = ContainerHelper.GetCntr(locCntrRels[0].S_CNTR_CODE);
                        if (container != null && container.N_TYPE == 0)
                        {
                            LogHelper.Info("取货完成后,起点货位存在母拖,下发母拖入库任务", "AGV");
                            ApiHelper.baseTrayInStock(cst.S_START_LOC, mst.S_CODE);
                        }
                    }
                    /*result = WCSDispatch.safetyInteraction(cst.S_CODE, cst.S_START_LOC, "2");  //取货完成安全退出*/
                    result = true;
                }
@@ -111,7 +122,7 @@
                                    if (container1.N_TYPE == 0)
                                    {
                                        LogHelper.Info("非胎圈入库,接驳位存在母拖,下发母拖入库任务", "AGV");
                                        ApiHelper.baseTrayInStockAgv(endLoc.S_CODE, mst.S_CODE);
                                        ApiHelper.autoBaseTrayInStock(endLoc.S_CODE, mst.S_CODE);
                                    }
                                }
                            }
@@ -126,7 +137,7 @@
                            if (endLoc.N_CURRENT_NUM == 0) 
                            {
                                LogHelper.Info("胎圈入库,接驳位缺少母拖,下发母拖出库任务", "AGV");
                                ApiHelper.baseTrayOutStockAgv(endLoc.S_CODE, mst.S_CODE);
                                ApiHelper.autoBaseTrayOutStock(endLoc.S_CODE, mst.S_CODE);
                            }
                            else if (endLoc.N_CURRENT_NUM == 1) 
                            {
@@ -162,7 +173,6 @@
                // 安全请求发送成功,添加任务动作记录
                if (result)
                {
                    WCSHelper.AddActionRecord(no, state, forkliftNo, extData);
                    LogHelper.Info($"首次进行安全请求成功", "AGV");
                }
            }
@@ -213,7 +223,6 @@
            if (mst.N_B_STATE == 0) {
                var startLoc = LocationHelper.GetLocation(mst.S_START_LOC);
                var endLoc = LocationHelper.GetLocation(mst.S_END_LOC);
                if (mst.S_SCHEDULE_TYPE == "AGV") 
                {
                    AddOrderNewModel model = new AddOrderNewModel() 
@@ -224,9 +233,19 @@
                    };
                    List<Param> paramList = new List<Param>();
                    var dic = new Dictionary<string, string>();
                    dic.Add("IKey", mst.S_CODE);
                    dic.Add("From", startLoc.S_CODE);
                    dic.Add("To", endLoc.S_CODE);
                    dic.Add("FUNC", "0");
                    if (mst.S_TYPE.Contains("入库"))
                    {
                        dic.Add("DATA", "300");
                    }
                    else
                    {
                        dic.Add("DATA", "0");
                    }
                    dic.Add("Ctype", "0");
                    foreach (var item in dic)
                    {
                        Param param = new Param
@@ -237,6 +256,7 @@
                        paramList.Add(param);
                    }
                    model.paramList = paramList;
                    LogHelper.Info($"向AGV下发任务,任务参数:{model}", "WMS");
                    var res = NDCApi.AddOrderNew(model);
                    if (res != null && res.err_code == 0 || true)
                    {
@@ -248,8 +268,17 @@
                }
                else if (mst.S_SCHEDULE_TYPE == "WCS") 
                {
                    if (true)
                    SendTaskModel sendTask = new SendTaskModel()
                    {
                        taskNo = mst.S_CODE,
                        taskType = mst.S_TYPE.Contains("入库") ? "1" : "2",
                        from = mst.S_START_LOC,
                        to = mst.S_END_LOC,
                        cntrNo = mst.S_CNTR_CODE,
                    };
                    LogHelper.Info($"向WCS下发任务,任务参数:{sendTask}", "WMS");
                    var bo = WCSDispatch.sendTask(sendTask);
                    if (true || bo)
                    {
                        //推送成功,修改任务优先级
                        mst.N_B_STATE = 1;