diff --git a/src/main/java/com/zhgd/xmgl/async/AsyncEnvironment.java b/src/main/java/com/zhgd/xmgl/async/AsyncEnvironment.java index 44aafb3af..141fa4c47 100644 --- a/src/main/java/com/zhgd/xmgl/async/AsyncEnvironment.java +++ b/src/main/java/com/zhgd/xmgl/async/AsyncEnvironment.java @@ -1,15 +1,18 @@ package com.zhgd.xmgl.async; +import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.zhgd.xmgl.constant.Cts; +import com.zhgd.xmgl.modules.basicdata.entity.ThirdPartyPlatformService; +import com.zhgd.xmgl.modules.basicdata.mapper.ThirdPartyPlatformServiceMapper; import com.zhgd.xmgl.modules.environment.entity.DustNoiseData; import com.zhgd.xmgl.modules.environment.entity.EnvironmentDev; import com.zhgd.xmgl.modules.project.entity.ProjectUfaceConfig; -import com.zhgd.xmgl.modules.basicdata.entity.ThirdPartyPlatformService; import com.zhgd.xmgl.modules.project.mapper.ProjectUfaceConfigMapper; -import com.zhgd.xmgl.modules.basicdata.mapper.ThirdPartyPlatformServiceMapper; import com.zhgd.xmgl.util.EnvironmentUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; @@ -31,6 +34,10 @@ import java.util.Map; @Component public class AsyncEnvironment { public static final String ZERO = "0"; + @Value("${govt.host:}") + public String govtHost; + @Value("${isSendJihe:}") + public String isSendJihe; @Autowired private ProjectUfaceConfigMapper projectUfaceConfigMapper; @Autowired @@ -38,11 +45,9 @@ public class AsyncEnvironment { @Autowired private EnvironmentUtil environmentUtil; - @Value("${govt.host:}") - public String govtHost; - /** * 转发扬尘实时数据 + * * @param dustNoiseData * @param environmentDev */ @@ -70,18 +75,18 @@ public class AsyncEnvironment { //} //} } else { - QueryWrapper queryWrapper =new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, environmentDev.getProjectSn()); - ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigMapper.selectOne(queryWrapper); - if(tempProjectUfaceConfig!=null&& StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing())&&!ZERO.equals(tempProjectUfaceConfig.getHousing())) { + ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper); + if (tempProjectUfaceConfig != null && StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing()) && !ZERO.equals(tempProjectUfaceConfig.getHousing())) { String[] arr = tempProjectUfaceConfig.getHousing().split(Cts.COMMA); - Map data=new HashMap<>(16); - data.put("projectSn",environmentDev.getProjectSn()); - data.put("environmentDev",environmentDev); - data.put("dustNoiseData",dustNoiseData); + Map data = new HashMap<>(16); + data.put("projectSn", environmentDev.getProjectSn()); + data.put("environmentDev", environmentDev); + data.put("dustNoiseData", dustNoiseData); for (String housingId : arr) { ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId); - if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl())&&dictionariesRecord.getEnvironmentSystem()==1) { + if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl()) && dictionariesRecord.getEnvironmentSystem() == 1) { log.info("-----开始执行扬尘实时数据下发----" + dictionariesRecord.getServiceName()); String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/saveDustNoiseData", JSONUtil.toJsonStr(data)); log.info("-----下发执行扬尘实时数据结果----" + result); @@ -90,51 +95,99 @@ public class AsyncEnvironment { } } } - }catch (Exception e){ + } catch (Exception e) { log.error("error:", e); } } /** * 转发设备数据 + * * @param environmentDev */ @Async("environmentNoiseDataExecutor") public void saveEnvironmentDev(EnvironmentDev environmentDev) { try { - QueryWrapper queryWrapper =new QueryWrapper<>(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, environmentDev.getProjectSn()); - ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigMapper.selectOne(queryWrapper); - if(tempProjectUfaceConfig!=null&& StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing())&&!ZERO.equals(tempProjectUfaceConfig.getHousing())) { + ProjectUfaceConfig tempProjectUfaceConfig = projectUfaceConfigMapper.selectOne(queryWrapper); + if (tempProjectUfaceConfig != null && StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing()) && !ZERO.equals(tempProjectUfaceConfig.getHousing())) { String[] arr = tempProjectUfaceConfig.getHousing().split(Cts.COMMA); - Map data=new HashMap<>(16); - data.put("projectSn",environmentDev.getProjectSn()); - data.put("environmentDev",environmentDev); + Map data = new HashMap<>(16); + data.put("projectSn", environmentDev.getProjectSn()); + data.put("environmentDev", environmentDev); for (String housingId : arr) { ThirdPartyPlatformService dictionariesRecord = thirdPartyPlatformServiceMapper.selectById(housingId); - if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl())&&dictionariesRecord.getEnvironmentSystem()==1) { + if (dictionariesRecord != null && StringUtils.isNotEmpty(dictionariesRecord.getServiceUrl()) && dictionariesRecord.getEnvironmentSystem() == 1) { log.info("-----开始执行扬尘设备数据下发----" + dictionariesRecord.getServiceName()); String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/saveEnvironmentDev", JSONUtil.toJsonStr(data)); log.info("-----下发执行扬尘设备数据结果----" + result); } } } - }catch (Exception e){ + } catch (Exception e) { log.error("error:", e); } } /** * 转发分析视频数据 + * * @param videoAnalysisUrl * @param data */ @Async("environmentNoiseDataExecutor") - public void sendVideoAnalysisData(String videoAnalysisUrl, Map data) { + public void sendVideoAnalysisData(String videoAnalysisUrl, Map data) { try { HttpUtil.post(videoAnalysisUrl, JSONUtil.toJsonStr(data)); - }catch (Exception e){ + } catch (Exception e) { log.error("error:", e); } } + + /** + * 发送扬尘数据到机荷 + * + * @param dustNoiseData + * @param environmentDev + */ + @Async("environmentNoiseDataExecutor") + public void sendJiheEnvironmentNoiseData(DustNoiseData dustNoiseData, EnvironmentDev environmentDev) { + String url = "http://jh-smartcs.sgsjs.work/api/mdmanage/open/apireceivedata"; + // 1. 构建 JSON 请求体 + JSONObject requestBody = new JSONObject(); + JSONArray rowsArray = new JSONArray(); + + JSONObject rowData = new JSONObject(); + rowData.put("id", dustNoiseData.getId()); + rowData.put("deviceId", dustNoiseData.getDeviceId()); + rowData.put("audioDB", dustNoiseData.getNoise()); + rowData.put("humidity", dustNoiseData.getHumidity()); + rowData.put("pm10", dustNoiseData.getPm10()); // 注意这里是字符串,你可能需要根据实际需求调整格式或类型 + rowData.put("pm25", dustNoiseData.getPm25()); + rowData.put("windspeed", dustNoiseData.getWindspeed()); + rowData.put("tsp", dustNoiseData.getTsp()); + + rowsArray.add(rowData); + requestBody.put("rows", rowsArray); + + // 将 JSON 对象转换为字符串,作为请求体 + String jsonBody = requestBody.toString(); + log.info("发送扬尘数据到机荷url:{},body:{}", url, jsonBody); + + // 2. 发送 POST 请求 + try { + String result = HttpRequest.post(url) + .header("systemCode", "sgsjh001") // 设置自定义请求头 systemCode + .header("modelCode", "hjjcy") // 设置自定义请求头 modelCode + .header("Content-Type", "application/json") // 设置 Content-Type + .body(jsonBody) // 设置请求体 + .execute() // 执行请求 + .body(); // 获取响应体 + + log.info("发送扬尘数据到机荷请求结果:{}", result); + } catch (Exception e) { + log.error("发送扬尘数据到机荷异常:", e); + } + } } diff --git a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java index eac8fe5ae..907614b9f 100644 --- a/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/environment/service/impl/DustNoiseDataServiceImpl.java @@ -157,6 +157,8 @@ public class DustNoiseDataServiceImpl extends ServiceImpl