Browse Source

修复指标数据频度

kobe6258 2 months ago
parent
commit
a951506206

+ 8 - 1
qhtx-eta-integrator/qhtx-integrator-application/src/main/java/com/qhtx/eta/controller/ETAController.java

@@ -2,6 +2,7 @@ package com.qhtx.eta.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.qhtx.eta.controller.request.ETAIndexPushRequest;
+import com.qhtx.eta.domain.entity.DWIndexDTO;
 import com.qhtx.eta.domain.facade.ETAFacadeService;
 import com.qhtx.eta.domain.service.DWIndexFrameService;
 import com.qhtx.eta.infra.entity.dw.DWIndex;
@@ -11,7 +12,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.annotation.Resource;
 
 @RestController
-@RequestMapping("/htapi/v1/index")
+@RequestMapping("/htApi/v1/index")
 public class ETAController {
 
     @Resource
@@ -23,4 +24,10 @@ public class ETAController {
         etaFacadeService.pushIndex(etaIndexPushRequest.getIndexCode(), true);
         return Result.success("同步成功");
     }
+
+    @GetMapping("/getIndexInfo")
+    public Result<DWIndexDTO> getIndexInfo(@RequestBody ETAIndexPushRequest etaIndexPushRequest) {
+        DWIndexDTO dto = etaFacadeService.getIndexInfo(etaIndexPushRequest.getIndexCode());
+        return Result.success(dto);
+    }
 }

+ 3 - 0
qhtx-eta-integrator/qhtx-integrator-domain/src/main/java/com/qhtx/eta/domain/facade/ETAFacadeService.java

@@ -1,6 +1,7 @@
 package com.qhtx.eta.domain.facade;
 
 import com.qhtx.eta.common.annotation.Facade;
+import com.qhtx.eta.domain.entity.DWIndexDTO;
 
 import java.util.concurrent.ExecutionException;
 
@@ -8,4 +9,6 @@ import java.util.concurrent.ExecutionException;
 public interface ETAFacadeService {
 
     void pushIndex(String indexCode, boolean init);
+
+    DWIndexDTO getIndexInfo(String indexCode);
 }

+ 5 - 2
qhtx-eta-integrator/qhtx-integrator-domain/src/main/java/com/qhtx/eta/domain/facade/impl/ETAFacadeServiceImpl.java

@@ -125,7 +125,6 @@ public class ETAFacadeServiceImpl implements ETAFacadeService {
             });
         } else {
             dwIndexDTO = dwIndexFrameService.getIndex(indexCode);
-
             boolean isLock;
             isLock = lock.tryLock();
             if (isLock) {
@@ -202,7 +201,11 @@ public class ETAFacadeServiceImpl implements ETAFacadeService {
                 log.error("同步指标任务表失败,当前正在被其他任务处理中请稍后再试");
             }
         }
+    }
 
-
+    @Override
+    @DomainTransDataSource(dataSourceType = DataSourceType.DW)
+    public DWIndexDTO getIndexInfo(String indexCode) {
+        return dwIndexFrameService.getIndex(indexCode);
     }
 }

+ 37 - 1
qhtx-eta-integrator/qhtx-integrator-domain/src/main/java/com/qhtx/eta/domain/job/ETASyncJob.java

@@ -59,6 +59,8 @@ import java.util.*;
 import java.util.concurrent.*;
 import java.util.stream.Collectors;
 
+import static com.qhtx.eta.infra.enums.Frequency.*;
+
 
 @Component
 @Slf4j
@@ -295,6 +297,12 @@ public class ETASyncJob implements CommandLineRunner {
                                 log.warn("未找到对应指标数据:{}", linkDataDTO.getElementVal());
                                 continue;
                             }
+                            //修改指标频度数据
+                            String frequency = convertToFrequency(dimensionData.getFrequency());
+                            if (StringUtils.isEmpty(frequency)) {
+                                log.error("当前指标频度无法解析,不同步数据:{}", dimensionData.getFrequency());
+                                continue;
+                            }
                             dwIndexWithLinkCodeDTO.setFrequency(dimensionData.getFrequency());
                             dwIndexWithLinkCodeDTO.setIndexCnName(dimensionData.getEdbName());
                             String signature = MD5Utils.md5Encode(dwIndexWithLinkCodeDTO.getIndexCnName());
