Commit 5a3a3b0a74e3ecb3f1c64e55f096f3359be3ed11

Authored by dongqin
1 parent 88a09e04bb

华大回调业务处理

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