From d187cd0fa46d01ec293e2aba1a1e54fdfab2ec80 Mon Sep 17 00:00:00 2001 From: yangys <y_ys79@sina.com> Date: 星期日, 03 十一月 2024 20:37:26 +0800 Subject: [PATCH] 数据点位过滤修复,使用了计算规则的点位存储_n的。 --- collect/src/main/java/com/qianwen/mdc/collect/vo/WorkstationDatapointsVO.java | 73 ++++++++++++++++++++++++++++-------- collect/src/main/java/com/qianwen/mdc/collect/service/IOTMqttReceiveService.java | 20 +++++---- collect/src/main/resources/application-dev.yml | 2 3 files changed, 69 insertions(+), 26 deletions(-) diff --git a/collect/src/main/java/com/qianwen/mdc/collect/service/IOTMqttReceiveService.java b/collect/src/main/java/com/qianwen/mdc/collect/service/IOTMqttReceiveService.java index be25cb6..31b7301 100644 --- a/collect/src/main/java/com/qianwen/mdc/collect/service/IOTMqttReceiveService.java +++ b/collect/src/main/java/com/qianwen/mdc/collect/service/IOTMqttReceiveService.java @@ -19,6 +19,7 @@ @Service public class IOTMqttReceiveService { + public static final String NEWDP_SUFFIX = "_n";//璁$畻瑙勫垯浣跨敤涔嬪悗鏂版暟鎹偣鐨勭粨灏� private static final Logger log = LoggerFactory.getLogger(IOTMqttReceiveService.class); @Autowired private CollectDataService collectDataService; @@ -27,6 +28,7 @@ private PackedDataService packedDataService; @Autowired private WorkstationDatapointsService dpService; + /** * 澶勭悊鏀跺埌鐨勬秷鎭�,瀵瑰簲TelemetryDataPostingConsumer * @param payload @@ -54,15 +56,13 @@ Set<String> keySet = jsonObj.keySet(); String[] keys = keySet.toArray(new String[] {}); - //WorkstationDatapointsVO dpVo; - final String NEWDP_SUFFIX = "_n";//璁$畻瑙勫垯浣跨敤涔嬪悗鏂版暟鎹偣鐨勭粨灏� for(String key : keys) { String appId = key;//iot绯荤粺涓殑搴旂敤id锛屾湰搴旂敤涓簲璇ョ敤琛ㄥ幓瀵瑰簲 - - //TODO 鑾峰彇宸ヤ綅鏁版嵁鐐归厤缃�,鍙繚瀛橀厤缃ソ鐨勬暟鎹偣锛屾病鏈夐厤缃殑閲囬泦鏁版嵁鎶涘純銆� + //鑾峰彇宸ヤ綅鏁版嵁鐐归厤缃�,鍙繚瀛橀厤缃ソ鐨勬暟鎹偣锛屾病鏈夐厤缃殑閲囬泦鏁版嵁鎶涘純銆� final WorkstationDatapointsVO dpVo = dpService.getDatapointsByAppIdFromCache(appId); + //final WorkstationDatapointsVO dpVo = dpService.getDataPointByAppId(appId); if(dpVo == null) { //宸ヤ綅娌℃湁瀹氫箟杩囨暟鎹偣鎴栬�卆ppId涓嶅尮閰� log.warn("appId={}鏈壘鍒版暟鎹偣瀹氫箟璁板綍锛屼涪寮冩暟鎹�",appId); @@ -86,14 +86,16 @@ Set<String> valueKeySet = values.keySet(); valueKeySet.forEach(valueKey ->{ - String oriValueKey = valueKey;;//鐢变簬浣跨敤璁$畻瑙勫垯鐨勯噰闆嗙偣鍚嶇О浼氬悗闈㈠鍔犱竴涓�"_n",鎵�浠ヨ繖涓猳riValueKey浠h〃娌℃湁澧炲姞"_n"鐨� - if(StringUtils.endsWith(valueKey, NEWDP_SUFFIX)) { - oriValueKey = StringUtils.removeEnd(valueKey, NEWDP_SUFFIX); - } - if(!dpVo.containsDataPoint(oriValueKey)) { + if(!dpVo.containsDataPoint(valueKey)) { //濡傛灉涓嶅瓨鍦ㄨ鏁版嵁鐐归厤缃紝璇ユ暟鎹洿鎺ュ拷鐣� return; } + + String oriValueKey = valueKey;//鐢变簬浣跨敤璁$畻瑙勫垯鐨勯噰闆嗙偣鍚嶇О浼氬悗闈㈠鍔犱竴涓�"_n",鎵�浠ヨ繖涓猳riValueKey浠h〃娌℃湁澧炲姞"_n"鐨� + if(StringUtils.endsWith(valueKey, NEWDP_SUFFIX)) { + oriValueKey = StringUtils.removeEnd(valueKey, NEWDP_SUFFIX); + } + tdataItem.addPoint(oriValueKey,values.getString(valueKey));//浣跨敤鍘熷閰嶇疆鐐逛繚鎸佷繚瀛樻暟鎹� }); diff --git a/collect/src/main/java/com/qianwen/mdc/collect/vo/WorkstationDatapointsVO.java b/collect/src/main/java/com/qianwen/mdc/collect/vo/WorkstationDatapointsVO.java index 7404419..251727e 100644 --- a/collect/src/main/java/com/qianwen/mdc/collect/vo/WorkstationDatapointsVO.java +++ b/collect/src/main/java/com/qianwen/mdc/collect/vo/WorkstationDatapointsVO.java @@ -10,7 +10,6 @@ import com.alibaba.fastjson.JSONObject; import cn.hutool.core.util.ObjectUtil; -import cn.hutool.json.JSONUtil; import io.swagger.annotations.ApiModelProperty; @@ -42,6 +41,8 @@ //private List<DataPoint> points = null; private List<String> points = new ArrayList<>(); + + private List<DataPoint> dpList = new ArrayList<>(); public WorkstationDatapointsVO(long workstationId, String appId,String dpConfig) { super(); @@ -60,13 +61,18 @@ points = new ArrayList<>(); JSONObject ptObj; + String dpName; for(int i=0;i<ptArr.size();i++) { ptObj = ptArr.getJSONObject(i); - //DataPoint dp = new DataPoint(); - //dp.setDpName(ptObj.getString("dpName")); + dpName = ptObj.getString("dpName"); + points.add(dpName); - points.add(ptObj.getString("dpName")); + DataPoint dp = new DataPoint(); + dp.setDpName(dpName); + dp.setRuleContent(ptObj.getString("ruleContent")); + dpList.add(dp); + } } @@ -108,28 +114,51 @@ * @param dpName * @return */ - public boolean containsDataPoint(String dpName) { + public boolean containsDataPointOld(String dpName) { if(ObjectUtil.isEmpty(points)) { return false; } return points.contains(dpName); - /* - for(String dpn : points) { - if(StringUtils.equals(dpn, dpName)) { - return true; + + } + + public boolean containsDataPoint(String receiveDpName) { + if(ObjectUtil.isEmpty(dpList)) { + return false; + } + if(receiveDpName.startsWith("DeviceStatus")) { + System.out.println("recname="+receiveDpName); + } + for(DataPoint dp : dpList) { + //鏃犺绠楄鍒欙紝鐩存帴鏁版嵁鐐瑰悕绉板尮閰� + if(!dp.hasRuleContent()){ + if(StringUtils.equals(dp.getDpName(), receiveDpName)){ + return true; + } + + }else { + //鏈夎绠楄鍒欙紝鐢ㄦ暟鎹偣鍚嶇О_n鍖归厤 + if(StringUtils.equals(dp.getDpName()+"_n", receiveDpName)) { + return true; + } } } return false; - */ + } - - } -/* -class DataPoint{ - private String dpName; +class DataPoint implements Serializable{ + private String dpName; + private String ruleContent; + + /** + * 鏁版嵁鐐规槸鍚﹀寘鍚绠楄鍒� + */ + public boolean hasRuleContent() { + return StringUtils.isNotBlank(StringUtils.trim(ruleContent)); + } public String getDpName() { return dpName; } @@ -137,7 +166,19 @@ public void setDpName(String dpName) { this.dpName = dpName; } + + public String getRuleContent() { + return ruleContent; + } + + public void setRuleContent(String ruleContent) { + this.ruleContent = ruleContent; + } + @Override + public String toString() { + return "DataPoint [dpName=" + dpName + ", ruleContent=" + ruleContent + "]"; + } } -*/ + diff --git a/collect/src/main/resources/application-dev.yml b/collect/src/main/resources/application-dev.yml index d47b0e7..a824160 100644 --- a/collect/src/main/resources/application-dev.yml +++ b/collect/src/main/resources/application-dev.yml @@ -27,7 +27,7 @@ # mysql datasource: type: mysql - url: jdbc:mysql://120.46.212.231:3306/smart_boot?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true + url: jdbc:mysql://120.46.212.231:3306/smartman?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true port: 3306 username: qwmdc password: Kknd_1234 -- Gitblit v1.9.3