Explorar o código

[task-6462] 室内失控记录对接调整

huangws hai 6 días
pai
achega
b33353ef7b

+ 1 - 0
GetDataByView/pom.xml

@@ -13,6 +13,7 @@
         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
         <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
         <spring-boot.version>2.7.6</spring-boot.version>
+        <skipTests>true</skipTests>
     </properties>
     <dependencies>
         <dependency>

+ 46 - 26
GetDataByView/src/main/java/com/jyxt/getdatabyview/GetDataByViewApplication.java

@@ -19,30 +19,29 @@ import java.util.List;
 import java.util.Map;
 
 @SpringBootApplication
-public class GetDataByViewApplication implements CommandLineRunner{
+public class GetDataByViewApplication implements CommandLineRunner {
 
     private static final Logger log = LoggerFactory.getLogger(GetDataByViewApplication.class);
 
     @Autowired
     private LISViewRepository lisViewRepository;
-
     @Autowired
     private IBPSRepository ibpsRepository;
-
     @Autowired
     private HandleData handleData;
-
     @Autowired
     private ConfigurableApplicationContext context;
-
     @Autowired
     private ImportRunner importRunner;
 
     @Value("${importMode}")
     private String importMode;
 
-    public List<String> lisTableList = Arrays.asList("V_JT_TestCodeRerunRecord", "V_JT_QCMonthReport","V_JT_OutOfControlReport","V_JT_InfectiousReport");//
-//    public List<String> lisTableList = Arrays.asList("V_JT_QCMonthReport");//
+    // 新增读取 outOfControlMode 配置
+    @Value("${outOfControlMode}")
+    private String outOfControlMode;
+
+    public List<String> lisTableList = Arrays.asList("V_JT_TestCodeRerunRecord", "V_JT_QCMonthReport","V_JT_InfectiousReport");
 
     public static void main(String[] args) {
         SpringApplication.run(GetDataByViewApplication.class, args);
@@ -50,30 +49,51 @@ public class GetDataByViewApplication implements CommandLineRunner{
 
     @Override
     public void run(String... args) throws Exception {
-        log.info("<-------------new turn start...------------->");
-        if(importMode.equals("0")){
-            ibpsRepository.getBasicData();
-            for(String lisTable : lisTableList){
-                List<Map<String, Object>> retList = lisViewRepository.query(lisTable);
-                if(retList != null){
-                    handleData.startHandleData(retList,lisTable);
-                }
+        if (importMode.equals("0")) {
+            // 如果处于 outOfControlMode=1,则只跑这一张表
+            if ("1".equals(outOfControlMode)) {
+                executeSingleTable("V_JT_OutOfControlReport");
+            } else {
+                // 否则保持原有全量逻辑
+                executeFullSync();
             }
-            //质量指标接口
-            List<Map<String, Object>>qualityIndicatorList  = ibpsRepository.getUndoQualityIndicator();
-            handleData.HandQIData(qualityIndicatorList);
-
-            //定期推送能力监督
-            handleData.AbilityMonitor();
-
-            log.info("<-- -----------this turn finish...------------->");
-            context.close(); // 直接关闭上下文
-        }else{
+            context.close(); // 跑完依然正常关闭上下文
+        } else {
             String currentDir = System.getProperty("user.dir");
             String filePath = currentDir + File.separator + "权限申请.txt";
             importRunner.importPermissionRequest(filePath);
-            context.close(); // 直接关闭上下文
+            context.close();
         }
+    }
 
+    /**
+     * 抽取出的完整数据同步逻辑(原封不动保留)
+     */
+    private void executeFullSync() {
+        log.info("<-------------new turn start...------------->");
+        ibpsRepository.getBasicData();
+        for (String lisTable : lisTableList) {
+            List<Map<String, Object>> retList = lisViewRepository.query(lisTable);
+            if (retList != null) {
+                handleData.startHandleData(retList, lisTable);
+            }
+        }
+        List<Map<String, Object>> qualityIndicatorList = ibpsRepository.getUndoQualityIndicator();
+        handleData.HandQIData(qualityIndicatorList);
+        handleData.AbilityMonitor();
+        log.info("<-- -----------this turn finish...------------->");
+    }
+
+    /**
+     * 单表执行逻辑
+     */
+    private void executeSingleTable(String tableName) {
+        log.info("<-------------[Single Mode] {} start...------------->", tableName);
+        ibpsRepository.getBasicData();
+        List<Map<String, Object>> retList = lisViewRepository.query(tableName);
+        if (retList != null) {
+            handleData.startHandleData(retList, tableName);
+        }
+        log.info("<-- -----------[Single Mode] {} finish...------------->", tableName);
     }
 }

+ 8 - 9
GetDataByView/src/main/java/com/jyxt/getdatabyview/HandleData.java

@@ -169,13 +169,13 @@ public class HandleData {
             // 1. 创建Set存储existList中所有 bian_zhi_shi_jian 的值(转换为字符串形式)
             Set<String> existIdSet = new HashSet<>();
             for (Map<String, Object> existMap : existList) {
-                Object idObj = existMap.get("bian_zhi_shi_jian");
+                Object idObj = existMap.get("id_");
                 existIdSet.add(idObj == null ? null : idObj.toString());
             }
             // 2. 过滤lisList:只保留 bian_zhi_shi_jian 不在 existIdSet 中的元素
             List<Map<String, Object>> resultList = new ArrayList<>();
             for (Map<String, Object> testMap : lisList) {
-                Object idObj = testMap.get("CREATETIME");
+                Object idObj = testMap.get("RESULT_NO");
                 String idStr = idObj == null ? null : idObj.toString();
                 if (!existIdSet.contains(idStr)) {
                     resultList.add(testMap);
@@ -393,13 +393,13 @@ public class HandleData {
                     log.warn(createUserInfo);
                     continue;
                 }
-                insertMap.put("create_by_", createUserInfo.split("@")[0]);
-                insertMap.put("bian_zhi_ren_", createUserInfo.split("@")[0]);
-                insertMap.put("bian_zhi_shi_jian", String.valueOf(retMap.get("CREATETIME")));
+//                insertMap.put("create_by_", createUserInfo.split("@")[0]);
+//                insertMap.put("bian_zhi_ren_", createUserInfo.split("@")[0]);
+//                insertMap.put("bian_zhi_shi_jian", String.valueOf(retMap.get("CREATETIME")));
                 insertMap.put("di_dian_", ibpsRepository.getPosiByCode("LOCAL"));
-                insertMap.put("shi_fou_guo_shen_", "待推送");
+                insertMap.put("shi_fou_guo_shen_", "待处理");
                 insertMap.put("zhuan_ye_zu_", ibpsRepository.getPosiByCode(retMap.get("GROUP_ID").toString()));
-                insertMap.put("cao_zuo_zhe_", createUserInfo.split("@")[0]);
+//                insertMap.put("cao_zuo_zhe_", createUserInfo.split("@")[0]);
                 insertMap.put("yi_qi_ming_", retMap.get("TESTCODE"));
                 insertMap.put("xiang_mu_ming_", retMap.get("DEVICECODE"));
                 insertMap.put("zhi_kong_pin_ming", retMap.get("QCNAME"));
@@ -436,12 +436,11 @@ public class HandleData {
                 }
                 // 拼接 ding_liang_
                 String dingLiangStr = String.join(",", dingLiangSet);
-                // 拼接 qi_ta_shuo_ming_(去重?按需。这里保留所有出现的“其他”项,也可用 Set 去重)
+                // 拼接 qi_ta_shuo_ming_
                 String qiTaStr = String.join(",", qiTaList);
                 // 放入 insertMap
                 insertMap.put("ding_liang_", dingLiangStr);
                 insertMap.put("qi_ta_shuo_ming_", qiTaStr);
-
                 insertMap.put("qi_ta_miao_shu_", retMap.get("REASON"));
                 insertMap.put("chu_li_cuo_shi_", "6");
                 insertMap.put("qi_ta_cuo_shi_", retMap.get("ACTION"));

+ 2 - 0
GetDataByView/src/main/resources/application.properties

@@ -27,3 +27,5 @@ manualQryMonth=
 resultWithUnit=0
 importMode=0
 pushDate=0320,0620,0920,1220
+outOfControlMode=0
+