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) { |