From 16f093ea132a823e255f446c225ce6b63fdb9eeb Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 24 十月 2024 10:15:46 +0800
Subject: [PATCH] appId映射修改

---
 collect/src/main/java/com/qianwen/mdc/collect/service/IOTMqttReceiveService.java |   63 +++++++++++++++++++++++--------
 1 files changed, 46 insertions(+), 17 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 9937d15..3246a2f 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
@@ -2,9 +2,9 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Optional;
 import java.util.Set;
 
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -15,6 +15,7 @@
 import com.qianwen.mdc.collect.domain.TelemetryData;
 import com.qianwen.mdc.collect.domain.TelemetryDataItem;
 import com.qianwen.mdc.collect.utils.redis.RedisUtil;
+import com.qianwen.mdc.collect.vo.WorkstationDatapointsVO;
 
 @Service
 public class IOTMqttReceiveService {
@@ -25,14 +26,15 @@
 	@Autowired
 	private PackedDataService packedDataService;
 	@Autowired
-	private  RedisUtil redisUtil;
+	private RedisUtil redisUtil;
+	@Autowired
+    private WorkstationDatapointsService dpService;
 	/**
-	 * 澶勭悊鏀跺埌鐨勬秷鎭�
+	 * 澶勭悊鏀跺埌鐨勬秷鎭�,瀵瑰簲TelemetryDataPostingConsumer
 	 * @param payload
 	 */
 	public void handle(String payload) {
-        //System.out.println("Received message122: " + payload);
-        //瑙f瀽娑堟伅鏈�
+        //瑙f瀽娑堟伅
         List<TelemetryData> teleList = parsePayload(payload);
         
         collectDataService.handleCollectData(teleList);
@@ -47,20 +49,32 @@
 	 */
 	List<TelemetryData> parsePayload(String payload){
 		List<TelemetryData> dtList = new ArrayList<TelemetryData> ();
-		//鏁版嵁鏍煎紡锛歿"174":[{"values":{"d1":12},"ts":"1721978780449"}]} 174鏄簲鐢╥d
-    	//澶氭潯鏍煎紡锛歿"174":[{"values":{"output":11},"ts":"1722478128278"},{"values":{"spindleSpeed":22},"ts":"1722478128281"}]}
+    	//澶氭潯 鏁版嵁鏍煎紡锛歿"174":[{"values":{"output":11},"ts":"1722478128278"},{"values":{"spindleSpeed":22},"ts":"1722478128281"}]}   174鏄簲鐢╥d
 		//瑙f瀽娑堟伅 name,value褰㈠紡锛屽n=output,v=11
         JSONObject jsonObj = JSONObject.parseObject(payload);
         
         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锛屾湰搴旂敤涓簲璇ョ敤琛ㄥ幓瀵瑰簲
-        	long workstationId = getWorkstationIdByAppId(appId);
+        	
+        	
+        	//TODO 鑾峰彇宸ヤ綅鏁版嵁鐐归厤缃�,鍙繚瀛橀厤缃ソ鐨勬暟鎹偣锛屾病鏈夐厤缃殑閲囬泦鏁版嵁鎶涘純銆�
+        	final WorkstationDatapointsVO dpVo = dpService.getDatapointsByAppIdFromCache(appId);
+        	if(dpVo == null) {
+        		//宸ヤ綅娌℃湁瀹氫箟杩囨暟鎹偣鎴栬�卆ppId涓嶅尮閰�
+        		log.warn("appId={}鏈壘鍒版暟鎹偣瀹氫箟璁板綍锛屼涪寮冩暟鎹�",appId);
+        		continue;
+        	}
         	
         	TelemetryData tdata = new TelemetryData();
-        	tdata.setWorkstationId(workstationId);
+        	//tdata.setWorkstationId(workstationId);
+        	tdata.setAppId(appId);
+        	tdata.setWorkstationId(dpVo.getWorkstationId());
         	
         	JSONArray dtArr = jsonObj.getJSONArray(appId);
         	for(int i=0;i<dtArr.size();i++) {
@@ -74,7 +88,15 @@
 	        	
 	        	Set<String> valueKeySet = values.keySet();
 	        	valueKeySet.forEach(valueKey ->{
-	        		tdataItem.addPoint(valueKey,values.getString(valueKey));
+	        		String oriValueKey = valueKey;;//鐢变簬浣跨敤璁$畻瑙勫垯鐨勯噰闆嗙偣鍚嶇О浼氬悗闈㈠鍔犱竴涓�"_n",鎵�浠ヨ繖涓猳riValueKey浠h〃娌℃湁澧炲姞"_n"鐨�
+	        		if(StringUtils.endsWith(valueKey, NEWDP_SUFFIX)) {
+	        			oriValueKey = StringUtils.removeEnd(valueKey, NEWDP_SUFFIX);
+	        		}
+	        		if(!dpVo.containsDataPoint(oriValueKey)) {
+	    				//濡傛灉涓嶅瓨鍦ㄨ鏁版嵁鐐归厤缃紝璇ユ暟鎹洿鎺ュ拷鐣�
+	    				return;
+	    			}
+	        		tdataItem.addPoint(oriValueKey,values.getString(valueKey));//浣跨敤鍘熷閰嶇疆鐐逛繚鎸佷繚瀛樻暟鎹�
 	        	});
 	        	
 	        	tdata.addItem(tdataItem);
@@ -86,14 +108,21 @@
         return dtList;
 	}
 	
-	public long getWorkstationIdByAppId(String appId) {
-		/**
-		 * 1656818952295661569 461
-1656819188967653378  462
-		 */
+	/**
+	 * 鏍规嵁瀵瑰簲琛ㄧ紦瀛橈紝鑾峰彇appId瀵瑰簲鐨刬d
+	 * @param appId
+	 * @return
+	 */
+	/*
+	public Long getWorkstationIdByAppId(String appId) {
+
 		Object wid = redisUtil.hget("workstation-appid-map", appId);
-		String workstationId = String.valueOf(Optional.ofNullable(wid).orElse("-1"));
-	
+		
+		String workstationId = String.valueOf(Optional.ofNullable(wid).orElse(StringUtils.EMPTY));
+		if(ObjectUtil.isEmpty(workstationId)) {
+			return null;
+		}
 		return Long.parseLong(workstationId);
 	}
+	*/
 }

--
Gitblit v1.9.3