Procházet zdrojové kódy

川北医学院标本保存与废弃接口

huangws před 8 měsíci
rodič
revize
b77e3d23c8
23 změnil soubory, kde provedl 764 přidání a 939 odebrání
  1. 18 1
      GetDataByRESTful/pom.xml
  2. 27 8
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/GetDataByRESTfulApplication.java
  3. 10 1
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/GetDataByRESTfulConfiguration.java
  4. 4 0
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/OpenApiConfig.java
  5. 135 0
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/controller/LISController.java
  6. 0 48
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/ApiClientService.java
  7. 0 19
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/ApiException.java
  8. 0 34
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/ApiResponse.java
  9. 0 50
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/HandleDataService.java
  10. 0 43
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/IBPSService.java
  11. 21 0
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/LISService.java
  12. 300 0
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/impl/LISServiceImpl.java
  13. 0 94
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/view/TemperatureEntity.java
  14. 0 49
      GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/view/repository/TemperatureEntityRepository.java
  15. 46 7
      GetDataByRESTful/src/main/resources/application.properties
  16. 1 9
      GetDataByView/src/main/java/com/jyxt/getdatabyview/DateRangeUtil.java
  17. 19 22
      GetDataByView/src/main/java/com/jyxt/getdatabyview/GetDataByViewApplication.java
  18. 88 101
      GetDataByView/src/main/java/com/jyxt/getdatabyview/HandleData.java
  19. 0 72
      GetDataByView/src/main/java/com/jyxt/getdatabyview/view/QualityIndicator.java
  20. 43 0
      GetDataByView/src/main/java/com/jyxt/getdatabyview/view/repository/IBPSRepository.java
  21. 43 267
      GetDataByView/src/main/java/com/jyxt/getdatabyview/view/repository/LISViewRepository.java
  22. 0 105
      GetDataByView/src/main/java/com/jyxt/getdatabyview/view/repository/QualityIndicatorRepository.java
  23. 9 9
      GetDataByView/src/main/resources/application.properties

+ 18 - 1
GetDataByRESTful/pom.xml

@@ -12,6 +12,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>
+        <springdoc-openapi.version>1.6.14</springdoc-openapi.version>
     </properties>
     <dependencies>
         <dependency>
@@ -27,6 +28,16 @@
             <artifactId>mysql-connector-j</artifactId>
             <scope>runtime</scope>
         </dependency>
+        <dependency>
+            <groupId>com.oracle.database.jdbc</groupId>
+            <artifactId>ojdbc6</artifactId>
+            <version>11.2.0.4</version>
+        </dependency>
+        <dependency>
+            <groupId>com.oracle.ojdbc</groupId>
+            <artifactId>orai18n</artifactId>
+            <version>19.3.0.0</version>
+        </dependency>
         <dependency>
             <groupId>org.projectlombok</groupId>
             <artifactId>lombok</artifactId>
@@ -41,6 +52,12 @@
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-web</artifactId>
         </dependency>
+        <!-- SpringDoc OpenAPI UI -->
+        <dependency>
+            <groupId>org.springdoc</groupId>
+            <artifactId>springdoc-openapi-ui</artifactId>
+            <version>${springdoc-openapi.version}</version>
+        </dependency>
     </dependencies>
     <dependencyManagement>
         <dependencies>
@@ -79,7 +96,7 @@
                 <version>${spring-boot.version}</version>
                 <configuration>
                     <mainClass>com.jyxt.getdatabyrestful.GetDataByRESTfulApplication</mainClass>
-                    <skip>true</skip>
+                    <skip>false</skip>
                 </configuration>
                 <executions>
                     <execution>

+ 27 - 8
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/GetDataByRESTfulApplication.java

@@ -1,8 +1,6 @@
 package com.jyxt.getdatabyrestful;
 
-import com.jyxt.getdatabyrestful.service.IBPSService;
-import com.jyxt.getdatabyrestful.view.TemperatureEntity;
-import com.jyxt.getdatabyrestful.view.repository.TemperatureEntityRepository;
+import com.jyxt.getdatabyrestful.service.LISService;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -11,7 +9,10 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.ConfigurableApplicationContext;
 
+import java.util.ArrayList;
+import java.util.LinkedHashMap;
 import java.util.List;
+import java.util.Map;
 
 @SpringBootApplication
 public class GetDataByRESTfulApplication implements CommandLineRunner {
@@ -27,14 +28,32 @@ public class GetDataByRESTfulApplication implements CommandLineRunner {
     private ConfigurableApplicationContext context;
 
     @Autowired
-    IBPSService ibpsService;
+    LISService lisService;
 
     @Override
     public void run(String... args) throws Exception{
-        log.info("<-------------new turn start...------------->");
-        ibpsService.QryUndoData();
-        context.close(); // 直接关闭上下文
-        log.info("<-------------this turn finish...------------->");
+        log.info("<-------------start...------------->");
+//        // 1. 创建最外层的List
+//        List<Map<String, Object>> list = new ArrayList<>();
+//        // 2. 创建内层Map
+//        Map<String, Object> map = new LinkedHashMap<>(); // 保持插入顺序
+//        // 3. 向Map中添加数据
+//        map.put("StartDate", "2025-07-01");
+//        map.put("EndDate", "2025-07-01");
+//        map.put("GroupName", "生化组");
+//        // 4. 创建样本编码列表
+//        List<String> sampleCodes = new ArrayList<>();
+//        sampleCodes.add("12345");
+//        sampleCodes.add("54321");
+//        // 5. 将列表放入Map
+//        map.put("SampleCodeList", sampleCodes);
+//        // 6. 将Map添加到List
+//        list.add(map);
+//        List<Map<String,Object>>retList = lisService.getSaveSample(list);
+//        for(Map<String,Object> map2 : retList){
+//            log.info(map2.toString());
+//        }
+
     }
 
 }

+ 10 - 1
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/GetDataByRESTfulConfiguration.java

@@ -19,7 +19,11 @@ public class GetDataByRESTfulConfiguration {
         return DataSourceBuilder.create().build();
     }
 
-
+    @Bean(name = "secondDatasource")
+    @ConfigurationProperties(prefix = "spring.second-datasource")
+    public DataSource secondDataSource() {
+        return DataSourceBuilder.create().build();
+    }
 
     @Bean
     @Primary
@@ -27,4 +31,9 @@ public class GetDataByRESTfulConfiguration {
         return new JdbcTemplate(dataSource);
     }
 
+    @Bean(name = "secondJdbcTemplate")
+    public JdbcTemplate secondJdbcTemplate(@Qualifier("secondDatasource") DataSource dataSource) {
+        return new JdbcTemplate(dataSource);
+    }
+
 }

+ 4 - 0
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/OpenApiConfig.java

@@ -0,0 +1,4 @@
+package com.jyxt.getdatabyrestful;
+
+public class OpenApiConfig {
+}

+ 135 - 0
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/controller/LISController.java

@@ -0,0 +1,135 @@
+package com.jyxt.getdatabyrestful.controller;
+
+import com.jyxt.getdatabyrestful.service.LISService;
+import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.media.Schema;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+
+import java.util.List;
+import java.util.Map;
+
+@RestController
+@CrossOrigin(origins = "*") // 允许所有来源
+@RequestMapping("/SampleProcess") // 基础路径
+@Tag(name = "金源信通标本保存废弃相关接口", description = "")
+@ConditionalOnProperty(
+        name = "interface.SampleProcess",
+        havingValue = "1",
+        matchIfMissing = false // 若配置不存在则禁用
+)
+public class LISController {
+    @Autowired
+    LISService lisService;
+
+    // 示例:GET接口
+    @GetMapping("/test")
+    @Operation(summary = "示例接口", description = "这是一个示例GET接口,点击右侧'try it out'测试接口能否正常调用")
+    public String hello(@Parameter(description = "用户名", required = true)
+                        @RequestParam String name) {
+        return "Hello, " + name;
+    }
+
+    @GetMapping("/getGroupConfig")
+    @Operation(summary = "获取配置接口", description = "")
+    public List<Map<String, Object>> getGroupConfig(){
+        List<Map<String, Object>> retValue = null;
+        retValue = lisService.getGroupConfig();
+        return retValue;
+    }
+
+    @PostMapping("/getSaveSampleList")
+    @Operation(summary = "获取待保存接口", description = "")
+    public List<Map<String, Object>> getSaveSampleList(@RequestBody
+                                    @Schema(
+                                            name = "获取待保存接口",
+                                            description = "请求示例",
+                                            example = "[{\"OPERATION_DATE\":\"20250725\",\"GROUPCODE\":\"G032\",\"INSPECTION_ID\":\"\"" +
+                                                    ",\"PATIENT_NAME\":\"\",\"TEST_ORDER_NAME\":\"\"}]"
+                                    )
+                                    List<Map<String, Object>> inputList){
+        if (inputList == null || inputList.isEmpty()) {
+            return null;
+        }
+        List<Map<String, Object>> retValue = null;
+        retValue = lisService.getSaveSampleList(inputList);
+        return retValue;
+    }
+
+    @PostMapping("/getSavedSampleList")
+    @Operation(summary = "获取已保存接口", description = "")
+    public List<Map<String, Object>> getSavedSampleList(@RequestBody
+                                   @Schema(
+                                           name = "获取已保存接口",
+                                           description = "请求示例",
+                                           example = "[{\"OPERATION_DATE\":\"20250725\",\"GROUPCODE\":\"G032\",\"INSPECTION_ID\":\"\"" +
+                                                   ",\"PATIENT_NAME\":\"G032\",\"TEST_ORDER_NAME\":\"\"}]"
+                                   )
+                                   List<Map<String, Object>> inputList){
+        if (inputList == null || inputList.isEmpty()) {
+            return null;
+        }
+        List<Map<String, Object>> retValue = null;
+        retValue = lisService.getSavedSampleList(inputList);
+        return retValue;
+    }
+
+    @PostMapping("/getDestorySampleList")
+    @Operation(summary = "获取待废弃接口", description = "")
+    public List<Map<String, Object>> getDestorySampleList(@RequestBody
+                                                        @Schema(
+                                                                name = "获取待废弃接口",
+                                                                description = "请求示例",
+                                                                example = "[{\"OPERATION_DATE\":\"20250725\",\"GROUPCODE\":\"G032\",\"INSPECTION_ID\":\"\"" +
+                                                                        ",\"PATIENT_NAME\":\"G032\",\"TEST_ORDER_NAME\":\"\"}]"
+                                                        )
+                                                        List<Map<String, Object>> inputList){
+        if (inputList == null || inputList.isEmpty()) {
+            return null;
+        }
+        List<Map<String, Object>> retValue = null;
+        retValue = lisService.getDestorySampleList(inputList);
+        return retValue;
+    }
+
+    @PostMapping("/SaveSample")
+    @Operation(summary = "保存样本接口", description = "")
+    public int SaveSample(@RequestBody
+                        @Schema(
+                                name = "保存样本接口",
+                                description = "请求示例",
+                                example = "[{\"OPERATION_DATE\":\"20250725\",\"GROUPCODE\":\"G032\",\"OPERATIONNAME\":\"张三\"" +
+                                        ",\"RemoveSampleList\":[\"12345\",\"54321\"]}]"
+                        )
+                        List<Map<String, Object>> inputList){
+        int retValue = 0;
+        if (inputList == null || inputList.isEmpty()) {
+            return retValue;
+        }
+        retValue = lisService.SaveSample(inputList);
+        return retValue;
+    }
+
+    @PostMapping("/DestorySample")
+    @Operation(summary = "弃置样本接口", description = "")
+    public int DestorySample(@RequestBody
+                          @Schema(
+                                  name = "弃置样本接口",
+                                  description = "请求示例",
+                                  example = "[{\"OPERATION_DATE\":\"20250725\",\"GROUPCODE\":\"G032\",\"OPERATIONNAME\":\"张三\"" +
+                                          ",\"RemoveSampleList\":[\"12345\",\"54321\"]}]"
+                          )
+                          List<Map<String, Object>> inputList){
+        int retValue = 0;
+        if (inputList == null || inputList.isEmpty()) {
+            return retValue;
+        }
+        retValue = lisService.DestorySample(inputList);
+        return retValue;
+    }
+
+}

