using System;
|
using System.Collections.Generic;
|
using System.IO;
|
|
using HH.WCS.Mobox3.DSZSH.util;
|
|
using Newtonsoft.Json;
|
using Newtonsoft.Json.Linq;
|
|
namespace HH.WCS.Mobox3.DSZSH {
|
public class Settings
|
{
|
public static string WebApiUrl { get; set; }
|
public static string NdcApiUrl { get; set; }
|
public static string ErpApiUrl { get; set; } // ERP 反馈接口
|
public static string SqlServer { get; set; }
|
public static string TcpServerIp { get; set; }
|
public static int TcpServerPort { get; set; }
|
public static List<Config.Area> Areas { get; set; } = new List<Config.Area>();
|
public static List<Config.ProductionLine> ProductionLines { get; set; } = new List<Config.ProductionLine>();
|
public static List<Config.ProdAgvSite> ProdAgvSites { get; set; } = new List<Config.ProdAgvSite>();
|
/// <summary>
|
/// 库区字典(加载后就不变)
|
/// </summary>
|
public static Dictionary<string, List<string>> AreaMap { get; set; } = new Dictionary<string, List<string>>();
|
|
public static Dictionary<string, int> AgvSite_ProdLineCodeMap { get; set; } = new Dictionary<string, int>();
|
|
public static void Init() {
|
// 加载配置文件
|
LoadJson();
|
|
// 针对 Areas 进行转换:将 Config 的 List 加载到 Dict 中
|
LoadAreas();
|
}
|
|
private static void LoadJson() {
|
LogHelper.Info("加载配置文件信息 开始");
|
// JSON 文件路径
|
string filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "./config/config.json");
|
|
try {
|
// 读取 JSON 文件内容
|
string jsonContent = File.ReadAllText(filePath);
|
|
// 反序列化为 Config 对象
|
var root = JsonConvert.DeserializeObject<Config.Root>(jsonContent);
|
|
WebApiUrl = root.WebApiUrl;
|
NdcApiUrl = root.NdcApiUrl;
|
ErpApiUrl = root.ErpApiUrl;
|
SqlServer = root.SqlServer;
|
TcpServerIp = root.TcpServerIp;
|
TcpServerPort = root.TcpServerPort;
|
Areas = root.Areas;
|
ProductionLines = root.ProductionLines;
|
|
ProdAgvSites = root.ProdAgvSite;
|
foreach (var item in ProdAgvSites) {
|
AgvSite_ProdLineCodeMap.Add(item.Code, item.ProdId);
|
}
|
|
}
|
catch (FileNotFoundException) {
|
LogHelper.Info("JSON 文件未找到");
|
}
|
catch (JsonException ex) {
|
LogHelper.Info($"JSON 解析错误: {ex.Message}");
|
}
|
catch (Exception ex) {
|
LogHelper.Info($"发生错误: {ex.Message}");
|
}
|
LogHelper.Info("加载配置文件信息 完成");
|
}
|
|
private static void LoadAreas() {
|
foreach (var area in Areas) {
|
AreaMap.Add(area.Name, area.Codes);
|
}
|
}
|
|
private static void LoadProdLines() {
|
//var db = new SqlHelper<object>().GetInstance();
|
//for (int i = 0; i < ProductionLines.Count; i++) {
|
// var line = ProductionLines[i];
|
// // 通过OnLoc OffLoc找到AGVsite然后写入字典
|
//}
|
}
|
|
}
|
|
// [Convert JSON to C# Classes Online - Json2CSharp Toolkit](https://json2csharp.com/)
|
|
public class Config {
|
|
// Root myDeserializedClass = JsonConvert.DeserializeObject<Root>(myJsonResponse);
|
public class Area {
|
public string Name { get; set; }
|
public List<string> Codes { get; set; }
|
}
|
|
public class ProdAgvSite {
|
public string Code { get; set; }
|
public int ProdId { get; set; }
|
}
|
|
public class ProductionLine {
|
public string Id { get; set; }
|
public string Name { get; set; }
|
public string PlcIp { get; set; }
|
public int PlcPort { get; set; }
|
public int SlaveId { get; set; }
|
public List<string> OnLoc { get; set; }
|
public List<string> OffLoc { get; set; }
|
}
|
|
public class Root {
|
public string WebApiUrl { get; set; }
|
public string NdcApiUrl { get; set; }
|
public string ErpApiUrl { get; set; }
|
public string SqlServer { get; set; }
|
public string TcpServerIp { get; set; }
|
public int TcpServerPort { get; set; }
|
public List<Area> Areas { get; set; }
|
|
public List<ProductionLine> ProductionLines { get; set; }
|
public List<ProdAgvSite> ProdAgvSite { get; set; }
|
}
|
}
|
|
|
public class AreaName {
|
public const string B包装区 = "包装区";
|
public const string K空箱操作区 = "空箱操作区";
|
public const string M满箱操作区 = "满箱操作区";
|
|
public const string K空托存放区 = "空托存放区";
|
public const string K空箱货架区 = "空箱货架区";
|
public const string M满托货架区 = "满托货架区";
|
public const string M满箱货架区 = "满箱货架区";
|
|
public const string C抽检区 = "抽检区";
|
public const string C抽检异常区 = "抽检异常区";
|
|
public const string K空托入库接驳区 = "空托入库接驳区";
|
public const string K空箱入库接驳区 = "空箱入库接驳区";
|
|
public const string Q汽车出库区 = "汽车出库区";
|
public const string H火车出库区 = "火车出库区";
|
public const string Q汽车备货区 = "汽车备货区";
|
public const string H火车备货区 = "火车备货区";
|
}
|
|
public class TaskName {
|
public const string H好运箱_满箱下线入库 = "好运箱-满箱下线入库";
|
public const string H好运箱_空箱上线 = "好运箱-空箱上线";
|
public const string H好运箱_空箱入库 = "好运箱-空箱入库";
|
public const string H好运箱_空箱绑定 = "好运箱-空箱绑定";
|
|
public const string C成品胶出库 = "成品胶出库";
|
|
public const string T托盘_满托下线入库 = "托盘-满托下线入库";
|
public const string T托盘_空托上线 = "托盘-空托上线";
|
public const string T托盘_空托入库 = "托盘-空托入库";
|
public const string T托盘_空托绑定 = "托盘-空托绑定";
|
|
public const string C抽检_不合格移库 = "抽检-不合格移库";
|
public const string C抽检_出库 = "抽检-出库";
|
public const string C抽检_合格回库 = "抽检-合格回库";
|
|
public const string Y移库 = "移库";
|
public const string W尾箱回库 = "尾箱回库";
|
}
|
|
}
|