| | |
| | | using GZ.DB.Repository.OIDATABASE; |
| | | using GZ.DB.IRepository.OIDATABASE; |
| | | using GZ.DB.Entity.OIDATABASE; |
| | | using static System.Windows.Forms.VisualStyles.VisualStyleElement; |
| | | using NLog.Fluent; |
| | | 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.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> |
| | | /// 客æ·ç«¯ç¼å·ï¼å¦PDAãHCWMSçï¼ |
| | | /// </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> |
| | | /// 任塿¨¡å¼ï¼0-æ®éã1-åºåºã2-å
¥åºã3-ç§»åº ï¼ |
| | | /// </summary> |
| | | public string taskMode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å·¥ä½ä½ |
| | | /// </summary> |
| | | public string wbCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§æ¶ç¼å· |
| | | /// </summary> |
| | | public string podCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹åï¼180ï¼å·¦ã0ï¼å³ã90ï¼ä¸ã-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> |
| | | /// åæ¶è¯¥AGVæ£å¨æ§è¡çä»»å¡å |
| | | /// </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> |
| | | /// 客æ·ç«¯ç¼å·ï¼å¦PDAãHCWMSçï¼ |
| | | /// </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> |
| | | /// 任塿¨¡å¼ï¼0-æ®éã1-åºåºã2-å
¥åºã3-ç§»åº ï¼ |
| | | /// </summary> |
| | | public string taskMode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// å·¥ä½ä½ |
| | | /// </summary> |
| | | public string wbCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// è´§æ¶ç¼å· |
| | | /// </summary> |
| | | public string podCode { get; set; } |
| | | |
| | | /// <summary> |
| | | /// æ¹åï¼180ï¼å·¦ã0ï¼å³ã90ï¼ä¸ã-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> |
| | | /// åæ¶è¯¥AGVæ£å¨æ§è¡çä»»å¡å |
| | | /// </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); |
| | |
| | | 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($"è¾é线RGV空æä»»å¡ 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 = "åºåºé"; |
| | |
| | | locc.Update(fromLoc); |
| | | locc.Update(endLoc); |
| | | } |
| | | |
| | | LogHelper.Debug($"è¾é线RGV空æä»»å¡ 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() |
| | | { |
| | |
| | | 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, |
| | |
| | | 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 |
| | |
| | | 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", |
| | |
| | | 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(); |
| | |
| | | } |
| | | public static void ResMesTask() |
| | | { |
| | | AutoThread.InvokeMethod(AutoThread.Instance, "ResolveMesTask"); |
| | | ///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); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains("æ·ç¬æè")); |
| | | //if () |
| | | ///2 çç¼ååºã 没满çã |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | #endregion [èªå®ä¹ç±»][20250531152402452][ToWMSMES] |
| | | } |
| | | |
| | | |
| | | #endregion [èªå®ä¹ç±»][20250531152402452][ToWMSMES] |
| | | } |
| | | } |