Browse Source

查询核酸检测结果,遇到混检时查询子id

lighter 3 years ago
parent
commit
9966d06a46

+ 36 - 9
src/main/java/thyyxxk/webserver/service/examinations/CovidExamService.java

@@ -5,15 +5,19 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import thyyxxk.webserver.constants.Capacity;
 import thyyxxk.webserver.dao.lis.CovidExamDao;
 import thyyxxk.webserver.entity.ResultVo;
 import thyyxxk.webserver.entity.examinations.covidexam.CovidExamResult;
 import thyyxxk.webserver.entity.examinations.covidexam.QueryCovidExamParam;
+import thyyxxk.webserver.service.externalhttp.ThmzSystem;
+import thyyxxk.webserver.utils.FilterUtil;
 import thyyxxk.webserver.utils.ResultVoUtil;
 import thyyxxk.webserver.utils.StringUtil;
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -26,24 +30,47 @@ import java.util.Map;
 @DS("lis")
 public class CovidExamService {
     private final CovidExamDao dao;
+    private final ThmzSystem thmz;
 
-    public CovidExamService(CovidExamDao dao) {
+    @Autowired
+    public CovidExamService(CovidExamDao dao, ThmzSystem thmz) {
         this.dao = dao;
+        this.thmz = thmz;
     }
 
     public ResultVo<Map<String, Object>> queryResult(QueryCovidExamParam param) {
         log.info("查询新冠检测结果:{}", JSON.toJSONString(param));
         Map<String, Object> map = new HashMap<>(Capacity.TWO);
         IPage<CovidExamResult> iPage = getCovidExamResultPage(param);
-        // TODO: 2022/4/8 查到混检的每个人
-//        List<CovidExamResult> list = iPage.getRecords();
-//        list.forEach(itm -> {
-//            if (StringUtil.notBlank(itm.getPtntNo()) && itm.getPtntNo().endsWith("-J")) {
-//
-//            }
-//        });
+        List<CovidExamResult> list = iPage.getRecords();
+        List<CovidExamResult> childrenList = new ArrayList<>();
+        List<Integer> parentList = new ArrayList<>();
+        for (int i = 0; i < list.size(); i ++) {
+            CovidExamResult itm = list.get(i);
+            if (StringUtil.notBlank(itm.getPtntNo()) && itm.getPtntNo().endsWith("-J")) {
+                parentList.add(i);
+                Map<String, Object> childrenMap = thmz.getPatientIdByParentId(itm.getPtntNo());
+                if ((int) childrenMap.get("code") == 0) {
+                    List<Map<String, String>> children = FilterUtil.cast(childrenMap.get("data"));
+                    for (Map<String, String> child : children) {
+                        if (StringUtil.notBlank(child.get("socialNo"))) {
+                            CovidExamResult result = new CovidExamResult();
+                            result.setIdCard(child.get("socialNo"));
+                            result.setPtntName(child.get("name"));
+                            result.setItmStrValue(itm.getItmStrValue());
+                            result.setOrdrCreateDate(itm.getOrdrCreateDate());
+                            childrenList.add(result);
+                        }
+                    }
+                }
+            }
+        }
+        for (int index : parentList) {
+            list.remove(index);
+        }
+        list.addAll(childrenList);
         map.put("totalSize", iPage.getTotal());
-        map.put("list", iPage.getRecords());
+        map.put("list", list);
         return ResultVoUtil.success(map);
     }
 

+ 5 - 3
src/main/java/thyyxxk/webserver/service/externalhttp/ThmzSystem.java

@@ -2,14 +2,13 @@ package thyyxxk.webserver.service.externalhttp;
 
 
 import com.alibaba.fastjson.JSONObject;
-import com.dtflys.forest.annotation.BaseRequest;
-import com.dtflys.forest.annotation.JSONBody;
-import com.dtflys.forest.annotation.Post;
+import com.dtflys.forest.annotation.*;
 import thyyxxk.webserver.entity.mzpayqrcode.PatInfo;
 
 import java.util.Map;
 
 @BaseRequest(baseURL = "http://webhis.thyy.cn:81/thmz/api/v1")
+//@BaseRequest(baseURL = "http://172.16.32.161:81/thmz/api/v1")
 public interface ThmzSystem {
 
     @Post("/queryPatientInfo")
@@ -26,4 +25,7 @@ public interface ThmzSystem {
 
     @Post("/payChargeDetailFormDbzsf")
     Map<String, Object> payChargeDetailFormDbzsf(@JSONBody JSONObject obj);
+
+    @Get("/getPatientIdByParentId?patientId={patientId}")
+    Map<String, Object> getPatientIdByParentId(@Var("patientId") String patientId);
 }