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<BaseTrayBufferLoc> baseTrayBufferLocList { get; set; }
|
public static string errorBufferArea { get; set; }
|
public static string storeAreaCode { get; set; }
|
public static List<AgvWaitLoc> agvWaitLocList { get; set; }
|
public static List<AgvJBLoc> 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<List<AgvWaitLoc>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "AgvJBLoc")
|
{
|
agvJBLocList = JsonConvert.DeserializeObject<List<AgvJBLoc>>(keyValue.Value.ToString());
|
}
|
if (keyValue.Name == "baseTrayBufferLoc")
|
{
|
baseTrayBufferLocList = JsonConvert.DeserializeObject<List<BaseTrayBufferLoc>>(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);
|
}
|
}
|
|
/// <summary>
|
/// 获取AGV等待位
|
/// </summary>
|
/// <returns></returns>
|
public static List<string> getAgvWaitLoc()
|
{
|
return agvWaitLocList.Where(a => 1 == 1).Select(a => a.loc).ToList();
|
}
|
|
/// <summary>
|
/// 查询AGV等待位
|
/// </summary>
|
/// <param name="locCode"></param>
|
/// <returns></returns>
|
public static AgvWaitLoc getAgvWaitLoc(string locCode)
|
{
|
return agvWaitLocList.Where(a => a.loc == locCode).First();
|
}
|
|
/// <summary>
|
/// 获取AGV接驳位
|
/// </summary>
|
/// <param name="roadway"></param>
|
/// <param name="action"> 0.通用 1.入库 2.出库</param>
|
/// <returns></returns>
|
public static List<string> getAgvJBLocList( int roadway ,int action)
|
{
|
List<string> locCodes = new List<string>();
|
var agvJbLocList = agvJBLocList.Where(a => a.roadway.Contains(roadway) && a.action == action).Select(a => a.locCode).ToList();
|
if (agvJBLocList.Count > 0)
|
{
|
Dictionary<string, int> keyValuePairs = new Dictionary<string, int>();
|
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;
|
}
|
|
/// <summary>
|
/// 获取AGV接驳位
|
/// </summary>
|
/// <param name="locCode"></param>
|
/// <returns></returns>
|
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<int> 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; }
|
|
}
|
}
|
}
|