From fae1a7742f0d847a47a0f8d3d1235e4826f5d4c6 Mon Sep 17 00:00:00 2001 From: cjs <2216046164@qq.com> Date: 星期三, 02 七月 2025 17:37:13 +0800 Subject: [PATCH] 1 --- ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs | 80 ++++++++++++++++++++++++++++++++++++++++ 1 files changed, 80 insertions(+), 0 deletions(-) diff --git a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs index 7493131..42ab204 100644 --- a/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs +++ b/ams/Hanhe.iWCS.TaizhouGEMTwoProtocol/ERPService.cs @@ -230,6 +230,7 @@ { MongoDBSingleton.Instance.Remove<SendErpTaskInfoTable>(Query.EQ("_id", a._id), "SendErpTaskInfoTable", RemoveFlags.None); MongoDBSingleton.Instance.Remove<TimeCuoInfoCom>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoCom", RemoveFlags.None); + MongoDBSingleton.Instance.Remove<TimeCuoInfoComTwo>(Query.EQ("timeStamp", int.Parse(a.timeStamp)), "TimeCuoInfoComTwo", RemoveFlags.None); } }); } @@ -682,6 +683,85 @@ CMMLog.Debug($"WriteItemInfo:End!"); } + /// <summary> + /// 鍐欏叆鍖呰鏈虹墿鏂欎俊鎭�+ /// </summary> + /// <param name="plcInfo"></param> + public static void WriteItemInfoTwo(Settings.PlcInfo plcInfo) + { + CMMLog.Debug($"WriteItemInfoTwo:Start!"); + + try + { + //璇诲彇銆愮炕椤点�閫氶亾鏁版嵁 + var result = OITcpHelper.RegisterReadOutPut(new OITcpHelper.RegisterReadOutPutModel + { + dataNum = 1, + addr = plcInfo.FyReadAddr, + host = plcInfo.ip, + port = plcInfo.port + }); + CMMLog.Debug($"WriteItemInfoTwo:璇诲彇銆愮炕椤点�閫氶亾鏁版嵁涓猴細{JsonConvert.SerializeObject(result)}!"); + if (true) // result != null && result.errCode == 0 + { + // 绀轰緥锛氳鍑哄�涓� 鑾峰彇1~5缂栧彿鐨勭墿鏂欐暟鎹�璇诲嚭鍊间负2 鑾峰彇6~10缂栧彿鐨勭墿鏂欐暟鎹�瑙勫垯 result.result[0] * 5 - 4 璧峰缂栧彿 + //int startItemNo = 1; + int startItemNo = result.result[0] * 5 - 4; + CMMLog.Debug($"WriteItemInfoTwo:缈婚〉鏁版嵁涓猴細{startItemNo}!"); + var reLocationTask = MongoDBSingleton.Instance.Find<ERPItemTable>(Query.And(Query.In("item_no", new List<MongoDB.Bson.BsonValue>() { startItemNo, startItemNo + 1, startItemNo + 2, startItemNo + 3, startItemNo + 4 })), "ERPItemTable").ToList(); + int reLocationTaskNum = reLocationTask != null ? reLocationTask.Count : 0; + CMMLog.Debug($"WriteItemInfoTwo:鏌ヨ鍑篍RP鐗╂枡琛ㄦ暟鎹暟閲忎负锛歿reLocationTaskNum}!澶囨敞锛氬彧鏈夋暟閲忎负5鎵嶄細鍐欏叆鏁版嵁"); + if (reLocationTaskNum == 5) + { + int no = 0; + reLocationTask.ForEach(a => + { + int writeAddr = plcInfo.FyWriteAddr + no * 50; + if (no > 0) writeAddr = writeAddr + 40; + no++; + // 瑙f瀽鐗╂枡鏁版嵁骞跺啓鍏�鏈夋晥鏁版嵁閫氶亾 50,50(浜у搧鍨嬪彿-10 鐗╂枡缂栫爜-15 鐗╂枡鍚嶇О-20 璁¢噺鍗曚綅-5) + int[] num = new int[50]; + // 鍐呭瓨鍦板潃 0~19 鍗忚鍦板潃 1~20 鎵规鍙�浜哄伐杈撳叆,涓嶉渶瑕佺▼搴忓啓鍏�+ for (int i = 0; i <= 19; i++) num[i] = 0; + // 鍐呭瓨鍦板潃 20~29 鍗忚鍦板潃 21~30 浜у搧鍨嬪彿 + // HandleItemInfo(a.item_spec, 20, 29, num); + HandleItemInfoChina(a.item_spec, 0, 9, num); + CMMLog.Debug($"WriteItemInfoTwo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_spec},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + // 鍐呭瓨鍦板潃 30~49 鍗忚鍦板潃 31~50 鐗╂枡缂栫爜 + HandleItemInfo(a.item_code, 10, 24, num); + CMMLog.Debug($"WriteItemInfoTwo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_code},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + // 鍐呭瓨鍦板潃 50~64 鍗忚鍦板潃 51~65 鐗╂枡鍚嶇О + // HandleItemInfo(a.item_name, 50, 64, num); + HandleItemInfoChina(a.item_name, 25, 44, num);// 涓枃澶勭悊 + CMMLog.Debug($"WriteItemInfoTwo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_name},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + // 鍐呭瓨鍦板潃 65~69 鍗忚鍦板潃 66~70 璁¢噺鍗曚綅 + HandleItemInfo(a.item_uom, 45, 49, num); + CMMLog.Debug($"WriteItemInfoTwo:鐗╂枡淇℃伅澶勭悊-2銆傚鐞嗘暟鎹細{a.item_uom},澶勭悊鍚庢暟鎹細{JsonConvert.SerializeObject(num)}"); + + CMMLog.Debug($"WriteItemInfoTwo:鍙戦�鐗╂枡淇℃伅銆傚簭鍙凤細{a.item_no},ip:{plcInfo.ip},port:{plcInfo.port},鍐欏叆璧峰鍦板潃:{writeAddr},鍐欏叆鏁版嵁:{JsonConvert.SerializeObject(num)}"); + + var wirteall01 = OITcpHelper.RegisterWriteOutPutMulti(new OITcpHelper.RegisterWriteOutPutModelMulti + { + addr = writeAddr, + host = plcInfo.ip, + port = plcInfo.port, + data = num + }); + int writeResult = wirteall01 != null ? wirteall01.errCode : 1; + CMMLog.Debug($"WriteItemInfoTwo:鍙戦�鐗╂枡淇℃伅銆傚簭鍙凤細{a.item_no},鍐欏叆缁撴灉锛歿writeResult}銆俰p:{plcInfo.ip},port:{plcInfo.port},鍐欏叆璧峰鍦板潃:{writeAddr},鍐欏叆鏁版嵁:{JsonConvert.SerializeObject(num)}"); + }); + } + } + else CMMLog.Debug($"WriteItemInfoTwo:鏈鍙栥�缈婚〉銆戦�閬撴暟鎹�"); + } + catch (Exception ex) + { + CMMLog.Debug($"WriteItemInfoTwo Error:{ex.Message}"); + } + + CMMLog.Debug($"WriteItemInfoTwo:End!"); + } + public static void HandleItemInfo(string itemInfo,int startIndex, int endIndex , int[] num) { string data = itemInfo;// 瑕佸啓鍏ョ殑澶勭悊鍚庢暟鎹� -- Gitblit v1.9.1