1
cjs
2025-07-04 e3d6e8ddbfc930db88bef1e7f170ddfe71b06cf1
ams/Hanhe.iWCS.JingmenGEMTwoProtocol/ProcessHelper.cs
@@ -175,6 +175,32 @@
                        end.CN_N_AGV_LOCATION = Settings.GetConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
                    }
                }
                var conn1 = Settings.GetDGConnectingbitsList().Where(a => a.enable == 1).ToList();
                if (conn1.Count == 2)
                {
                    //两个接驳平台
                    if (mst.CN_S_START_BIT == conn1[0].locCode || mst.CN_S_START_BIT == conn1[1].locCode)
                    {
                        start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
                    }
                    if (mst.CN_S_END_BIT == conn1[0].locCode || mst.CN_S_END_BIT == conn1[1].locCode)
                    {
                        end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
                    }
                }
                if (conn1.Count == 1)
                {
                    //一个接驳平台
                    if (mst.CN_S_START_BIT == conn1[0].locCode)
                    {
                        start.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_START_BIT).First().agvSite[1];
                    }
                    if (mst.CN_S_END_BIT == conn1[0].locCode)
                    {
                        end.CN_N_AGV_LOCATION = Settings.GetDGConnectingbitsList().Where(a => a.locCode == mst.CN_S_END_BIT).First().agvSite[0];
                    }
                }
                #endregion
                string FRow = string.IsNullOrEmpty(start.CN_S_FLOOR) ? "1" : start.CN_S_FLOOR;
@@ -208,7 +234,7 @@
                        }
                    }
                }
                if (mst.CN_S_BUSS_TYPE == "缓存架入立库")
                if (mst.CN_S_BUSS_TYPE == "缓存架入立库" || mst.CN_S_BUSS_TYPE == "电钴缓存架入立库")
                {
                    TRow = "1";
                }
@@ -1120,6 +1146,53 @@
            }
            CMMLog.Info("进入充电任务流程判断:执行结束!");
        }
        internal static void AGVBatteryTimeTwo()
        {
            var cpsInfo = MongoDBSingleton.Instance.FindAll<TN_B_CHARGE_PLAN_SET>("TN_B_CHARGE_PLAN_SET");
            if (cpsInfo.Count > 0)
            {
                foreach (var a in cpsInfo)
                {
                    int agvNo = int.Parse(a.CN_S_NAME);
                    if(agvNo != 0)
                    {
                        //判断中间表 MarginAGV 是否有该AGV的数据
                        var maInfo = MongoDBSingleton.Instance.FindOne<MarginAGV>(Query.EQ("agvNo", int.Parse(a.CN_S_NAME)), "MarginAGV");
                        if (maInfo == null)
                        {
                            if (DateTime.Parse(a.CN_DT_START).AddMinutes(10) > DateTime.Now)
                            {
                                //当前时间在指定充电时间的10分钟之内
                                var pileInfo = Settings.GetChargingPile().Where(b => b.agvNo == a.CN_S_NAME && b.enable == "1").FirstOrDefault();
                                if(pileInfo != null)
                                {
                                    int marginGroup = int.Parse(pileInfo.charginGroup);
                                    TSHelper.SendChargeTask(a.CN_S_NAME, true);
                                    //增加时间
                                    MongoDBSingleton.Instance.Insert<MarginAGV>(new MarginAGV { agvNo = agvNo, marginGroup = marginGroup, dateTime = DateTime.Now });
                                }
                                else
                                {
                                    CMMLog.Info($"充电任务,未配置当前车号,车号:{a.CN_S_NAME}");
                                }
                            }
                        }
                        else
                        {
                            if (maInfo.dateTime.AddMinutes(10) < DateTime.Now)
                            {
                                MongoDBSingleton.Instance.Remove<MarginAGV>(Query.EQ("id", maInfo.id), RemoveFlags.None);
                            }
                        }
                    }
                    else
                    {
                        CMMLog.Info("充电任务流程异常,当前车号为0");
                    }
                }
            }
        }
        #endregion
        /// <summary>
@@ -1340,6 +1413,8 @@
            return result;
        }
        /// <summary>
        /// SQL-AMS任务主表
        /// </summary>