From 2f8733caf7ae5c94483fa332e0d3af69b61a0eb0 Mon Sep 17 00:00:00 2001
From: lss <2538410689@qq.com>
Date: 星期四, 03 七月 2025 23:09:25 +0800
Subject: [PATCH] 111

---
 HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs |  141 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 112 insertions(+), 29 deletions(-)

diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs
index ae84134..ead1a1e 100644
--- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs
+++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JiaTong/process/DeviceProcess.cs
@@ -7,6 +7,7 @@
 using S7.Net;
 using System;
 using System.Collections.Generic;
+using System.IO;
 using System.Linq;
 using System.Threading;
 using static HH.WCS.JiaTong.LISTA.process.HttpModel;
@@ -47,17 +48,17 @@
         /// <summary>
         /// 鍙犵洏鏈虹┖鎵樿繑鍥�         /// </summary>    
-        internal static void Traystacker(string loc, int qty)
+        internal static void Traystacker(string loc, int qty, int type,string cntrcode="")
         {
             try
             {
                 //涓婁紶鏁版嵁
-                Traystacker result1 = new Traystacker(){ station = loc, taskSource = 1, Qty = qty };
-              
+                Traystacker result1 = new Traystacker() { station = loc, taskSource = 1, Qty = qty, dpType = type };
+
                 HttpHelper httpHelper = new HttpHelper();
                 Result result = new Result();
                 string date = JsonConvert.SerializeObject(result1);
-                var url = Settings.tableUrls.Find(a => a.id == 2);
+                var url = Settings.tableUrls.Find(a => a.id == 3);
                 if (url != null)
                 {
                     LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥烇細鍦板潃:{url.url}锛屽唴瀹癸細{date}");
@@ -75,13 +76,13 @@
                 }
                 else
                 {
-                    LogHelper.Info($"鍙犵洏鏈虹┖鎵�鏍规嵁id=2锛屾湭鎵惧埌閰嶇疆閾炬帴锛岃妫�煡閰嶇疆鏂囦欢");
+                    LogHelper.Info($"鍙犵洏鏈虹┖鎵�鏍规嵁id=3锛屾湭鎵惧埌閰嶇疆閾炬帴锛岃妫�煡閰嶇疆鏂囦欢");
                 }
 
             }
             catch (Exception ex)
             {
-                LogHelper.Info($"鍙犵洏鏈虹┖鎵樿繑鍥� Error=>{ex.ToString()}");
+                LogHelper.Error($"鍙犵洏鏈虹┖鎵樿繑鍥� Error=>{ex.ToString()}", ex);
             }
         }
 
@@ -90,8 +91,9 @@
         /// </summary>
         internal static void Traffic()
         {
+            Console.WriteLine("寮�鍘熸潗鏂欏彔鐩樹綅缃垽鏂�);
             var db = new SqlHelper<object>().GetInstance();
-            List<string> locs = new List<string>() { "LCDP-001" };
+            List<string> locs = new List<string>() { "LCDP-001", "BADPW-01" };
             var location = db.Queryable<Location>().Where(a => locs.Contains(a.S_CODE)).ToList();
             if (location.Count > 0)
             {
@@ -104,8 +106,8 @@
                         var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == item.S_CODE).ToList();
                         if (cntr.Count > 0)
                         {
-                            var cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray();
-                            cntrcode = string.Join(",", cntrcodes);
+                             cntrcode = cntr.OrderBy(a=>a.T_CREATE).First().S_CNTR_CODE;
+                           // cntrcode = string.Join(",", cntrcodes);
                         }
 
                         //鍒涘缓杩囨湭瀹屾垚鐨勪换鍔′笉鍙戣捣璇锋眰
@@ -125,9 +127,9 @@
         internal static void KjTraffic()
         {
 
-
+            Console.WriteLine("寮�浜曟澗agv鍙犵洏鍥炲簱浣嶇疆鍒ゆ柇");
             var db = new SqlHelper<object>().GetInstance();
-            List<string> locs = new List<string>() { "PMDDW-001" };
+            List<string> locs = new List<string>() { "AGV12DP-001", "AGV01DP-001", "AGV05DP-001" };
             var location = db.Queryable<Location>().Where(a => locs.Contains(a.S_CODE)).ToList();
             if (location.Count > 0)
             {
@@ -143,43 +145,116 @@
                         //    var cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray();
                         //    cntrcode = string.Join(",", cntrcodes);
                         //}
-
+                        string cntrcode = "";
+                        var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == item.S_CODE).ToList();
+                        if (cntr.Count > 0)
+                        {
+                            cntrcode = cntr.OrderBy(a => a.T_CREATE).First().S_CNTR_CODE;
+                            // cntrcode = string.Join(",", cntrcodes);
+                        }
+                        LogHelper.Info($"璐т綅{item}鍙犳弧6涓紑濮嬪洖璋冩帴鍙�);
                         //鍒涘缓杩囨湭瀹屾垚鐨勪换鍔′笉鍙戣捣璇锋眰
                         var mst = WCSHelper.GetTaskByStartloc(item.S_CODE);
                         if (mst == null)
                         {
-                            Traystacker(item.S_CODE, item.N_CURRENT_NUM);
+                            Traystacker(item.S_CODE, item.N_CURRENT_NUM, 2, cntrcode);
                         }
                     }
                 }
             }
         }
 
