2
0

2 Commits f8575ac838 ... bc854076d2

Autor SHA1 Mensagem Data
  zhangchenglong bc854076d2 一体化云端: 2 anos atrás
  zhangchenglong fc8b6a8150 一体化云端: 2 anos atrás

+ 15 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/constants/CommonStant.java

@@ -20,6 +20,11 @@ public interface CommonStant {
     String RECORD_TYPE_PUSH_INIT = "PUSH_INIT";
 
     /**
+     * 日志类型:推送实际功率
+     */
+    String RECORD_TYPE_PUSH_REAL = "PUSH_REAL";
+
+    /**
      * 日志类型:下拉修正数据
      */
     String RECORD_TYPE_PULL_CORRECT = "PULL_CORRECT";
@@ -35,6 +40,16 @@ public interface CommonStant {
     String RECORD_TYPE_COM_PERMISSON = "COM_PERMISSON";
 
     /**
+     * 日志类型:推送原始数据到sftp
+     */
+    String RECORD_TYPE_PUSH_INIT_TO_SFTP = "PUSH_INIT_TO_SFTP";
+
+    /**
+     * 日志类型:推送实际功率数据到sftp
+     */
+    String RECORD_TYPE_PUSH_REAL_POWER_TO_SFTP = "PUSH_REAL_POWER_TO_SFTP";
+
+    /**
      * 换行
      */
     String LINE_CONSTANT = "\n";

+ 6 - 1
in-cloud/src/main/java/com/jiayue/insu/incloud/pulldata/PullInitData.java

@@ -15,6 +15,7 @@ import com.jiayue.insu.incloud.constants.vo.FileCreateLog;
 import com.jiayue.insu.incloud.entity.ForecastData;
 import com.jiayue.insu.incloud.entity.Record;
 import com.jiayue.insu.incloud.entity.Station;
+import com.jiayue.insu.incloud.service.ApiService;
 import com.jiayue.insu.incloud.service.ForecastDataService;
 import com.jiayue.insu.incloud.service.RecordService;
 import lombok.extern.slf4j.Slf4j;
@@ -49,6 +50,8 @@ public class PullInitData implements IPullInitForecastData{
     private RecordService recordService;
     @Autowired
     private ForecastDataService forecastDataService;
+    @Autowired
+    private ApiService apiService;
     @Value("${minio.pull.url}")
     String url;
     @Value("${minio.pull.fileurl}")
@@ -106,11 +109,13 @@ public class PullInitData implements IPullInitForecastData{
                         try {
                             String dqNowUrl = fileurl + dqListNow.get(0).getId();
                             dqNowFile = HttpUtil.downloadFileFromUrl(dqNowUrl, fileSaveUrl + File.separatorChar +dqListNow.get(0).getFileName());
-
                             String nwpNowUrl = fileurl + nwpListNow.get(0).getId();
                             nwpNowFile = HttpUtil.downloadFileFromUrl(nwpNowUrl, fileSaveUrl + File.separatorChar + nwpListNow.get(0).getFileName());
 
                             if (dqNowFile != null && nwpNowFile != null) {
+                                // 回传dq和nwp文件状态
+                                apiService.postBackMinIoState(station.getStationCode(),dqNowFile.getName(),"down","是");
+                                apiService.postBackMinIoState(station.getStationCode(),nwpNowFile.getName(),"down","是");
                                 //解析
                                 listNow = fileAnalysis(dqNowFile, nwpNowFile, station,localDateTime);
 

+ 11 - 13
in-cloud/src/main/java/com/jiayue/insu/incloud/pushdata/PushDataForBJZYYJY.java

@@ -131,7 +131,7 @@ public class PushDataForBJZYYJY implements IPushInitForecastData {
             // 从有#的数据开始获取 数据示例:#1	帽子山光伏电站	2023-06-22 00:00:00	0.0
             if (originalContent.contains("#")) {
                 // 刨除当天的数据
-                if(originalContent.contains(todaySeparatorStr)){
+                if (originalContent.contains(todaySeparatorStr)) {
                     continue;
                 }
                 // 根据分隔符分割,取时间和功率
@@ -157,10 +157,12 @@ public class PushDataForBJZYYJY implements IPushInitForecastData {
         // 文件存放路径 /jiayue/insu/file/bjInit/J00269/
         String newFilePath = bjFilePath + stationCode + File.separatorChar;
         String templateName = File.separatorChar + "vms" + File.separatorChar + "BJZYYJYDQ.vm";
-        String newFileName = "modeloutput-" + stationCode + "J001-" + todayStr + "_SUBSHORT.RB";
-        String fileType = "dq";
+        String tomorrowStr = DateUtil.format(DateUtil.tomorrow(), "yyyyMMdd");
+        String newFileName = "modeloutput-" + stationCode + "J001-" + tomorrowStr + "AM_SUBSHORT.RB";
+        String fileType = todayStr+ File.separatorChar+"dq";
         // 文件数据开始时间
         String fileDateStr = DateUtil.format(DateUtil.beginOfDay(DateUtil.tomorrow()), "yyyyMMdd_HH:mm:ss");
+
         this.pushFileToSftp(record, vList, newFilePath, newFileName, templateName, station, fileType, todayStr, fileDateStr);
         return true;
     }
@@ -217,17 +219,14 @@ public class PushDataForBJZYYJY implements IPushInitForecastData {
             map.put("realPower", realValue);
             vList.add(map);
         }
-
         // 文件存放路径 /jiayue/insu/file/bjInit/J00269/
         String newFilePath = bjFilePath + stationCode + File.separatorChar;
-        DateTimeFormatter formatterTime = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
-        String todayTimeStr = today.format(formatterTime);
-        String newFileName = "realpowerdata-" + stationCode + "J001-" + todayTimeStr + ".RB";
+        String newFileName = "realpowerdata-" + stationCode + "J001-" + todayStr + "085500.RB";
         String templateName = File.separatorChar + "vms" + File.separatorChar + "BJZYYJYRP.vm";
         // sftp具体路径
-        String sftpFilePath = "real";
+        String sftpFilePath = todayStr + File.separatorChar + "real";
         // 文件数据开始时间
-        String fileDateStr = DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyyMMdd_HH:mm:ss");
+        String fileDateStr = DateUtil.format(DateUtil.beginOfDay(DateUtil.yesterday()), "yyyyMMdd_HH:mm:ss");
         this.pushFileToSftp(record, vList, newFilePath, newFileName, templateName, station, sftpFilePath, todayStr, fileDateStr);
         return false;
     }
@@ -239,11 +238,11 @@ public class PushDataForBJZYYJY implements IPushInitForecastData {
      * @param newFileName
      * @param templateName
      * @param station
-     * @param fileType
+     * @param dateAndFileType
      * @param todayStr
      * @return
      */
-    public boolean pushFileToSftp(Record record, List<Map<String, Object>> vList, String newFilePath, String newFileName, String templateName, Station station, String fileType, String todayStr, String fileDateStr) {
+    public boolean pushFileToSftp(Record record, List<Map<String, Object>> vList, String newFilePath, String newFileName, String templateName, Station station, String dateAndFileType, String todayStr, String fileDateStr) {
 
         VelocityContext velocityContext = new VelocityContext();
         velocityContext.put("vList", vList);
@@ -288,9 +287,8 @@ public class PushDataForBJZYYJY implements IPushInitForecastData {
         }
         int sftpPort = Integer.valueOf(sftpInfoArr[3]);
         String sftpFilePath = sftpInfoArr[4];
-        sftpFilePath = sftpFilePath + File.separatorChar + todayStr + File.separatorChar + fileType;
+        sftpFilePath = sftpFilePath + File.separatorChar + dateAndFileType;
 
-//        SFTPUtil sftp = new SFTPUtil(station.getUsername(), station.getPassword(), sftpUrl, sftpPort);
         log.info("getUsername:" + userName);
         log.info("getPassword:" + passWord);
         log.info("sftpUrl:" + sftpUrl);

+ 9 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/service/ApiService.java

@@ -45,4 +45,13 @@ public interface ApiService  {
      * @return
      */
     JSONObject putSShortWpfData(JSONObject requestJson);
+
+    /**
+     * 从minIo下载文件后,回传状态
+     * @param stationCode
+     * @param fileName
+     * @param type
+     * @param status
+     */
+    void postBackMinIoState(String stationCode ,String fileName,String type,String status);
 }

+ 39 - 1
in-cloud/src/main/java/com/jiayue/insu/incloud/service/impl/ApiServiceImpl.java

@@ -61,6 +61,8 @@ public class ApiServiceImpl implements ApiService {
     private String bucketName;
     @Value("${minio.pull.cloudFileCreateLog}")
     private String cloudFileCreateLog;
+    @Value("${minio.postBackUrl}")
+    private String postBackUrl;
 
     @Autowired
     RedisTemplate redisTemplate;
@@ -673,6 +675,9 @@ public class ApiServiceImpl implements ApiService {
                     record.setState(StatusEnum.DOWNLOAD_FILE_ERROR.getCode());
                     log.error("下载minIo原始RB文件 --> {} 失败,失败原因:{}", station.getStationCode(), StatusEnum.DOWNLOAD_FILE_ERROR.getMsg());
                 }
+
+                // 回传dq和nwp文件状态
+                this.postBackMinIoState(station.getStationCode(),nowFile.getName(),"down","是");
                 // 返回文件
                 return nowFile;
             } catch (Exception e) {
@@ -689,11 +694,18 @@ public class ApiServiceImpl implements ApiService {
         }
     }
 
+    /**
+     *
+     * @param list
+     * @param data
+     * @param stationName
+     * @param type
+     * @return
+     */
     public List<Map<String, Object>> addListData(List<Map<String, Object>> list,JSONObject data,String stationName,String type){
         if(JsonResultUtil.Type.success.value().equals(data.get(JsonResultUtil.CODE_TAG))) {
             JSONArray dataArr = new JSONArray();
             if("minIo".equals(type)){
-//                dataArr = data.getJSONArray("data").getJSONObject(0).getJSONArray("values").getJSONObject(0).getJSONArray("datas");
                 dataArr = data.getJSONArray("data").getJSONObject(0).getJSONArray("values");
                 for(Object one :dataArr){
                     JSONArray oneDaysData = JSONUtil.parseObj(one).getJSONArray("datas");
@@ -707,6 +719,13 @@ public class ApiServiceImpl implements ApiService {
         return list;
     }
 
+    /**
+     *
+     * @param list
+     * @param dataArr
+     * @param stationName
+     * @return
+     */
     public List<Map<String, Object>> addOneDay(List<Map<String, Object>> list,JSONArray dataArr,String stationName){
         for(Object one :dataArr){
             JSONObject oneJson = JSONUtil.parseObj(one);
@@ -718,4 +737,23 @@ public class ApiServiceImpl implements ApiService {
         }
         return list;
     }
+
+    /**
+     * 从minIo下载文件后,回传状态
+     * @param stationCode
+     * @param fileName
+     * @param type
+     * @param status
+     */
+    @Override
+    public void postBackMinIoState(String stationCode ,String fileName,String type,String status){
+        Map urlParams = new HashMap(4);
+        urlParams.put("stationCode",stationCode);
+        urlParams.put("forecastFileName",fileName);
+        urlParams.put("type",type);
+        urlParams.put("status",status);
+        log.debug("回传文件状态给新平台,请求参数",JSONUtil.toJsonStr(urlParams));
+        String repose = HttpUtil.post(postBackUrl,urlParams,10000);
+        log.info("回传文件状态给新平台,请求相应 {}", repose);
+    }
 }

+ 1 - 1
in-cloud/src/main/resources/vms/BJZYYJYDQ.vm

@@ -3,6 +3,6 @@
 <modeloutput::${stationCode}J001>
 @id	times	prepower	upper	lower
 #foreach( $dq in $vList )
-#${velocityCount}	${dq.forecastTime}	${dq.fpValue}
+#${velocityCount}	${dq.forecastTime}	${dq.fpValue}	NULL	NULL
 #end
 </modeloutput::${stationCode}J001>