yangys
2024-10-09 7ef593e1e3c35aaeecf9318f0b3941230d3ed002
collect/src/main/java/com/qianwen/mdc/collect/service/IOTMqttReceiveService.java
@@ -5,6 +5,7 @@
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;
@@ -55,12 +56,14 @@
        Set<String> keySet = jsonObj.keySet();
        String[] keys = keySet.toArray(new String[] {});
        
        final String NEWDP_SUFFIX = "_n";//计算规则使用之后新数据点的结尾
        for(String key : keys) {
           String appId = key;//iot系统中的应用id,本应用中应该用表去对应
           long workstationId = getWorkstationIdByAppId(appId);
           
           TelemetryData tdata = new TelemetryData();
           tdata.setWorkstationId(workstationId);
           
           JSONArray dtArr = jsonObj.getJSONArray(appId);
           for(int i=0;i<dtArr.size();i++) {
@@ -74,7 +77,11 @@
              
              Set<String> valueKeySet = values.keySet();
              valueKeySet.forEach(valueKey ->{
                 tdataItem.addPoint(valueKey,values.getString(valueKey));
                 String oriValueKey = valueKey;;//由于使用计算规则的采集点名称会后面增加一个"_n",所以这个oriValueKey代表没有增加"_n"的
                 if(StringUtils.endsWith(valueKey, NEWDP_SUFFIX)) {
                    oriValueKey = StringUtils.removeEnd(valueKey, NEWDP_SUFFIX);
                 }
                 tdataItem.addPoint(oriValueKey,values.getString(valueKey));//使用原始配置点保持保存数据
              });
              
              tdata.addItem(tdataItem);