+
+        public static Dictionary<string, DpjErrorInfo> DpjInfoDirectory = new Dictionary<string, DpjErrorInfo>();
         /// <summary>
         /// 浜曟澗鍙犵洏鏈哄彔鐩樺洖搴�         /// </summary>
         internal static void DpjTraffic()
         {
-            string startBti = "CMB17-DP-001";
-
-            var value = S7Helper.ReadDpj(2014, S7.Net.VarType.Int);
-
-            if (value >= 7)
+            var devices = Settings.deviceInfos.Where(a => a.deviceType == 1).ToList();
+            //var db = new SqlHelper<object>().GetInstance();
+            //var list = db.Queryable<Location>().Where(a => a.N_CURRENT_NUM > 0  && a.N_LOCK_STATE == 0).OrderByDescending(a => a.N_COL).Take(1).PartitionBy(a => a.N_ROW).ToList();
+            try
             {
-                //var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == item.S_CODE).ToList();
-                //if (cntr.Count > 0)
-                //{
-                //    var cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray();
-                //    cntrcode = string.Join(",", cntrcodes);
-                //}
-
-                //鍒涘缓杩囨湭瀹屾垚鐨勪换鍔′笉鍙戣捣璇锋眰
-                var mst = WCSHelper.GetTaskByStartloc(startBti);
-                if (mst == null)
+                if (devices.Count > 0)
                 {
-                    Traystacker(startBti, value);
+                    foreach (var device in devices)
+                    {
+                        var IsDp = S7Helper.ReadDpj(device.address, 2001, S7.Net.VarType.Byte);
+                        var value = S7Helper.ReadDpj(device.address, 2014, S7.Net.VarType.Int);
+                        var ErrorCode = S7Helper.ReadDpj(device.address, 2016, S7.Net.VarType.Int);
+                        //璁板綍鍙犵洏鏈烘姤閿欎俊鎭�+                        if (DpjInfoDirectory.ContainsKey(device.address))
+                        {
+                            DpjInfoDirectory[device.address].Address = device.address;
+                            DpjInfoDirectory[device.address].DeviceName = device.deviceName;
+                            var ErrorInfo = Settings.dpjErrorInfos.Where(a => a.ErrorCode == ErrorCode).First();
+                            if (ErrorInfo != null)
+                            {
+                                DpjInfoDirectory[device.address].ErrorInfo = ErrorInfo.ErrorInfo;
+                            }
+                        }
+                        else
+                        {
+                            string errorinfo = "";
+                            var ErrorInfo = Settings.dpjErrorInfos.Where(a => a.ErrorCode == ErrorCode).First();
+                            if (ErrorInfo != null)
+                            {
+                                errorinfo = ErrorInfo.ErrorInfo;
+                            }
+                            DpjInfoDirectory.Add(device.address, new DpjErrorInfo() { Address = device.address, DeviceName = device.deviceName, ErrorInfo = errorinfo });
+                        }
+                        if (value >= 1 && IsDp == 1)
+                        {
+                            //var cntr = db.Queryable<LocCntrRel>().Where(a => a.S_LOC_CODE.Trim() == item.S_CODE).ToList();
+                            //if (cntr.Count > 0)
+                            //{
+                            //    var cntrcodes = cntr.Select(a => a.S_CNTR_CODE).ToArray();
+                            //    cntrcode = string.Join(",", cntrcodes);
+                            //}
+
+                            //鍒涘缓杩囨湭瀹屾垚鐨勪换鍔′笉鍙戣捣璇锋眰
+                            var mst = WCSHelper.GetTaskByStartloc(device.TN_Location);
+                            if (mst == null)
+                            {
+                                Traystacker(device.TN_Location, value, 2);
+                            }
+                            else
+                            {
+                                LogHelper.Info($"鏈夋墽琛屼腑鐨勫彔鐩樺洖搴撲换鍔mst.S_CODE}锛屼笉瑙﹀彂鍙犵洏浠诲姟");
+                            }
+                            //var loc = LocationHelper.GetLocByLoc(device.TN_Location);
+                            //if (loc != null)
+                            //{
+                            //    if (loc.N_LOCK_STATE == 0) {
+                            //        Traystacker(device.TN_Location, value, 2);
+                            //    }
+                            //    else
+                            //    {
+                            //        LogHelper.Info($"璁惧璧风偣锛歿device.TN_Location}鏈夐攣锛屼笉鐢熸垚浠诲姟");
+                            //    }
+                            //}
+                            //else
+                            //{
+                            //    LogHelper.Info($"鏍规嵁璁惧锛歿device.deviceName}锛岃捣鐐癸細{device.TN_Location},鏈壘鍒拌揣浣�);
+                            //}
+                        }
+                        else
+                        {
+                            LogHelper.Info($"鍙犵洏鏈烘暟閲忥細{value},鍙犵洏淇″彿锛歿IsDp}锛屼笉瑙﹀彂鍙犵洏浠诲姟");
+                        }
+                        Thread.Sleep(8000);
+                    }
                 }
+
             }
+            catch (Exception ex)
+            {
+               
+                LogHelper.Error($"ReadDpj DpjTraffic:{ex}", ex);
+
+            }
+
         }
         /// <summary>
         /// 鍘熸潗鏂欏簱鎺ュ彛璁块棶
@@ -217,5 +292,13 @@
                 LogHelper.Info($"绌烘墭杩斿洖  Error=>{ex.ToString()}");
             }
         }
+
+        public class DpjErrorInfo
+        {
+
+            public string Address { get; set; }
+            public string DeviceName { get; set; }
+            public string ErrorInfo { get; set; }
+        }
     }
 }

--
Gitblit v1.9.1