|
...
|
...
|
@@ -27,53 +27,53 @@ public class ReadReqTopic implements BusinessAgreement<ReadReqDto> { |
|
|
|
@Autowired
|
|
|
|
private ClienNoticeService clienNoticeService; //客户端通知服务
|
|
|
|
@Autowired
|
|
|
|
private BusinessDataUpdateService businessDataUpdateService ;
|
|
|
|
private TerminalDataThingsModeService terminalDataThingsModeService;
|
|
|
|
|
|
|
|
@Override
|
|
|
|
public ServerDto analysis(Topic topic, ReadReqDto data) {
|
|
|
|
if(1==data.getCode())
|
|
|
|
{
|
|
|
|
// JSONObject vjsonObject = data.getData().clone();
|
|
|
|
businessDataUpdateService.updataDta(BusinessDataUpdateService.Type.ADD,topic,true,data);
|
|
|
|
JSONObject vjsonObject = data.getData().clone();
|
|
|
|
// businessDataUpdateService.updataDta(BusinessDataUpdateService.Type.ADD,topic,true,data);
|
|
|
|
|
|
|
|
// if(null != vjsonObject && vjsonObject.size() !=0 )
|
|
|
|
// {
|
|
|
|
// for(String vkey:vjsonObject.keySet())
|
|
|
|
// {
|
|
|
|
// JSONObject jsData = vjsonObject.getJSONObject(vkey);
|
|
|
|
// for(String key:jsData.keySet())
|
|
|
|
// {
|
|
|
|
// IotThingsModel thingsModel = terminalDataThingsModeService.getIotThingsModel(topic.getUsername(),key);
|
|
|
|
// if(null == thingsModel) //没有配置的 都按字符串处理
|
|
|
|
// {
|
|
|
|
// thingsModel = new IotThingsModel();
|
|
|
|
// thingsModel.setData_type(ThingsModelDataTypeEnum.STRING.name());
|
|
|
|
// thingsModel.setIdentifier(key);
|
|
|
|
// thingsModel.setModel_name(key);
|
|
|
|
// thingsModel.setIs_top(0);
|
|
|
|
// thingsModel.setIs_monitor(0);
|
|
|
|
// thingsModel.setIs_save_log(0);
|
|
|
|
// thingsModel.setIs_config(0);
|
|
|
|
// JSONObject jsonObject = new JSONObject();
|
|
|
|
// jsonObject.put("maxLength",255);
|
|
|
|
// thingsModel.setSpecs(jsonObject.toString());
|
|
|
|
// }
|
|
|
|
// String data_type = thingsModel.getData_type().toUpperCase();
|
|
|
|
// if(!EnumUtils.isValidEnum(ThingsModelDataTypeEnum.class,data_type))
|
|
|
|
// {
|
|
|
|
// data_type = ThingsModelDataTypeEnum.STRING.name();
|
|
|
|
// }
|
|
|
|
// Class<ThingsModelBase> aClass = Enum.valueOf(ThingsModelDataTypeEnum.class,data_type).getaClass();
|
|
|
|
// ThingsModelBase thingsModelBase = JSON.parseObject(thingsModel.getSpecs(),aClass);
|
|
|
|
// thingsModelBase.conversionThingsModel(thingsModel);
|
|
|
|
//
|
|
|
|
// thingsModelBase.addValue(jsData.get(key));
|
|
|
|
// jsData.put(key,thingsModelBase);
|
|
|
|
// }
|
|
|
|
// vjsonObject.put(vkey,jsData);
|
|
|
|
// }
|
|
|
|
// data.setData(vjsonObject);
|
|
|
|
// }
|
|
|
|
if(null != vjsonObject && vjsonObject.size() !=0 )
|
|
|
|
{
|
|
|
|
for(String vkey:vjsonObject.keySet())
|
|
|
|
{
|
|
|
|
JSONObject jsData = vjsonObject.getJSONObject(vkey);
|
|
|
|
for(String key:jsData.keySet())
|
|
|
|
{
|
|
|
|
IotThingsModel thingsModel = terminalDataThingsModeService.getIotThingsModel(topic.getUsername(),key);
|
|
|
|
if(null == thingsModel) //没有配置的 都按字符串处理
|
|
|
|
{
|
|
|
|
thingsModel = new IotThingsModel();
|
|
|
|
thingsModel.setData_type(ThingsModelDataTypeEnum.STRING.name());
|
|
|
|
thingsModel.setIdentifier(key);
|
|
|
|
thingsModel.setModel_name(key);
|
|
|
|
thingsModel.setIs_top(0);
|
|
|
|
thingsModel.setIs_monitor(0);
|
|
|
|
thingsModel.setIs_save_log(0);
|
|
|
|
thingsModel.setIs_config(0);
|
|
|
|
JSONObject jsonObject = new JSONObject();
|
|
|
|
jsonObject.put("maxLength",255);
|
|
|
|
thingsModel.setSpecs(jsonObject.toString());
|
|
|
|
}
|
|
|
|
String data_type = thingsModel.getData_type().toUpperCase();
|
|
|
|
if(!EnumUtils.isValidEnum(ThingsModelDataTypeEnum.class,data_type))
|
|
|
|
{
|
|
|
|
data_type = ThingsModelDataTypeEnum.STRING.name();
|
|
|
|
}
|
|
|
|
Class<ThingsModelBase> aClass = Enum.valueOf(ThingsModelDataTypeEnum.class,data_type).getaClass();
|
|
|
|
ThingsModelBase thingsModelBase = JSON.parseObject(thingsModel.getSpecs(),aClass);
|
|
|
|
thingsModelBase.conversionThingsModel(thingsModel);
|
|
|
|
|
|
|
|
thingsModelBase.addValue(jsData.get(key));
|
|
|
|
jsData.put(key,thingsModelBase);
|
|
|
|
}
|
|
|
|
vjsonObject.put(vkey,jsData);
|
|
|
|
}
|
|
|
|
data.setData(vjsonObject);
|
|
|
|
}
|
|
|
|
clienNoticeService.replySendMessage(topic, message -> {
|
|
|
|
if(null != data.getData())
|
|
|
|
{
|
...
|
...
|
|