lss
2025-07-07 95c865c03a9cb128af51ac4b7d7f9d7149441efd
HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/TaskProcess.cs
@@ -15,6 +15,7 @@
using System.Diagnostics.Eventing.Reader;
using System.IdentityModel.Protocols.WSTrust;
using System.Linq;
using System.Net.NetworkInformation;
using System.Security.Cryptography;
using System.Threading;
using System.Threading.Tasks;
@@ -47,7 +48,7 @@
                else
                {
                    LogHelper.Info($"任务{mst.S_CODE} 托盘为空 ,只解锁货位");
                    LocationHelper.UnlockLoc(mst.S_START_LOC);
                    LocationHelper.UnlockLocDeleteCntrs(mst.S_START_LOC);
                }
            }
            else
@@ -96,7 +97,7 @@
        /// <param name="model">请求参数</param>
        /// <param name="url">地址</param>
        /// <param name="TN_Task">任务</param>
        internal static void OperateReq(AgvTaskState model, string url, WCSTask TN_Task)
        internal static void OperateReq(AgvTaskState model, string url, WCSTask TN_Task, string name)
        {
            try
            {
@@ -184,7 +185,7 @@
                            }
                            else
                            {
                                if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state))
                                if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state, name))
                                {
                                    // NDCHelper.ChangeParam(TN_Task.S_CODE.Trim(), 1101, 18);
                                    NDCApi.ChangeOrderParam(TN_Task.S_CODE.Trim(), 6, "1");
@@ -287,7 +288,7 @@
                        }
                        else
                        {
                            if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state))
                            if (OperateReqByPost(url, TN_Task.S_EQ_NO, TN_Task.S_CODE, loc, type, model.state, name))
                            {
                                NDCApi.ChangeOrderParam(TN_Task.S_CODE.Trim(), 6, "1");
                            }
@@ -341,7 +342,6 @@
            }
            catch (Exception ex)
            {
                LogHelper.Info($"OperateReq Error ==》{ex.ToString()}");
            }
@@ -358,7 +358,7 @@
        /// <param name="type"></param>
        /// <param name="taskStatus"></param>
        /// <returns></returns>
        internal static bool OperateReqByPost(string url, string tasknum, string ordernum, string station, int type, int taskStatus)
        internal static bool OperateReqByPost(string url, string tasknum, string ordernum, string station, int type, int taskStatus, string name)
        {
            bool permit = false;
            try
@@ -383,6 +383,7 @@
                    LogHelper.Info($"安全请求失败=>msg:{result.msg}");
                    ApiHelper.AddErrorInfo("安全交互失败", result.msg, "", tasknum);
                }
                ApiHelper.AddInfo(name, "安全请求", date, JsonConvert.SerializeObject(result), "Post", url);
                return permit;
            }
            catch (Exception)
@@ -433,6 +434,7 @@
                    LogHelper.Info($"安全请求失败=>msg:{result.err_msg}");
                    ApiHelper.AddErrorInfo("安全交互失败", result.err_msg, "", no);
                }
                ApiHelper.AddInfo("YCL", "安全请求", date, JsonConvert.SerializeObject(result), "Post", url);
                return permit;
            }
            catch (Exception)
@@ -671,7 +673,22 @@
            //  }
            return result;
        }
        /// <summary>
        /// 空托等待任务 超时5分组直接推送
        /// </summary>
        /// <param name="mst"></param>
        /// <returns></returns>
        internal static void WaitSend(WCSTask mst)
        {
            // 计算与当前时间的差值
            TimeSpan timeDifference = DateTime.Now - mst.T_CREATE;
            if (timeDifference.TotalMinutes > 5)
            {
                var db = new SqlHelper<WCSTask>().GetInstance();
                mst.S_B_STATE = "等待";
                db.Updateable(mst).UpdateColumns(it => new { it.S_B_STATE }).ExecuteCommand();
            }
        }
        /// <summary>
        /// 任务状态回报
        /// </summary>
