| | |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.core.io.ByteArrayResource; |
| | | import org.springframework.http.*; |
| | | import org.springframework.http.client.SimpleClientHttpRequestFactory; |
| | | import org.springframework.mock.web.MockMultipartFile; |
| | | import org.springframework.scheduling.annotation.Scheduled; |
| | | import org.springframework.stereotype.Component; |
| | |
| | | private PatchesConfigPojo patchesConfigPojo; |
| | | @Autowired |
| | | public IWaylineFileService waylineFileService; |
| | | @Autowired |
| | | private IFileMapper fileMapper; |
| | | |
| | | @Autowired |
| | | private ITbFJService tbFJService; |
| | | @Autowired |
| | |
| | | //根据获取的图斑集合获得kmz航线文件 |
| | | MultipartFile multipartFile = null; |
| | | try { |
| | | multipartFile = getFile(waylineName, list); |
| | | multipartFile = getFile(waylineName, list,28.62452712442823, 115.85666327144976); |
| | | } catch (IOException e) { |
| | | throw new RuntimeException(e); |
| | | } |
| | |
| | | String times = convertTimestampToFormattedString(time); |
| | | sendPostWithParameters(waylineName, waylineFile.getWaylineId(), times, lists1, listOfLists); |
| | | updatePatchesStatu(list); |
| | | time = addOneHourToTimestamp(time); |
| | | time = addOneHourToTimestamp(time, 1, 0); |
| | | } |
| | | |
| | | } |
| | | |
| | | @Scheduled(cron = "0 0 0 * * ?") |
| | | @Scheduled(cron = "0 1 0 * * ?") |
| | | public void myTask2() { |
| | | ExecutorService executor = Executors.newSingleThreadExecutor(); |
| | | executor.execute(() -> { |
| | |
| | | executor.shutdown(); |
| | | } |
| | | |
| | | public void myTask3() throws SQLException { |
| | | String workspaceId = "4a574db8-4ad3-48f7-9f16-3edbcd8056e1"; |
| | | String name = getNowDay(); |
| | | List<String> jobs = waylineJobService.selectJobIdByName(name); |
| | | List<String> jobIds = jobBreakPointService.selectHaveBreak(jobs); |
| | | for (String jobid : jobIds) { |
| | | Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobId(workspaceId, jobid, true); |
| | | waylineJobService.publishOneFlightTask(waylineJobDTO.get()); |
| | | } |
| | | } |
| | | @Scheduled(cron = "0 0 0 * * ?") |
| | | // public void myTask3() throws SQLException { |
| | | // String workspaceId = "4a574db8-4ad3-48f7-9f16-3edbcd8056e1"; |
| | | // String name = getNowDay(); |
| | | // List<String> jobs = waylineJobService.selectJobIdByName(name); |
| | | // List<String> jobIds = jobBreakPointService.selectHaveBreak(jobs); |
| | | // for (String jobid : jobIds) { |
| | | // Optional<WaylineJobDTO> waylineJobDTO = waylineJobService.getJobByJobId(workspaceId, jobid, true); |
| | | // waylineJobService.publishOneFlightTask(waylineJobDTO.get()); |
| | | // } |
| | | // } |
| | | @Scheduled(cron = "0 0 1 * * ?") |
| | | public void mytask4() throws IOException { |
| | | Long time = getCurrentTimestampPlus8Hours(8); |
| | | List<List<Long>> listOfLists = new ArrayList<>(); |
| | | List<Long> sublist = new ArrayList<>(); |
| | | sublist.add(time); // 添加整数值 |
| | | listOfLists.add(sublist); |
| | | List<Long> lists1 = new ArrayList<>(); |
| | | lists1.add(time); |
| | | String times = convertTimestampToFormattedString(time); |
| | | sendPostWithParameters("别墅巡查一段", "2a44748a-1500-406f-80cf-ad92186fe8d2", times, lists1, listOfLists); |
| | | } |
| | | |
| | | @Scheduled(cron = "0 50 0 * * ?") |
| | | public void mytask5() throws IOException { |
| | | Long time = getCurrentTimestampPlus8Hours(9); |
| | | List<List<Long>> listOfLists = new ArrayList<>(); |
| | | List<Long> sublist = new ArrayList<>(); |
| | |
| | | List<Long> lists1 = new ArrayList<>(); |
| | | lists1.add(time); |
| | | String times = convertTimestampToFormattedString(time); |
| | | sendPostWithParameters("九洲巡查","73e14492-f1b2-4fc4-81c0-7ca65cd3bc56", times, lists1, listOfLists); |
| | | sendPostWithParameters("别墅巡查二段", "a07229af-471a-4058-9da6-5a2b84308b9e", times, lists1, listOfLists); |
| | | } |
| | | |
| | | @Scheduled(cron = "0 40 1 * * ?") |
| | | public void mytask6() throws IOException { |
| | | Long time = getCurrentTimestampPlus8Hours(9); |
| | | List<List<Long>> listOfLists = new ArrayList<>(); |
| | | List<Long> sublist = new ArrayList<>(); |
| | | sublist.add(time); // 添加整数值 |
| | | listOfLists.add(sublist); |
| | | List<Long> lists1 = new ArrayList<>(); |
| | | lists1.add(time); |
| | | String times = convertTimestampToFormattedString(time); |
| | | sendPostWithParameters("九洲巡河一段", "9f471686-a73a-4e90-8f37-92eed8ed5929", times, lists1, listOfLists); |
| | | } |
| | | |
| | | @Scheduled(cron = "0 40 2 * * ?") |
| | | public void mytask7() throws IOException { |
| | | Long time = getCurrentTimestampPlus8Hours(9); |
| | | List<List<Long>> listOfLists = new ArrayList<>(); |
| | | List<Long> sublist = new ArrayList<>(); |
| | | sublist.add(time); // 添加整数值 |
| | | listOfLists.add(sublist); |
| | | List<Long> lists1 = new ArrayList<>(); |
| | | lists1.add(time); |
| | | String times = convertTimestampToFormattedString(time); |
| | | sendPostWithParameters("九洲巡河二段", "58cd4261-02d7-4c4e-b876-25a4a2630c18", times, lists1, listOfLists); |
| | | } |
| | | |
| | | @Scheduled(cron = "0 30 2 * * ?") |
| | | public void mytask8() throws IOException { |
| | | Long time = getCurrentTimestampPlus8Hours(12); |
| | | List<List<Long>> listOfLists = new ArrayList<>(); |
| | | List<Long> sublist = new ArrayList<>(); |
| | | sublist.add(time); // 添加整数值 |
| | | listOfLists.add(sublist); |
| | | List<Long> lists1 = new ArrayList<>(); |
| | | lists1.add(time); |
| | | String times = convertTimestampToFormattedString(time); |
| | | sendPostWithParameters("定时任务2:30", "c3a7b125-bc0b-49d4-96ed-80743200ab80", times, lists1, listOfLists); |
| | | } |
| | | @Scheduled(cron = "0 30 2 * * ?") |
| | | public void mytask9() throws IOException { |
| | | Long time = getCurrentTimestampPlus8Hours(14); |
| | | List<List<Long>> listOfLists = new ArrayList<>(); |
| | | List<Long> sublist = new ArrayList<>(); |
| | | sublist.add(time); // 添加整数值 |
| | | listOfLists.add(sublist); |
| | | List<Long> lists1 = new ArrayList<>(); |
| | | lists1.add(time); |
| | | String times = convertTimestampToFormattedString(time); |
| | | sendPostWithParameters("定时任务4:30", "c3a7b125-bc0b-49d4-96ed-80743200ab80", times, lists1, listOfLists); |
| | | } |
| | | @Scheduled(cron = "0 0 6 * * ?") |
| | | public static void mytask10() { |
| | | File directory = new File("/tmp"); |
| | | String[] partialFileNames = {"temp", "mark"}; // 要匹配的部分文件名 |
| | | if (directory.isDirectory()) { |
| | | File[] files = directory.listFiles(); |
| | | if (files != null) { |
| | | for (File file : files) { |
| | | for (String partialFileName : partialFileNames) { |
| | | if (file.isFile() && file.getName().contains(partialFileName)) { |
| | | file.delete(); |
| | | break; // 跳出内层循环,以免重复删除同一个文件 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | /** |
| | | * 完成对未推送的图斑数据进行整合发送 |
| | | * |
| | |
| | | dbSave(territoryConfigPojo.getResult(), territoryConfigPojo.getResultsave(), taskId); |
| | | |
| | | //发送请求给第三方接口 |
| | | sendPostWithFileAndParameter(territoryConfigPojo.getResult(), taskId, dkbh, workspaceId); |
| | | sendPostWithFileAndParameter(territoryConfigPojo.getResult(), taskId); |
| | | |
| | | } |
| | | } |
| | |
| | | * @return |
| | | * @throws IOException |
| | | */ |
| | | public MultipartFile getFile(String waylineName, List<LotInfo> list) throws IOException { |
| | | List<PointPO> coordinates = GeoToolsUtil.getRoutePointOrder(list, 28.62452712442823, 115.85666327144976); |
| | | public MultipartFile getFile(String waylineName, List<LotInfo> list,double lat, double lon) throws IOException { |
| | | //南昌28.62452712442823, 115.85666327144976 瑞金 25.8917266,116.020940643 |
| | | List<PointPO> coordinates = GeoToolsUtil.getRoutePointOrder(list, lat, lon); |
| | | XMLTemplateModel xmlModel = XMLTemplateModel.init(coordinates, list); |
| | | CreateWaylineFileUtils.createWaylineFile(xmlModel, patchesConfigPojo.getTemplate(), patchesConfigPojo.getTargetTemplate(), patchesConfigPojo.getWaylines(), patchesConfigPojo.getTargetWaylines()); |
| | | // 压缩文件夹中的内容 |
| | |
| | | zipFolder(patchesConfigPojo.getSourceDir(), destKMZFile); |
| | | return convert(new File(destKMZFile)); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 将航线上传Oss |
| | |
| | | * @param taskId |
| | | * @throws IOException |
| | | */ |
| | | public void sendPostWithFileAndParameter(String filePath, String taskId, String dkbh, String workspaceId) throws IOException { |
| | | public void sendPostWithFileAndParameter(String filePath, String taskId) throws IOException { |
| | | // 创建 RestTemplate 实例 |
| | | try { |
| | | RestTemplate restTemplate = new RestTemplate(); |
| | |
| | | |
| | | // 发送请求 |
| | | ResponseEntity<String> response = restTemplate.exchange( |
| | | "http://39.98.48.180:8087/landCloudWork/artifact/media/upload.action", |
| | | "http://39.98.49.177:8083/landCloudWork/artifact/media/upload.action", |
| | | // "http://localhost:6789/territory/tbdkjbxx/upload", |
| | | HttpMethod.POST, |
| | | requestEntity, |
| | | String.class); |
| | | System.out.println(response); |
| | | } catch (Exception e) { |
| | | throw new IllegalArgumentException("db推送失败" + e.getMessage()); |
| | | } |
| | |
| | | + "\"dock_sn\":\"4TADKCM0010016\"," |
| | | + "\"task_type\":1," |
| | | + "\"select_execute_time\":\"%s\"," |
| | | + "\"rth_altitude\":80," |
| | | + "\"rth_altitude\":100," |
| | | + "\"out_of_control_action\":0," |
| | | + "\"executeTimeContinuousArr\":[{\"index\":1,\"value\":[]}]," |
| | | + "\"executeTimeRepeatArr\":[{\"index\":1,\"value\":\"\"}]," |
| | |
| | | + "\"rep_fre_type\":3," |
| | | + "\"rep_rule_type\":1," |
| | | + "\"time_range\":[]," |
| | | + "\"rth_mode\":1," |
| | | + "\"1conValue\":[]," |
| | | + "\"1repValue\":\"\"," |
| | | + "\"task_days\":%s," |
| | |
| | | return timestamp / 1000; |
| | | } |
| | | |
| | | public static Long addOneHourToTimestamp(Long timestampInSeconds) { |
| | | public static Long addOneHourToTimestamp(Long timestampInSeconds, long hours, long min) { |
| | | // 将输入的秒级时间戳转换为Instant对象 |
| | | Instant instant = Instant.ofEpochSecond(timestampInSeconds); |
| | | |
| | |
| | | ZonedDateTime zonedDateTime = instant.atZone(ZoneId.systemDefault()); |
| | | |
| | | // 加上一小时 |
| | | ZonedDateTime zonedDateTimePlusOneHour = zonedDateTime.plusHours(1).plusMinutes(30); |
| | | ZonedDateTime zonedDateTimePlusOneHour = zonedDateTime.plusHours(hours).plusMinutes(min); |
| | | |
| | | // 将ZonedDateTime对象转换回秒级时间戳 |
| | | return zonedDateTimePlusOneHour.toInstant().getEpochSecond(); |