package com.ruoyi.fuzhou.service.impl;
|
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.ruoyi.fuzhou.domain.*;
|
import com.ruoyi.fuzhou.mapper.ReceiveSlmInfoMapper;
|
import com.ruoyi.fuzhou.service.ReceiveSlmInfoService;
|
import com.ruoyi.fuzhou.service.ReceiveSlmValueService;
|
import com.ruoyi.fuzhou.service.ReceiveWeatherValueService;
|
import com.ruoyi.fuzhou.utils.ModbusSlmServerUtils;
|
import com.ruoyi.fuzhou.utils.ModbusWeatherServerUtils;
|
import jakarta.annotation.Resource;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.stereotype.Service;
|
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* <p>
|
* 雷达数据接收管理 服务实现类
|
* </p>
|
*
|
* @author sunjiawei
|
* @since 2025-05-21
|
*/
|
@Service
|
public class ReceiveSlmInfoServiceImpl extends ServiceImpl<ReceiveSlmInfoMapper, ReceiveSlmInfo> implements ReceiveSlmInfoService {
|
@Resource
|
private RedisTemplate redisTemplate;
|
|
@Resource
|
private ReceiveSlmValueService receiveSlmValueService;
|
|
@Override
|
public void saveData(List<ReceiveSlmInfo> list, DpEquipment info) {
|
JSONObject jsonObject = ModbusSlmServerUtils.getValue(list.get(0).getIp(), list.get(0).getPort(), list);
|
// JSONObject jsonObject = ModbusWeatherServerUtils.getValueTest(list.get(0).getIp(), list.get(0).getPort(), list);
|
if (jsonObject != null && jsonObject.size() > 0) {
|
ReceiveSlmValue receiveSlmValue = JSON.toJavaObject(jsonObject, ReceiveSlmValue.class);
|
receiveSlmValue.setCreateTime(new Date());
|
receiveSlmValue.setDeviceName(list.get(0).getDeviceName());
|
|
// if (Math.abs(Double.valueOf(receiveWeatherValue.getOilTimeFlow())) > 0) {
|
// redisTemplate.opsForValue().set("VALUE@" + receiveWeatherValue.getDeviceName(), receiveWeatherValue.getOilTimeFlow(), 30, TimeUnit.MINUTES);
|
// receiveWeatherValueService.save(receiveWeatherValue);
|
// } else {
|
// Object obj = redisTemplate.opsForValue().get("VALUE@" + receiveOilValue.getDeviceName());
|
// if (obj == null) {
|
// redisTemplate.opsForValue().set("VALUE@" + receiveOilValue.getDeviceName(), receiveOilValue.getOilTimeFlow(), 30, TimeUnit.MINUTES);
|
// receiveWeatherValueService.save(receiveOilValue);
|
// } else if (!obj.toString().equals(receiveOilValue.getOilTimeFlow())) {
|
// redisTemplate.opsForValue().set("VALUE@" + receiveOilValue.getDeviceName(), receiveOilValue.getOilTimeFlow(), 30, TimeUnit.MINUTES);
|
// receiveWeatherValueService.save(receiveOilValue);
|
// }
|
// }
|
receiveSlmValueService.save(receiveSlmValue);
|
}
|
//制造socket数据
|
// JSONArray header = new JSONArray();
|
// list.forEach(item -> {
|
// JSONObject head = new JSONObject();
|
// head.put("param", item.getParam());
|
// head.put("paramCode", item.getParamCode());
|
// head.put("unit", item.getUnit());
|
// header.add(head);
|
// });
|
// ReceiveOilValue receiveOilValue = receiveOilValueService.getOne(new LambdaQueryWrapper<ReceiveOilValue>() {{
|
// or().eq(ReceiveOilValue::getDeviceName, list.get(0).getDeviceName()).orderByDesc(ReceiveOilValue::getCreateTime).last("limit 1");
|
// }});
|
// if (receiveOilValue != null) {
|
// JSONObject object = new JSONObject();
|
// object.put("header", header);
|
// object.put("body", JSONObject.parseObject(JSON.toJSONString(receiveOilValue)));
|
// object.put("info", JSONObject.parseObject(JSON.toJSONString(info)));
|
// object.put("status", "1");
|
//// WebSocketOilServer.sendAllMessage(object.toJSONString());
|
// }
|
}
|
}
|