From 31beeb3d23e658e5aa2bbb9f251b006095eef15a Mon Sep 17 00:00:00 2001 From: czw <selecti@yeah.net> Date: 星期一, 07 七月 2025 11:05:04 +0800 Subject: [PATCH] 1 --- 2025年6月12日/AuxAllWCS/Build/Project/代码/自定义类.cs | 1256 ++++++++++++++++++++++++++++------------------------------- 1 files changed, 595 insertions(+), 661 deletions(-) diff --git "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" index 0da9e5b..1795ae3 100644 --- "a/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" +++ "b/2025\345\271\2646\346\234\21012\346\227\245/AuxAllWCS/Build/Project/\344\273\243\347\240\201/\350\207\252\345\256\232\344\271\211\347\261\273.cs" @@ -30,481 +30,508 @@ using GZ.DB.Entity.OIDATABASE; namespace GZ.Projects.AuxAllWCS { -public class Settings -{ -#region [鑷畾涔夌被][20250323144531864][Settings] - public static bool FirstG {get;set;}=false; + public class Settings + { + #region [鑷畾涔夌被][20250323144531864][Settings] + public static bool FirstG { get; set; } = false; public static string HostToAgvServerUrl { get; set; } - + public static List<deviceInfo> deviceInfos { get; set; } = new List<deviceInfo>(); public static List<string> RunProcs { get; set; } = new List<string>(); public static string HKbaseUrl { get; set; } public static string MESbaseUrl { get; set; } public static string WMSbaseUrl { get; set; } public static readonly HttpHelper apiHelper = new HttpHelper(); - + public static string GetTimeStamp(DateTime? time = null) - { - TimeSpan ts = DateTime.UtcNow - (time ?? new DateTime(1970, 1, 1, 0, 0, 0, 0)); - return Convert.ToInt64(ts.TotalMilliseconds).ToString(); - } -#endregion [鑷畾涔夌被][20250323144531864][Settings] -} -public class LogHelper -{ -#region [鑷畾涔夌被][20250323145442478][LogHelper] - public static Dictionary<string, ILogger> loggers = new Dictionary<string, ILogger>(); - -public static void Debug(string message, string name = "") { - ILogger logger = null; - if (loggers.Keys.Contains(name)) { - logger = loggers[name]; - } - else { - logger = LogFactory.CreateLogger(name); - if (logger != null) { - loggers.Add(name, logger); + { + TimeSpan ts = DateTime.UtcNow - (time ?? new DateTime(1970, 1, 1, 0, 0, 0, 0)); + return Convert.ToInt64(ts.TotalMilliseconds).ToString(); } - else { - logger = LogFactory.CreateLogger("console"); + #endregion [鑷畾涔夌被][20250323144531864][Settings] + } + public class LogHelper + { + #region [鑷畾涔夌被][20250323145442478][LogHelper] + public static Dictionary<string, ILogger> loggers = new Dictionary<string, ILogger>(); + + public static void Debug(string message, string name = "") + { + ILogger logger = null; + if (loggers.Keys.Contains(name)) + { + logger = loggers[name]; + } + else + { + logger = LogFactory.CreateLogger(name); + if (logger != null) + { + loggers.Add(name, logger); + } + else + { + logger = LogFactory.CreateLogger("console"); + } + } + if (logger != null) + { + logger.Debug(message); + } } - } - if (logger != null) { - logger.Debug(message); - } -} -public static void Info(string message, string name = "") { - //logger.Info(message); - ILogger logger = null; - if (loggers.Keys.Contains(name)) { - logger = loggers[name]; - } - else { - logger = LogFactory.CreateLogger(name); - if (logger != null) { - loggers.Add(name, logger); + public static void Info(string message, string name = "") + { + //logger.Info(message); + ILogger logger = null; + if (loggers.Keys.Contains(name)) + { + logger = loggers[name]; + } + else + { + logger = LogFactory.CreateLogger(name); + if (logger != null) + { + loggers.Add(name, logger); + } + else + { + logger = LogFactory.CreateLogger("infoFile"); + } + } + if (logger != null) + { + logger.Info(message); + } } - else { - logger = LogFactory.CreateLogger("infoFile"); + + public static void Error(string message, Exception ex, string name = "") + { + //logger.Error(ex, message); + ILogger logger = null; + if (loggers.Keys.Contains(name)) + { + logger = loggers[name]; + } + else + { + logger = LogFactory.CreateLogger(name); + if (logger != null && !loggers.Keys.Contains(name)) + { + loggers.Add(name, logger); + } + else + { + logger = LogFactory.CreateLogger("errorFile"); + } + } + if (logger != null) + { + logger.Error($"{message}{ex.StackTrace}"); + } } + #endregion [鑷畾涔夌被][20250323145442478][LogHelper] } - if (logger != null) { - logger.Info(message); - } -} - -public static void Error(string message, Exception ex, string name = "") { - //logger.Error(ex, message); - ILogger logger = null; - if (loggers.Keys.Contains(name)) { - logger = loggers[name]; - } - else { - logger = LogFactory.CreateLogger(name); - if (logger != null) { - loggers.Add(name, logger); + public class LogFactory + { + #region [鑷畾涔夌被][20250323145505759][LogFactory] + /// <summary> + /// 閫氳繃閰嶇疆鏂囦欢閰嶇疆鏃ュ織 + /// </summary> + static LogFactory() + { + var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "鏉ゥ" }; + LogManager.Configuration = DefaultConfig(loggerNames); } - else { - logger = LogFactory.CreateLogger("errorFile"); + public static ILogger CreateLogger(string name) + { + var logger = LogManager.GetLogger(name); + return logger; } + + public static LoggingConfiguration DefaultConfig(List<string> loggerNames) + { + var config = new LoggingConfiguration(); + loggerNames.ForEach(a => + { + var target = new FileTarget(); + target.ArchiveAboveSize = 1024 * 1024 * 5;//姣忎釜鏂囦欢鏈�ぇ5M + target.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; + target.ArchiveFileName = @"${basedir}/Logs/" + a + "/{####}.txt"; + target.FileName = @"${basedir}/Logs/" + a + "/${shortdate}.txt";//褰撳墠鏂囦欢璺緞 + target.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; + + config.AddTarget(a, target); + config.AddRuleForOneLevel(LogLevel.Info, target, a); + }); + + + // 娣诲姞target-console + var consoleTarget = new ColoredConsoleTarget(); + consoleTarget.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; + + config.AddTarget("console", consoleTarget); + config.AddRule(LogLevel.Debug, LogLevel.Fatal, consoleTarget); + + //娣诲姞target-info + var infoFileTarget = new FileTarget(); + infoFileTarget.ArchiveAboveSize = 1024 * 1024 * 5;//姣忎釜鏂囦欢鏈�ぇ5M + infoFileTarget.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; + infoFileTarget.ArchiveFileName = @"${basedir}/Logs/Info/{####}.txt"; + infoFileTarget.FileName = @"${basedir}/Logs/Info/${shortdate}.txt";//褰撳墠鏂囦欢璺緞 + infoFileTarget.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; + + config.AddTarget("infoFile", infoFileTarget); + config.AddRuleForOneLevel(LogLevel.Info, infoFileTarget);//INFO鍐欏湪Info鏂囦欢 + + //娣诲姞target-err + var errorFileTarget = new FileTarget(); + errorFileTarget.ArchiveAboveSize = 1024 * 1024 * 5;//姣忎釜鏂囦欢鏈�ぇ5M + errorFileTarget.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; + errorFileTarget.ArchiveFileName = @"${basedir}/Logs/Error/{####}.txt"; + errorFileTarget.FileName = @"${basedir}/Logs/Error/${shortdate}.txt"; + errorFileTarget.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; + + config.AddTarget("errorFile", errorFileTarget); + config.AddRule(LogLevel.Error, LogLevel.Fatal, errorFileTarget); + + + return config; + } + + #endregion [鑷畾涔夌被][20250323145505759][LogFactory] } - if (logger != null) { - logger.Error($"{message}{ex.StackTrace}"); + public class HaiKangOrderInfo + { + #region [鑷畾涔夌被][20250324165635320][HaiKangOrderInfo] + + /// <summary> + /// 璇锋眰缂栧彿锛堢紪鍙峰敮涓�級 + /// </summary> + public string reqCode { get; set; } + + /// <summary> + /// 璇锋眰鏃堕棿 + /// </summary> + public string reqTime { get; set; } + + /// <summary> + /// 瀹㈡埛绔紪鍙凤紙濡侾DA銆丠CWMS绛夛級 + /// </summary> + public string clientCode { get; set; } + + /// <summary> + /// 浠ょ墝鍙�+ /// </summary> + public string tokenCode { get; set; } + + /// <summary> + /// 浠诲姟绫诲瀷 + /// </summary> + public string taskTyp { get; set; } + + /// <summary> + /// 瀹瑰櫒绫诲瀷锛堝弶杞﹂」鐩繀浼狅級 + /// 锛堝弶杞�CTU 涓撶敤锛�+ /// </summary> + public string ctnrTyp { get; set; } + + /// <summary> + /// 瀹瑰櫒缂栧彿锛堝弶杞�CTU 涓撶敤锛�+ /// </summary> + public string ctnrCode { get; set; } + + /// <summary> + /// 浠诲姟妯″紡锛�-鏅�銆�-鍑哄簱銆�-鍏ュ簱銆�-绉诲簱 锛�+ /// </summary> + public string taskMode { get; set; } + + /// <summary> + /// 宸ヤ綔浣�+ /// </summary> + public string wbCode { get; set; } + + /// <summary> + /// 璐ф灦缂栧彿 + /// </summary> + public string podCode { get; set; } + + /// <summary> + /// 鏂瑰悜锛�80锛氬乏銆�锛氬彸銆�0锛氫笂銆�90锛氫笅 锛�+ /// </summary> + public string podDir { get; set; } + + /// <summary> + /// 璐ф灦绫诲瀷 + /// </summary> + public string podTyp { get; set; } + + /// <summary> + /// 鐗╂枡鎵规鎴栬揣鏋朵笂鐨勭墿鏂欏敮涓�紪鐮�+ /// </summary> + public string materialLot { get; set; } + + /// <summary> + /// 浼樺厛绾�+ /// </summary> + public string priority { get; set; } + + /// <summary> + /// 缁勭紪鍙�+ /// </summary> + public string groupId { get; set; } + + /// <summary> + /// 鑷畾涔夊瓧娈�JSON 鏍煎紡 + /// </summary> + public string data { get; set; } + + /// <summary> + /// 鍙栨秷绫诲瀷 + /// </summary> + public string forceCancel { get; set; } + + /// <summary> + /// 鍥炲簱鍖哄煙缂栫爜 + /// </summary> + public string matterArea { get; set; } + + /// <summary> + /// 鍙栨秷璇GV姝e湪鎵ц鐨勪换鍔″崟 + /// </summary> + public string agvCode { get; set; } + + /// <summary> + /// 浠诲姟鍗曠紪鍙�+ /// </summary> + public string taskCode { get; set; } + + /// <summary> + /// 鍦扮爜 X 鍧愭爣 + /// </summary> + public string cooX { get; set; } + + /// <summary> + /// 鍦扮爜 Y 鍧愭爣 + /// </summary> + public string cooY { get; set; } + + /// <summary> + /// 褰撳墠浣嶇疆缂栧彿 + /// </summary> + public string currentPositionCode { get; set; } + + /// <summary> + /// 鍦板浘缂栧彿 + /// </summary> + public string mapCode { get; set; } + + /// <summary> + /// 鍦扮爜缂栧彿 + /// </summary> + public string mapDataCode { get; set; } + + /// <summary> + /// 浠撲綅缂栧彿 + /// </summary> + public string stgBinCode { get; set; } + + /// <summary> + /// 鏂规硶鍚�+ /// </summary> + public string method { get; set; } + + /// <summary> + /// AGV 缂栧彿 + /// </summary> + public string robotCode { get; set; } + + + /// <summary> + /// 瀹瑰櫒绫诲瀷 + /// </summary> + public string ctnrType { get; set; } + + + /// <summary> + /// 宸烽亾缂栧彿 + /// </summary> + public string roadWayCode { get; set; } + + /// <summary> + /// 宸烽亾鍐呴『搴忓彿 + /// </summary> + public string seq { get; set; } + + /// <summary> + /// 璁惧缂栧彿 + /// </summary> + public string eqpCode { get; set; } + + /// <summary> + /// 浠诲姟璺緞闆嗗悎 + /// </summary> + public List<positionCodePath> positionCodePath { get; set; } + + #endregion [鑷畾涔夌被][20250324165635320][HaiKangOrderInfo] } -} -#endregion [鑷畾涔夌被][20250323145442478][LogHelper] -} -public class LogFactory -{ -#region [鑷畾涔夌被][20250323145505759][LogFactory] - /// <summary> - /// 閫氳繃閰嶇疆鏂囦欢閰嶇疆鏃ュ織 - /// </summary> - static LogFactory() { - var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "鏉ゥ" }; - LogManager.Configuration = DefaultConfig(loggerNames); - } - public static ILogger CreateLogger(string name) { - var logger = LogManager.GetLogger(name); - return logger; - } + public class positionCodePath + { + #region [鑷畾涔夌被][20250324165724429][positionCodePath] - public static LoggingConfiguration DefaultConfig(List<string> loggerNames) { - var config = new LoggingConfiguration(); - loggerNames.ForEach(a => { - var target = new FileTarget(); - target.ArchiveAboveSize = 1024 * 1024 * 5;//姣忎釜鏂囦欢鏈�ぇ5M - target.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; - target.ArchiveFileName = @"${basedir}/Logs/" + a + "/{####}.txt"; - target.FileName = @"${basedir}/Logs/" + a + "/${shortdate}.txt";//褰撳墠鏂囦欢璺緞 - target.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; + /// <summary> + /// 浠诲姟缂栧彿 + /// </summary> + public string positionCode { get; set; } - config.AddTarget(a, target); - config.AddRuleForOneLevel(LogLevel.Info, target, a); - }); - - - // 娣诲姞target-console - var consoleTarget = new ColoredConsoleTarget(); - consoleTarget.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; - - config.AddTarget("console", consoleTarget); - config.AddRule(LogLevel.Debug, LogLevel.Fatal, consoleTarget); - - //娣诲姞target-info - var infoFileTarget = new FileTarget(); - infoFileTarget.ArchiveAboveSize = 1024 * 1024 * 5;//姣忎釜鏂囦欢鏈�ぇ5M - infoFileTarget.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; - infoFileTarget.ArchiveFileName = @"${basedir}/Logs/Info/{####}.txt"; - infoFileTarget.FileName = @"${basedir}/Logs/Info/${shortdate}.txt";//褰撳墠鏂囦欢璺緞 - infoFileTarget.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; - - config.AddTarget("infoFile", infoFileTarget); - config.AddRuleForOneLevel(LogLevel.Info, infoFileTarget);//INFO鍐欏湪Info鏂囦欢 - - //娣诲姞target-err - var errorFileTarget = new FileTarget(); - errorFileTarget.ArchiveAboveSize = 1024 * 1024 * 5;//姣忎釜鏂囦欢鏈�ぇ5M - errorFileTarget.ArchiveNumbering = ArchiveNumberingMode.DateAndSequence; - errorFileTarget.ArchiveFileName = @"${basedir}/Logs/Error/{####}.txt"; - errorFileTarget.FileName = @"${basedir}/Logs/Error/${shortdate}.txt"; - errorFileTarget.Layout = @"${longdate} | ${level:uppercase=false:padding=-5} | ${message} ${onexception:${exception:format=tostring} ${newline} ${stacktrace} ${newline}"; - - config.AddTarget("errorFile", errorFileTarget); - config.AddRule(LogLevel.Error, LogLevel.Fatal, errorFileTarget); - - - return config; - } - -#endregion [鑷畾涔夌被][20250323145505759][LogFactory] -} -public class HaiKangOrderInfo -{ -#region [鑷畾涔夌被][20250324165635320][HaiKangOrderInfo] - - /// <summary> - /// 璇锋眰缂栧彿锛堢紪鍙峰敮涓�級 - /// </summary> - public string reqCode { get; set; } - - /// <summary> - /// 璇锋眰鏃堕棿 - /// </summary> - public string reqTime { get; set; } - - /// <summary> - /// 瀹㈡埛绔紪鍙凤紙濡侾DA銆丠CWMS绛夛級 - /// </summary> - public string clientCode { get; set; } - - /// <summary> - /// 浠ょ墝鍙�- /// </summary> - public string tokenCode { get; set; } - - /// <summary> - /// 浠诲姟绫诲瀷 - /// </summary> - public string taskTyp { get; set; } - - /// <summary> - /// 瀹瑰櫒绫诲瀷锛堝弶杞﹂」鐩繀浼狅級 - /// 锛堝弶杞�CTU 涓撶敤锛�- /// </summary> - public string ctnrTyp { get; set; } - - /// <summary> - /// 瀹瑰櫒缂栧彿锛堝弶杞�CTU 涓撶敤锛�- /// </summary> - public string ctnrCode { get; set; } - - /// <summary> - /// 浠诲姟妯″紡锛�-鏅�銆�-鍑哄簱銆�-鍏ュ簱銆�-绉诲簱 锛�- /// </summary> - public string taskMode { get; set; } - - /// <summary> - /// 宸ヤ綔浣�- /// </summary> - public string wbCode { get; set; } - - /// <summary> - /// 璐ф灦缂栧彿 - /// </summary> - public string podCode { get; set; } - - /// <summary> - /// 鏂瑰悜锛�80锛氬乏銆�锛氬彸銆�0锛氫笂銆�90锛氫笅 锛�- /// </summary> - public string podDir { get; set; } - - /// <summary> - /// 璐ф灦绫诲瀷 - /// </summary> - public string podTyp { get; set; } - - /// <summary> - /// 鐗╂枡鎵规鎴栬揣鏋朵笂鐨勭墿鏂欏敮涓�紪鐮�- /// </summary> - public string materialLot { get; set; } - - /// <summary> - /// 浼樺厛绾�- /// </summary> - public string priority { get; set; } - - /// <summary> - /// 缁勭紪鍙�- /// </summary> - public string groupId { get; set; } - - /// <summary> - /// 鑷畾涔夊瓧娈�JSON 鏍煎紡 - /// </summary> - public string data { get; set; } - - /// <summary> - /// 鍙栨秷绫诲瀷 - /// </summary> - public string forceCancel { get; set; } - - /// <summary> - /// 鍥炲簱鍖哄煙缂栫爜 - /// </summary> - public string matterArea { get; set; } - - /// <summary> - /// 鍙栨秷璇GV姝e湪鎵ц鐨勪换鍔″崟 - /// </summary> - public string agvCode { get; set; } - - /// <summary> - /// 浠诲姟鍗曠紪鍙�- /// </summary> - public string taskCode { get; set; } - - /// <summary> - /// 鍦扮爜 X 鍧愭爣 - /// </summary> - public string cooX { get; set; } - - /// <summary> - /// 鍦扮爜 Y 鍧愭爣 - /// </summary> - public string cooY { get; set; } - - /// <summary> - /// 褰撳墠浣嶇疆缂栧彿 - /// </summary> - public string currentPositionCode { get; set; } - - /// <summary> - /// 鍦板浘缂栧彿 - /// </summary> - public string mapCode { get; set; } - - /// <summary> - /// 鍦扮爜缂栧彿 - /// </summary> - public string mapDataCode { get; set; } - - /// <summary> - /// 浠撲綅缂栧彿 - /// </summary> - public string stgBinCode { get; set; } - - /// <summary> - /// 鏂规硶鍚�- /// </summary> - public string method { get; set; } - - /// <summary> - /// AGV 缂栧彿 - /// </summary> - public string robotCode { get; set; } - - - /// <summary> - /// 瀹瑰櫒绫诲瀷 - /// </summary> - public string ctnrType { get; set; } - - - /// <summary> - /// 宸烽亾缂栧彿 - /// </summary> - public string roadWayCode { get; set; } - - /// <summary> - /// 宸烽亾鍐呴『搴忓彿 - /// </summary> - public string seq { get; set; } - - /// <summary> - /// 璁惧缂栧彿 - /// </summary> - public string eqpCode { get; set; } - - /// <summary> - /// 浠诲姟璺緞闆嗗悎 - /// </summary> - public List<positionCodePath> positionCodePath { get; set; } - -#endregion [鑷畾涔夌被][20250324165635320][HaiKangOrderInfo] -} -public class positionCodePath -{ -#region [鑷畾涔夌被][20250324165724429][positionCodePath] - - /// <summary> - /// 浠诲姟缂栧彿 - /// </summary> - public string positionCode { get; set; } - - /// <summary> - /// 绫诲瀷 - /// </summary> - public string Type { get; set; } -#endregion [鑷畾涔夌被][20250324165724429][positionCodePath] -} -public class HkReturnResult -{ -#region [鑷畾涔夌被][20250324171912560][HkReturnResult] - - /// <summary> - /// 杩斿洖鐘舵�鐮�- /// </summary> - public int code { get; set; } - /// <summary> - /// 杩斿洖璇存槑 - /// </summary> - public string message { get; set; } - /// <summary> - /// 浠诲姟鍙�- /// </summary> - public string reqCode { get; set; } -#endregion [鑷畾涔夌被][20250324171912560][HkReturnResult] -} -public class deviceInfo -{ -#region [鑷畾涔夌被][20250325083629462][deviceInfo] - - - public string address { get; set; } - public string deviceName { get; set; } - public string FuLeLineNo { get; set; } - public string[] deviceNo { get; set; } - - /// <summary> - /// 瀵瑰簲绾夸綋 -浼樺厛绾�- /// </summary> - public string[] areaPriy { get; set; } - - public string[] location { get; set; } - /// <summary> - /// 1 缁村笇灏旀満姊拌噦 - /// 2 鎹风灛鏈烘鑷傝噦 - /// 3 鎹风灛杈撻�绾�- /// </summary> - public int deviceType { get; set; } - public int enable { get; set; } - - /// <summary> - /// 浠诲姟鏉冮噸銆� - /// </summary> - public int taskPri { get; set; } = 60; -#endregion [鑷畾涔夌被][20250325083629462][deviceInfo] -} -public class HttpHelper -{ -#region [鑷畾涔夌被][20250325095622918][HttpHelper] - public string Post(string url, string postData, string contentType = "application/json", string sessionId = "") { - LogHelper.Info(url+"+"+postData); - WebRequest request = WebRequest.Create(url); - request.Method = "POST"; - byte[] byteArray = Encoding.UTF8.GetBytes(postData); - request.ContentType = contentType; - request.ContentLength = byteArray.Length; - request.Timeout = 15000; - if (sessionId != "") { - request.Headers.Set("ASP.NET_SessionId", sessionId); + /// <summary> + /// 绫诲瀷 + /// </summary> + public string Type { get; set; } + #endregion [鑷畾涔夌被][20250324165724429][positionCodePath] } - + public class HkReturnResult + { + #region [鑷畾涔夌被][20250324171912560][HkReturnResult] + + /// <summary> + /// 杩斿洖鐘舵�鐮�+ /// </summary> + public int code { get; set; } + /// <summary> + /// 杩斿洖璇存槑 + /// </summary> + public string message { get; set; } + /// <summary> + /// 浠诲姟鍙�+ /// </summary> + public string reqCode { get; set; } + #endregion [鑷畾涔夌被][20250324171912560][HkReturnResult] + } + public class deviceInfo + { + #region [鑷畾涔夌被][20250325083629462][deviceInfo] + + + public string address { get; set; } + public string deviceName { get; set; } + public string FuLeLineNo { get; set; } + public string[] deviceNo { get; set; } + + /// <summary> + /// 瀵瑰簲绾夸綋 -浼樺厛绾�+ /// </summary> + public string[] areaPriy { get; set; } + + public string[] location { get; set; } + /// <summary> + /// 1 缁村笇灏旀満姊拌噦 + /// 2 鎹风灛鏈烘鑷傝噦 + /// 3 鎹风灛杈撻�绾�+ /// </summary> + public int deviceType { get; set; } + public int enable { get; set; } + + /// <summary> + /// 浠诲姟鏉冮噸銆� + /// </summary> + public int taskPri { get; set; } = 60; + #endregion [鑷畾涔夌被][20250325083629462][deviceInfo] + } + public class HttpHelper + { + #region [鑷畾涔夌被][20250325095622918][HttpHelper] + public string Post(string url, string postData, string contentType = "application/json", string sessionId = "") + { + LogHelper.Info(url + "+" + postData); + WebRequest request = WebRequest.Create(url); + request.Method = "POST"; + byte[] byteArray = Encoding.UTF8.GetBytes(postData); + request.ContentType = contentType; + request.ContentLength = byteArray.Length; + request.Timeout = 15000; + if (sessionId != "") + { + request.Headers.Set("ASP.NET_SessionId", sessionId); + } + //Authorization: UApGP6WW9FsBUqAlzxRGOw == request.Headers.Set("Authorization", "UApGP6WW9FsBUqAlzxRGOw=="); - StreamReader reader = null; - Stream stream = null; - WebResponse rsp = null; - try { - stream = request.GetRequestStream(); - stream.Write(byteArray, 0, byteArray.Length); - stream.Close(); - rsp = request.GetResponse(); - stream = rsp.GetResponseStream(); - reader = new StreamReader(stream); - string rrend = reader.ReadToEnd(); - LogHelper.Info($"{url} response={rrend}"); - return rrend; + StreamReader reader = null; + Stream stream = null; + WebResponse rsp = null; + try + { + stream = request.GetRequestStream(); + stream.Write(byteArray, 0, byteArray.Length); + stream.Close(); + rsp = request.GetResponse(); + stream = rsp.GetResponseStream(); + reader = new StreamReader(stream); + string rrend = reader.ReadToEnd(); + LogHelper.Info($"{url} response={rrend}"); + return rrend; + } + catch (Exception ex) + { + LogHelper.Info($"{url} err={ex.Message}"); + return ""; + } + finally + { + // 閲婃斁璧勬簮 + if (reader != null) reader.Close(); + if (stream != null) stream.Close(); + if (rsp != null) rsp.Close(); + } + + } + #endregion [鑷畾涔夌被][20250325095622918][HttpHelper] } - catch (Exception ex) { - LogHelper.Info($"{url} err={ex.Message}"); - return ""; - } - finally { - // 閲婃斁璧勬簮 - if (reader != null) reader.Close(); - if (stream != null) stream.Close(); - if (rsp != null) rsp.Close(); - } - -} -#endregion [鑷畾涔夌被][20250325095622918][HttpHelper] -} -public class HKResult -{ -#region [鑷畾涔夌被][20250325095900399][HKResult] - /// <summary> -/// 杩斿洖缂栫爜 -/// </summary> -public string code { get; set; } - -/// <summary> -/// 杩斿洖娑堟伅 -/// </summary> -public string message { get; set; } - -/// <summary> -/// 璇锋眰缂栧彿 -/// </summary> -public string reqCode { get; set; } - -/// <summary> -/// 鑷畾涔夎繑鍥烇紙杩斿洖浠诲姟鍗曞彿锛�-/// </summary> -public string data { get; set; } -#endregion [鑷畾涔夌被][20250325095900399][HKResult] -} -public class SYSHelper -{ -#region [鑷畾涔夌被][20250325131633664][SYSHelper] - private static object locker = new object(); -internal static int GetSerialNumber(string snType, string prefix, string Vend = "0") -{ - if (Vend == "1") - Vend = DateTime.Now.ToString("yyMMdd"); - int result = 0; - lock (locker) + public class HKResult { - SYSRepository sysservice = new SYSRepository(); - var sId = sysservice.FindEntity(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix + Vend); + #region [鑷畾涔夌被][20250325095900399][HKResult] + /// <summary> + /// 杩斿洖缂栫爜 + /// </summary> + public string code { get; set; } - if (sId != null) + /// <summary> + /// 杩斿洖娑堟伅 + /// </summary> + public string message { get; set; } + + /// <summary> + /// 璇锋眰缂栧彿 + /// </summary> + public string reqCode { get; set; } + + /// <summary> + /// 鑷畾涔夎繑鍥烇紙杩斿洖浠诲姟鍗曞彿锛�+ /// </summary> + public string data { get; set; } + #endregion [鑷畾涔夌被][20250325095900399][HKResult] + } + public class SYSHelper + { + #region [鑷畾涔夌被][20250325131633664][SYSHelper] + private static object locker = new object(); + internal static int GetSerialNumber(string snType, string prefix, string Vend = "0") { - + if (Vend == "1") + Vend = DateTime.Now.ToString("yyMMdd"); + int result = 0; + lock (locker) + { + SYSRepository sysservice = new SYSRepository(); + var sId = sysservice.FindEntity(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix + Vend); + + if (sId != null) + { + sId.CN_N_MAX++; sId.CN_T_LAST = DateTime.Now; //sysservice.Update(sId); @@ -513,71 +540,75 @@ sysservice.dbcontext.Entry(sId).Property(x => x.CN_N_MAX).CurrentValue = sId.CN_N_MAX; sysservice.dbcontext.Entry(sId).Property(x => x.CN_N_MAX).IsModified = true; - sysservice.dbcontext.Entry(sId).Property(x=>x.CN_T_LAST).CurrentValue = sId.CN_T_LAST; + sysservice.dbcontext.Entry(sId).Property(x => x.CN_T_LAST).CurrentValue = sId.CN_T_LAST; - sysservice.dbcontext.Entry(sId).Property(x=>x.CN_T_LAST).IsModified = true; - + sysservice.dbcontext.Entry(sId).Property(x => x.CN_T_LAST).IsModified = true; + sysservice.dbcontext.SaveChanges(); result = sId.CN_N_MAX; + } + else + { + sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix + Vend, CN_N_MAX = 0, CN_S_APP_TYPE = "WCS" }; + sysservice.Insert(sId); + } + } + return result; } - else - { - sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix + Vend, CN_N_MAX = 0,CN_S_APP_TYPE="WCS" }; - sysservice.Insert(sId); - } + #endregion [鑷畾涔夌被][20250325131633664][SYSHelper] } - return result; -} -#endregion [鑷畾涔夌被][20250325131633664][SYSHelper] -} -public class TaskProcess -{ -#region [鑷畾涔夌被][20250325152141671][TaskProcess] - internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", int cntrCount = 1, int startLayer = 1, int endLayer = 1) -{ - - LogHelper.Debug($"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to}寮�鍒涘缓>"); - var cntrInfo = string.Join(",", cntrs); - ILocRepository locc = new LocRepository(); - var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); - var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to); - + public class TaskProcess + { + #region [鑷畾涔夌被][20250325152141671][TaskProcess] + internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", int cntrCount = 1, int startLayer = 1, int endLayer = 1) + { + + LogHelper.Info($"鍒涘缓浠诲姟 from:{from}>to {to}寮�鍒涘缓>"); + var cntrInfo = string.Join(",", cntrs); + ILocRepository locc = new LocRepository(); + var fromLoc = locc.FindEntity(x => x.S_LOC_CODE == from); + var endLoc = locc.FindEntity(x => x.S_LOC_CODE == to); + var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null; var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null; - string t = "F01"; - if (s && !e) t = "A002"; - if (!s && e) t = "A003"; - if (s && e) t = "A004"; - try - { + string t = ""; + if (workMode == "AGV") + { + t = "F01"; + if (s && !e) t = "A002"; + if (!s && e) t = "A003"; + if (s && e) t = "A004"; + } + try + { - TaskEntity wmsTask = new TaskEntity() - { - S_ID = Guid.NewGuid().ToString(), - S_STATE = "缂栬緫", - T_CREATE = DateTime.Now, - T_MODIFY = DateTime.Now, + TaskEntity wmsTask = new TaskEntity() + { + S_ID = Guid.NewGuid().ToString(), + S_STATE = "缂栬緫", + T_CREATE = DateTime.Now, + T_MODIFY = DateTime.Now, - S_TASK_NO = GenerateTaskNo(), - S_START_LAREA = fromLoc.S_AREA_CODE, - S_END_LAREA = endLoc.S_AREA_CODE, - S_DEPART_NAME = "", - S_START_LOC = from, - S_END_LOC = to, - S_TYPE = taskType, - S_SRC_NO = no,// - N_PRIORITY = pri, - S_WORK_MODE = workMode, - S_B_STATE = "鏈墽琛�, - S_CNTRS = cntrInfo, - N_START_LAYER = startLayer, - N_END_LAYER = endLayer, - N_CNTR_COUNT = cntrCount, - S_INDEX=t, - }; - ITaskRepository taskserice = new TaskRepository(); - taskserice.Insert(wmsTask); - + S_TASK_NO = GenerateTaskNo(), + S_START_LAREA = fromLoc.S_AREA_CODE, + S_END_LAREA = endLoc.S_AREA_CODE, + S_DEPART_NAME = "", + S_START_LOC = from, + S_END_LOC = to, + S_TYPE = taskType, + S_SRC_NO = no,// + N_PRIORITY = pri, + S_WORK_MODE = workMode, + S_B_STATE = "鏈墽琛�, + S_CNTRS = cntrInfo, + N_START_LAYER = startLayer, + N_END_LAYER = endLayer, + N_CNTR_COUNT = cntrCount, + S_INDEX = t, + }; + ITaskRepository taskserice = new TaskRepository(); + taskserice.Insert(wmsTask); + if (workMode == "AGV") { fromLoc.S_LOCK_STATE = "鍑哄簱閿�; @@ -585,19 +616,19 @@ locc.Update(fromLoc); locc.Update(endLoc); } - - LogHelper.Debug($"杈撻�绾縍GV绌烘墭浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛"); + + LogHelper.Info($"鍒涘缓浠诲姟 from:{from}>to {to} 鍒涘缓{wmsTask.S_TASK_NO}鎴愬姛"); return true; - } - catch (Exception ex) - { - LogHelper.Error("CreateTask" + ex.Message, ex); - return false; - } -} + } + catch (Exception ex) + { + LogHelper.Error("CreateTask" + ex.Message, ex); + return false; + } + } - internal static void AddActionRecord(string no, string state, string forkliftNo, string extData,string strloc,string endloc) + internal static void AddActionRecord(string no, string state, string forkliftNo, string extData, string strloc, string endloc) { var action = new TaskActEntity() { @@ -605,8 +636,8 @@ S_STATE = "缂栬緫", T_CREATE = DateTime.Now, T_MODIFY = DateTime.Now, - S_START_LOC= strloc, - S_END_LOC= endloc, + S_START_LOC = strloc, + S_END_LOC = endloc, S_ACTION_CODE = state, S_TASK_NO = no, S_EQ_NO = forkliftNo, @@ -624,18 +655,18 @@ var date = DateTime.Now.ToString("yyMMdd"); return $"TN{date}{id.ToString().PadLeft(4, '0')}"; } -#endregion [鑷畾涔夌被][20250325152141671][TaskProcess] -} -public class Utils -{ -#region [鑷畾涔夌被][20250417094750211][Utils] - -#endregion [鑷畾涔夌被][20250417094750211][Utils] -} -public class ToWMSMES -{ -#region [鑷畾涔夌被][20250531152402452][ToWMSMES] - //2 wms mes + #endregion [鑷畾涔夌被][20250325152141671][TaskProcess] + } + public class Utils + { + #region [鑷畾涔夌被][20250417094750211][Utils] + + #endregion [鑷畾涔夌被][20250417094750211][Utils] + } + public class ToWMSMES + { + #region [鑷畾涔夌被][20250531152402452][ToWMSMES] + //2 wms mes public class CreateTask @@ -645,6 +676,7 @@ public string endBit { get; set; } public string reqCode { get; set; } public string cntrCode { get; set; } + public string materialCode { get; set; } internal static ReturnMsg CreatemesTask(CreateTask model) { @@ -666,12 +698,13 @@ S_DEPART_NAME = "", S_START_LOC = model.startBit, S_END_LOC = model.endBit, - S_TYPE = model.reqCode, + S_TYPE = model.taskType, S_SRC_NO = "",// N_PRIORITY = -88, S_WORK_MODE = "agv", S_B_STATE = "MES", S_CNTRS = model.cntrCode, + S_INDEX = model.materialCode,//mes浠诲姟涓�S_INDEX鏄�鐗╂枡缂栫爜銆�agv浠诲姟涓槸 agv浠诲姟绫诲瀷 N_START_LAYER = 1, N_END_LAYER = 1, N_CNTR_COUNT = 1 @@ -685,14 +718,14 @@ return new ReturnMsg { resultCode = -1, resultMsg = "浠诲姟閲嶅涓嬪彂銆� }; } } - - public class ReturnMsg - { - public int resultCode { get; set; } - public string resultMsg { get; set; } - } - - + + public class ReturnMsg + { + public int resultCode { get; set; } + public string resultMsg { get; set; } + } + + internal static ReturnMsg CreatePointTask(CreateTask model) { ITaskRepository taskservice = new TaskRepository(); @@ -732,139 +765,40 @@ } } } - public static void ResMesTask() + public static void ResMesTask(Tag tag) { ///1. - TaskRepository taskservice = new TaskRepository(); - var tasks = taskservice.FindList(x =>( x.S_B_STATE == "MES"|| x.S_B_STATE == "People") && x.N_PRIORITY == -88); - var VERXs = Settings.deviceInfos?.FindAll(x => x.deviceType==2); - //if (VERXs.Any()) - foreach (var task in tasks) - { - var sx = VERXs?.Find(x => x.location.Contains(task.S_END_LOC)); - if (sx == null) - { - //鐩存帴鐢熸垚瀵瑰簲浠诲姟銆�- var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_START_LOC, task.S_END_LOC, task.S_TYPE, 6, task.S_CNTRS.Split(',').ToList()); - if (res) - { - //task.N_PRIORITY = 0; - taskservice.dbcontext.Set<TaskEntity>().Attach(task); - taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).CurrentValue = 0; - taskservice.dbcontext.Entry(task).Property(x => x.N_PRIORITY).IsModified = true; - taskservice.dbcontext.SaveChanges(); - } - } - else - { - var sindex = sx.location.ToList().IndexOf(task.S_END_LOC); - LocRepository locRepository = new LocRepository(); - //鐢熸垚璺宠穬浠诲姟銆� -- 鎵樼洏璐т綅琛ㄣ� - var t1s = taskservice.FindList(x => x.S_SRC_NO == task.S_TASK_NO); - if (t1s.Any()) - { - var t1 = t1s.OrderBy(x => x.T_CREATE).LastOrDefault(); - if (t1.S_END_LOC == task.S_END_LOC) - { - task.N_PRIORITY = 0; - task.S_B_STATE = "MES_瀹屾垚"; - taskservice.Update(task); - continue; - } - if (t1.S_B_STATE == "瀹屾垚") - { - //1.缁堢偣鏄惁鏈夋墭鐩樸� 渚濇嵁鏄粓鐐圭殑浠诲姟鏄�浣滀负缁堢偣锛岃繕鏄捣鐐广� - //var ec = taskservice.FindList(x => (x.S_START_LOC == task.S_START_LOC || x.S_END_LOC == task.S_END_LOC) /*&& DateTime.Now.Subtract(x.T_CREATE).TotalHours < 5*/).OrderByDescending(x => x.T_CREATE).FirstOrDefault();//($"select top 1 * from TN_TASK WHERE S_START_LOC='{task.S_END_LOC}' OR S_END_LOC='{task.S_END_LOC}' ORDER BY T_CREATE DESC"); - //var ec = taskservice.FindList(x => x.S_START_LOC == task.S_START_LOC && x.S_END_LOC == task.S_START_LOC, new Common.Data.Pagination - // { - // page = 1, - // sidx = "T_CREATE", - // sord = "desc", - // rows = 1 - // }).FirstOrDefault(); - TaskEntity ec = null; - var dev = Conn.榛樿Redis.GetValue(sx.deviceName + "." + (sindex == 0 ? "D1224" : "D1225")); - if (dev?.Trim() == "1") - ec = taskservice.FindList(x =>x.S_END_LOC == task.S_END_LOC&&x.S_B_STATE=="瀹屾垚", new Common.Data.Pagination - { - page = 1, - sidx = "T_CREATE", - sord = "desc", - rows = 1 - }).FirstOrDefault(); - if (t1.S_START_LOC == task.S_START_LOC && ec != null)//!= task.S_END_LOC) - { - //绗簩娈点� - LocEntity endLoc = null; - var di = sx; - if (di != null) - { - foreach (var ssloc in di.deviceNo) - { - var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc); - if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "鏃�) - { - endLoc = endloc; - break; - } - } - if (endLoc != null) - { - var res = TaskProcess.CreateTask(task.S_TASK_NO, task.S_END_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "涓嬬┖", 7, ec.S_CNTRS.Split(',').ToList()); - if (res) - { - task.N_PRIORITY = 0; taskservice.Update(task); - } - } - } - } - else - { - var res = TaskProcess.CreateTask(task.S_TASK_NO, t1.S_END_LOC, task.S_END_LOC, task.S_TYPE + "琛ユ弧", 6, task.S_CNTRS.Split(',').ToList()); - if (res) - { - task.N_PRIORITY = 0; taskservice.Update(task); - } - } - } - } - else - { - //鐢熸垚绗竴娈点� - LocEntity endLoc = null; - var di = sx; - if (di != null) - { - foreach (var ssloc in di.deviceNo) - { - var endloc = locRepository.FindEntity(x => x.S_LOC_CODE == ssloc); - if (endloc != null && endloc.N_CURRENT_NUM == 0 && endloc.S_LOCK_STATE == "鏃�) - { - endLoc = endloc; - break; - } - } - if (endLoc != null) - { - var res = TaskProcess.CreateTask("", task.S_START_LOC, endLoc.S_LOC_CODE, task.S_TYPE + "婊¤浆", 8, task.S_CNTRS.Split(',').ToList()); - if (res) - { - task.N_PRIORITY = 0; taskservice.Update(task); - } - } - } - } - } - } + AutoThread.InvokeMethod(AutoThread.Instance, "ResolveMesTask", new object[] { tag }); //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains("鎹风灛鎶撹噦")); //if () ///2 鐪嬬紦瀛樺尯銆�娌℃弧鐨勩� } - - -#endregion [鑷畾涔夌被][20250531152402452][ToWMSMES] -} + + + #endregion [鑷畾涔夌被][20250531152402452][ToWMSMES] + } + public class ConsoleInterceptor : TextWriter + { + #region [鑷畾涔夌被][20250702112833751][ConsoleInterceptor] + private readonly TextWriter _originalOut; + + public ConsoleInterceptor() + { + _originalOut = Console.Out; + } + + public override Encoding Encoding => Encoding.UTF8; + + public override void WriteLine(string value = "") + { + string values = (string)AutoThread.InvokeMethod(AutoThread.Instance, "WriteLine", new object[] { value }); + //// 鍙互閫夋嫨缁х画杈撳嚭鍒板師鎺у埗鍙�+ if (!string.IsNullOrEmpty(values)) + _originalOut.WriteLine(values); + } + #endregion [鑷畾涔夌被][20250702112833751][ConsoleInterceptor] + } } \ No newline at end of file -- Gitblit v1.9.1