From 3b0c30d5918f1b50b3eb1a92b17124d5087e4a75 Mon Sep 17 00:00:00 2001
From: wu <731351411@qq.com>
Date: 星期五, 10 五月 2024 16:29:40 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java |   62 +++++++++++--------------------
 1 files changed, 22 insertions(+), 40 deletions(-)

diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
index 2a86a0f..f427416 100644
--- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
+++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/device/PlcBitObject.java
@@ -1,9 +1,6 @@
 package com.mes.device;
 
-import java.util.ArrayList;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 
 public class PlcBitObject {
 
@@ -11,7 +8,8 @@
     private String plcAddressBegin;
     // 鏁版嵁鍦板潃闀垮害锛氱涓�鍙傛暟鍒版渶鍚庝竴涓弬鏁扮殑闀垮害
     private int plcAddressLength;
-    private ArrayList<PlcBitInfo> plcBitList;
+    //private ArrayList<PlcBitInfo> plcBitList;
+    private LinkedHashMap<String,PlcBitInfo> plcBitMap;
 
     /**
      * @return 鏁版嵁鍖哄紑濮嬪湴鍧�
@@ -44,8 +42,8 @@
     /**
      * @return 鑾峰彇鍙傛暟瀹炰緥闆嗗悎
      */
-    public ArrayList<PlcBitInfo> getBitList() {
-        return plcBitList;
+    public LinkedHashMap<String,PlcBitInfo> getBitMap() {
+        return plcBitMap;
     }
 
     /**
@@ -55,38 +53,29 @@
      * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
      */
     public PlcBitInfo getPlcBit(String codeid) {
-        if (plcBitList != null) {
-            for (PlcBitInfo plcbitInfo : plcBitList) {
+        if (plcBitMap != null) {
+            /*for (PlcBitInfo plcbitInfo : plcBitList) {
                 if (plcbitInfo.getCodeId().equals(codeid))
                     return plcbitInfo;
-            }
-            return null;
+            }*/
+            return plcBitMap.get(codeid);
         } else
+        {
             return null;
+        }
     }
 
     /**
      * 鏍规嵁鍙傛暟鏍囪瘑 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
      *
-     * @param codeid 鍙傛暟鏍囪瘑
+     * @param codeids 鍙傛暟鏍囪瘑
      * @return 鑾峰彇鏌愪釜鍙傛暟瀹炰緥
      */
     public List<Boolean> getPlcBitValues(List<String> codeids) {
         List<Boolean> arrayList = new ArrayList<>();
-        if (plcBitList != null) {
-            Map<String, Boolean> resultMap = new LinkedHashMap<>(); // 浣跨敤 LinkedHashMap 淇濈暀鎻掑叆椤哄簭
-            for (PlcBitInfo plcBitInfo : plcBitList) {
-                if (codeids.contains(plcBitInfo.getCodeId().toString())) {
-                    resultMap.put(plcBitInfo.getCodeId().toString(), plcBitInfo.getValue());
-                }
-            }
+        if (plcBitMap != null) {
             for (String codeId : codeids) { // 鎸夌収浼犲叆鍙傛暟鐨勯『搴忛亶鍘�
-                Boolean value = resultMap.get(codeId);
-                if (value != null) {
-                    arrayList.add(value);
-                } else {
-                    arrayList.add(null); // 濡傛灉鎵句笉鍒板搴旂殑鍊硷紝娣诲姞 null
-                }
+                    arrayList.add(plcBitMap.get(codeId).getValue());
             }
         }
         return arrayList;
@@ -96,15 +85,7 @@
     public List<String> getAddressListByCodeId(List<String> codeIdList) {
         List<String> addressList = new ArrayList<>();
         for (String codeId : codeIdList) {
-            for (PlcBitInfo plcBitInfo : plcBitList) {
-                if (plcBitInfo.getCodeId().equals(codeId)) {
-                    int index = plcBitInfo.getAddressIndex();
-                    String address = plcBitInfo.getAddress(index);
-                    if (address != null) {
-                        addressList.add(address);
-                    }
-                }
-            }
+            addressList.add(plcBitMap.get(codeId).getAddress());
         }
         return addressList;
     }
@@ -116,11 +97,11 @@
      * @param param 鍙傛暟瀹炰緥
      */
     public void addPlcBit(PlcBitInfo param) {
-        if (plcBitList != null)
-            plcBitList.add(param);
+        if (plcBitMap != null)
+            plcBitMap.put(param.getCodeId(),param);
         else {
-            plcBitList = new ArrayList<PlcBitInfo>();
-            plcBitList.add(param);
+            plcBitMap = new LinkedHashMap<String,PlcBitInfo>();
+            plcBitMap.put(param.getCodeId(),param);
         }
     }
 
@@ -130,8 +111,9 @@
      * @param plcValueArray PLC璇诲彇鍥炴潵鐨刡yte绫诲瀷鏁版嵁闆嗗悎
      */
     public void setPlcBitList(List<Boolean> plcValueArray) {
-        if (plcBitList != null) {
-            for (PlcBitInfo plcbitInfo : plcBitList) {
+        if (plcBitMap != null) {
+            Collection<PlcBitInfo> values=plcBitMap.values();
+            for (PlcBitInfo plcbitInfo : values) {
                 plcbitInfo.setValue(plcValueArray.get(plcbitInfo.getAddressIndex()));
             }
         }

--
Gitblit v1.8.0