+ 0 - 48
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/ApiClientService.java

@@ -1,48 +0,0 @@
-package com.jyxt.getdatabyrestful.service;
-
-import com.jyxt.getdatabyrestful.GetDataByRESTfulApplication;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
-import org.springframework.stereotype.Service;
-import org.springframework.web.client.RestTemplate;
-
-
-@Service
-public class ApiClientService {
-
-    private static final RestTemplate restTemplate = new RestTemplate();
-
-    private static final Logger log = LoggerFactory.getLogger(ApiClientService.class);
-
-    @Value("${api.resources.path}") // 注入配置文件中的路径
-    private String apiPath;
-
-    @Value("${UrlAddr}")
-    private String UrlAddr;
-
-
-    // GET请求
-    public static String sendGet(String url) {
-        String RetVal = restTemplate.getForObject(url, String.class);
-        return RetVal;
-    }
-
-    // POST请求
-    public static String sendPost(String url, Object request) {
-        // 设置请求头(如 JSON)
-        HttpHeaders headers = new HttpHeaders();
-        headers.setContentType(MediaType.APPLICATION_JSON);
-        // 包装请求体和头
-        HttpEntity<Object> httpEntity = new HttpEntity<>(request, headers);
-        // 发送 POST 请求
-        String RetVal = restTemplate.postForObject(url, request, String.class);
-        return RetVal;
-    }
-
-
-}

+ 0 - 19
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/ApiException.java

@@ -1,19 +0,0 @@
-package com.jyxt.getdatabyrestful.service;
-
-public class ApiException extends RuntimeException {
-    private final int statusCode;
-
-    public ApiException(String message, int statusCode) {
-        super(message);
-        this.statusCode = statusCode;
-    }
-
-    // 新增单参数构造(默认状态码500)
-    public ApiException(String message) {
-        this(message, 500);
-    }
-
-    public int getStatusCode() {
-        return statusCode;
-    }
-}

+ 0 - 34
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/ApiResponse.java

@@ -1,34 +0,0 @@
-package com.jyxt.getdatabyrestful.service;
-
-public class ApiResponse {
-    private int code;
-    private String message;
-    private Object data;
-
-
-
-    // 标准getter/setter
-    public boolean isSuccess() {
-        return code == 200;
-    }
-
-    public void setCode(int code) {
-        this.code = code;
-    }
-
-    public String getMessage() {
-        return message;
-    }
-
-    public void setMessage(String message) {
-        this.message = message;
-    }
-
-    public Object getData() {
-        return data;
-    }
-
-    public void setData(Object data) {
-        this.data = data;
-    }
-}

+ 0 - 50
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/HandleDataService.java

@@ -1,50 +0,0 @@
-package com.jyxt.getdatabyrestful.service;
-
-import com.jyxt.getdatabyrestful.GetDataByRESTfulApplication;
-import com.jyxt.getdatabyrestful.view.repository.TemperatureEntityRepository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.HashMap;
-import java.util.Map;
-
-@Component
-public class HandleDataService {
-    private static final Logger log = LoggerFactory.getLogger(GetDataByRESTfulApplication.class);
-
-    @Autowired
-    private ApiClientService apiClientService;
-
-    @Autowired
-    private TemperatureEntityRepository temperatureEntityRepository;
-
-    public void startHandleData(String ID,String Bianzhishijian,String EntityName) {
-        log.info("ID: {}, Bianzhishijian: {}, EntityName: {}", ID, Bianzhishijian, EntityName);
-//        String retVal = apiClientService.sendGet("https://petstore-demo.apifox.com/pet/1");
-//        System.out.println(retVal);
-        System.out.println("---------------------------------------------------------------");
-        Map<String, Object> params = new HashMap<>();
-        params.put("username", "test");  // 替换为实际值
-        params.put("password", "test01");    // 替换为实际值
-        String retVal2 = apiClientService.sendPost("http://120.27.156.224:8089/data/api/getToken",params);
-        System.out.println(retVal2);
-//        apiClientService.callThirdPartyApi(ID, Bianzhishijian, EntityName)
-//                .doOnNext(response -> {
-//                    if(response.isSuccess()) {
-//                        log.info("处理成功数据: {}", response.getData());
-//                        // 业务处理逻辑
-//                    } else {
-//                        log.warn("业务异常: {}", response.getMessage());
-//                    }
-//                })
-//                .doOnError(e -> log.error("处理失败", e))
-//                .subscribe(
-//                    response -> {}, // 成功处理(通常留空,因已用 doOnNext)
-//                    error -> log.error("全局捕获:", error) // 兜底异常处理
-//                );
-
-    }
-
-}

+ 0 - 43
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/IBPSService.java

@@ -1,43 +0,0 @@
-package com.jyxt.getdatabyrestful.service;
-
-import com.jyxt.getdatabyrestful.view.TemperatureEntity;
-import com.jyxt.getdatabyrestful.view.repository.TemperatureEntityRepository;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-
-@Component
-public class IBPSService {
-
-    private static final Logger log = LoggerFactory.getLogger(IBPSService.class);
-
-    @Autowired
-    private TemperatureEntityRepository temperatureEntityRepository;
-
-    @Autowired
-    private HandleDataService handleDataService;
-
-    public void QryUndoData(){
-        List<TemperatureEntity> qiList = temperatureEntityRepository.query();
-        if(qiList != null){
-            for (TemperatureEntity te : qiList) {
-                try {
-                    String Id = te.getId();
-                    String Bianzhishijian = te.getBianzhishijian();
-                    String EntityName = te.getEntityname();
-                    handleDataService.startHandleData(Id,Bianzhishijian,EntityName);
-                    break;
-                }catch (Exception ex){
-                    log.error(ex.getMessage());
-                }
-            }
-        }
-    };
-
-    public void InsertUnControlRecord(){
-
-    }
-}

+ 21 - 0
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/LISService.java

@@ -0,0 +1,21 @@
+package com.jyxt.getdatabyrestful.service;
+
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+public interface LISService {
+
+    public List<Map<String, Object>> getGroupConfig();
+
+    public List<Map<String, Object>> getSaveSampleList(List<Map<String, Object>> inputList);
+
+    public List<Map<String, Object>> getSavedSampleList(List<Map<String, Object>> inputList);
+
+    public List<Map<String, Object>> getDestorySampleList(List<Map<String, Object>> inputList);
+
+    public int SaveSample(List<Map<String, Object>> inputList);
+
+    public int DestorySample(List<Map<String, Object>> inputList);
+}

+ 300 - 0
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/service/impl/LISServiceImpl.java

