Sfoglia il codice sorgente

重构方案数据存储返回值

liuaini 3 settimane fa
parent
commit
fcb7051569

+ 26 - 0
api/load-transfer-si-api/src/main/java/com/hdkj/lt/modle/vo/recon/ReconSaveResultVO.java

@@ -0,0 +1,26 @@
+package com.hdkj.lt.modle.vo.recon;
+
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Map;
+
+/**
+ * 重构结果入库返回概要.
+ */
+@Data
+@NoArgsConstructor
+public class ReconSaveResultVO {
+
+    /** 是否成功 */
+    private Boolean success;
+
+    /** 主表ID(fhzg_recon_result.id) */
+    private Long mainId;
+
+    /** 事件ID */
+    private String eventId;
+
+    /** 各子表插入条数, key=表名, value=条数 */
+    private Map<String, Integer> counts;
+}

+ 11 - 2
api/load-transfer-si-api/src/main/java/com/hdkj/lt/modle/vo/recon/ReconstructionParam.java

@@ -2,7 +2,9 @@ package com.hdkj.lt.modle.vo.recon;
 
 import lombok.Data;
 
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description:
@@ -13,6 +15,13 @@ import java.util.List;
 public class ReconstructionParam {
     //事件id
     private String eventId;
-    //线路ids
-    private List<String> feederIds;
+//    线路ids
+//    private List<String> feederIds;
+
+//    {
+//        "county_sid":"",
+//        "county_name":"",
+//        "problem_feeder_ids":[]
+//    }
+    Map<String, Object> params = new HashMap<>();
 }

+ 11 - 8
services/load-transfer-si/src/main/java/com/hdkj/lt/si/controller/recon/ReconResultController.java

@@ -1,33 +1,36 @@
 package com.hdkj.lt.si.controller.recon;
 
 
+import com.hdkj.hussar.ApiResponse;
+import com.hdkj.lt.core.mvc.BaseController;
+import com.hdkj.lt.modle.vo.recon.ReconSaveResultVO;
 import com.hdkj.lt.modle.vo.recon.ReconstructionParam;
 import com.hdkj.lt.si.service.recon.ReconResultService;
-import org.springframework.beans.factory.annotation.Autowired;
+import lombok.RequiredArgsConstructor;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
 /**
+ * @author liuaini
  * 重构结果入库接口.
  * 接收算法服务响应 (含 raw_result), 取 raw_result 入库.
  */
 @RestController
 @RequestMapping("/recon")
-public class ReconResultController {
+@RequiredArgsConstructor
+public class ReconResultController extends BaseController {
 
-    @Autowired
-    private ReconResultService reconResultService;
+    private final ReconResultService reconResultService;
 
     @PostMapping("/trigger")
-    public String triggerReconfiguration(@RequestBody ReconstructionParam param) {
+    public ApiResponse<ReconSaveResultVO> triggerReconfiguration(@RequestBody ReconstructionParam param) {
         try {
-            reconResultService.saveReconResult(param.getEventId(),param.getFeederIds());
-            return "重构数据拉取并入库成功!";
+            return data(reconResultService.saveReconResult(param.getEventId(),param.getParams()));
         } catch (Exception e) {
             e.printStackTrace();
-            return "重构数据处理失败: " + e.getMessage();
+            return fail("重构数据处理失败: " + e.getMessage());
         }
     }
 }

+ 5 - 2
services/load-transfer-si/src/main/java/com/hdkj/lt/si/service/recon/ReconResultService.java

@@ -1,7 +1,10 @@
 package com.hdkj.lt.si.service.recon;
 
 
+import com.hdkj.lt.modle.vo.recon.ReconSaveResultVO;
+
 import java.util.List;
+import java.util.Map;
 
 /**
  * 重构结果入库服务.
@@ -11,7 +14,7 @@ public interface ReconResultService {
 
     /**
      * @param eventId 事件id
-     * @param feederIds 问题线路id
+     * @param params county_sid,county_name,problem_feeder_ids
      */
-    void saveReconResult(String eventId, List<String> feederIds);
+    ReconSaveResultVO saveReconResult(String eventId, Map<String, Object> params);
 }

+ 14 - 7
services/load-transfer-si/src/main/java/com/hdkj/lt/si/service/recon/impl/ReconResultServiceImpl.java

@@ -8,17 +8,21 @@ import com.fasterxml.jackson.databind.ObjectMapper;
 import com.hdkj.lt.core.rest.service.IRemoteCallService;
 import com.hdkj.lt.modle.dto.recon.*;
 import com.hdkj.lt.modle.po.*;
+import com.hdkj.lt.modle.vo.recon.ReconSaveResultVO;
 import com.hdkj.lt.si.dao.*;
 import com.hdkj.lt.si.service.recon.ReconResultService;
 import com.hdkj.lt.si.service.remote.impl.ReconRemoteCallServiceImpl;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.http.HttpMethod;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.StreamUtils;
 
 import javax.annotation.Resource;
 import java.io.IOException;
+import java.nio.charset.StandardCharsets;
 import java.time.LocalDateTime;
 import java.time.OffsetDateTime;
 import java.time.format.DateTimeFormatter;
@@ -49,14 +53,15 @@ public class ReconResultServiceImpl implements ReconResultService {
     private static final DateTimeFormatter ISO_OFFSET = DateTimeFormatter.ISO_OFFSET_DATE_TIME;
 
     private static final String REQUEST_URI = "http://25.91.249.219:18080/api/reconfiguration";
+
     @Resource(type = ReconRemoteCallServiceImpl.class)
     private IRemoteCallService remoteCallService;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
-    public void saveReconResult(String eventId, List<String> feederIds) {
+    public ReconSaveResultVO saveReconResult(String eventId, Map<String, Object> params) {
         // 1. 构造请求参数
-        Map<String, Object> params = new HashMap<>();
+//        Map<String, Object> params = new HashMap<>();
 //        params.put("county_sid", "honghu");
 //        params.put("county_name", "honghu");
 //        params.put("problem_feeder_ids", Collections.singletonList("15DKX-20690"));
@@ -66,12 +71,8 @@ public class ReconResultServiceImpl implements ReconResultService {
             Object data = remoteCallService.call(REQUEST_URI, HttpMethod.POST, params, Object.class);
             str = JSON.toJSONString(data);
 
-        // 3. 解析返回的JSON数据
-//        try {
+        // 2. 解析返回的JSON数据
 //            str = StreamUtils.copyToString(new ClassPathResource("1.txt").getInputStream(), StandardCharsets.UTF_8);
-//        } catch (IOException e) {
-//            throw new RuntimeException("读取算法响应样本 1.txt 失败", e);
-//        }
 
             JsonNode root = OM.readTree(str);
             log.info("重构方案接口返回参数{}",str);
@@ -134,6 +135,12 @@ public class ReconResultServiceImpl implements ReconResultService {
             counts.put("metrics", 1);
         }
         log.info("重构方案counts:{}", JSON.toJSONString(counts));
+        ReconSaveResultVO vo = new ReconSaveResultVO();
+        vo.setSuccess(true);
+        vo.setMainId(resultId);
+        vo.setEventId(main.getEventId());
+        vo.setCounts(counts);
+        return vo;
     }
 
     // ==================== 构建主表 ====================