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; /** *

* 雷达数据接收管理 服务实现类 *

* * @author sunjiawei * @since 2025-05-21 */ @Service public class ReceiveSlmInfoServiceImpl extends ServiceImpl implements ReceiveSlmInfoService { @Resource private RedisTemplate redisTemplate; @Resource private ReceiveSlmValueService receiveSlmValueService; @Override public void saveData(List 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() {{ // 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()); // } } }