Commit 5a3a3b0a74e3ecb3f1c64e55f096f3359be3ed11
1 parent
88a09e04bb
Exists in
master
and in
6 other branches
华大回调业务处理
Showing 1 changed file with 74 additions and 2 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/ApplyOrderFacade.java
View file @
5a3a3b0
... | ... | @@ -3,6 +3,7 @@ |
3 | 3 | import com.alibaba.fastjson.JSON; |
4 | 4 | import com.alibaba.fastjson.JSONArray; |
5 | 5 | import com.alibaba.fastjson.JSONObject; |
6 | +import com.google.common.collect.Maps; | |
6 | 7 | import com.lyms.platform.biz.service.*; |
7 | 8 | import com.lyms.platform.common.constants.ErrorCodeConstants; |
8 | 9 | import com.lyms.platform.common.enums.*; |
... | ... | @@ -1600,7 +1601,7 @@ |
1600 | 1601 | String data = null; |
1601 | 1602 | try { |
1602 | 1603 | //5.3.查询报告详情 |
1603 | - Map<String, Object> signParams = getSignParams(SYSCODE, SECRET); | |
1604 | + Map<String, Object> signParams = getSignParams(SYSCODE, SECRET); | |
1604 | 1605 | String timestamp1 = signParams.get("timestamp").toString(); |
1605 | 1606 | timestamp1 = timestamp1.replaceAll(" ", "%20");//空格替换成 %20 |
1606 | 1607 | String syscode1 = signParams.get("syscode").toString(); |
... | ... | @@ -1620,7 +1621,35 @@ |
1620 | 1621 | HuadaCallbackModel huadaCallbackModel = JSONObject.parseObject(rows.toString(), HuadaCallbackModel.class); |
1621 | 1622 | System.out.println(huadaCallbackModel.toString()); |
1622 | 1623 | |
1623 | - | |
1624 | + String cardId = huadaCallbackModel.getCardId(); | |
1625 | + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("cardNo").is(cardId)), Patients.class); | |
1626 | + if (patients != null) { | |
1627 | + String patientsId = patients.getId(); | |
1628 | + SieveResultModel sieveResultModel = mongoTemplate.findOne(Query.query(Criteria.where("parentId").is(patientsId)), SieveResultModel.class); | |
1629 | + if (sieveResultModel != null) { | |
1630 | + Update update = new Update(); | |
1631 | + SieveResultModel model = getSieveResultModel(huadaCallbackModel, patientsId); | |
1632 | + Map<String, Object> object = BeanUtils.objectToObjectMap(model); | |
1633 | + Set<Map.Entry<String, Object>> entries = object.entrySet(); | |
1634 | + for (Map.Entry<String, Object> entry : entries) { | |
1635 | + Object entryValue = entry.getValue(); | |
1636 | + if (entryValue != null) { | |
1637 | + if (entryValue instanceof String) { | |
1638 | + if (StringUtils.isEmpty(entryValue.toString())) { | |
1639 | + continue; | |
1640 | + } | |
1641 | + } | |
1642 | + update.set(entry.getKey(), entry.getValue()); | |
1643 | + } | |
1644 | + } | |
1645 | + mongoTemplate.updateFirst(Query.query(Criteria.where("_id").is(sieveResultModel.getId())), update, SieveResultModel.class); | |
1646 | + logger.info(String.format("更新产筛结果: { %s }", update.toString())); | |
1647 | + } else { | |
1648 | + SieveResultModel model = getSieveResultModel(huadaCallbackModel, patientsId); | |
1649 | + mongoTemplate.insert(model); | |
1650 | + logger.info(String.format("新增产筛结果: { %s }", model.toString())); | |
1651 | + } | |
1652 | + } | |
1624 | 1653 | } catch (Exception e) { |
1625 | 1654 | e.printStackTrace(); |
1626 | 1655 | map.put("code", "500"); |
... | ... | @@ -1630,6 +1659,49 @@ |
1630 | 1659 | map.put("code", "200"); |
1631 | 1660 | map.put("msg", "success"); |
1632 | 1661 | return map; |
1662 | + } | |
1663 | + | |
1664 | + /** | |
1665 | + * 组装 SieveResultModel | |
1666 | + * | |
1667 | + * @param huadaCallbackModel | |
1668 | + * @param patientsId | |
1669 | + * @return | |
1670 | + */ | |
1671 | + private SieveResultModel getSieveResultModel(final HuadaCallbackModel huadaCallbackModel, String patientsId) { | |
1672 | + SieveResultModel newModel = new SieveResultModel(); | |
1673 | + newModel.setResultTime(new Date()); | |
1674 | + newModel.setReportType("1"); | |
1675 | + newModel.setParentId(patientsId); | |
1676 | + newModel.setSampleInfoId(huadaCallbackModel.getSampleInfoId()); | |
1677 | + newModel.setSampleReportId(huadaCallbackModel.getSampleReportId()); | |
1678 | + // 底风险0 高风险2 | |
1679 | + newModel.setSbst(huadaCallbackModel.getT18().contains("未检出") ? "0" : "2"); | |
1680 | + newModel.setStzhz13(huadaCallbackModel.getT13().contains("未检出") ? "0" : "2"); | |
1681 | + newModel.setTszhz(huadaCallbackModel.getT21().contains("未检出") ? "0" : "2"); | |
1682 | + | |
1683 | + final String[] split18 = huadaCallbackModel.getT18Risk().split("/"); | |
1684 | + final String[] split13 = huadaCallbackModel.getT13Risk().split("/"); | |
1685 | + final String[] split21 = huadaCallbackModel.getT21Risk().split("/"); | |
1686 | + /*Map<String, String> map18 = Maps.newHashMap(); | |
1687 | + map18.put("valueOne", split18[0]); | |
1688 | + map18.put("valueTwo", split18[1]); | |
1689 | + map18.put("valueKey", huadaCallbackModel.getZ18ZScore()); | |
1690 | + Map<String, String> map13 = Maps.newHashMap(); | |
1691 | + map13.put("valueOne", split13[0]); | |
1692 | + map13.put("valueTwo", split13[1]); | |
1693 | + map13.put("valueKey", huadaCallbackModel.getZ13ZScore()); | |
1694 | + Map<String, String> map21 = Maps.newHashMap(); | |
1695 | + map21.put("valueOne", split21[0]); | |
1696 | + map21.put("valueTwo", split21[1]); | |
1697 | + map21.put("valueKey", huadaCallbackModel.getZ21ZScore());*/ | |
1698 | + newModel.setSbstValue(new HashMap<String, String>(){{ | |
1699 | + put("valueOne", split18[0]);put("valueTwo", split18[1]);put("valueKey", huadaCallbackModel.getZ18ZScore()); }}); | |
1700 | + newModel.setStzhz13Value(new HashMap<String, String>(){{ | |
1701 | + put("valueOne", split13[0]);put("valueTwo", split13[1]);put("valueKey", huadaCallbackModel.getZ13ZScore()); }}); | |
1702 | + newModel.setTszhzValue(new HashMap<String, String>(){{ | |
1703 | + put("valueOne", split21[0]);put("valueTwo", split21[1]);put("valueKey", huadaCallbackModel.getZ21ZScore()); }}); | |
1704 | + return newModel; | |
1633 | 1705 | } |
1634 | 1706 | |
1635 | 1707 | public void huadaFtp(String sampleReportId,HttpServletResponse response) { |