diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java index 03bd0a3..5879983 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java @@ -43,6 +43,19 @@ public class RiskReportController extends BaseController { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); return riskReportFacade.queryBabyRiskReport(babysQueryRequest,loginState.getId()); } + + /** + * 儿童统计管理-高危因素统计 左 导出 + * @return + */ + @RequestMapping(method = RequestMethod.GET, value = "/queryBabyRiskExport") + @ResponseBody + @TokenRequired + public void queryBabyRiskExport(@Valid RiskBabysQueryRequest babysQueryRequest,HttpServletRequest request, HttpServletResponse response) { + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); + riskReportFacade.queryBabyRiskExport(babysQueryRequest, loginState.getId(),response); + + } @RequestMapping(method = RequestMethod.GET, value = "/queryBabyRiskReportQhd") @ResponseBody @TokenRequired diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java index feac7fc..5b33e58 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java @@ -1484,14 +1484,15 @@ public class RiskReportFacade { List datas = queryRiskReportCount(patientsQueryRequest, id).getData(); List> result=new ArrayList<>(); Integer count =0; - if(CollectionUtils.isNotEmpty(datas)) { - count+= riskDataType(datas, "315107bd-91fe-42a1-9237-752f3c046a40", result); - count+= riskDataType(datas, "49a36aea-c5b6-4162-87d2-9eb3c6ec00c2", result); - count+= riskDataType(datas, "eb146c03-b19f-4e28-b85f-fda574b2283b", result); - count+= riskDataType(datas, "224b2329-cb82-4da3-a071-8527f8283aab", result); - //自定义高危 - count+= datas.get(datas.size()-1).getRiskCount(); - result.add(MapUtil.beanToMap(datas.get(datas.size()-1))); + for (RiskReportResult data : datas) { + //父级 + if(data.getLevel()==1 && null!=data.getLevel()){ + result.add(MapUtil.beanToMap(data)); + count+=data.getRiskCount(); + for (RiskReportResult data2 : datas) { + riskDataTier(data,data2,datas,result); + } + } } try { response.setContentType("application/octet-stream"); @@ -1509,31 +1510,47 @@ public class RiskReportFacade { } } - //高危分类 - public int riskDataType(List datas,String riskColor,List> result) { - int count=0; - for (RiskReportResult data : datas) { - //黄色 - if(data.getLevel()==1 && riskColor.equals(data.getHighRiskId())){ - result.add(MapUtil.beanToMap(data)); - count=data.getRiskCount(); - for (RiskReportResult data2 : datas) { - riskDataTier(data,data2,datas,result); - } - } - } - return count; - } //层级关系 public void riskDataTier(RiskReportResult data,RiskReportResult data2,List datas,List> result){ if(data.getHighRiskId().equals(data2.getPid())){ result.add(MapUtil.beanToMap(data2)); + //子集循环到最后一层。循环调自己 for (RiskReportResult dataN : datas) { riskDataTier(data2, dataN,datas,result); } } } + public void queryBabyRiskExport(RiskBabysQueryRequest babysQueryRequest, Integer id, HttpServletResponse response) { + List datas= queryBabyRiskReport(babysQueryRequest, id).getData(); + List> result=new ArrayList<>(); + Integer count =0; + for (RiskReportResult data : datas) { + //父级 + if(null != data.getLevel() && data.getLevel() == 1){ + result.add(MapUtil.beanToMap(data)); + count+=data.getRiskCount(); + for (RiskReportResult data2 : datas) { + riskDataTier(data,data2,datas,result); + } + } + } + try { + response.setContentType("application/octet-stream"); + response.setHeader("Content-Disposition", "attachment;fileName=" + "高危人数统计.xls"); + Map cnames = new LinkedHashMap <>(); + cnames.put("highRisk", "高危项"); + cnames.put("riskCount", "人数"); + cnames.put("percent", "发病率"); + final Integer finalCount = count; + result.add(new HashMap(){{put("highRisk","合计");put("riskCount", finalCount);}}); + OutputStream out = response.getOutputStream(); + ExcelUtil.toExcel(out, result, cnames); + } catch (IOException e) { + ExceptionUtils.catchException(e, e.getMessage()); + } + } + //计算占比 // List> proportion = handzb(series);