package com.zhgd.xmgl.async; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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 lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; /** * @program: wisdomSite * @description: 异步扬尘任务 * @author: Mr.Peng * @create: 2021-07-08 18:27 **/ @Slf4j @Component public class AsyncEnvironment { @Autowired private ProjectUfaceConfigMapper projectUfaceConfigMapper; @Autowired private ThirdPartyPlatformServiceMapper thirdPartyPlatformServiceMapper; /** * 转发扬尘实时数据 * @param dustNoiseData * @param environmentDev */ @Async("environmentNoiseDataExecutor") public void sendEnvironmentNoiseData(DustNoiseData dustNoiseData, EnvironmentDev environmentDev) { try { QueryWrapper queryWrapper =new QueryWrapper<>(); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, environmentDev.getProjectSn()); ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigMapper.selectOne(queryWrapper); if(tempProjectUfaceConfig!=null&& StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing())&&!"0".equals(tempProjectUfaceConfig.getHousing())) { String[] arr = tempProjectUfaceConfig.getHousing().split(","); Map data=new HashMap<>(); 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) { log.info("-----开始执行扬尘实时数据下发----" + dictionariesRecord.getServiceName()); String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/saveDustNoiseData", JSONUtil.toJsonStr(data)); log.info("-----下发执行扬尘实时数据结果----" + result); //saveExecuteRecord(workerInfo, result, dictionariesRecord.getServiceName(), "人员", 1); } } } }catch (Exception e){ e.printStackTrace(); } } /** * 转发设备数据 * @param environmentDev */ @Async("environmentNoiseDataExecutor") public void saveEnvironmentDev(EnvironmentDev environmentDev) { try { QueryWrapper queryWrapper =new QueryWrapper<>(); queryWrapper.lambda().eq(ProjectUfaceConfig::getProjectSn, environmentDev.getProjectSn()); ProjectUfaceConfig tempProjectUfaceConfig=projectUfaceConfigMapper.selectOne(queryWrapper); if(tempProjectUfaceConfig!=null&& StringUtils.isNotEmpty(tempProjectUfaceConfig.getHousing())&&!"0".equals(tempProjectUfaceConfig.getHousing())) { String[] arr = tempProjectUfaceConfig.getHousing().split(","); Map data=new HashMap<>(); 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) { log.info("-----开始执行扬尘设备数据下发----" + dictionariesRecord.getServiceName()); String result = HttpUtil.post(dictionariesRecord.getServiceUrl() + "/saveEnvironmentDev", JSONUtil.toJsonStr(data)); log.info("-----下发执行扬尘设备数据结果----" + result); } } } }catch (Exception e){ e.printStackTrace(); } } /** * 转发分析视频数据 * @param videoAnalysisUrl * @param data */ @Async("environmentNoiseDataExecutor") public void sendVideoAnalysisData(String videoAnalysisUrl, Map data) { try { HttpUtil.post(videoAnalysisUrl, JSONUtil.toJsonStr(data)); }catch (Exception e){ e.printStackTrace(); } } }