Ver código fonte

多数据源关闭 获取化验室数据从另外一个服务获取

王苗苗 1 mês atrás
pai
commit
7f4296a705

+ 1 - 1
slibra-admin/src/main/resources/application-dev.yml

@@ -34,7 +34,7 @@ spring:
             # 从库数据源
             slave:
                 # 从数据源开关/默认关闭
-                enabled: true
+                enabled: false
                 driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
                 url: jdbc:sqlserver://10.0.3.53:1433;SelectMethod=Cursor;DatabaseName=信义
                 username: hongshan

+ 3 - 0
slibra-common/src/main/java/com/slibra/common/constant/MyConstants.java

@@ -414,6 +414,9 @@ public class MyConstants {
     //字典配置
     public static final String TPFQD = "tpfqd";
 
+    //接口调用超时时间 60s  时间长一点,防止挂掉以后,一次获取太多数据
+    public static final int HTTP_GET_TIME_OUT_MILLION_SECONDS = 60000;
+    public static final String HTTP_GET_URL_ROBOT_DATA = "http://localhost:8079/selectTXinyiRobotListByTime?lastTime=";
 
     //2024年10月25日09:17:04 新增登录使用的秘钥
     public static final String LOGIN_SECRET_KEY = "qwertasdfg159753";

+ 32 - 11
slibra-quartz/src/main/java/com/slibra/quartz/task/RyTask.java

@@ -649,20 +649,30 @@ public class RyTask
     /**
      * 定时从sqlserver获取数据
      */
-    public void sqlserverData(){
+    public void sqlserverData() {
         log.info("进入了定时同步SqlServer的任务");
         //主库获取上次最新的同步日期
         String lastTime = this.xinyiRobotMapper.selectLastTime();
         log.info("上次同步的日期是{}", lastTime);
         //从
-        DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
+        /*DynamicDataSourceContextHolder.setDataSourceType(DataSourceType.SLAVE.name());
         List<TXinyiRobot> tXinyiRobots = xinyiRobotMapper.selectTXinyiRobotListByTime(lastTime);
-        DynamicDataSourceContextHolder.clearDataSourceType();
-        log.info("查询到此次需要同步的数据为{}", JSON.toJSONString(tXinyiRobots));
+        DynamicDataSourceContextHolder.clearDataSourceType();*/
+        //2025年02月14日16:28:40 项目不再配置多数据源,采用服务调用方式,后期考虑用nacos做服务间通讯
+        String result;
+        List<TXinyiRobot> tXinyiRobots;
+        try {
+            result = HttpUtil.get(HTTP_GET_URL_ROBOT_DATA + lastTime, HTTP_GET_TIME_OUT_MILLION_SECONDS);
+            tXinyiRobots = JSON.parseArray(result, TXinyiRobot.class);
+        } catch (Exception e) {
+            log.error("调用获取化验室数据接口异常,异常信息为{}", e.getMessage());
+            return;
+        }
+        log.info("查询到此次需要同步的数据为{}", result);
 //        System.out.println("-------------");
         //主
         List<TXinyiRobot> needHandleList = new ArrayList<>();
-        if(!CollectionUtils.isEmpty(tXinyiRobots)){
+        if (!CollectionUtils.isEmpty(tXinyiRobots)) {
             for (TXinyiRobot tXinyiRobot : tXinyiRobots) {
                 String date = handleDate(tXinyiRobot.getVDate().replaceAll(" ", ""));//有空格
                 String time = handleDate(tXinyiRobot.getVTime().replaceAll(" ", ""));//有空格
@@ -697,26 +707,25 @@ public class RyTask
 //                this.xinyiRobotMapper.insertTXinyiRobot(tXinyiRobot);
             }
         }
-        if(!CollectionUtils.isEmpty(needHandleList)){
+        if (!CollectionUtils.isEmpty(needHandleList)) {
             List<TXinyiRobot> uniqueList = needHandleList.stream()
                     .collect(Collectors.collectingAndThen(
                             Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(TXinyiRobot::getTestHour))),
                             ArrayList::new
                     ));
-            if(!CollectionUtils.isEmpty(uniqueList)){
+            if (!CollectionUtils.isEmpty(uniqueList)) {
                 for (TXinyiRobot tXinyiRobot : uniqueList) {
                     //判断是否添加过了(小时)
                     String testHour = tXinyiRobot.getTestHour();
                     List<TXinyiRobot> tXinyiRobotList = this.xinyiRobotMapper.selectTXinyiRobotList(TXinyiRobot.builder().testHour(testHour).build());
-                    if(CollectionUtils.isEmpty(tXinyiRobotList)){
+                    if (CollectionUtils.isEmpty(tXinyiRobotList)) {
                         this.xinyiRobotMapper.insertTXinyiRobot(tXinyiRobot);
                         //2024年6月18日10:45:20 额外计算一下预测的准确度
                         asyncTask.updateForecastComparisonByRobot(tXinyiRobot);
 
                         //2024年7月6日10:32:36  大宽表的数据处理
                         asyncTask.updateBigTableHourByRobot(tXinyiRobot);
-                    }
-                    else
+                    } else
                         log.info("{}已经吧保存过了,无需重复保存***&&&···", testHour);
                 }
                 //2024年08月09日14:26:29  为了节省费用,测试环境关闭报警并增加手动触发报警操作
@@ -2404,7 +2413,19 @@ public class RyTask
 
         System.out.println("2024/07/07 12".substring(0, 7));
 
-        System.out.println(BigDecimal_0_1.multiply(null));
+//        System.out.println(BigDecimal_0_1.multiply(null));
+
+
+        String result;
+        List<TXinyiRobot> tXinyiRobots;
+        try {
+            result = HttpUtil.get(HTTP_GET_URL_ROBOT_DATA + "2025-02-14 16:10:00", HTTP_GET_TIME_OUT_MILLION_SECONDS);
+            tXinyiRobots = JSON.parseArray(result, TXinyiRobot.class);
+        } catch (Exception e) {
+            log.error("调用获取化验室数据接口异常,异常信息为{}", e.getMessage());
+            return;
+        }
+        log.info("查询到此次需要同步的数据为{}", JSON.toJSONString(tXinyiRobots));
 
 
     }