lss
2025-05-21 af42a9904d1d3939da7fa0a00c3a7a2ced78258e
HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
@@ -13,6 +13,7 @@
using System.IdentityModel.Protocols.WSTrust;
using System.Linq;
using System.Security.Cryptography;
using System.Threading;
using static HH.WCS.JiaTong.api.ApiModel;
using static HH.WCS.JiaTong.LISTA.process.HttpModel;
@@ -32,15 +33,33 @@
            var trayCarryCount = mst.N_CNTR_COUNT > 0 ? mst.N_CNTR_COUNT : 1;
            if (load)
            {
                Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}");
                LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}");
                LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList());
                //Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}");
                if (!string.IsNullOrEmpty(mst.S_CNTR_CODE))
                {
                    LogHelper.Info($"任务{mst.S_CODE} 货位{mst.S_START_LOC}取货完成,起点解绑容器{mst.S_CNTR_CODE}");
                    LocationHelper.UnBindingLoc(mst.S_START_LOC, mst.S_CNTR_CODE.Split(',').ToList());
                }
                else
                {
                    LogHelper.Info($"任务{mst.S_CODE} 托盘为空 ,只解锁货位");
                    LocationHelper.UnlockLoc(mst.S_START_LOC);
                }
            }
            else
            {
                Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}");
                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());
                // Console.WriteLine($"任务{mst.S_CODE} 货位{mst.S_END_LOC}卸货完成,终点绑定容器{mst.S_CNTR_CODE}");
                if (!string.IsNullOrEmpty(mst.S_CNTR_CODE))
                {
                    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());
                }
                else
                {
                    LogHelper.Info($"任务{mst.S_CODE} 托盘为空 ,只解锁货位");
                    LocationHelper.UnlockLoc(mst.S_END_LOC);
                }
            }
        }
@@ -73,9 +92,9 @@
        /// <summary>
        /// 安全请求
        /// </summary>
        /// <param name="model"></param>
        /// <param name="url"></param>
        /// <param name="wcs"></param>
        /// <param name="model">请求参数</param>
        /// <param name="url">地址</param>
        /// <param name="TN_Task">任务</param>
        internal static void OperateReq(AgvTaskState model, string url, WCSTask TN_Task)
        {
            try
@@ -103,7 +122,7 @@
                        else
                        {
                            //井松叠盘机安全交互
                            if ( TN_Task.S_NOTE == "空托回库")
                            if (TN_Task.S_NOTE == "空托回库")
                            {
                                if (S7Helper.WriteDpj(1002, 1))
                                {
@@ -147,10 +166,17 @@
                                //NDCHelper.ChangeParam(TN_Task.S_CODE.Trim(), 1101, 18);
                            }
                        }
                        if (TN_Task.Z_TYPE == 2 && TN_Task.S_NOTE == "空托回库")
                        if (TN_Task.S_NOTE == "空托回库")
                        {
                            S7Helper.WriteDpj(1001, 1);
                            S7Helper.WriteDpj(1002, 0);
                            //写入失败重新写入
                            while (!S7Helper.WriteDpj(1001, 1))
                            {
                                Thread.Sleep(1000);
                            }
                            while (!S7Helper.WriteDpj(1002, 0))
                            {
                                Thread.Sleep(1000);
                            }
                        }
                    }
                    if (model.state == 1103)
@@ -828,11 +854,7 @@
                //回报数据
                Request<MesItemBackModel> request = new Request<MesItemBackModel>();
                List<MesItemBackInfoModel> list = new List<MesItemBackInfoModel>();
                string TaskNumber = mst.S_EQ_NO;
                if (!string.IsNullOrEmpty(mst.S_WMS_NO))
                {
                    TaskNumber = mst.S_WMS_NO;
                }
                //获取时间戳
                var time = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
                //物料到位接口和状态反馈同时调IIOT,为了区分id,物料到位长度加一区分
@@ -842,7 +864,9 @@
                MesItemBackModel mesItemBackModel = new MesItemBackModel();
                mesItemBackModel.TaskNumber = mst.S_EQ_NO;
                mesItemBackModel.WmsTaskNumber = mst.S_WMS_NO;
                mesItemBackModel.Rfid = mst.S_CNTR_CODE;
                mesItemBackModel.LocationNum = mst.S_END_LOC;
                mesItemBackModel.Result = "1";
                mesItemBackModel.ArricalTime = DateTime.Now.ToString("yyyy-MM-dd");
                if (cntritem != null)
                {
@@ -856,7 +880,8 @@
                        TyreType = cntritem.TyreType,
                        ProduceTime = cntritem.D_PRD_DATE,
                        Rfid = cntritem.S_CNTR_CODE,
                        Qty = cntritem.F_WEIGHT
                        Qty = cntritem.F_WEIGHT,
                        Level = cntritem.LEV
                    });