@@ -458,7 +466,7 @@ public class ETASyncJob implements CommandLineRunner {
 
     private String calculatePreviousDate(String startDate, Frequency frequency, int numberOfPeriods) {
         if (frequency == null) {
-            frequency = Frequency.DAILY;
+            frequency = DAILY;
         }
         LocalDate localDate = LocalDate.parse(startDate);
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern(ETAConstants.DATE_PATTERN);
@@ -520,6 +528,32 @@ public class ETASyncJob implements CommandLineRunner {
         }
     }
 
+    private String convertToFrequency(String etaFrequency) {
+        Frequency frequency = Frequency.getFrequencyByDesc(etaFrequency);
+        if (frequency == null) {
+            return "";
+        }
+        switch (frequency) {
+            case DAILY:
+                return "日";
+            case DECADELY:
+                return "旬";
+            case WEEKLY:
+                return "周";
+            case MONTHLY:
+                return "月";
+            case YEARLY:
+                return "年";
+            case SEMI_ANNUAL:
+                return "半年";
+            case QUARTERLY:
+                return "季";
+            default:
+                return "";
+        }
+
+    }
+
     @Override
     public void run(String... args) {
         List<ScheduleConfig> list = scheduleTaskConfig.getList();
@@ -539,3 +573,5 @@ public class ETASyncJob implements CommandLineRunner {
     }
 
 }
+
+

+ 2 - 2
qhtx-eta-integrator/qhtx-integrator-domain/src/main/java/com/qhtx/eta/domain/service/impl/DWIndexFrameServiceImpl.java

@@ -255,9 +255,9 @@ public class DWIndexFrameServiceImpl implements DWIndexFrameService {
         }
         for (DWIndexFrameDTO dto : list) {
             if (Objects.equals(dto.getParentId(), node.getClassifyId())) {
-                String path = StringUtils.isEmpty(node.getPath().trim()) ? node.getName() + "|" + dto.getCnName() : node.getPath() + "|" + dto.getCnName();
+                String path = StringUtils.isEmpty(node.getPath().trim()) ? node.getName()  : node.getPath() + "|" + node.getName();
                 String id = (dto.getId() == null || dto.getId().trim().isEmpty()) ? UUID.randomUUID().toString().replaceAll("-", "") : dto.getId();
-                String idPath = StringUtils.isEmpty(node.getPath().trim()) ? node.getId() + "|" + id : node.getIdPath() + "|" + id;
+                String idPath = StringUtils.isEmpty(node.getPath().trim()) ? node.getId() : node.getIdPath() + "|" + node.getId();
                 FrameNode temp = new FrameNode();
                 temp.setId(id);
                 temp.setClassifyId(dto.getClassifyId());

+ 20 - 0
qhtx-eta-integrator/sql/init.sql

@@ -91,4 +91,24 @@ BEGIN
 SELECT SEQ_ETA_CLASSIFY_INDEX_MAPPING.NEXTVAL INTO :new.id FROM dual;
 END;
 
+/**
+修改已更新的指标的频度单位
+ */
+select * from T_DAMP_DW_INDEX where  INDEX_CODE in (
+
+
+
+
+    select INDEX_CODE  from T_DAMP_DW_INDEX_LINK where LINK_CODE like 'ETA%') and FREQUENCY like '%度'
+
+
+
 
+UPDATE T_DAMP_DW_INDEX
+SET FREQUENCY = REPLACE(FREQUENCY, '度', '')
+WHERE INDEX_CODE IN (
+    SELECT INDEX_CODE
+    FROM T_DAMP_DW_INDEX_LINK
+    WHERE LINK_CODE LIKE 'ETA%'
+)
+  AND FREQUENCY LIKE '%度%';