kazelee
2025-05-21 a8627a98b82d2364cbe849ca746e72fbab9916e5
process/TaskProcess.cs
File was renamed from Helpers/TaskHelper.cs
@@ -1,21 +1,14 @@
using HH.WCS.Mobox3.AnGang.ServiceCore;
using HH.WCS.Mobox3.AnGang.Dispatch;
using HH.WCS.Mobox3.AnGang.config;
using HH.WCS.Mobox3.AnGang.Helper;
using HH.WCS.Mobox3.AnGang.dispatch;
using HH.WCS.Mobox3.AnGang.wms;
using Newtonsoft.Json;
using Opc.Ua;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Security.Cryptography;
using static HH.WCS.Mobox3.AnGang.Controllers.ApiModel;
using Org.BouncyCastle.Crypto;
using HH.WCS.Mobox3.AnGang.Devices;
using HH.WCS.Mobox3.AnGang.Models;
using HH.WCS.Mobox3.AnGang.models;
using System;
namespace HH.WCS.Mobox3.AnGang.process {
    internal class TaskHelper {
    internal class TaskProcess {
        #region 任务相关
        //--------------------------------------------------任务相关--------------------------------------------------
        /// <summary>
@@ -35,6 +28,7 @@
                LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}");
                LocationHelper.BindingLoc(mst.S_END_LOC, mst.S_CNTR_CODE.Split(',').ToList());
            }
        }
        /// <summary>
@@ -59,16 +53,13 @@
        }
        /// <summary>
        /// 任务状态更新处理
        /// </summary>
        /// <param name="mst"></param>
        /// <param name="state"></param>
        internal static void OperateStatus(TN_Task mst, int state) {
            if (state == 4)
            {
            if (state == 4) {
                CacheBitUpdate(mst, true);
            }
            if (state == 6)//卸货完成
@@ -87,15 +78,11 @@
        /// <param name="state"></param>
        /// <param name="forkliftNo"></param>
        /// <param name="extData"></param>
        internal static void OperateReq(string no, int state, string forkliftNo, string extData = "")
        {
            if (state == 1101)
            {
        internal static void OperateReq(string no, int state, string forkliftNo, string extData = "") {
            if (state == 1101) {
                //请求取货,
            }
            if (state == 1102)
            {
            if (state == 1102) {
                //请求卸货,
                //根据终点判断,是cb02的入口,判断内存中状态(要状态时间),允许卸货,通知agv改参数
                var dic = new Dictionary<string, string>();
@@ -106,8 +93,7 @@
                NDC.ChangeOrder(dic);
                //改完参数车子就会自己卸货
            }
            if (state == 1103)
            {
            if (state == 1103) {
                //大铁框叉走以后通知,我们要通知输送线
            }
        }
@@ -115,12 +101,11 @@
        private static object locLocker = new object();
       /// <summary>
        /// <summary>
        /// 推送任务
        /// </summary>
        /// <param name="mst"></param>
        internal static bool SendTask(TN_Task mst)
        {
        internal static bool SendTask(TN_Task mst) {
            var result = false;
            var start = "0"; var end = "0";
@@ -131,10 +116,9 @@
                    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);
@@ -147,19 +131,16 @@
                    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))
                    {
                    if (res != null && (res.err_code == 0 || res.err_code == 50009)) {
                        //推送成功,修改任务优先级
                        mst.N_B_STATE = 1;
                        mst.S_B_STATE = TN_Task.GetStateStr(1);
@@ -167,16 +148,14 @@
                        result = true;
                        LogHelper.Info($"NDC推送任务成功 {mst.S_CODE}start= {mst.S_START_LOC} + end = {mst.S_END_LOC}");
                    }
                    else
                    {
                    else {
                        LogHelper.Info($"NDC推送任务失败 {mst.S_CODE};Res:" + JsonConvert.SerializeObject(res));
                    }
                }
                else if (mst.N_SCHEDULE_TYPE == 5)//通过杭奥调度设备 
                {
                    //调第三方接口
                    var model = new HanAo.TaskInfoModel
                    {
                    var model = new HanAo.TaskInfoModel {
                        requestPk = mst.S_CODE,
                        frmPos = mst.S_START_LOC,
                        toPos = mst.S_END_LOC,
@@ -188,8 +167,7 @@
                        WCSHelper.UpdateStatus(mst);
                        LogHelper.Info($"杭奥推送任务成功 {mst.S_CODE};" + "start=" + model.frmPos + "end= " + model.toPos);
                    }
                    else
                    {
                    else {
                        LogHelper.Info($"杭奥推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(model));
                    }
                }
@@ -204,8 +182,7 @@
                        WCSHelper.UpdateEQNo(mst);
                        LogHelper.Info($"国自推送任务成功 {mst.S_CODE};" + "start=" + mst.S_START_LOC + "end= " + mst.S_END_LOC);
                    }
                    else
                    {
                    else {
                        LogHelper.Info($"国自推送任务失败 {mst.S_CODE};" + JsonConvert.SerializeObject(mst));
                    }
                }