@@ -0,0 +1,300 @@
+package com.jyxt.getdatabyrestful.service.impl;
+
+import com.jyxt.getdatabyrestful.service.LISService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.SqlOutParameter;
+import org.springframework.jdbc.core.SqlParameter;
+import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
+import org.springframework.jdbc.core.simple.SimpleJdbcCall;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.sql.Types;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+@Service
+public class LISServiceImpl implements LISService {
+
+    private static final Logger log = LoggerFactory.getLogger(LISServiceImpl.class);
+
+    @Autowired
+    @Qualifier("secondJdbcTemplate")
+    private JdbcTemplate jdbcTemplate;
+
+    public List<Map<String, Object>> getGroupConfig() {
+//        // 1. 创建最外层的List
+//        List<Map<String, Object>> list = new ArrayList<>();
+//        // 2. 创建内层Map
+//        Map<String, Object> map = new HashMap<>(); // 保持插入顺序
+//        // 3. 向Map中添加数据
+//        map.put("SORTID", "001");
+//        map.put("GROUPCODE", "G002");
+//        map.put("GROUPNAME", "茂源生化");
+//        map.put("SAVEDAY", "7");
+//        list.add(map);
+//        Map<String, Object> map2 = new HashMap<>(); // 保持插入顺序
+//        // 3. 向Map中添加数据
+//        map2.put("SORTID", "002");
+//        map2.put("GROUPCODE", "G004");
+//        map2.put("GROUPNAME", "茂源免疫");
+//        map2.put("SAVEDAY", "14");
+//        list.add(map2);
+//        return list;
+        List<Map<String, Object>> resultList = null;
+        String SqlQry = "select SORTID,GROUPCODE,GROUPNAME,SAVEDAY from v_jt_lisgroupcustom";
+        log.info("excute sql:"+SqlQry);
+        resultList = jdbcTemplate.queryForList(SqlQry);
+        return resultList;
+    }
+
+    public List<Map<String, Object>> getSaveSampleList(List<Map<String, Object>> inputList){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        for(Map<String, Object> inputMap : inputList) {
+            StringBuilder sql = new StringBuilder(
+                    "select SAVE_DATE,INSPECTION_ID,PATIENT_NAME,TEST_ORDER_NAME from V_JT_SAVEANDDESTROY where STATE=1 or STATE=2");
+
+            MapSqlParameterSource params = new MapSqlParameterSource();
+
+            // 处理SAVE_DATE(字符串类型)
+            if (inputMap.containsKey("OPERATION_DATE") && inputMap.get("OPERATION_DATE") != null) {
+                sql.append(" AND SAVE_DATE = '"+inputMap.get("OPERATION_DATE")+"'");
+//                params.addValue("saveDate", inputMap.get("SAVE_DATE"), Types.VARCHAR);
+            }
+
+            // 处理GROUPCODE(字符串类型)
+            if (inputMap.containsKey("GROUPCODE") && inputMap.get("GROUPCODE") != null) {
+                sql.append(" AND GROUPCODE = '"+inputMap.get("GROUPCODE")+"'");
+//                params.addValue("groupCode", inputMap.get("GROUPCODE"), Types.VARCHAR);
+            }
+            // INSPECTION_ID(字符串类型)
+            if (inputMap.containsKey("INSPECTION_ID") && inputMap.get("INSPECTION_ID") != null) {
+                sql.append(" AND INSPECTION_ID like '%"+inputMap.get("INSPECTION_ID")+"%'");
+//                params.addValue("INSPECTION_ID", inputMap.get("INSPECTION_ID"), Types.VARCHAR);
+            }
+            //PATIENT_NAME(字符串类型)
+            if (inputMap.containsKey("PATIENT_NAME") && inputMap.get("PATIENT_NAME") != null) {
+                sql.append(" AND PATIENT_NAME like '%"+inputMap.get("PATIENT_NAME")+"%'");
+//                params.addValue("PATIENT_NAME", inputMap.get("PATIENT_NAME"), Types.VARCHAR);
+            }
+            //TEST_ORDER_NAME(字符串类型)
+            if (inputMap.containsKey("TEST_ORDER_NAME") && inputMap.get("TEST_ORDER_NAME") != null) {
+                sql.append(" AND TEST_ORDER_NAME like '%"+inputMap.get("TEST_ORDER_NAME")+"%'");
+//                params.addValue("TEST_ORDER_NAME", inputMap.get("TEST_ORDER_NAME"), Types.VARCHAR);
+            }
+            log.info("execute sql: " + sql.toString());
+            resultList.addAll(jdbcTemplate.queryForList(sql.toString()));
+        }
+        return resultList;
+    }
+
+    public List<Map<String, Object>> getSavedSampleList(List<Map<String, Object>> inputList){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        for(Map<String, Object> inputMap : inputList) {
+            StringBuilder sql = new StringBuilder(
+                    "select SAVE_DATE,INSPECTION_ID,PATIENT_NAME,TEST_ORDER_NAME from V_JT_SAVEANDDESTROY where STATE=2");
+
+            MapSqlParameterSource params = new MapSqlParameterSource();
+
+            // 处理SAVE_DATE(字符串类型)
+            if (inputMap.containsKey("OPERATION_DATE") && inputMap.get("OPERATION_DATE") != null) {
+                sql.append(" AND SAVE_DATE = '"+inputMap.get("OPERATION_DATE")+"'");
+//                params.addValue("saveDate", inputMap.get("SAVE_DATE"), Types.VARCHAR);
+            }
+
+            // 处理GROUPCODE(字符串类型)
+            if (inputMap.containsKey("GROUPCODE") && inputMap.get("GROUPCODE") != null) {
+                sql.append(" AND GROUPCODE = '"+inputMap.get("GROUPCODE")+"'");
+//                params.addValue("groupCode", inputMap.get("GROUPCODE"), Types.VARCHAR);
+            }
+            // INSPECTION_ID(字符串类型)
+            if (inputMap.containsKey("INSPECTION_ID") && inputMap.get("INSPECTION_ID") != null) {
+                sql.append(" AND INSPECTION_ID like '%"+inputMap.get("INSPECTION_ID")+"%'");
+//                params.addValue("INSPECTION_ID", inputMap.get("INSPECTION_ID"), Types.VARCHAR);
+            }
+            //PATIENT_NAME(字符串类型)
+            if (inputMap.containsKey("PATIENT_NAME") && inputMap.get("PATIENT_NAME") != null) {
+                sql.append(" AND PATIENT_NAME like '%"+inputMap.get("PATIENT_NAME")+"%'");
+//                params.addValue("PATIENT_NAME", inputMap.get("PATIENT_NAME"), Types.VARCHAR);
+            }
+            //TEST_ORDER_NAME(字符串类型)
+            if (inputMap.containsKey("TEST_ORDER_NAME") && inputMap.get("TEST_ORDER_NAME") != null) {
+                sql.append(" AND TEST_ORDER_NAME like '%"+inputMap.get("TEST_ORDER_NAME")+"%'");
+//                params.addValue("TEST_ORDER_NAME", inputMap.get("TEST_ORDER_NAME"), Types.VARCHAR);
+            }
+            log.info("execute sql: " + sql.toString());
+            resultList.addAll(jdbcTemplate.queryForList(sql.toString()));
+            int num = resultList.size();
+            log.info("get data size: " + String.valueOf(num));
+        }
+        return resultList;
+    }
+
+    public List<Map<String, Object>> getDestorySampleList(List<Map<String, Object>> inputList){
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        for(Map<String, Object> inputMap : inputList) {
+            StringBuilder sql = new StringBuilder(
+                    "select SAVE_DATE,INSPECTION_ID,PATIENT_NAME,TEST_ORDER_NAME from V_JT_SAVEANDDESTROY where STATE=2");
+
+            MapSqlParameterSource params = new MapSqlParameterSource();
+
+            // 处理SAVE_DATE(字符串类型)
+            if (inputMap.containsKey("OPERATION_DATE") && inputMap.get("OPERATION_DATE") != null) {
+                sql.append(" AND DESTROY_DATE = '"+inputMap.get("OPERATION_DATE")+"'");
+//                params.addValue("saveDate", inputMap.get("SAVE_DATE"), Types.VARCHAR);
+            }
+
+            // 处理GROUPCODE(字符串类型)
+            if (inputMap.containsKey("GROUPCODE") && inputMap.get("GROUPCODE") != null) {
+                sql.append(" AND GROUPCODE = '"+inputMap.get("GROUPCODE")+"'");
+//                params.addValue("groupCode", inputMap.get("GROUPCODE"), Types.VARCHAR);
+            }
+            // INSPECTION_ID(字符串类型)
+            if (inputMap.containsKey("INSPECTION_ID") && inputMap.get("INSPECTION_ID") != null) {
+                sql.append(" AND INSPECTION_ID like '%"+inputMap.get("INSPECTION_ID")+"%'");
+//                params.addValue("INSPECTION_ID", inputMap.get("INSPECTION_ID"), Types.VARCHAR);
+            }
+            //PATIENT_NAME(字符串类型)
+            if (inputMap.containsKey("PATIENT_NAME") && inputMap.get("PATIENT_NAME") != null) {
+                sql.append(" AND PATIENT_NAME like '%"+inputMap.get("PATIENT_NAME")+"%'");
+//                params.addValue("PATIENT_NAME", inputMap.get("PATIENT_NAME"), Types.VARCHAR);
+            }
+            //TEST_ORDER_NAME(字符串类型)
+            if (inputMap.containsKey("TEST_ORDER_NAME") && inputMap.get("TEST_ORDER_NAME") != null) {
+                sql.append(" AND TEST_ORDER_NAME like '%"+inputMap.get("TEST_ORDER_NAME")+"%'");
+//                params.addValue("TEST_ORDER_NAME", inputMap.get("TEST_ORDER_NAME"), Types.VARCHAR);
+            }
+            log.info("execute sql: " + sql.toString());
+            resultList.addAll(jdbcTemplate.queryForList(sql.toString()));
+            int num = resultList.size();
+            log.info("get data size: " + String.valueOf(num));
+        }
+        return resultList;
+    }
+
+    public int SaveSample(List<Map<String, Object>> inputList){
+        String OperationDate = null;
+        String GroupCode = null;
+        String OperationName = null;
+        int ret = -1;
+        List<String> RemoveSampleList = new ArrayList<>();
+        for(Map<String, Object> inputMap : inputList) {
+            if (inputMap.containsKey("OPERATION_DATE")) {
+                OperationDate = String.valueOf(inputMap.get("OPERATION_DATE"));
+            }
+            if (inputMap.containsKey("GROUPCODE")) {
+                GroupCode = String.valueOf(inputMap.get("GROUPCODE"));
+            }
+            if (inputMap.containsKey("OPERATIONNAME")) {
+                OperationName = String.valueOf(inputMap.get("OPERATIONNAME"));
+            }
+            if (inputMap.containsKey("RemoveSampleList")) {
+                Object obj = inputMap.get("RemoveSampleList");
+                if (obj instanceof List<?>) {
+                    for (Object item : (List<?>) obj) {
+                        RemoveSampleList.add(String.valueOf(item));
+                    }
+                }
+            }
+        }
+        String result = "";
+        if (RemoveSampleList == null || RemoveSampleList.isEmpty()) {
+            result = "";
+        }else{
+            for (String item : RemoveSampleList) {
+                result += item + ",";
+            }
+        }
+        result = result.substring(0, result.length() - 1);
+
+        String xml =
+                "<OprationDate>" + OperationDate + "</OprationDate>" +
+                "<GroupCode>" + GroupCode + "</GroupCode>" +
+                "<RemoveSampleList>" + result + "</RemoveSampleList>" +
+                "<OprationName>" + OperationName + "</OprationName>";
+
+        //准备调用存储过程
+        String methodCode = "SaveSample";
+        SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
+                .withProcedureName("USP_JT_INTERFACE")
+                .declareParameters(
+                        new SqlParameter("methodCode", Types.VARCHAR),
+                        new SqlParameter("inParamXml", Types.VARCHAR),
+                        new SqlOutParameter("a_result", Types.VARCHAR)
+                );
+
+        Map<String, Object> inParams = new HashMap<>();
+        inParams.put("methodCode", "SaveSample");
+        inParams.put("inParamXml", xml);
+        log.info("call process:Save-> " + xml);
+        Map<String, Object> out = jdbcCall.execute(inParams);
+        ret = Integer.parseInt((String) out.get("a_result"));
+        return ret;
+    }
+
+    public int DestorySample(List<Map<String, Object>> inputList){
+        String OperationDate = null;
+        String GroupCode = null;
+        String OperationName = null;
+        int ret = 0;
+        List<String> RemoveSampleList = new ArrayList<>();
+        for(Map<String, Object> inputMap : inputList) {
+            if (inputMap.containsKey("OPERATION_DATE")) {
+                OperationDate = String.valueOf(inputMap.get("OPERATION_DATE"));
+            }
+            if (inputMap.containsKey("GROUPCODE")) {
+                GroupCode = String.valueOf(inputMap.get("GROUPCODE"));
+            }
+            if (inputMap.containsKey("USERNAME")) {
+                OperationName = String.valueOf(inputMap.get("USERNAME"));
+            }
+            if (inputMap.containsKey("RemoveSampleList")) {
+                Object obj = inputMap.get("RemoveSampleList");
+                if (obj instanceof List<?>) {
+                    for (Object item : (List<?>) obj) {
+                        RemoveSampleList.add(String.valueOf(item));
+                    }
+                }
+            }
+        }
+        String result = "";
+        if (RemoveSampleList == null || RemoveSampleList.isEmpty()) {
+            result = "";
+        }else{
+            for (String item : RemoveSampleList) {
+                result += item + ",";
+            }
+        }
+        result = result.substring(0, result.length() - 1);
+
+        String xml =
+                "<OprationDate>" + OperationDate + "</OprationDate>" +
+                "<GroupCode>" + GroupCode + "</GroupCode>" +
+                "<RemoveSampleList>" + result + "</RemoveSampleList>" +
+                "<OprationName>" + OperationName + "</OprationName>";
+
+        //准备调用存储过程
+        String methodCode = "DestorySample";
+        SimpleJdbcCall jdbcCall = new SimpleJdbcCall(jdbcTemplate)
+                .withProcedureName("USP_JT_INTERFACE")
+                .declareParameters(
+                        new SqlParameter("methodCode", Types.VARCHAR),
+                        new SqlParameter("inParamXml", Types.VARCHAR),
+                        new SqlOutParameter("a_result", Types.VARCHAR)
+                );
+
+        Map<String, Object> inParams = new HashMap<>();
+        inParams.put("methodCode", "DestorySample");
+        inParams.put("inParamXml", xml);
+        log.info("call process:Destory-> " + xml);
+        Map<String, Object> out = jdbcCall.execute(inParams);
+        ret = Integer.parseInt((String) out.get("a_result"));
+        return ret;
+    }
+}

