Browse Source

定时任务

hanfucheng 1 year ago
parent
commit
dc1d4ee8d0

+ 49 - 0
src/main/java/com/sooka/sponest/data/system/attach/controller/CenterdataTAttachController.java

@@ -2,8 +2,15 @@ package com.sooka.sponest.data.system.attach.controller;
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.utils.SpringUtils;
+import com.ruoyi.common.core.utils.file.FilePrefixUtils;
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.core.web.controller.BaseController;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+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.domain.CenterdataTAttach;
 import com.sooka.sponest.data.system.attach.domain.CenterdataTAttach;
 import com.sooka.sponest.data.system.attach.mapper.CenterdataTAttachMapper;
 import com.sooka.sponest.data.system.attach.mapper.CenterdataTAttachMapper;
 import com.sooka.sponest.data.system.attach.service.ICenterdataTAttachService;
 import com.sooka.sponest.data.system.attach.service.ICenterdataTAttachService;
@@ -11,10 +18,13 @@ import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.collections4.MapUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
 import springfox.documentation.annotations.ApiIgnore;
 import springfox.documentation.annotations.ApiIgnore;
 
 
+import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
@@ -35,6 +45,16 @@ public class CenterdataTAttachController extends BaseController {
     @Autowired
     @Autowired
     private CenterdataTAttachMapper centerdataTAttachMapper;
     private CenterdataTAttachMapper centerdataTAttachMapper;
 
 
+    @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";
+
     /**
     /**
      * 数据中心远端调用附件表查询列表
      * 数据中心远端调用附件表查询列表
      * 手机模块远程调用 应急作废
      * 手机模块远程调用 应急作废
@@ -135,4 +155,33 @@ public class CenterdataTAttachController extends BaseController {
         centerdataTAttachService.deleteCenterdataTAttachByBusId(attaches.get(0).getBusId());
         centerdataTAttachService.deleteCenterdataTAttachByBusId(attaches.get(0).getBusId());
         return R.ok(centerdataTAttachService.insertListCenterdataTAttach(attaches));
         return R.ok(centerdataTAttachService.insertListCenterdataTAttach(attaches));
     }
     }
+
+    //每周的周日晚上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
+            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");
+            }
+            MultipartFile multipartFile = FilePrefixUtils.urlToMultipartFile(url, System.currentTimeMillis() + ".jpg");
+            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);
+            }
+        }
+        logger.info(DateUtils.getDate() + "处理异常数据:" + attaches.size());
+    }
 }
 }