package com.ycl.smoke.task; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ycl.smoke.dto.EventAddParamDto; import com.ycl.smoke.dto.EventAddResponseDto; import com.ycl.smoke.dto.ResultResponseDto; import com.ycl.smoke.entity.BaseCase; import com.ycl.smoke.entity.VideoAlarmReport; import com.ycl.smoke.entity.Violations; import com.ycl.smoke.mapper.BaseCaseMapper; import com.ycl.smoke.mapper.VideoAlarmReportMapper; import com.ycl.smoke.mapper.ViolationsMapper; import com.ycl.smoke.service.CityPlatformService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import javax.annotation.Resource; import java.util.List; @Component public class CityUploadTask { @Resource BaseCaseMapper baseCaseMapper; @Resource ViolationsMapper violationsMapper; @Resource VideoAlarmReportMapper videoAlarmReportMapper; @Autowired CityPlatformService cityPlatformService; @Scheduled(cron = "0 */5 * * * ?") // 每5分钟执行 public void upload() { QueryWrapper wrapperWc = new QueryWrapper<>(); wrapperWc.lambda().eq(BaseCase::getState, 10); List baseCases = baseCaseMapper.selectList(wrapperWc); baseCases.forEach(o -> { Violations violations = violationsMapper.selectById(o.getId()); String medias = ""; String eventDesc = ""; if (violations != null) { eventDesc = violations.getDescription(); VideoAlarmReport videoAlarmReport = videoAlarmReportMapper.selectById(violations.getVideoAlarmReportId()); if (videoAlarmReport != null) { StringBuilder stringBuilder = new StringBuilder().append("[{'mediaURL':'").append(videoAlarmReport.getPicData()).append(videoAlarmReport.getPicData()).append("'}]"); medias = stringBuilder.toString(); } } EventAddParamDto dto = EventAddParamDto.builder().y84(o.getLatitude() != null ? o.getLatitude().toString() : "") .x84(o.getLongitude() != null ? o.getLongitude().toString() : "") .source(11).address(o.getSite()).eventDesc(eventDesc).eventSign(o.getCode()) .medias(medias).build(); String msg = cityPlatformService.addEvent(dto); ResultResponseDto result = JSONObject.parseObject(msg, ResultResponseDto.class); System.out.println("--" + result.toString()); if (result.getCode() == 0) { try { // EventAddResponseDto responseDto = JSONObject.parseObject(result.getResult(), EventAddResponseDto.class); // o.setTaskCode(responseDto.getTaskcode()); o.setTaskCode(result.getResult()); o.setState(2); baseCaseMapper.updateById(o); // System.out.println("--更新成功"); } catch (Exception ex) { System.out.println("--" + ex.getMessage()); } } }); } }