+ 0 - 94
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/view/TemperatureEntity.java

@@ -1,94 +0,0 @@
-package com.jyxt.getdatabyrestful.view;
-
-public class TemperatureEntity {
-    private String id;
-    private String bianzhishijian;
-    private String caijiqiid;
-    private String entitytype;
-    private String entityname;
-    private String entityname2;
-    private String entityid;
-    private String status;
-    private String monitordate;
-    private String monitordetail;
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getBianzhishijian() {
-        return bianzhishijian;
-    }
-
-    public void setBianzhishijian(String bianzhishijian) {
-        this.bianzhishijian = bianzhishijian;
-    }
-
-    public String getCaijiqiid() {
-        return caijiqiid;
-    }
-
-    public void setCaijiqiid(String caijiqiid) {
-        this.caijiqiid = caijiqiid;
-    }
-
-    public String getEntitytype() {
-        return entitytype;
-    }
-
-    public void setEntitytype(String entitytype) {
-        this.entitytype = entitytype;
-    }
-
-    public String getEntityname() {
-        return entityname;
-    }
-
-    public void setEntityname(String entityname) {
-        this.entityname = entityname;
-    }
-
-    public String getEntityname2() {
-        return entityname2;
-    }
-
-    public void setEntityname2(String entityname2) {
-        this.entityname2 = entityname2;
-    }
-
-    public String getEntityid() {
-        return entityid;
-    }
-
-    public void setEntityid(String entityid) {
-        this.entityid = entityid;
-    }
-
-    public String getStatus() {
-        return status;
-    }
-
-    public void setStatus(String status) {
-        this.status = status;
-    }
-
-    public String getMonitordate() {
-        return monitordate;
-    }
-
-    public void setMonitordate(String monitordate) {
-        this.monitordate = monitordate;
-    }
-
-    public String getMonitordetail() {
-        return monitordetail;
-    }
-
-    public void setMonitordetail(String monitordetail) {
-        this.monitordetail = monitordetail;
-    }
-}

+ 0 - 49
GetDataByRESTful/src/main/java/com/jyxt/getdatabyrestful/view/repository/TemperatureEntityRepository.java

@@ -1,49 +0,0 @@
-package com.jyxt.getdatabyrestful.view.repository;
-
-import com.jyxt.getdatabyrestful.view.TemperatureEntity;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Repository;
-
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.List;
-
-@Repository
-public class TemperatureEntityRepository {
-    @Autowired
-    private JdbcTemplate jdbcTemplate;
-
-    private static final Logger log = LoggerFactory.getLogger(TemperatureEntityRepository.class);
-
-    @Value("${fetch.sqlGetUndo}")
-    private String sql;
-
-    @Value("${config.qrymode}")
-    private String qryMode;
-
-    public List<TemperatureEntity> query(){
-        log.info("excute sql:" + sql);
-        List<TemperatureEntity> result = jdbcTemplate.query(
-                sql,
-                new RowMapper<TemperatureEntity>() {
-                    public TemperatureEntity mapRow(ResultSet rs, int rowNum) throws SQLException {
-                        TemperatureEntity te = new TemperatureEntity();
-                        te.setId(rs.getString("id_"));
-                        te.setBianzhishijian(rs.getString("bian_zhi_shi_jian"));
-                        te.setEntityname(rs.getString("bing_xiang_bian_h"));
-                        return te;
-                    }
-                });
-        if (result.isEmpty()) {
-            log.info("-------------no data finded,nothing to do...-------------");
-        }
-        return result;
-    }
-
-}

+ 46 - 7
GetDataByRESTful/src/main/resources/application.properties

@@ -1,16 +1,55 @@
 spring.application.name=GetDataByRESTful
 #spring.datasource.jdbc-url = jdbc:mysql://demo2.local:3306/klims-ibps3?characterEncoding=utf8&useSSL=false
-spring.datasource.jdbc-url = jdbc:mysql://dev1.local:3306/klims-ibps3?characterEncoding=utf8&useSSL=false
+spring.datasource.jdbc-url = jdbc:mysql://localhost:3306/klims-ibps3?characterEncoding=utf8&useSSL=false
 spring.datasource.username = root
 spring.datasource.password = test001
 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
-
-#fetch.sqlGetUndo=select id_,bian_zhi_shi_jian,zhi_liang_zhi_bia,yuan_shi_shu_ju_ from t_zlzbpjzb where zhuang_tai_='\u5f85\u5904\u7406'
-fetch.sqlGetUndo=SELECT * from t_bxwdjkjlb where shi_fou_guo_shen_='\u5f85\u5904\u7406' and date(create_time_) = curdate()
+spring.second-datasource.jdbc-url = jdbc:oracle:thin:@192.168.0.7:1521/lis
+spring.second-datasource.username = xhoffline
+spring.second-datasource.password = 7450000E
+spring.second-datasource.driver-class-name = oracle.jdbc.driver.OracleDriver
 logging.file.name=logs/GetDataByRESTful.log
 # level:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
 logging.level.root=INFO
-#1 or 0,1 means only qry,0 means update
-config.qrymode=0
+server.servlet.context-path=/jyxt
+springdoc.api-docs.title=JYXT API
+springdoc.api-docs.description=JYXT API Description
+#??API:http://localhost:8080/jyxt/swagger-ui/index.html
+springdoc.swagger-ui.path=/swagger-ui.html
+# ??Swagger UI????????
+springdoc.swagger-ui.enabled=true
+server.port=8080
+#1 or 0,0 means only output logs,1 means insert
+config.insertMode=0
 UrlAddr=http://coolaf.com/tool
