DownLoadService.java 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package com.jiayue.ipfcst.console.service;
  2. import cn.hutool.http.HttpRequest;
  3. import cn.hutool.http.HttpUtil;
  4. import cn.hutool.json.JSONArray;
  5. import cn.hutool.json.JSONObject;
  6. import cn.hutool.json.JSONUtil;
  7. import com.jiayue.ipfcst.common.data.entity.FileCreateLog;
  8. import lombok.extern.slf4j.Slf4j;
  9. import org.springframework.web.bind.annotation.RestController;
  10. import java.io.File;
  11. import java.text.SimpleDateFormat;
  12. import java.util.Date;
  13. import java.util.List;
  14. /**
  15. * DownLoadController
  16. *
  17. * @author whc
  18. * @version 1.0
  19. * @since 2019/4/9 13:36
  20. */
  21. @Slf4j
  22. @RestController
  23. public class DownLoadService {
  24. public void download(String stationCode) {
  25. log.info("开始执行定时任务:http下载文件");
  26. String body = HttpRequest.get("https://117.78.19.70:9010/client/getDownLoadFileAll/" + stationCode).execute().body();
  27. JSONObject json = JSONUtil.parseObj(body);
  28. String code = json.get("code").toString();
  29. String data = json.get("data").toString();
  30. if (code.equals("0") && data.length() > 0) {
  31. JSONArray array = JSONUtil.parseArray(data);
  32. List<FileCreateLog> list = array.toList(FileCreateLog.class);
  33. Date date = new Date();
  34. SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMdd");
  35. //String dir = FileUtil.getDownloadFilePath() +File.separator+stationCode+File.separator+"new/";
  36. //String dirBak = FileUtil.getDownloadFilePath() +File.separator+stationCode+File.separator+"backups/"+simpleDateFormat.format(date)+"/";
  37. //测试使用
  38. String dir = "/Users/wanghongchen/fsdownload/" + stationCode + "/" + "new/";
  39. String dirBak = "/Users/wanghongchen/fsdownload/" + stationCode + "/" + "backups/" + simpleDateFormat.format(date) + "/";
  40. //循环backups下的文件,有文件则不下载
  41. File fileDirectory = new File(dir);
  42. if (!fileDirectory.exists()) {
  43. fileDirectory.mkdir();
  44. }
  45. File bakDirectory = new File(dirBak);
  46. if (!bakDirectory.exists()) {
  47. bakDirectory.mkdir();
  48. }
  49. try {
  50. for (FileCreateLog fileCreateLog : list) {
  51. File file = new File(bakDirectory + File.separator + fileCreateLog.getFileName());
  52. if (!file.exists()) {
  53. String url = "https://117.78.19.70:9010/client/getFileById?id=" + fileCreateLog.getId();
  54. long a = HttpUtil.downloadFile(url, dir + File.separatorChar + fileCreateLog.getFileName());
  55. if (a > 0) {
  56. log.info(stationCode + "场站" + fileCreateLog.getFileName() + "文件下载成功");
  57. }
  58. } else {
  59. log.info("文件已经下载过了");
  60. }
  61. }
  62. } catch (Exception e) {
  63. log.error("文件下载失败", e);
  64. }
  65. }
  66. }
  67. }