kazelee
2025-05-23 e2ec31cc0062b3c1af621437554aa9a3505d2a56
process/TaskProcess.cs
@@ -112,81 +112,120 @@
            var start = "0"; var end = "0";
            var taskType = mst.S_TYPE.Trim();
            if (mst.N_B_STATE == 0) {
                if (mst.N_SCHEDULE_TYPE == 1)//通过NDC,hosttoagv调度设备
                {
                    start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                    end = LocationHelper.GetAgvSite(mst.S_END_LOC);
                start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                end = LocationHelper.GetAgvSite(mst.S_END_LOC);
                    //if (mst.S_TYPE == "空托下线堆叠") {
                    //    end = LocationHelper.GetAgvSite(mst.S_END_LOC, true);
                    //}
                //if (mst.S_TYPE == "空托下线堆叠") {
                //    end = LocationHelper.GetAgvSite(mst.S_END_LOC, true);
                //}
                    LogHelper.Info($"NDC推送任务 {mst.S_CODE};" + "start=" + start + "end= " + end);
                    var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
                    var endLoc = LocationHelper.GetLoc(mst.S_END_LOC);
                    var dic = new List<param>();
                    dic.Add(new param() { name = "IKey", value = "IKey" });
                    dic.Add(new param() { name = "From", value = start.ToString() });
                    dic.Add(new param() { name = "To", value = end.ToString() });
                    dic.Add(new param() { name = "FUNC", value = startLoc.N_LAYER.ToString() });
                LogHelper.Info($"NDC推送任务 {mst.S_CODE};" + "start=" + start + "end= " + end);
                var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
                var endLoc = LocationHelper.GetLoc(mst.S_END_LOC);
                var dic = new List<param>();
                dic.Add(new param() { name = "IKey", value = "IKey" });
                dic.Add(new param() { name = "From", value = start.ToString() });
                dic.Add(new param() { name = "To", value = end.ToString() });
                dic.Add(new param() { name = "FUNC", value = startLoc.N_LAYER.ToString() });
                    dic.Add(new param() { name = "Ctype", value = "0" });
                dic.Add(new param() { name = "Ctype", value = "0" });
                    //if (mst.S_TYPE == "余料下线入库" || mst.S_TYPE == "人工拆盘入库") {
                    //    dic.Add(new param() { name = "DATA", value = "1024" });
                    //}
                    //else {
                    //    dic.Add(new param() { name = "DATA", value = "0" });
                    //}
                //if (mst.S_TYPE == "余料下线入库" || mst.S_TYPE == "人工拆盘入库") {
                //    dic.Add(new param() { name = "DATA", value = "1024" });
                //}
                //else {
                //    dic.Add(new param() { name = "DATA", value = "0" });
                //}
                    var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//添加新命令
                    if (res != null && (res.err_code == 0 || res.err_code == 50009)) {
                        //推送成功,修改任务优先级
                        mst.N_B_STATE = 1;
                        mst.S_B_STATE = TN_Task.GetStateStr(1);
                        WCSHelper.UpdateStatus(mst);//更新任务状态
                        result = true;
                        LogHelper.Info($"NDC推送任务成功 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}");
                    }
                    else {
                        LogHelper.Info($"NDC推送任务失败 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res));
                    }
                var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//添加新命令
                if (res != null && (res.err_code == 0 || res.err_code == 50009)) {
                    //推送成功,修改任务优先级
                    mst.N_B_STATE = 1;
                    mst.S_B_STATE = TN_Task.GetStateStr(1);
                    WCSHelper.UpdateStatus(mst);//更新任务状态
                    result = true;
                    LogHelper.Info($"NDC推送任务成功 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}");
                }
                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);
                        LogHelper.Info($"杭奥推送任务成功 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos);
                    }
                    else {
                        LogHelper.Info($"杭奥推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(model));
                    }
                else {
                    LogHelper.Info($"NDC推送任务失败 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res));
                }
                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);
                        LogHelper.Info($"国自推送任务成功 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC);
                    }
                    else {
                        LogHelper.Info($"国自推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(mst));
                    }
                }
                //if (mst.N_SCHEDULE_TYPE == 1)//通过NDC,hosttoagv调度设备
                //{
                //    start = LocationHelper.GetAgvSite(mst.S_START_LOC);
                //    end = LocationHelper.GetAgvSite(mst.S_END_LOC);
                //    //if (mst.S_TYPE == "空托下线堆叠") {
                //    //    end = LocationHelper.GetAgvSite(mst.S_END_LOC, true);
                //    //}
                //    LogHelper.Info($"NDC推送任务 {mst.S_CODE};" + "start=" + start + "end= " + end);
                //    var startLoc = LocationHelper.GetLoc(mst.S_START_LOC);
                //    var endLoc = LocationHelper.GetLoc(mst.S_END_LOC);
                //    var dic = new List<param>();
                //    dic.Add(new param() { name = "IKey", value = "IKey" });
                //    dic.Add(new param() { name = "From", value = start.ToString() });
                //    dic.Add(new param() { name = "To", value = end.ToString() });
                //    dic.Add(new param() { name = "FUNC", value = startLoc.N_LAYER.ToString() });
                //    dic.Add(new param() { name = "Ctype", value = "0" });
                //    //if (mst.S_TYPE == "余料下线入库" || mst.S_TYPE == "人工拆盘入库") {
                //    //    dic.Add(new param() { name = "DATA", value = "1024" });
                //    //}
                //    //else {
                //    //    dic.Add(new param() { name = "DATA", value = "0" });
                //    //}
                //    var res = NDCApi.AddOrderNew(1, 1, mst.S_CODE, dic);//添加新命令
                //    if (res != null && (res.err_code == 0 || res.err_code == 50009)) {
                //        //推送成功,修改任务优先级
                //        mst.N_B_STATE = 1;
                //        mst.S_B_STATE = TN_Task.GetStateStr(1);
                //        WCSHelper.UpdateStatus(mst);//更新任务状态
                //        result = true;
                //        LogHelper.Info($"NDC推送任务成功 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}");
                //    }
                //    else {
                //        LogHelper.Info($"NDC推送任务失败 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res));
                //    }
                //}
                //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);
                //        LogHelper.Info($"杭奥推送任务成功 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos);
                //    }
                //    else {
                //        LogHelper.Info($"杭奥推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(model));
                //    }
                //}
                //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);
                //        LogHelper.Info($"国自推送任务成功 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC);
                //    }
                //    else {
                //        LogHelper.Info($"国自推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(mst));
                //    }
                //}
            }
            return result;