-api.resources.path=/ibps/platform/v3/auth/resources/getDefaultResources
+api.resources.path=/ibps/platform/v3/auth/resources/getDefaultResources
+#??????(1 enable,0 disable)
+#????,?????????????
+interface.SampleProcess=1
+
+
+interface.test=1
+#-------------????????------------------
+interface.LISProcess=1
+#??????
+interface.RerunSampleRecord=1
+#???????
+interface.IncrrectLISReport=1
+#????????????
+interface.CriticalReport=1
+#????????
+interface.OvertimeReport=1
+#???????
+interface.PostiveReport=1
+#???????????
+interface.QCMonthReport=1
+#-------------??????------------------
+interface.QualityIndicator=1
+#??????????
+interface.getQualityIndicatorItem=1
+#???????????
+interface.getUndoQualityIndicatorItem=1
+#???????????
+interface.saveUndoQualityIndicator=1
+#-------------????????------------------
+interface.EnvirMonitor=1

+ 1 - 9
GetDataByView/src/main/java/com/jyxt/getdatabyview/DateRangeUtil.java

@@ -85,14 +85,6 @@ public class DateRangeUtil {
 //        System.out.println(getDateRange("2023年第3季度"));
 //        System.out.println(getDateRange("2025年第1季度"));
         Test();
-        Test();
-        Test();
-        Test();
-        Test();
-        Test();
-        Test();
-        Test();
-        Test();
-        Test();
+
     }
 }

+ 19 - 22
GetDataByView/src/main/java/com/jyxt/getdatabyview/GetDataByViewApplication.java

@@ -1,8 +1,7 @@
 package com.jyxt.getdatabyview;
 
-import com.jyxt.getdatabyview.view.QualityIndicator;
+import com.jyxt.getdatabyview.view.repository.IBPSRepository;
 import com.jyxt.getdatabyview.view.repository.LISViewRepository;
-import com.jyxt.getdatabyview.view.repository.QualityIndicatorRepository;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -12,7 +11,10 @@ import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.context.ConfigurableApplicationContext;
 
