1
czw
5 天以前 b6d4961bb8f5d07ffeba341306b654bd71e2962a
2025Äê6ÔÂ12ÈÕ/AuxAllWCS/Build/Project/´úÂë/×Ô¶¨ÒåÀà.cs
@@ -28,8 +28,6 @@
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
@@ -121,7 +119,7 @@
            else
            {
                logger = LogFactory.CreateLogger(name);
                if (logger != null)
                if (logger != null && !loggers.Keys.Contains(name))
                {
                    loggers.Add(name, logger);
                }
@@ -145,7 +143,7 @@
        /// </summary>
        static LogFactory()
        {
            var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "杭奥" };
            var loggerNames = new List<string>() { "HosttoagvTask", "HosttoagvCar", "NDC", "杭奥", "IP在线检测" };
            LogManager.Configuration = DefaultConfig(loggerNames);
        }
        public static ILogger CreateLogger(string name)
@@ -432,7 +430,10 @@
        /// <summary>
        ///  1 ç»´å¸Œå°”机械臂
        ///  2 æ·çž¬æœºæ¢°è‡‚臂
        ///  3 æ·çž¬è¾“送线
        ///  3 é«˜å†²æœºæ¢°æ‰‹
        ///  4 SSXaAGV  äº¤äº’的输送线 çº¤ä½“编号
        ///  5 å®šå­ä¸Šæ–™æœºæ¢°æ‰‹
        ///  6 è½¬å­ä¸Šæ–™æœºæ¢°æ‰‹
        /// </summary>
        public int deviceType { get; set; }
        public int enable { get; set; }
@@ -448,7 +449,8 @@
        #region    [自定义类][20250325095622918][HttpHelper]
        public string Post(string url, string postData, string contentType = "application/json", string sessionId = "")
        {
            LogHelper.Info(url + "+" + postData);
            var SendPRO = TaskProcess.GenerateTaskNo("日志流水号", "LOG");
            LogHelper.Info($"流水号【{SendPRO}】" + url + "+" + postData);
            WebRequest request = WebRequest.Create(url);
            request.Method = "POST";
            byte[] byteArray = Encoding.UTF8.GetBytes(postData);
@@ -474,12 +476,12 @@
                stream = rsp.GetResponseStream();
                reader = new StreamReader(stream);
                string rrend = reader.ReadToEnd();
                LogHelper.Info($"{url} response={rrend}");
                LogHelper.Info($"流水号【{SendPRO}】 response={rrend}");
                return rrend;
            }
            catch (Exception ex)
            {
                LogHelper.Info($"{url} err={ex.Message}");
                LogHelper.Info($"流水号【{SendPRO}】 err={ex.Message}");
                return "";
            }
            finally
@@ -521,15 +523,13 @@
    {
        #region    [自定义类][20250325131633664][SYSHelper]
        private static object locker = new object();
        internal static int GetSerialNumber(string snType, string prefix, string Vend = "0")
        internal static int GetSerialNumber(string snType, string prefix)
        {
            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);
                var sId = sysservice.FindEntity(a => a.CN_S_TYPE.Trim() == snType && a.CN_S_PRE.Trim() == prefix);
                if (sId != null)
                {
@@ -551,7 +551,7 @@
                }
                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" };
                    sId = new SYSEntity { CN_S_TYPE = snType, CN_T_LAST = DateTime.Now, CN_S_PRE = prefix, CN_N_MAX = 0, CN_S_APP_TYPE = "WCS" };
                    sysservice.Insert(sId);
                }
            }
@@ -562,7 +562,7 @@
    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)
        internal static bool CreateTask(string no, string from, string to, string taskType, int pri, List<string> cntrs, string workMode = "AGV", string S_INDEX = "", int cntrCount = 1, int startLayer = 1, int endLayer = 1)
        {
            LogHelper.Info($"创建任务 from:{from}>to {to}开始创建>");
@@ -571,15 +571,16 @@
            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 = "";
            if (workMode == "AGV")
            //string t = "";
            if (workMode == "AGV" && string.IsNullOrEmpty(S_INDEX))
            {
                t = "F01";
                if (s && !e) t = "A002";
                if (!s && e) t = "A003";
                if (s && e) t = "A004";
                var s = Settings.deviceInfos.Find(x => x.location.Contains(from)) != null;
                var e = Settings.deviceInfos.Find(x => x.location.Contains(to)) != null;
                S_INDEX = "F01";
                if (s && !e) S_INDEX = "A002";
                if (!s && e) S_INDEX = "A003";
                if (s && e) S_INDEX = "A004";
            }
            try
            {
@@ -606,7 +607,7 @@
                    N_START_LAYER = startLayer,
                    N_END_LAYER = endLayer,
                    N_CNTR_COUNT = cntrCount,
                    S_INDEX = t,
                    S_INDEX = S_INDEX,
                };
                ITaskRepository taskserice = new TaskRepository();
                taskserice.Insert(wmsTask);
@@ -651,11 +652,11 @@
            taskserice.Insert(action);
        }
        public static System.String GenerateTaskNo()
        public static System.String GenerateTaskNo(string snType = "任务号", string Snt = "TN")
        {
            var id = SYSHelper.GetSerialNumber("任务号", "TN", "1");
            var date = DateTime.Now.ToString("yyMMdd");
            return $"TN{date}{id.ToString().PadLeft(4, '0')}";
            var id = SYSHelper.GetSerialNumber(snType, date);
            return $"{Snt}{date}{id.ToString().PadLeft(4, '0')}";
        }
        #endregion [自定义类][20250325152141671][TaskProcess]
    }
@@ -678,6 +679,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)
            {
@@ -705,6 +707,7 @@
                        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
@@ -765,16 +768,40 @@
                }
            }
        }
        public static void ResMesTask()
        public static void ResMesTask(Tag tag)
        {
            AutoThread.InvokeMethod(AutoThread.Instance, "ResolveMesTask");
            ///1.
            AutoThread.InvokeMethod(AutoThread.Instance, "ResolveMesTask", new object[] { tag });
            //var VERX = Settings.deviceInfos?.FindAll(x => x.deviceName.Contains("捷瞬抓臂"));
            //if ()
            ///2  çœ‹ç¼“存区。 æ²¡æ»¡çš„。
        }
        #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]
    }
}