CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CC/iWareCC_ASRS/ThreadService/03_BZ12(机器人码包工位)/1、DataProcess_BZ12.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CC/iWareModel/Entity/WMS/ControlRequest.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CC/iWareModel/iWareModel.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CC/iWareUnitTest/CSharpTest.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CC/iWareUnitTest/Entity/NewPasswordEntity.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CC/iWareUnitTest/Entity/PasswordGenerator.cs | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
CC/iWareUnitTest/iWareUnitTest.csproj | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
CC/iWareCC_ASRS/Common/Helper/MyExtendHelper.cs
@@ -15,7 +15,7 @@ using System.Threading; using System.Threading.Tasks; using XiGang.Core.Model; using LogType = iWareCommon.Utils.LogType; namespace iWareCC.Common.Helper { @@ -26,6 +26,90 @@ { /// <summary> /// å ¬å ±çæ§å¶è¯·æ±å¯¹è±¡åå ¸ /// </summary> public static IDictionary<string, ControlRequest> controlRequestDicts = new Dictionary<string, ControlRequest>(); /// <summary> /// å ¬å ±çæ§å¶è¯·æ±å¯¹è±¡åå ¸èµå¼ /// </summary> /// <param name="placeNo"></param> /// <param name="result"></param> /// <param name="msg"></param> public static void SetValueControlRequestDicts(string placeNo, bool result, string msg) { if (controlRequestDicts.ContainsKey(placeNo)) { controlRequestDicts[placeNo].IsSuccess = result; controlRequestDicts[placeNo].LastTime = DateTime.Now; controlRequestDicts[placeNo].PlaceNo = placeNo; if (result) { controlRequestDicts[placeNo].Count = 0; controlRequestDicts[placeNo].ErrMsg = ""; } else { controlRequestDicts[placeNo].Count++; controlRequestDicts[placeNo].ErrMsg = msg; } } else { if (result) { controlRequestDicts.Add(placeNo, new ControlRequest() { PlaceNo = placeNo, Count = 0, LastTime = DateTime.Now, ErrMsg = msg, IsSuccess = result }); } else { controlRequestDicts.Add(placeNo, new ControlRequest() { PlaceNo = placeNo, Count = 1, LastTime = DateTime.Now, ErrMsg = msg, IsSuccess = result }); } } } /// <summary> /// éªè¯æ¯å¦å 许ç»PLCåæ¥è¦ /// </summary> /// <param name="placeNo"></param> /// <returns></returns> public static bool ValidateIsAllowRequest(string placeNo, LogType logType) { if (controlRequestDicts.ContainsKey(placeNo)) { if (controlRequestDicts[placeNo].IsSuccess == false) { //var diff = DateTime.Now - controlRequestDicts[placeNo].LastTime; //if (diff.Seconds <= 10) //{//妿è¿ç»è¯·æ±å¨10ç§å ï¼å认为 ä¸éè¦åæ¬¡è¯·æ± // WZ.Useful.Commons.LogTextHelper.WriteLine("CommonControl", "ValidateIsAllowRequest", "妿è¿ç»è¯·æ±å¨10ç§å ï¼å认为 ä¸éè¦å次请æ±ï¼é´é" + diff.Seconds + "ç§,placeNo:" + placeNo); // return false; //} if (controlRequestDicts[placeNo].Count <= 5) {//妿è¿ç»è¯·æ±å¨5次å ï¼å认为 ä¸éè¦åæ¬¡è¯·æ± var msg = "妿è¿ç»è¯·æ±å¨5次å ï¼å认为 ä¸éè¦å次请æ±ï¼é´é" + controlRequestDicts[placeNo].Count + "个,placeNo:" + placeNo; Log4NetHelper.WriteInfoLog(logType, msg); return false; } } } return true; } /// <summary> /// çæææ°çä»»å¡å· /// </summary> /// <param name="wmsDB"></param> CC/iWareCC_ASRS/ThreadService/03_BZ12(»úÆ÷ÈËÂë°ü¹¤Î»)/1¡¢DataProcess_BZ12.cs
@@ -105,12 +105,23 @@ //placeZ = (short)upiObj.MachineZCenter; if (upiObj.UpiStatus == (int)UpiStatusEnum.å·²ç å || upiObj.UpiStatus == (int)UpiStatusEnum.ç åä¸) { //åå ¥æ¥è¦ä¿¡æ¯ await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningAddressGloble.Num_BZ12_3); SystemWarningMsg._lbl_alert_DataProcess_BZ12 = $"{rgvLocation.ToString()},æ ¹æ®UPI:{upiCode}ç¶æå·²æ¯'å·²ç å'æ'ç åä¸' "; MyExtendHelper.SetValueControlRequestDicts(PlcWarningAddressGloble.Num_BZ12_3, false, SystemWarningMsg._lbl_alert_DataProcess_BZ12); var isAllow = MyExtendHelper.ValidateIsAllowRequest(PlcWarningAddressGloble.Num_BZ12_3, LogType.DataProcess_BZ12); if (isAllow == false) { continue; } else { //åå ¥æ¥è¦ä¿¡æ¯ await MyExtendHelper.WriteBoolPlcDataForWarning(PlcWarningAddressGloble.Num_BZ12_3); } continue; } MyExtendHelper.SetValueControlRequestDicts(PlcWarningAddressGloble.Num_BZ12_3, true, ""); upiObj.UpiStatus = (int)UpiStatusEnum.ç åä¸; upiObj.AreaCode = (int)AreaCodeEnum.ç ååºå; //æ¥å¤è¿å ææçæ°é CC/iWareModel/Entity/WMS/ControlRequest.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ // 麻ççå·¥å¦é¢è®¸å¯è¯ // // çæææ (c) 2021-2023 zuohuaijunï¼å¤§åç§æï¼å¤©æ´¥ï¼æéå ¬å¸ èç³»çµè¯/微信ï¼18020030720 QQï¼515096995 // // ç¹æ¤å è´¹æäºè·å¾æ¬è½¯ä»¶çä»»ä½äººä»¥å¤çæ¬è½¯ä»¶çæå©ï¼ä½é¡»éµå®ä»¥ä¸æ¡ä»¶ï¼å¨ææå¯æ¬æéè¦é¨åç软件ä¸å¿ é¡»å æ¬ä¸è¿°çæå£°æåæ¬è®¸å¯å£°æã // // 软件æâåæ ·âæä¾ï¼ä¸æä¾ä»»ä½å½¢å¼çæç¤ºææç¤ºçä¿è¯ï¼å æ¬ä½ä¸éäºå¯¹ééæ§ãéç¨æ§åéä¾µæçä¿è¯ã // å¨ä»»ä½æ åµä¸ï¼ä½è æçæææäººåä¸å¯¹ä»»ä½ç´¢èµãæå®³æå ¶ä»è´£ä»»è´è´£ï¼æ 论æ¯å ååãä¾µææå ¶ä»æ¹å¼å¼èµ·çï¼ä¸è½¯ä»¶æå ¶ä½¿ç¨æå ¶ä»äº¤ææå ³ã using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace XiGang.Core.Model { /// <summary> /// æ§å¶å¤ç请æ±å¯¹è±¡ /// 鲿¢PLCä¸åå°è°ç¨ï¼å¯¼è´æ°æ®åºæ»éçé®é¢ /// </summary> public class ControlRequest { /// <summary> /// 请æ±è¿åç»æ /// </summary> public bool IsSuccess { get; set; } /// <summary> /// è®¡ç®æ¬¡æ° /// </summary> public int Count { get; set; } /// <summary> /// åºä½ç¼å· /// </summary> public string PlaceNo { get; set; } /// <summary> /// éè¯¯æ¶æ¯ /// </summary> public string ErrMsg { get; set; } /// <summary> /// æåæ´æ°æ¶é´ /// </summary> public DateTime LastTime { get; set; } } } CC/iWareModel/iWareModel.csproj
@@ -78,6 +78,7 @@ <Compile Include="Entity\ValidateModel.cs" /> <Compile Include="Entity\ValidateResModel.cs" /> <Compile Include="Entity\WMS\AddMainTaskPostParam.cs" /> <Compile Include="Entity\WMS\ControlRequest.cs" /> <Compile Include="Entity\WMS\UpdateEngineInfoParam.cs" /> <Compile Include="EnumType\EDbError.cs" /> <Compile Include="EnumType\EDevice\AGV\AGVState.cs" /> CC/iWareUnitTest/CSharpTest.cs
@@ -1,6 +1,7 @@  using iWareCommon.Utils; using iWareSql.DBModel; using iWareUnitTest.Entity; using Microsoft.VisualStudio.TestTools.UnitTesting; using Newtonsoft.Json; using System; @@ -140,6 +141,98 @@ var txt1 = DESEncryptHelper.Encrypt("2025-02-25");//125B1E37E4C1F3C8DD1F36B342ED1307 var txt2 = DESEncryptHelper.Encrypt("2025-03-30");//45BAF941111384BEE21F89FD18461EC1 List<NewPasswordEntity> list = new List<NewPasswordEntity>(); var startDate = DateTime.Parse("2025-04-25"); for (int i = 0; i < 11; i++) { var newPass = PasswordGenerator.GenerateRandomPassword(7); var _date = startDate.ToString("yyy-MM-dd"); startDate = startDate.AddMonths(1); list.Add(new NewPasswordEntity { date = _date, password = newPass, encrypt_date = DESEncryptHelper.Encrypt(_date), encrypt_password = DESEncryptHelper.Encrypt(newPass) }); } StringBuilder sb = new StringBuilder(); foreach (var item in list) { sb.Append(item.date + "\r\n"); } sb.Append("åå²å¦" + "\r\n"); foreach (var item in list) { sb.Append(item.password + "\r\n"); } sb.Append("åå²å¦" + "\r\n"); foreach (var item in list) { sb.Append(item.encrypt_date + "\r\n"); } sb.Append("åå²å¦" + "\r\n"); foreach (var item in list) { sb.Append(item.encrypt_password + "\r\n"); } var cc = sb.ToString(); var txt4 = DESEncryptHelper.Encrypt("2025-04-25"); var txt5 = DESEncryptHelper.Encrypt("2025-05-25"); var txt6 = DESEncryptHelper.Encrypt("2025-06-25"); var txt7 = DESEncryptHelper.Encrypt("2025-07-25"); var txt8 = DESEncryptHelper.Encrypt("2025-08-25"); var txt9 = DESEncryptHelper.Encrypt("2025-09-25"); var txt10 = DESEncryptHelper.Encrypt("2025-10-25"); var txt11 = DESEncryptHelper.Encrypt("2025-11-25"); var txt12 = DESEncryptHelper.Encrypt("2025-12-25"); var txt13 = DESEncryptHelper.Encrypt("2026-01-25"); var txt14 = DESEncryptHelper.Encrypt("2026-02-25"); sb.Append(txt4 + "\r\n"); sb.Append(txt5 + "\r\n"); sb.Append(txt6 + "\r\n"); sb.Append(txt7 + "\r\n"); sb.Append(txt8 + "\r\n"); sb.Append(txt9 + "\r\n"); sb.Append(txt10 + "\r\n"); sb.Append(txt11 + "\r\n"); sb.Append(txt12 + "\r\n"); sb.Append(txt13 + "\r\n"); sb.Append(txt14 + "\r\n"); sb.Append("åå²å¦" + "\r\n"); var password_txt4 = DESEncryptHelper.Encrypt("8567sdc"); var password_txt5 = DESEncryptHelper.Encrypt("2025yyc"); var password_txt6 = DESEncryptHelper.Encrypt("jjkljlue5"); var password_txt7 = DESEncryptHelper.Encrypt("jh3njdi3"); var password_txt8 = DESEncryptHelper.Encrypt("jkncy632d"); var password_txt9 = DESEncryptHelper.Encrypt("kjl3oi8j4"); var password_txt10 = DESEncryptHelper.Encrypt("9i438d6"); var password_txt11 = DESEncryptHelper.Encrypt("0934kydht"); var password_txt12 = DESEncryptHelper.Encrypt("23hd6f"); var password_txt13 = DESEncryptHelper.Encrypt("8uj47d6d"); var password_txt14 = DESEncryptHelper.Encrypt("jjy74jdc3"); sb.Append(password_txt4 + "\r\n"); sb.Append(password_txt5 + "\r\n"); sb.Append(password_txt6 + "\r\n"); sb.Append(password_txt7 + "\r\n"); sb.Append(password_txt8 + "\r\n"); sb.Append(password_txt9 + "\r\n"); sb.Append(password_txt10 + "\r\n"); sb.Append(password_txt11 + "\r\n"); sb.Append(password_txt12 + "\r\n"); sb.Append(password_txt13 + "\r\n"); sb.Append(password_txt14 + "\r\n"); var to_txt = DESEncryptHelper.Decrypt("C3F3DD5F2C816041775DB87739E1F729");// var to_txt1 = DESEncryptHelper.Decrypt("125B1E37E4C1F3C8DD1F36B342ED1307");// @@ -155,6 +248,10 @@ var test_txt = DESEncryptHelper.Encrypt("2024-12-19");//46039E400A485A5B383F51212D562772 var test_txt2 = DESEncryptHelper.Encrypt("2024-12-25");//46039E400A485A5B80BA4C2C44FEA6AF to_txt2 = DESEncryptHelper.Decrypt("CB32534E34DD3273FCEA68A19F06C37F");// to_txt2 = DESEncryptHelper.Decrypt("69D40723281D3406");// Assert.IsFalse(false); } CC/iWareUnitTest/Entity/NewPasswordEntity.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace iWareUnitTest.Entity { public class NewPasswordEntity { public string date { get; set; } public string password { get; set; } public string encrypt_date { get; set; } public string encrypt_password { get; set; } } } CC/iWareUnitTest/Entity/PasswordGenerator.cs
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ using System; using System.Linq; using System.Security.Cryptography; using System.Text; using System.Threading; public class PasswordGenerator { //private const string ValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789!@#$%^&*()"; private const string ValidChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; private static readonly RandomNumberGenerator _rng = RandomNumberGenerator.Create(); private static readonly object _lock = new object(); // ç¨äºçº¿ç¨å®å ¨ private static readonly char[] _chars = ValidChars.ToCharArray(); // é¢å è½½å符æ°ç»ä»¥æé«æ§è½ private static readonly int _validCharsLength = ValidChars.Length; // é¢å è½½é¿åº¦ä»¥æé«æ§è½ private static readonly byte[] _randomBytesBuffer = new byte[4]; // ç¨äºçæéæºæ°ä»¥åå§åRandom对象ï¼å¯éï¼åå³äºéæ±ï¼ private static readonly Random _random = new Random(); // ä» ä¸ºåå§åRandom对象ï¼å¯éï¼åå³äºéæ±ï¼ private static readonly ThreadLocal<Random> _threadRandom = new ThreadLocal<Random>(() => new Random(BitConverter.ToInt32(GetRandomBytes(), 0))); // 线ç¨å®å ¨çRandom对象ï¼å¯éï¼åå³äºéæ±ï¼ private static byte[] GetRandomBytes() { lock (_lock) { _rng.GetBytes(_randomBytesBuffer); return _randomBytesBuffer; } } // è·åéæºåèæ°ç»çæ¹æ³ï¼ç¡®ä¿çº¿ç¨å®å ¨ã妿ä¸éè¦çº¿ç¨å®å ¨ï¼å¯ä»¥ç§»é¤lockã private static int GetRandomInt(int maxValue) => _threadRandom.Value.Next(maxValue); // 使ç¨çº¿ç¨å®å ¨çRandom对象è·åéæºæ´æ°ã妿ä¸éè¦çº¿ç¨å®å ¨ï¼å¯ä»¥ä½¿ç¨æ®éç_random.Next(maxValue)ã private static char GetRandomChar() => _chars[GetRandomInt(_validCharsLength)]; // è·åéæºå符ã妿ä¸éè¦çº¿ç¨å®å ¨ï¼å¯ä»¥ä½¿ç¨_chars[random.Next(_validCharsLength)]ã public static string GenerateRandomPassword(int length) => new string(Enumerable.Range(0, length).Select(_ => GetRandomChar()).ToArray()); // çæå¯ç å符串ã妿ä¸éè¦çº¿ç¨å®å ¨ï¼å¯ä»¥ç´æ¥ä½¿ç¨_chars[random.Next(_validCharsLength)]ã } CC/iWareUnitTest/iWareUnitTest.csproj
@@ -69,6 +69,8 @@ </Choose> <ItemGroup> <Compile Include="CSharpTest.cs" /> <Compile Include="Entity\PasswordGenerator.cs" /> <Compile Include="Entity\NewPasswordEntity.cs" /> <Compile Include="OPCTest.cs" /> <Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Service References\MesWebService\Reference.cs">