using HH.WCS.Mobox3.YNJT_BZP.wms; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using SqlSugar; using SqlSugar.Extensions; using System; using System.Collections.Generic; using System.Linq; using static HH.WCS.Mobox3.YNJT_BZP.util.Settings; namespace HH.WCS.Mobox3.YNJT_BZP.util { public class Settings { public static string HostToAgvServerUrl { get; set; } public static string HASeverUrl { get; set; } public static string SqlServer { get; set; } public static string SqlServer1 { get; set; } public static int port { get; set; } public static string WHCode { get; set; } public static string FacCode { get; set; } public static string NDCApiUrl { get; set; } public static List baseTrayBufferLocList { get; set; } public static string errorBufferArea { get; set; } public static string storeAreaCode { get; set; } public static List agvWaitLocList { get; set; } public static List agvJBLocList { get; set; } public static void Init() { LogHelper.Info("加载配置文件信息 开始"); try { var jsonFile = System.AppDomain.CurrentDomain.BaseDirectory + "/config/config.json"; using (System.IO.StreamReader file = System.IO.File.OpenText(jsonFile)) { using (JsonTextReader reader = new JsonTextReader(file)) { JObject o = (JObject)JToken.ReadFrom(reader); foreach (Newtonsoft.Json.Linq.JProperty keyValue in o.Properties()) { Console.WriteLine(keyValue.Name); if (keyValue.Name == "HostToAgvServerUrl") { HostToAgvServerUrl = keyValue.Value.ToString(); } if (keyValue.Name == "HASeverUrl") { HASeverUrl = keyValue.Value.ToString(); } if (keyValue.Name == "SqlServer") { SqlServer = keyValue.Value.ToString(); } if (keyValue.Name == "SqlServer1") { SqlServer1 = keyValue.Value.ToString(); } if (keyValue.Name == "WHCode") { WHCode = keyValue.Value.ToString(); } if (keyValue.Name == "FacCode") { FacCode = keyValue.Value.ToString(); } if (keyValue.Name == "ApiPort") { port = int.Parse(keyValue.Value.ToString()); } if (keyValue.Name == "AgvWaitLoc") { agvWaitLocList = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "AgvJBLoc") { agvJBLocList = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "baseTrayBufferLoc") { baseTrayBufferLocList = JsonConvert.DeserializeObject>(keyValue.Value.ToString()); } if (keyValue.Name == "NDCApiUrl") { NDCApiUrl = keyValue.Value.ToString(); } if (keyValue.Name == "errorBufferArea") { errorBufferArea = keyValue.Value.ToString(); } if (keyValue.Name == "storeAreaCode") { storeAreaCode = keyValue.Value.ToString(); } } } } LogHelper.Info("加载配置文件信息 完成"); } catch (Exception ex) { LogHelper.Error("加载配置文件失败!" + ex.Message, ex); } } /// /// 获取AGV等待位 /// /// public static List getAgvWaitLoc() { return agvWaitLocList.Where(a => 1 == 1).Select(a => a.loc).ToList(); } /// /// 查询AGV等待位 /// /// /// public static AgvWaitLoc getAgvWaitLoc(string locCode) { return agvWaitLocList.Where(a => a.loc == locCode).First(); } /// /// 获取AGV接驳位 /// /// /// 0.通用 1.入库 2.出库 /// public static List getAgvJBLocList( int roadway ,int action) { List locCodes = new List(); var agvJbLocList = agvJBLocList.Where(a => a.roadway.Contains(roadway) && a.action == action).Select(a => a.locCode).ToList(); if (agvJBLocList.Count > 0) { Dictionary keyValuePairs = new Dictionary(); foreach (var loc in agvJbLocList) { // DOTO 查询接驳位是否正常 var count = WCSHelper.GetTaskCountByStartAndEnd(loc); keyValuePairs.Add(loc, count); } locCodes = keyValuePairs.OrderBy(a => a.Value).Select(a => a.Key).ToList(); } return locCodes; } /// /// 获取AGV接驳位 /// /// /// public static AgvJBLoc getAgvJBLoc( string locCode) { return agvJBLocList.Where(a => a.locCode == locCode).FirstOrDefault(); } public class BaseTrayBufferLoc { public string bufferOutLoc { get; set; } public string bufferInLoc { get; set; } } public class AgvJBLoc { public string locCode { get; set; } public string name { get; set; } public List roadway { get; set; } public int action { get; set; } // 1.入库 2.出库 } public class AgvWaitLoc { public string loc { get; set; } public string name { get; set; } public int type { get; set; } } } }