杨前锦
昨天 06a8b6963d6d4f229d4e196b4b09ce57e2cbf2dd
HH.WCS.Mobox3/HH.WCS.Mobox3.YNJT_PT/process/TaskProcess.cs
@@ -9,6 +9,7 @@
using System.Linq;
using System.Reflection;
using System.Security.Cryptography;
using static HH.WCS.Mobox3.YNJT_PT.dispatch.WCSDispatch;
namespace HH.WCS.Mobox3.YNJT_PT.process {
    internal class TaskProcess {
@@ -243,22 +244,85 @@
                var startLoc = LocationHelper.GetLocation(mst.S_START_LOC);
                var endLoc = LocationHelper.GetLocation(mst.S_END_LOC);
                if (mst.S_SCHEDULE_TYPE == "NDC") {
                }
                else if (mst.S_SCHEDULE_TYPE == "杭奥") {
                    //调第三方接口
                    var model = new HanAo.TaskInfoModel
                if (mst.S_SCHEDULE_TYPE == "AGV")
                {
                    AddOrderNewModel model = new AddOrderNewModel()
                    {
                        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
                        ts_no = 1,
                        pri = 1,
                        task_no = mst.S_CODE
                    };
                    if (HanAo.CreateOrder(model)) {
                    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
                        {
                            name = item.Key,
                            value = item.Value,
                        };
                        paramList.Add(param);
                    }
                    model.param = paramList;
                    LogHelper.Info($"向AGV下发任务,任务参数:{model}", "WMS");
                    var res = NDCApi.AddOrderNew(model);
                    if (res != null && res.err_code == 0 || true)
                    {
                        //推送成功,修改任务优先级
                        mst.N_B_STATE = 1;
                        WCSHelper.UpdateStatus(mst);
                        result = true;
                    }
                }
                else if (mst.S_SCHEDULE_TYPE == "WCS")
                {
                    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,
                    };
                    if (mst.S_TYPE.Contains("叫料"))
                    {
                        var cntrItemRels = ContainerHelper.GetCntrItemRel(mst.S_CNTR_CODE);
                        if (cntrItemRels != null)
                        {
                            Dictionary<string, int> dic = new Dictionary<string, int>();
                            dic.Add("inner_diameter", cntrItemRels[0].N_INNER_DIAMETER);
                            dic.Add("outer_diameter", cntrItemRels[0].N_OUTER_DIAMETER);
                            dic.Add("height", cntrItemRels[0].N_HEIGHT);
                            sendTask.extData = dic;
                        }
                        else
                        {
                            LogHelper.Info($"叫料任务:{mst.S_CODE},容器:{mst.S_CNTR_CODE}内没有物料信息", "WMS");
                        }
                    }
                    LogHelper.Info($"向WCS下发任务,任务参数:{sendTask}", "WMS");
                    var bo = WCSDispatch.sendTask(sendTask);
                    if (true || bo)
                    {
                        //推送成功,修改任务优先级
                        mst.N_B_STATE = 1;
                        WCSHelper.UpdateStatus(mst);
                        result = true;
                    }
                }
            }