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