@@ -679,7 +696,7 @@
        /// <param name="orderNum">单号</param>
        /// <param name="taskStatus">任务状态</param>
        /// <param name="url">上报接口</param>
        public static void Reportback(string taskNum, string orderNum, int taskStatus, string url)
        public static void Reportback(string taskNum, string orderNum, int taskStatus, string url, string ly)
        {
            LogHelper.Info($"------------开始任务回报-----------");
            try
@@ -709,6 +726,7 @@
                {
                    LogHelper.Info($"任务回报失败=>msg:{result.msg}");
                }
                ApiHelper.AddInfo(ly, "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url);
            }
            catch (Exception ex)
            {
@@ -762,6 +780,7 @@
                {
                    LogHelper.Info($"任务回报失败=");
                }
                ApiHelper.AddInfo("Wms", "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url);
            }
            catch (Exception ex)
            {
@@ -807,6 +826,7 @@
                {
                    LogHelper.Info($"任务回报失败=>msg:{result.err_msg}");
                }
                ApiHelper.AddInfo("YCL", "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url);
            }
            catch (Exception ex)
            {
@@ -860,7 +880,7 @@
                statusArrive.TaskNumber = mst.S_EQ_NO;
                statusArrive.LocationNum = mst.S_END_LOC;
                statusArrive.Time = DateTime.Now.ToString();
                statusArrive.Status = mst.S_B_STATE;
                statusArrive.Status = status.ToString();
                statusArrive.Rfid = mst.S_CNTR_CODE;
                statusArrive.Flag = flag;
                statusArrive.Info = info;
@@ -885,6 +905,7 @@
                {
                    LogHelper.Info($"任务回报失败=>msg:{result.imsg}");
                }
                ApiHelper.AddInfo("Mes", "任务状态回报", date, JsonConvert.SerializeObject(result), "Post", url);
            }
            catch (Exception ex)
            {
@@ -916,6 +937,7 @@
                //粉料回库不需要回报
                if (cntritem != null && mst.S_TYPE == "余料返回" && cntritem.S_ITEM_CODE.StartsWith("4X"))
                {
                    LogHelper.Info("粉料回库不需要到位发送物料到位");
                    return;
                }
                //获取时间戳
@@ -935,8 +957,24 @@
                if (cntritem != null)
                {
                    string curBagNum = null;
                    string weightBag = null;
                    string initBagNum = null;
                    if ((int)cntritem.F_QTY > 0)
                    {
                        curBagNum = cntritem.F_QTY.ToString();
                    }
                    if (!string.IsNullOrEmpty(cntritem.F_WEIGHT1) && int.Parse(cntritem.F_WEIGHT1) > 0)
                    {
                        weightBag = cntritem.F_WEIGHT1;
                    }
                    if (!string.IsNullOrEmpty(cntritem.F_QTY1) && int.Parse(cntritem.F_QTY1) > 0)
                    {
                        initBagNum = cntritem.F_QTY1;
                    }
                    list.Add(new MesItemBackInfoModel()
                    {
                        LotNumber = cntritem.S_BATCH_NO,
                        PartNumber = cntritem.S_ITEM_CODE,
                        Subpool = cntritem.Subpool,
@@ -948,9 +986,9 @@
                        Qty = cntritem.F_WEIGHT,
                        PartLevel = cntritem.LEV,
                        WmsLot = cntritem.WmsLot,
                        WeightBag = cntritem.F_WEIGHT1,
                        CurBagNum = (int)cntritem.F_QTY,
                        InitBagNum = cntritem.F_QTY1
                        WeightBag = weightBag,
                        CurBagNum = curBagNum,
                        InitBagNum = initBagNum
                    });
@@ -976,6 +1014,7 @@
                {
                    LogHelper.Info($"物料到位回报失败=>msg:{result.imsg}");
                }
                ApiHelper.AddInfo("Mes", "物料到位回报", date, JsonConvert.SerializeObject(result), "Post", url);
            }
            catch (Exception ex)
            {