123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105 |
- package com.sooka.sponest.data.utils;
- import com.ruoyi.common.core.utils.SpringUtils;
- import com.ruoyi.common.core.utils.file.FilePrefixUtils;
- import com.ruoyi.common.redis.service.RedisService;
- import com.ruoyi.system.api.RemoteConfigService;
- import com.ruoyi.system.api.RemoteFileService;
- import com.ruoyi.system.api.domain.SysFile;
- import com.sooka.sponest.data.system.attach.service.ICenterdataTAttachService;
- import org.apache.commons.collections4.MapUtils;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.scheduling.annotation.EnableScheduling;
- import org.springframework.scheduling.annotation.Scheduled;
- import org.springframework.web.bind.annotation.GetMapping;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.File;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Map;
- @Configuration
- @EnableScheduling
- //@RestController
- //@RequestMapping("/testattach")
- public class ScheduleAtachUtil {
- private final Logger logger = LoggerFactory.getLogger(this.getClass());
- @Autowired
- private ICenterdataTAttachService centerdataTAttachService;
- @Autowired
- private RedisService redisService;
- // 文件前缀
- public static final String FILE_PREFIX_LOCAL = "fileUrl";
- public static final String FILE_PREFIX_HIK1 = "HIK_1";
- public static final String FILE_PREFIX_HIK2 = "HIK_2";
- public static final String FILE_PREFIX_DH1 = "DH_1";
- public static final String FILE_PREFIX_DH2 = "DH_2";
- @GetMapping("/attach")
- public void runAtach() {
- Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
- // paramMap.put("token", redisService.getCacheObject("DH_TOKEN"));// 大华token
- List<Map<String, Object>> list = centerdataTAttachService.selectFailUpattah();
- for (Map<String, Object> map : list) {
- paramMap.put("czlx", "AI");
- paramMap.put("busId", MapUtils.getString(map, "busId"));
- centerdataTAttachService.updateEventAttach(paramMap);
- logger.info("延时1分钟");
- }
- }
- //每周的周日晚上8点开始运行
- @Scheduled(cron = "0 0 20 ? * 1")
- @GetMapping("/urlToMultipartFile")
- public void urlToMultipartFile() {
- Map<String, String> paramMap = SpringUtils.getBean(RemoteConfigService.class).remotegetConfigMap(Arrays.asList(FILE_PREFIX_LOCAL, FILE_PREFIX_HIK1, FILE_PREFIX_HIK2, FILE_PREFIX_DH1, FILE_PREFIX_DH2)).getData();
- List<Map<String, Object>> attaches = centerdataTAttachService.selectFailUpattah();
- for (Map<String, Object> item : attaches) {
- paramMap.put("token", redisService.getCacheObject("DH_TOKEN"));// 大华token
- File file = null;
- MultipartFile multipartFile = null;
- String url = "";
- if ("DH_1".equals(item.get("BusSource"))) {
- url = FilePrefixUtils.getUrlPrefix(item.get("BusSource").toString(), paramMap) + item.get("url") + "?token=" + MapUtils.getString(paramMap, "token");
- } else {
- url = FilePrefixUtils.getUrlPrefix(item.get("BusSource").toString(), paramMap) + item.get("url");
- }
- HttpURLConnection httpUrl = null;
- try {
- httpUrl = (HttpURLConnection) new URL(url).openConnection();
- // 设置连接超时时间为5秒
- httpUrl.setConnectTimeout(5000);
- // 设置读取超时时间为10秒
- httpUrl.setReadTimeout(10000);
- httpUrl.connect();
- file = FilePrefixUtils.inputStreamToFile(httpUrl.getInputStream(), System.currentTimeMillis() + ".jpg");
- multipartFile = FilePrefixUtils.fileToMultipartFile(file);
- } catch (Exception e) {
- logger.info(e.getMessage());
- } finally {
- if (null != httpUrl) {
- httpUrl.disconnect();
- }
- }
- if (null != multipartFile) {
- SysFile sysFile = SpringUtils.getBean(RemoteFileService.class).upload(multipartFile).getData();
- try {
- Thread.sleep(30000);
- } catch (InterruptedException e) {
- logger.error(e.getMessage());
- Thread.currentThread().interrupt();
- }
- centerdataTAttachService.updateEventAttachSchedule(item, sysFile);
- }
- }
- }
- }
|