From 7a0128e3f3f586fb01041c3f15eb94428fbc82b9 Mon Sep 17 00:00:00 2001 From: anthonywj Date: Mon, 8 Apr 2024 10:09:17 +0800 Subject: [PATCH] =?UTF-8?q?=E9=95=BF=E6=B3=B0=E5=8C=BB=E9=99=A2=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../glxp/mipsdl/client/ctqyy/CtqyyClient.java | 26 ++++++++++++++++--- .../res/udiwms/ThrInvResultResponse.java | 6 ++++- 2 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java index d185aa7..3953327 100644 --- a/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java +++ b/src/main/java/com/glxp/mipsdl/client/ctqyy/CtqyyClient.java @@ -810,10 +810,13 @@ public class CtqyyClient extends CommonHttpClient { // } catch (IOException e) { // e.printStackTrace(); // } + BaseResponse> baseResponse = JSONObject.parseObject(response, new TypeReference>>() { }); if (baseResponse.getCode() == 20000) { + Map mapArry = new HashMap<>(); + List newArry = new ArrayList<>(); List ptxhInvResponses = baseResponse.getData().getList(); List thrInvResultResponses = new ArrayList<>(); if (CollUtil.isNotEmpty(ptxhInvResponses)) { @@ -845,13 +848,30 @@ public class CtqyyClient extends CommonHttpClient { if (codeEntity == null) { codeEntity = codeDao.selectOne(new LambdaQueryWrapper().eq(IoCodeEntity::getErrUdiCode, ptxhInvResponse.getBarcode()).last("limit 1")); } - thrInvResultResponse.setUdiCode(codeEntity.getCode()); + if (codeEntity != null) + thrInvResultResponse.setUdiCode(codeEntity.getCode()); + else + thrInvResultResponse.setUdiCode(ptxhInvResponse.getBarcode()); thrInvResultResponses.add(thrInvResultResponse); } + + for (ThrInvResultResponse thrInvResultResponse : thrInvResultResponses) { + mapArry.merge(thrInvResultResponse.getUdiCode(), thrInvResultResponse, (existingValue, newValue) -> { + // Assuming reCount can be directly handled as an integer to avoid String to Integer conversions + int updatedReCount = Integer.parseInt(existingValue.getReCount()) + Integer.parseInt(newValue.getReCount()); + existingValue.setReCount(String.valueOf(updatedReCount)); + existingValue.setOutCount(existingValue.getReCount()); + return existingValue; + }); + } + for (String key : mapArry.keySet()) { + newArry.add(mapArry.get(key)); + } + } PageSimpleResponse pageSimpleResponse = new PageSimpleResponse<>(); - pageSimpleResponse.setTotal(thrInvResultResponses.size() + 0l); - pageSimpleResponse.setList(thrInvResultResponses); + pageSimpleResponse.setTotal(newArry.size() + 0l); + pageSimpleResponse.setList(newArry); return ResultVOUtils.success(pageSimpleResponse); } return baseResponse; diff --git a/src/main/java/com/glxp/mipsdl/res/udiwms/ThrInvResultResponse.java b/src/main/java/com/glxp/mipsdl/res/udiwms/ThrInvResultResponse.java index 5d80c9a..440c50b 100644 --- a/src/main/java/com/glxp/mipsdl/res/udiwms/ThrInvResultResponse.java +++ b/src/main/java/com/glxp/mipsdl/res/udiwms/ThrInvResultResponse.java @@ -141,6 +141,11 @@ public class ThrInvResultResponse { * 实际数量 */ private String reCount; + + public int getCount() { + return Integer.valueOf(reCount); + } + /** * 数据类型:住院、门诊等 */ @@ -165,5 +170,4 @@ public class ThrInvResultResponse { * 患者名称 */ private String sickerName; - }