Browse Source

林洋上下午短期功能及修改六六巨一体化请求头

fanxiaoyu 1 week ago
parent
commit
8354532f78

+ 1 - 1
in-client-qn/src/main/java/com/jiayue/insu/inclientqn/job/SHKJLNCorrforeDataJob.java

@@ -51,7 +51,7 @@ public class SHKJLNCorrforeDataJob implements Job {
                 // 飔合科技 下载修正后短期数据
                 shkjCorrforeService.downLoadCorrforeData(station);
             }
-            // 如果场站打扰等于于1个,则直接请求飔合科技修正数据
+            // 如果场站大于等于1个,则直接请求飔合科技修正数据
         } else if (stationList != null && stationList.size() == 1) {
             successRecord = recordService.findTimeAndTypeAndState(localDateTime, CommonStant.RECORD_TYPE_PULL_CORRECT, StatusEnum.SUCCESS.getCode());
             // 如果有执行记录,则不再执行

+ 1 - 1
in-cloud/src/main/java/com/jiayue/insu/incloud/compermisson/BJZYYJYSDComPermisson.java

@@ -57,7 +57,7 @@ public class BJZYYJYSDComPermisson implements GeneratePermisson {
         String password = station.getPassword();
 //        String passwordMD5 = DigestUtils.md5DigestAsHex(password.getBytes()).toUpperCase();
 //        String auth = username+":"+passwordMD5;
-        String auth = "Basic dGVzdDp0ZXN0";
+        String auth = "Basic cGlnOkpxbXkjRnpqY0AyMDI1a2V5";
         IntegrationCompany integrationCompany = getIntegrationCompany(station.getInCode());
         if (integrationCompany != null) {
 

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

@@ -29,6 +29,12 @@ public interface CommonStant {
      */
     String RECORD_TYPE_PUT_CDQ = "PUT_INIT_CDQ";
 
+
+    /**
+     * 日志类型:接收实际功率
+     */
+    String RECORD_TYPE_PUT_REAL = "PUT_INIT_REAL";
+
     /**
      * 日志类型:推送原始
      */

+ 3 - 3
in-cloud/src/main/java/com/jiayue/insu/incloud/controller/ApiController.java

@@ -404,7 +404,7 @@ public class ApiController {
             return checkResult;
         }
         JSONObject result = apiService.putUltraShortTermData(data);
-        Record record = new Record(CommonStant.RECORD_TYPE_PUSH_INIT, inCode, data.getStr("stationIds"), null, LocalDateTime.now(), LocalDateTime.now(), result.getStr("retMsg"), result.getStr("retCode"));
+        Record record = new Record(CommonStant.RECORD_TYPE_PUT_CDQ, inCode, data.getStr("stationIds"), null, LocalDateTime.now(), LocalDateTime.now(), result.getStr("retMsg"), result.getStr("retCode"));
         recordService.save(record);
         return result;
     }
@@ -425,12 +425,12 @@ public class ApiController {
         // 如果校验结果为失败
         String inCode = getInCode(station);
         if (JsonResultUtil.Type.failure.value().equals(checkResult.get(JsonResultUtil.CODE_TAG))) {
-            Record record = new Record(CommonStant.RECORD_TYPE_PUT_CDQ, inCode, data.getStr("stationIds"), null, LocalDateTime.now(), LocalDateTime.now(), JsonResultUtil.Type.failure.msg(), JsonResultUtil.Type.failure.value());
+            Record record = new Record(CommonStant.RECORD_TYPE_PUT_REAL, inCode, data.getStr("stationIds"), null, LocalDateTime.now(), LocalDateTime.now(), JsonResultUtil.Type.failure.msg(), JsonResultUtil.Type.failure.value());
             recordService.save(record);
             return checkResult;
         }
         JSONObject result = apiService.putRealValueData(data);
-        Record record = new Record(CommonStant.RECORD_TYPE_PUSH_INIT, inCode, data.getStr("stationIds"), null, LocalDateTime.now(), LocalDateTime.now(), result.getStr("retMsg"), result.getStr("retCode"));
+        Record record = new Record(CommonStant.RECORD_TYPE_PUT_REAL, inCode, data.getStr("stationIds"), null, LocalDateTime.now(), LocalDateTime.now(), result.getStr("retMsg"), result.getStr("retCode"));
         recordService.save(record);
         return result;
     }

+ 49 - 13
in-cloud/src/main/java/com/jiayue/insu/incloud/job/data/push/LXPushInitDqDataJob.java

@@ -1,5 +1,6 @@
 package com.jiayue.insu.incloud.job.data.push;
 
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.date.LocalDateTimeUtil;
 import com.jiayue.insu.incloud.constants.CommonStant;
 import com.jiayue.insu.incloud.constants.enums.StatusEnum;
@@ -9,12 +10,18 @@ import com.jiayue.insu.incloud.pushdata.PushDataForLX;
 import com.jiayue.insu.incloud.pushdata.PushDataForSH;
 import com.jiayue.insu.incloud.service.RecordService;
 import com.jiayue.insu.incloud.service.StationService;
+import io.undertow.util.DateUtils;
 import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
 
+import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
 
 /**
  * 飔合科技(辽宁)上送原始短期数据定时任务
@@ -31,29 +38,58 @@ public class LXPushInitDqDataJob implements Job {
     private StationService stationService;
     @Autowired
     private RecordService recordService;
+
     @Override
     public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
         String code = jobExecutionContext.getTrigger().getJobKey().getName();
         String[] split = code.split("-");
-        if(split!=null && split.length>0){
+        if (split != null && split.length > 0) {
             String stationCode = split[0];
-            if (split.length>2){
-                stationCode = split[0]+"-"+split[1];
+            if (split.length > 2) {
+                stationCode = split[0] + "-" + split[1];
             }
 
-            Station one = stationService.findByStationCode(stationCode);
-            if (one != null) {
-                //查询是否有今天成功记录 (为提高稳定性,该定时任务采取在规定时间段内 重复循环执行的定时策略,故:需要查询是否存在成功记录)
-                Record successRecord = recordService.findTimeAndTypeAndStateAndStation(
-                        LocalDateTimeUtil.beginOfDay(LocalDateTime.now()),
-                        CommonStant.RECORD_TYPE_PUSH_INIT,
-                        StatusEnum.SUCCESS.getSign(), stationCode);
-                //没有成功记录进行业务
-                if(successRecord == null) {
-                    pushDataForLX.pushDQData(one);
+            Station station = stationService.findByStationCode(stationCode);
+            if (station != null) {
+                // 安徽永武风光单独判断
+                if ("J00797".equals(station.getStationCode()) || "J00637".equals(station.getStationCode())) {
+
+                    LocalTime noon = LocalTime.NOON; // 12:00:00
+                    LocalDateTime noonToday = LocalDateTime.of(LocalDate.now(), noon);
+                    // 判断当前时间是否在中午12点之前
+                    if (LocalDateTime.now().isBefore(noonToday)) {
+                        //查询是否有今天成功记录 (为提高稳定性,该定时任务采取在规定时间段内 重复循环执行的定时策略,故:需要查询是否存在成功记录)
+                        Record successRecord = recordService.findTimeAndTypeAndStateAndStation(
+                                LocalDateTimeUtil.beginOfDay(LocalDateTime.now()),
+                                CommonStant.RECORD_TYPE_PUSH_INIT,
+                                StatusEnum.SUCCESS.getSign(), stationCode);
+                        //没有成功记录进行业务
+                        if (successRecord == null) {
+                            pushDataForLX.pushDQData(station);
+                        }
+                    } else {
+                        List<Record> recordList = recordService.findTypeAndStateAndStationAndCreatTime(
+                                    CommonStant.RECORD_TYPE_PUSH_INIT,
+                                StatusEnum.SUCCESS.getSign(), stationCode,LocalDateTimeUtil.beginOfDay(LocalDateTime.now()));
+
+                        if (recordList.size() <= 1) {
+                            pushDataForLX.pushDQData(station);
+                        }
+                    }
+                } else {
+                    //查询是否有今天成功记录 (为提高稳定性,该定时任务采取在规定时间段内 重复循环执行的定时策略,故:需要查询是否存在成功记录)
+                    Record successRecord = recordService.findTimeAndTypeAndStateAndStation(
+                            LocalDateTimeUtil.beginOfDay(LocalDateTime.now()),
+                            CommonStant.RECORD_TYPE_PUSH_INIT,
+                            StatusEnum.SUCCESS.getSign(), stationCode);
+                    //没有成功记录进行业务
+                    if (successRecord == null) {
+                        pushDataForLX.pushDQData(station);
+                    }
                 }
             }
         }
 
     }
+
 }

+ 8 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/pulldata/PullCorrectDataForSH.java

@@ -231,6 +231,14 @@ public class PullCorrectDataForSH implements IPullInitCorrectDataForSH {
             // 通过键名获取相应的值
             String forecastTime = rootNode.get("time").asText();
             double ageValue = rootNode.get("power").asDouble();
+
+            // 将24:00:00转换为第二天的00:00:00的情况
+            if (forecastTime.contains("24:00:00")) {
+                String changeTime = forecastTime.replace("24:00:00", "23:59:59");
+                Date date = DateUtil.parse(changeTime, "yyyy-MM-dd HH:mm:ss");
+                date = DateUtil.offsetSecond(date, 1);
+                forecastTime = DateUtil.format(date, "yyyy-MM-dd HH:mm:ss");
+            }
             // 将预测时间转换为时间戳格式
             Long forecast = DateUtil.parse(forecastTime, "yyyy-MM-dd HH:mm:ss").getTime();
 

+ 21 - 1
in-cloud/src/main/java/com/jiayue/insu/incloud/pushdata/PushDataForLX.java

@@ -32,6 +32,7 @@ import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -83,7 +84,24 @@ public class PushDataForLX implements IPushInitForecastData {
         IntegrationCompany integrationCompany = integrationCompanyService.findByCode(CompanyConstant.COMPANY_LX);
         // 获取场站编号
         String stationCode = station.getStationCode();
-        Record record = new Record(CommonStant.RECORD_TYPE_PUSH_INIT, CompanyConstant.COMPANY_LX, stationCode, null, LocalDateTimeUtil.beginOfDay(LocalDateTime.now()), LocalDateTime.now(), null, null);
+        Record record = null;
+
+        // 安徽永武风光单独判断
+        if ("J00797".equals(stationCode) || "J00637".equals(stationCode)) {
+
+            LocalTime noon = LocalTime.NOON; // 12:00:00
+            LocalDateTime noonToday = LocalDateTime.of(LocalDate.now(), noon);
+            // 判断当前时间是否在中午12点之前
+            if (LocalDateTime.now().isBefore(noonToday)) {
+                record = new Record(CommonStant.RECORD_TYPE_PUSH_INIT, CompanyConstant.COMPANY_LX, stationCode, null, LocalDateTimeUtil.beginOfDay(LocalDateTime.now()), LocalDateTime.now(), null, null);
+
+            } else {
+                record = new Record(CommonStant.RECORD_TYPE_PUSH_INIT, CompanyConstant.COMPANY_LX, stationCode, null, LocalDateTime.now(), LocalDateTime.now(), null, null);
+            }
+        } else {
+            record = new Record(CommonStant.RECORD_TYPE_PUSH_INIT, CompanyConstant.COMPANY_LX, stationCode, null, LocalDateTimeUtil.beginOfDay(LocalDateTime.now()), LocalDateTime.now(), null, null);
+        }
+
         record.setState(StatusEnum.SUCCESS.getSign());
         // 如果场站编号为空,则返回
         if (stationCode == null || "".equals(stationCode)) {
@@ -273,6 +291,8 @@ public class PushDataForLX implements IPushInitForecastData {
              // 测试地址
 //            HttpRequest httpRequest = HttpRequest.post("https://113.219.237.106:33631/forecast/reportData")
 //            HttpRequest httpRequest = HttpRequest.post("http://112.2.27.4/forecast")
+            // 本地测试地址
+//            HttpRequest httpRequest = HttpRequest.post("https://127.0.0.1:9001/consoleOpenInterface/always200")
                     .header("Content-Type", "application/json");
             httpRequest.setGlobalTimeout(20000);
             response = httpRequest.body(jsonString).execute().body();

+ 2 - 2
in-cloud/src/main/java/com/jiayue/insu/incloud/pushdata/PushDataForQNHL.java

@@ -326,8 +326,8 @@ public class PushDataForQNHL implements IPushInitForecastData {
 
         content += labelEnd;
 
-        // 浙江一体化新增年月日发电量
-        if (el.equals("ZJSYJYGY")) {
+        // 浙江一体化新增年月日发电量/海南
+        if (el.equals("ZJSYJYGY") || el.equals("HNSYJYYLW")) {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
             String nowYear = sdf.format(new Date());
 

+ 4 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/service/RecordService.java

@@ -4,6 +4,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.jiayue.insu.incloud.entity.Record;
 
 import java.time.LocalDateTime;
+import java.util.List;
+
 /**
  * 数据记录业务接口
  *
@@ -23,5 +25,7 @@ public interface RecordService extends IService<Record> {
      */
     Record findTimeAndTypeAndStateAndStation(LocalDateTime time,String type,String state,String station);
 
+    List<Record> findTypeAndStateAndStationAndCreatTime(String type, String state, String station,LocalDateTime creatTime);
+
 
 }

+ 3 - 2
in-cloud/src/main/java/com/jiayue/insu/incloud/service/impl/PowerGenerationServiceImpl.java

@@ -82,7 +82,7 @@ public class PowerGenerationServiceImpl extends ServiceImpl<PowerGenerationMappe
             throw new RuntimeException(e);
         }
         // 查询是否今天生成的发电量
-        List<PowerGeneration> checkList = findByGenDate(date);
+        List<PowerGeneration> checkList = findByGenDate(date,stationCode);
 
         if (checkList.size() > 0 ){
             log.info("已有当日生成的发电量,不再进行计算!");
@@ -264,9 +264,10 @@ public class PowerGenerationServiceImpl extends ServiceImpl<PowerGenerationMappe
         return avgValue;
     }
 
-    List<PowerGeneration> findByGenDate(Date genDate){
+    List<PowerGeneration> findByGenDate(Date genDate,String stationCode){
         LambdaQueryWrapper<PowerGeneration> lambdaQueryWrapper = new LambdaQueryWrapper<>();
         lambdaQueryWrapper.eq(PowerGeneration::getGenDate,genDate);
+        lambdaQueryWrapper.eq(PowerGeneration::getStationCode,stationCode);
         return list(lambdaQueryWrapper);
     }
 

+ 12 - 0
in-cloud/src/main/java/com/jiayue/insu/incloud/service/impl/RecordServiceImpl.java

@@ -11,6 +11,8 @@ import com.jiayue.insu.incloud.service.RecordService;
 import org.springframework.stereotype.Service;
 
 import java.time.LocalDateTime;
+import java.util.List;
+
 /**
  * 数据记录业务实现
  *
@@ -39,4 +41,14 @@ public class RecordServiceImpl extends ServiceImpl<RecordMapper, Record> impleme
 
         return this.getOne(lambdaQueryWrapper);
     }
+
+    @Override
+    public List<Record> findTypeAndStateAndStationAndCreatTime(String type, String state, String station,LocalDateTime creatTime) {
+        LambdaQueryWrapper<Record> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(Record::getType,type);
+        lambdaQueryWrapper.eq(Record::getState,state);
+        lambdaQueryWrapper.eq(Record::getStationCode,station);
+        lambdaQueryWrapper.ge(Record::getCreateTime,creatTime);
+        return this.list(lambdaQueryWrapper);
+    }
 }