+import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.List;
+import java.util.Map;
 
 @SpringBootApplication
 public class GetDataByViewApplication implements CommandLineRunner{
@@ -23,11 +25,7 @@ public class GetDataByViewApplication implements CommandLineRunner{
     private LISViewRepository lisViewRepository;
 
     @Autowired
-    private QualityIndicatorRepository qualityIndicatorRepository;
-
-    public static void main(String[] args) {
-        SpringApplication.run(GetDataByViewApplication.class, args);
-    }
+    private IBPSRepository ipbpsRepository;
 
     @Autowired
     private HandleData handleData;
@@ -35,26 +33,25 @@ public class GetDataByViewApplication implements CommandLineRunner{
     @Autowired
     private ConfigurableApplicationContext context;
 
+    public List<String> lisTableList = Arrays.asList("V_JT_TestCodeRerunRecord", "V_JT_QCMonthReport", "V_JT_QCTestCodeReport");
+
+
+    public static void main(String[] args) {
+        SpringApplication.run(GetDataByViewApplication.class, args);
+    }
+
     @Override
     public void run(String... args) throws Exception {
-//        System.out.println("in run");
         log.info("<-------------new turn start...------------->");
-        List<QualityIndicator> qiList = qualityIndicatorRepository.query();
-        if(qiList != null){
-            for (QualityIndicator qi : qiList) {
-                try {
-                    String pingjiaId = qi.getId();
-                    String zhiliangzhibia = qi.getzhiliangzhibia();
-                    String bianzhishijian = qi.getbianzhishijian();
-                    String yuanshishuju = qi.getYuanshishuju();
-                    handleData.startHandleData(pingjiaId,zhiliangzhibia,bianzhishijian,yuanshishuju);
-
-                }catch (Exception ex){
-                    log.error(ex.getMessage());
-                }
+        ipbpsRepository.getBasicData();
+        for(String lisTable : lisTableList){
+            List<Map<String, Object>> rerunTestList = lisViewRepository.query(lisTable);
+            if(rerunTestList != null){
+                handleData.startHandleData(rerunTestList);
             }
+
         }
-        log.info("<-------------this turn finish...------------->");
+        log.info("<-- -----------this turn finish...------------->");
         context.close(); // 直接关闭上下文
     }
 }

+ 88 - 101
GetDataByView/src/main/java/com/jyxt/getdatabyview/HandleData.java

@@ -1,13 +1,15 @@
 package com.jyxt.getdatabyview;
 
+import com.jyxt.getdatabyview.view.repository.IBPSRepository;
 import com.jyxt.getdatabyview.view.repository.LISViewRepository;
-import com.jyxt.getdatabyview.view.repository.QualityIndicatorRepository;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
+import java.sql.Timestamp;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 @Component
@@ -18,109 +20,94 @@ public class HandleData {
     private LISViewRepository lisViewRepository;
 
     @Autowired
-    private QualityIndicatorRepository qualityIndicatorRepository;
-
-    private static final String RESULT_DELIMITER = "\\^";
-
-    private static final List<String> qualityIndicatorList = Collections.unmodifiableList(
-            Arrays.asList(
-                    "总标本不合格率",                // 0
-                    "抗凝标本凝集率",                // 1
-                    "标本类型错误率",                // 2
-                    "标本容器错误率",                // 3
-                    "标本溶血率",                   // 4
-                    "标本采集量错误率",              // 5
-                    "急诊常规实验室内TAT中位数",      // 6
-                    "急诊生化免疫实验室内TAT中位数",   // 7
-                    "急诊凝血实验室内TAT中位数",      // 8
-                    "急诊血常规检验前周转时间中位数",   // 9
-                    "急诊血常规实验室内周转时间中位数", // 10
-                    "常规检验报告发放TAT时间符合率",   // 11
-                    "检验报告不正确率",              // 12
-                    "危急值通报率",                 // 13
-                    "危急值通报及时率",              // 14
-                    "标本合格率",                   // 15
-                    "TAT时间合格率",                // 16
-                    "报告准确率",                   // 17
-                    "危急值通报符合率"               // 18
-            )
-    );
-
-    public void startHandleData(String pingjiaId,String zhiliangzhibia,String bianzhishijian, String yuanshishuju) {
-
-        if (qualityIndicatorList.contains(zhiliangzhibia)){
-//            System.out.println(output);
-            log.info("ID: {}, zhiliangzhibia: {}, bianzhishijian: {}", pingjiaId, zhiliangzhibia, bianzhishijian);
-            int QIIndex = qualityIndicatorList.indexOf(zhiliangzhibia);
-            String DataDetail = "";
-            String dateRange = DateRangeUtil.getDateRange(bianzhishijian);
-            String[] resultParts = lisViewRepository.query(QIIndex,dateRange).split(RESULT_DELIMITER);
-//            String[] resultParts = new String[] {"", "", ""};
-//            if (pingjiaId.equals("1367710945618427904")) {
-//                resultParts = new String[] {"100", "10000", "10000"};
-//            }
-            String resultValue = resultParts[0];
-            if (resultValue.startsWith(".")) {
-                resultValue = "0" + resultValue;
-            }
-            String IsQualified = null;
-            if ((!Objects.equals(resultValue, ""))){
-                IsQualified = ValueEvaluator.evaluateValue(resultValue,yuanshishuju);
-            }
-            //总数统计
-            if (resultParts.length==2){
-                String total = resultParts[1];
-                if ((!Objects.equals(resultValue, ""))&&(!Objects.equals(resultValue,null))&&(!Objects.equals(resultValue,"-1"))) {
-//                System.out.println("output:"+ResultValue);
-                    log.info("Get LIS RetVal:{},zhiliangzhibiao:{},bianzhishijian:{}",resultParts,zhiliangzhibia,bianzhishijian);
-                    if (QIIndex==6){
-                        DataDetail = "同期临检(住院)及临检(门诊)的三大常规(血、尿、便)标本共 "+resultParts[1]+" 例";
-                    } else if (QIIndex==7){
-                        DataDetail = "同期临检急诊组的急诊生化、免疫标本共 "+resultParts[1]+" 例";
-                    } else if (QIIndex==8){
-                        DataDetail = "同期临检(住院)及临检(门诊) 的急诊血凝标本共 "+resultParts[1]+" 例";
-                    } else if ((QIIndex==9)||(QIIndex==10)){
-                        DataDetail = "同期临检(住院)及临检(门诊) 的急诊血常规标本共 "+resultParts[1]+" 例";
+    private IBPSRepository ibpsRepository;
+
+    public static final Map<String, String> RerunSampleField = new HashMap<>();
+
+    static {
+        // 静态初始化块中填充数据
+        RerunSampleField.put("CREATEBY", "bian_zhi_ren_");
+        RerunSampleField.put("CREATETIME", "bian_zhi_shi_jian");
+        RerunSampleField.put("SAMPLECODE", "biao_ben_bian_hao");
+//        RerunSampleField.put("TESTCODE", "xiang_mu_id_");
+        RerunSampleField.put("TESTCODENAME", "fu_jian_xiang_mu_");
+        RerunSampleField.put("INITIALRESULT", "ce_ding_zhi_chu_j");
+        RerunSampleField.put("RERUNRESULT", "ce_ding_zhi_fu_ji");
+        RerunSampleField.put("REPORTRESULT", "bao_gao_zhi_");
+        RerunSampleField.put("AUDITUSER", "jian_yan_zhe_");
+        RerunSampleField.put("REPORTTIME", "bao_gao_shi_jian_");
+        RerunSampleField.put("RERUNMETHODNOTE", "bei_zhu_fu_jian_f");
+        RerunSampleField.put("PATNAME", "xing_ming_");
+        RerunSampleField.put("RERUNMETHOD", "fu_jian_fang_shi_");
+        RerunSampleField.put("UNIT", "dan_wei_");
+    }
+
+
+    public void startHandleData(List<Map<String, Object>> rerunTestList) {
+        List<Map<String, Object>> existList = ibpsRepository.qryExistData();
+        rerunTestList = cleanExistData(rerunTestList,existList);
+        if (rerunTestList.size() > 0) {
+            String fieldName = null;
+            String fieldValue = null;
+            List<Map<String, Object>> insertList = new ArrayList<Map<String, Object>>();
+            for (Map entityMap : rerunTestList) {
+                Map<String, Object> insertMap = new HashMap<>();
+                for (Object entry : entityMap.keySet()) {
+                    fieldName = null;
+                    fieldValue = null;
+                    fieldName = RerunSampleField.get(entry.toString());
+                    Object value = entityMap.get(entry.toString());
+                    fieldValue = value != null ? value.toString() : null;
+                    if (fieldName != null) {
+                        insertMap.put(fieldName, fieldValue);
                     }
-//                    qualityIndicatorRepository.save(pingjiaId, resultValue,total,DataDetail,IsQualified);
-                    //分子不需要整数
-                    qualityIndicatorRepository.save(pingjiaId, resultValue,resultValue,DataDetail,IsQualified);
                 }
-            } else if (resultParts.length==3){
-                String numerator = resultParts[1];
-                String denominator = resultParts[2];
-                if ((!Objects.equals(resultValue, ""))&&(!Objects.equals(resultValue,null))&&(!Objects.equals(resultValue,"-1"))){
-                    log.info("Get LIS RetVal:{},zhiliangzhibiao:{},bianzhishijian:{}",resultParts,zhiliangzhibia,bianzhishijian);
-                    if (QIIndex==0){
-                        DataDetail = "不合格标本数 "+resultParts[1]+" 例,同期标本总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==1){
-                        DataDetail = "凝集的标本数 "+resultParts[1]+" 例,同期需抗凝的标本总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==2){
-                        DataDetail = "类型错误或不适当的标本数 "+resultParts[1]+" 例,同期标本总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==3){
-                        DataDetail = "采集容器错误的标本数 "+resultParts[1]+" 例,同期标本总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==4){
-                        DataDetail = "溶血的标本 "+resultParts[1]+" 例,同期标本总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==5){
-                        DataDetail = "量不足或过多(抗凝标本)的标本数 "+resultParts[1]+" 例,同期标本总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==12){
-                        DataDetail = "实验室发出的不正确报告数 "+resultParts[1]+" 例,报告总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==13){
-                        DataDetail = "已通报危急值数 "+resultParts[1]+" 例,同期需要通报危急值总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==14){
-                        DataDetail = "危急值通报时间(从结果确认到与临床医生交流的时间)满足规定时间的检验项目数 "+resultParts[1]+" 例,同期需要危急值满足规定时间通报的检验项目总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==15){
-                        DataDetail = "全年合格标本总数 "+resultParts[1]+" 例,全年标本总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==17){
-                        DataDetail = "实验室发出的正确报告数 "+resultParts[1]+" 例,同期实验室发出报告总数 "+resultParts[2]+" 例";
-                    } else if (QIIndex==18){
-                        DataDetail = "危急值通报时间(从结果确认到与临床医生交流的时间)满足规定时间的检验项目数 "+resultParts[1]+" 例,同期需要危急值通报的检验项目总数 "+resultParts[2]+" 例";
-                    }
-                    qualityIndicatorRepository.save(pingjiaId,resultValue,numerator,denominator,DataDetail,IsQualified);
+                //补充其他字段信息
+                insertMap.put("id_", entityMap.get("SAMPLECODE")+"_"+entityMap.get("ITEMCODE"));
+                insertMap.put("shi_fou_guo_shen_", "已完成");
+                String userInfo = ibpsRepository.getUserInfoByName(String.valueOf(entityMap.get("CREATEBY")));
+                if (userInfo.split("\\^")[0].equals("-1")) {
+                    continue;
                 }
-            } else {
-                log.info("no result to save:zhiliangzhibiao:{},bianzhishijian:{}",zhiliangzhibia,bianzhishijian);
+                LocalDateTime currentDateTime = LocalDateTime.now();
+                DateTimeFormatter formatter2 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+                String formattedDateTime = currentDateTime.format(formatter2);
+                insertMap.put("create_by_", userInfo.split("@")[0]);
+                insertMap.put("create_time_", Timestamp.valueOf(String.valueOf(formattedDateTime)));
+                insertMap.put("ri_qi_", String.valueOf(entityMap.get("CREATETIME")).split(" ")[0]);
+                insertMap.put("bian_zhi_bu_men_", userInfo.split("@")[1]);
+                insertList.add(insertMap);
+            }
+            //ibpsRepository.saveToTable(insertList, "t_fjbbjlb");
+
+        }
+
+
+    }
+
+    public List<Map<String, Object>> cleanExistData(List<Map<String, Object>> rerunTestList, List<Map<String, Object>> existList) {
+        // 1. 创建Set存储existList中所有id_的值(转换为字符串形式)
+        Set<String> existIdSet = new HashSet<>();
+        for (Map<String, Object> existMap : existList) {
+            Object idObj = existMap.get("id_");
+            existIdSet.add(idObj == null ? null : idObj.toString());
+        }
+
+        // 2. 过滤rerunTestList:只保留id不在existIdSet中的元素
+        List<Map<String, Object>> resultList = new ArrayList<>();
+        for (Map<String, Object> testMap : rerunTestList) {
+            Object idObj = testMap.get("SAMPLECODE")+"_"+testMap.get("ITEMCODE");
+
+            String idStr = idObj == null ? null : idObj.toString();
+
+            // 如果当前id不在existIdSet中,则保留
+            if (!existIdSet.contains(idStr)) {
+                resultList.add(testMap);
             }
         }
+        return resultList;
     }
+
+
+
 }

+ 0 - 72
GetDataByView/src/main/java/com/jyxt/getdatabyview/view/QualityIndicator.java

@@ -1,72 +0,0 @@
-package com.jyxt.getdatabyview.view;
-
-public class QualityIndicator {
-
-    private String id;
-    private String bianzhishijian;
-    private String zhiliangzhibia;
-    private String zhuangtai;
-    private String shijishuzhi;
-    private String yuanshishuju;
-
-    public String getId() {
-        return id;
-    }
-
-    public void setId(String id) {
-        this.id = id;
-    }
-
-    public String getbianzhishijian() {
-        return bianzhishijian;
-    }
-
-    public void setbianzhishijian(String bianzhishijian) {
-        this.bianzhishijian = bianzhishijian;
-    }
-
-    public String getzhiliangzhibia() {
-        return zhiliangzhibia;
-    }
-
-    public void setzhiliangzhibia(String zhiliangzhibia) {
-        this.zhiliangzhibia = zhiliangzhibia;
-    }
-
-    public String getzhuangtai() {
-        return zhuangtai;
-    }
-
-    public void setzhuangtai(String zhuangtai) {
-        this.zhuangtai = zhuangtai;
-    }
-
-    public String getshijishuzhi() {
-        return shijishuzhi;
-    }
-
-    public void setshijishuzhi(String shijishuzhi) {
-        this.shijishuzhi = shijishuzhi;
-    }
-
-    public String getYuanshishuju() {
-        return yuanshishuju;
-    }
-
-    public void setYuanshishuju(String yuanshishuju) {
-        this.yuanshishuju = yuanshishuju;
-    }
-
-    @Override
-    public String toString() {
-        return "VendorBinxiang{" +
-                "id='" + id + '\'' +
-                ", bianzhishijian='" + bianzhishijian + '\'' +
-                ", zhiliangzhibia='" + zhiliangzhibia + '\'' +
-                ", zhuangtai='" + zhuangtai + '\'' +
-                ", shijishuzhi='" + shijishuzhi + '\'' +
-                ", yuanshishuju='" + yuanshishuju + '\'' +
-                '}';
-    }
-
-}

+ 43 - 0
GetDataByView/src/main/java/com/jyxt/getdatabyview/view/repository/IBPSRepository.java

@@ -0,0 +1,43 @@
+package com.jyxt.getdatabyview.view.repository;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.jdbc.core.BeanPropertyRowMapper;
+import org.springframework.jdbc.core.JdbcTemplate;
+import org.springframework.jdbc.core.RowMapper;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+import java.util.Map;
+
+
+@Repository
+public class IBPSRepository {
+    @Autowired
+    @Qualifier("secondJdbcTemplate")
+    private JdbcTemplate jdbcTemplate;
+
+    private static final Logger log = LoggerFactory.getLogger(IBPSRepository.class);
+
+    @Value("${config.insertMode}")
+    private String insertMode;
+
+    public List<Map<String, Object>> qryExistData(){
+        List<Map<String, Object>> existList = null;
+        String sqlQry = "SELECT * FROM t_fjbbjlb WHERE bian_zhi_shi_jian >= DATE_SUB(NOW(), INTERVAL 24 HOUR)";
+        log.info("excute sql:"+sqlQry);
+        existList = jdbcTemplate.queryForList(sqlQry);
+        return existList;
+    }
+
+    public String getUserInfoByName(String UserName){
+
+        return "";
+    }
+
+    public void getBasicData(){}
+
+}

+ 43 - 267
GetDataByView/src/main/java/com/jyxt/getdatabyview/view/repository/LISViewRepository.java

@@ -11,6 +11,7 @@ import org.springframework.stereotype.Component;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
+import java.util.Map;
 
 @Component   // 通用注解
 @Repository
@@ -20,281 +21,56 @@ public class LISViewRepository {
     @Autowired
     private JdbcTemplate jdbcTemplate;
 
-//        qualityIndicatorList.add("总标本不合格率");                //0
-//        qualityIndicatorList.add("抗凝标本凝集率");                //1
-//        qualityIndicatorList.add("标本类型错误率");               //2
-//        qualityIndicatorList.add("标本容器错误率");                //3
-//        qualityIndicatorList.add("标本溶血率");                   //4
-//        qualityIndicatorList.add("标本采集量错误率");              //5
-//        qualityIndicatorList.add("急诊常规实验室内TAT中位数");      //6
-//        qualityIndicatorList.add("急诊生化免疫实验室内TAT中位数");   //7
-//        qualityIndicatorList.add("急诊凝血实验室内TAT中位数");      //8
-//        qualityIndicatorList.add("急诊血常规检验前周转时间中位数");   //9
-//        qualityIndicatorList.add("急诊血常规实验室内周转时间中位数"); //10
-//        qualityIndicatorList.add("常规检验报告发放TAT时间符合率");   //11
-//        qualityIndicatorList.add("检验报告不正确率");              //12
-//        qualityIndicatorList.add("危急值通报率");                 //13
-//        qualityIndicatorList.add("危急值通报及时率");              //14
-//        qualityIndicatorList.add("标本合格率");                   //15
-//        qualityIndicatorList.add("TAT时间合格率");                //16
-//        qualityIndicatorList.add("报告准确率");                   //17
-//        qualityIndicatorList.add("危急值通报符合率");              //18
 
-    public String query(Integer QIIndex,String dateRange) {
-        String StartDate = dateRange.substring(0,10)+" 00:00:00";
-        String EndDate = dateRange.substring(11)+" 23:59:59";
-//        System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-
-        if (QIIndex != null) {
-            //总标本不合格率
-            if (QIIndex == 0) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM" +
-                        "(SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //抗凝标本凝集率
-            if (QIIndex == 1) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount*1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
-                        "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE='02' and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE sampletypeid='00' and RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //标本类型错误率
-            if (QIIndex == 2) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
-                        "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE in ('3','2','15') and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //标本容器错误率
-            if (QIIndex == 3) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
-                        "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE in ('20','1') and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //标本溶血率
-            if (QIIndex == 4) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
-                        "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE='01' and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //标本采集量错误率
-            if (QIIndex == 5) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM (" +
-                        "SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE REJECTREASONCODE in ('03','031') and RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //急诊常规实验室内TAT中位数
-            if (QIIndex == 6) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM  V_JT_TAT c INNER JOIN (SELECT  b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
-                        "WHERE b.INSTRUMENTGROUPCODE IN ('CG_BloodLAS','CG_UristLAS3','CG_XD6001','USF3000','CG_FA280S','CG_BC5390','CG_FA280S2') AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
-            }
-
-            //急诊生化免疫实验室内TAT中位数
-            if (QIIndex == 7) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM  V_JT_TAT c INNER JOIN (SELECT  b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
-                        "WHERE b.INSTRUMENTGROUPCODE='Abbott_IM_LAS_1' AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
-            }
-
-            //急诊凝血实验室内TAT中位数
-            if (QIIndex == 8) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM  V_JT_TAT c INNER JOIN (SELECT  b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
-                        "WHERE b.INSTRUMENTGROUPCODE='CG_StagoCompact' AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
-            }
-
-            //急诊血常规检验前周转时间中位数
-            if (QIIndex == 9) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT MEDIAN(c.PRETAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM  V_JT_TAT c INNER JOIN (SELECT  b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
-                        "WHERE b.INSTRUMENTGROUPCODE in ('CG_BloodLAS','CG_BC5390') AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
-            }
-
-            //急诊血常规实验室内周转时间中位数
-            if (QIIndex == 10) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT MEDIAN(c.INTAT) AS RESULTVALUE, MAX(d.TOTAL_COUNT) AS Total FROM  V_JT_TAT c INNER JOIN (SELECT  b.SAMPLEID,COUNT(*) OVER() AS TOTAL_COUNT FROM V_JT_LISREQUEST a INNER JOIN V_JT_LISREPORT b ON a.SAMPLEID = b.SAMPLEID " +
-                        "WHERE b.INSTRUMENTGROUPCODE in ('CG_BloodLAS','CG_BC5390') AND a.RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) d ON c.SAMPLEID = d.SAMPLEID";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getTotal();
-            }
-
-            //常规检验报告发放TAT时间符合率
-
-            //检验报告不正确率+
-            if (QIIndex == 12) {
-//                System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((CancelCount * 1.0 / AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,CancelCount as Numerator,AllCount as Denominator FROM (" +
-                        "SELECT (SELECT COUNT(*) FROM V_JT_LISCANCELREPORT WHERE GROUPID in ('30','06','05','00','31','07') and CANCELAUDITREASON like '%不正确%' and CANCELAUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS CancelCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisreport WHERE GROUPID in ('30','06','05','00','31','07') and AUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //危急值通报率
-            if (QIIndex == 13) {
-//                System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                //String sqlQry = "select count(*) as ResultValue from v_jt_lisrequest where SampleTime between ? and ?";
-//                String sqlQry = "SELECT ROUND((COUNT(CASE WHEN ReceiverFlag = '1' THEN 1 END)/COUNT(*))*100,2) AS ResultValue FROM V_JT_CRITICAL where BUILDCRISISTIME between TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')";
-                String sqlQry = "SELECT ROUND((COUNT(CASE WHEN ReceiverFlag = '1' THEN 1 END)/COUNT(*))*100, 2) AS ResultValue,COUNT(CASE WHEN ReceiverFlag = '1' THEN 1 END) AS Numerator,COUNT(*) AS Denominator "+
-                        "FROM V_JT_CRITICAL WHERE BUILDCRISISTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS') and groupid in ('00','06','31','30')";
+    public List<Map<String, Object>> query(String tableName) {
+        List<Map<String, Object>> retList = null;
+        //复查样本记录
+        if(tableName.equals("V_JT_TestCodeRerunRecord")) {
+            try{
+                //        String sqlQry = "SELECT * FROM V_JT_TestCodeRerunRecord WHERE TO_DATE(CreateTime, 'YYYY-MM-DD HH24:MI:SS') >= SYSDATE-1";
+                String sqlQry = "select * from t_zztest";
                 log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
+                retList = jdbcTemplate.queryForList(sqlQry);
+                return retList;
+            } catch (Exception e) {
+                log.error(e.getMessage());
+                e.printStackTrace();
+                return retList;
             }
-
-            //危急值通报及时率
-            if (QIIndex == 14) {
-//                System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                //String sqlQry = "select count(*) as ResultValue from v_jt_lisrequest where SampleTime between ? and ?";
-                String sqlQry = "SELECT ROUND(COUNT(CASE WHEN (SENDCRISISTIME - BUILDCRISISTIME) * 24 * 60 <= 30 THEN 1 END) / COUNT(*) * 100, 2) || '%' AS ResultValue,"+
-                        "COUNT(CASE WHEN (SENDCRISISTIME - BUILDCRISISTIME) * 24 * 60 <= 30 THEN 1 END) AS Numerator,COUNT(*) AS Denominator FROM V_JT_CRITICAL WHERE "+
-                        "BUILDCRISISTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS') AND GROUPID IN ('00', '31', '30') ";
-                        log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
-            }
-
-            //标本合格率
-            if (QIIndex == 15) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((RejectCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,RejectCount as Numerator,AllCount as Denominator FROM " +
-                        "(SELECT (SELECT COUNT(*) FROM v_jt_reject_sample WHERE RejectTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS RejectCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisrequest WHERE RegisterTime BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                // 提取三个部分的字符串值
-                String resultValueStr = lvList.get(0).getResultValue();
-                String denominatorStr = lvList.get(0).getDenominator();
-                String numeratorStr = lvList.get(0).getNumerator();
-
-                // 将分母和分子转换为整数进行计算(假设为整数类型)
-                int denominator = Integer.parseInt(denominatorStr);
-                int numerator = Integer.parseInt(numeratorStr);
-                int newNumeratorValue = denominator - numerator;
-                float resultValue = 100-Float.parseFloat(resultValueStr);
-
-                // 构造新的字符串
-                return String.join("^", String.valueOf(resultValue), String.valueOf(newNumeratorValue), denominatorStr);
-            }
-
-            //报告准确率
-            if (QIIndex == 17) {
-                //System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                String sqlQry = "SELECT CASE WHEN AllCount = 0 THEN -1 ELSE CAST((CancelCount * 1.0/AllCount)*100 AS DECIMAL(20,4)) END AS ResultValue,CancelCount as Numerator,AllCount as Denominator FROM (" +
-                        "SELECT (SELECT COUNT(*) FROM V_JT_LISCANCELREPORT WHERE CANCELAUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS CancelCount," +
-                        "(SELECT COUNT(*) FROM v_jt_lisreport WHERE AUDITTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')) AS AllCount FROM DUAL) Counts";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                // 提取三个部分的字符串值
-                String resultValueStr = lvList.get(0).getResultValue();
-                String denominatorStr = lvList.get(0).getDenominator();
-                String numeratorStr = lvList.get(0).getNumerator();
-
-                // 将分母和分子转换为整数进行计算(假设为整数类型)
-                int denominator = Integer.parseInt(denominatorStr);
-                int numerator = Integer.parseInt(numeratorStr);
-                int newNumeratorValue = denominator - numerator;
-                float resultValue = 100-Float.parseFloat(resultValueStr);
-
-                // 构造新的字符串
-                return String.join("^", String.valueOf(resultValue), String.valueOf(newNumeratorValue), denominatorStr);
+        }
+        //月分析主表
+        if(tableName.equals("V_JT_QCMonthReport!!")) {
+            try{
+                //        String sqlQry = "SELECT * FROM V_JT_TestCodeRerunRecord WHERE TO_DATE(CreateTime, 'YYYY-MM-DD HH24:MI:SS') >= SYSDATE-1";
+                String sqlQry = "select * from t_zztest";
+                log.info("excute sql:"+sqlQry);
+                retList = jdbcTemplate.queryForList(sqlQry);
+                return retList;
+            } catch (Exception e) {
+                log.error(e.getMessage());
+                e.printStackTrace();
+                return retList;
             }
-
-            //危急值通报符合率
-            if (QIIndex == 18) {
-//                System.out.println("dateRange:"+dateRange+",StartDate:"+StartDate+",EndDate:"+EndDate);
-                //String sqlQry = "select count(*) as ResultValue from v_jt_lisrequest where SampleTime between ? and ?";
-                String sqlQry = "SELECT ROUND((COUNT(CASE WHEN AccordFlag = '1' THEN 1 END)/COUNT(*))*100, 2) AS ResultValue, COUNT(CASE WHEN AccordFlag = '1' THEN 1 END) AS Numerator,COUNT(*) AS Denominator FROM " +
-                        "V_JT_CRITICAL WHERE BUILDCRISISTIME BETWEEN TO_DATE('"+StartDate+"', 'YYYY-MM-DD HH24:MI:SS') AND TO_DATE('"+EndDate+"', 'YYYY-MM-DD HH24:MI:SS')";
-                log.info("excute sql:"+sqlQry);
-                RowMapper<LISView> infoRowMapper = new BeanPropertyRowMapper<>(LISView.class);
-                List<LISView> lvList = jdbcTemplate.query(sqlQry, infoRowMapper);
-                //System.out.println(lvList.get(0).getResultValue());
-                return lvList.get(0).getResultValue()+"^"+lvList.get(0).getNumerator()+"^"+lvList.get(0).getDenominator();
+        }
+        //月分析子表
+        if(tableName.equals("V_JT_QCMonthReport!!!!")) {
+            try{
+                //        String sqlQry = "SELECT * FROM V_JT_TestCodeRerunRecord WHERE TO_DATE(CreateTime, 'YYYY-MM-DD HH24:MI:SS') >= SYSDATE-1";
+                String sqlQry = "select * from t_zztest";
+                log.info("excute sql:"+sqlQry);
+                retList = jdbcTemplate.queryForList(sqlQry);
+                return retList;
+            } catch (Exception e) {
+                log.error(e.getMessage());
+                e.printStackTrace();
+                return retList;
             }
         }
-        return "";
+        return retList;
     }
 
-    public String query2(Integer QIIndex,String dateRange) {
-//        System.out.println("in qry2");
-        return "100^1675";
+    public void query2(Integer QIIndex,String dateRange) {
+
     }
 
 }

+ 0 - 105
GetDataByView/src/main/java/com/jyxt/getdatabyview/view/repository/QualityIndicatorRepository.java

@@ -1,105 +0,0 @@
-package com.jyxt.getdatabyview.view.repository;
-
-import com.jyxt.getdatabyview.view.QualityIndicator;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.PreparedStatementCreator;
-import org.springframework.jdbc.core.RowMapper;
-import org.springframework.stereotype.Repository;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.util.List;
-import java.util.Objects;
-
-
-@Repository
-public class QualityIndicatorRepository {
-    @Autowired
-    @Qualifier("secondJdbcTemplate")
-    private JdbcTemplate jdbcTemplate;
-
-
-    private static final Logger log = LoggerFactory.getLogger(QualityIndicatorRepository.class);
-    @Value("${fetch.sqlGetUndo}")
-    private String sql;
-
-    @Value("${config.qrymode}")
-    private String qryMode;
-
-    public List<QualityIndicator> query() {
-        log.info("excute sql:" + sql);
-//        System.out.println(sql);
-        List<QualityIndicator> result = jdbcTemplate.query(
-                sql,
-                new RowMapper<QualityIndicator>() {
-                    @Override
-                    public QualityIndicator mapRow(ResultSet rs, int rowNum) throws SQLException {
-                        QualityIndicator qi = new QualityIndicator();
-                        qi.setId(rs.getString("id_"));
-                        qi.setbianzhishijian(rs.getString("bian_zhi_shi_jian"));
-                        qi.setzhiliangzhibia(rs.getString("zhi_liang_zhi_bia"));
-                        qi.setYuanshishuju(rs.getString("yuan_shi_shu_ju_"));
-                        return qi;
-                    }
-                }
-        );
-        if (result.isEmpty()) {
-            log.info("-------------no data finded,nothing to do...-------------");
-        }
-        return result;
-    }
-
-
-    public void save(String Id, String resultValue, String total, String DataDetail, String IsQualified){
-        //sql语句
-        final String sql = "update t_zlzbpjzb set shi_ji_shu_zhi_=?, fen_zi_=?,zhuang_tai_='已完成', bei_zhu_2_='自动导入',bei_zhu_='自动导入',shu_ju_xiang_qing=?,da_biao_qing_kuan=? where id_=? ";
-//        System.out.println("Id:"+Id+",ResultValue:"+ResultValue);
-//        System.out.println("Ready to update t_zlzbpjzb:Id:"+Id+",ResultValue:"+ResultValue);
-        if (Objects.equals(qryMode, "0")){
-            log.info("Ready to update t_zlzbpjzb:Id:"+Id+",ResultValue:"+resultValue+",total:"+total+",DataDetail:"+DataDetail+",IsQualified:"+IsQualified);
-            jdbcTemplate.update(new PreparedStatementCreator() {
-                public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
-                    PreparedStatement prepareStatement = connection.prepareStatement(sql);
-                    prepareStatement.setString(1, resultValue);
-                    prepareStatement.setString(2, total);
-                    prepareStatement.setString(3, DataDetail);
-                    prepareStatement.setString(4, IsQualified);
-                    prepareStatement.setString(5, Id);
-                    return prepareStatement;
-                }
-            });
-        } else{
-            log.info("qryMode=1,pretend to update t_zlzbpjzb:Id:"+Id+",ResultValue:"+resultValue+",total:"+total+",DataDetail:"+DataDetail+",IsQualified:"+IsQualified);
-        }
-    }
-
-    public void save(String Id, String resultValue, String numerator, String denominator,String DataDetail, String IsQualified){
-        //sql语句
-        final String sql = "update t_zlzbpjzb set shi_ji_shu_zhi_=?, fen_zi_=?,fen_mu_=?,zhuang_tai_='已完成', bei_zhu_2_='自动导入',bei_zhu_='自动导入',shu_ju_xiang_qing=?,da_biao_qing_kuan=? where id_=? ";
-//        System.out.println("Id:"+Id+",ResultValue:"+ResultValue);
-        if (Objects.equals(qryMode, "0")){
-            log.info("Ready to update t_zlzbpjzb:Id:"+Id+",ResultValue:"+resultValue+",Numerator:"+numerator+",Denominator:"+denominator+",DataDetail:"+DataDetail+",IsQualified:"+IsQualified);
-            jdbcTemplate.update(new PreparedStatementCreator() {
-                public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
-                    PreparedStatement prepareStatement = connection.prepareStatement(sql);
-                    prepareStatement.setString(1, resultValue);
-                    prepareStatement.setString(2, numerator);
-                    prepareStatement.setString(3, denominator);
-                    prepareStatement.setString(4, DataDetail);
-                    prepareStatement.setString(5, IsQualified);
-                    prepareStatement.setString(6, Id);
-                    return prepareStatement;
-                }
-            });
-        } else{
-            log.info("qryMode=1,pretend to update t_zlzbpjzb:Id:"+Id+",ResultValue:"+resultValue+",Numerator:"+numerator+",Denominator:"+denominator+",DataDetail:"+DataDetail+",IsQualified:"+IsQualified);
-        }
-    }
-}

+ 9 - 9
GetDataByView/src/main/resources/application.properties

@@ -1,17 +1,17 @@
 spring.application.name=GetDataByView
-spring.datasource.jdbc-url=jdbc:oracle:thin:@192.168.15.212:1521/SYHIS
-spring.datasource.username=JYXT
-spring.datasource.password=Jy#6688xt
-spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
-spring.second-datasource.jdbc-url = jdbc:mysql://localhost:3306/klims-ibps3?characterEncoding=utf8&useSSL=false
+#spring.datasource.jdbc-url=jdbc:oracle:thin:@192.168.0.7:1521/lis
+#spring.datasource.username=xhoffline
+#spring.datasource.password=7450000E
+#spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
+spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/klims-ibps3?characterEncoding=utf8&useSSL=false
+spring.datasource.username=root
+spring.datasource.password=test001
+spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
+spring.second-datasource.jdbc-url = jdbc:mysql://192.168.2.212:3306/klims-ibps3?characterEncoding=utf8&useSSL=false
 spring.second-datasource.username = root
 spring.second-datasource.password = test001
 spring.second-datasource.driver-class-name = com.mysql.cj.jdbc.Driver
-fetch.sql=select * from v_jt_lisrequesttest
-fetch.sqlGetUndo=select id_,bian_zhi_shi_jian,zhi_liang_zhi_bia,yuan_shi_shu_ju_ from t_zlzbpjzb where zhuang_tai_='\u5f85\u5904\u7406'
-fetch.QualityIndicatorStr = ;???????????-??????-????; 
 logging.file.name=logs/GetDataByView.log
 # level:TRACE < DEBUG < INFO < WARN < ERROR < FATAL
 logging.level.root=INFO
 #1 or 0,1 means only qry,0 means update
-config.qrymode=1