Commit 72d344d344b743aed851c0afdf8dc9aa944a91cb

Authored by shiyang
1 parent 99531e9ff2

滦平-儿童统计管理-高危因素统计 左 导出

Showing 2 changed files with 53 additions and 23 deletions

platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/RiskReportController.java View file @ 72d344d
... ... @@ -43,6 +43,19 @@
43 43 LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
44 44 return riskReportFacade.queryBabyRiskReport(babysQueryRequest,loginState.getId());
45 45 }
  46 +
  47 + /**
  48 + * 儿童统计管理-高危因素统计 左 导出
  49 + * @return
  50 + */
  51 + @RequestMapping(method = RequestMethod.GET, value = "/queryBabyRiskExport")
  52 + @ResponseBody
  53 + @TokenRequired
  54 + public void queryBabyRiskExport(@Valid RiskBabysQueryRequest babysQueryRequest,HttpServletRequest request, HttpServletResponse response) {
  55 + LoginContext loginState = (LoginContext) request.getAttribute("loginContext");
  56 + riskReportFacade.queryBabyRiskExport(babysQueryRequest, loginState.getId(),response);
  57 +
  58 + }
46 59 @RequestMapping(method = RequestMethod.GET, value = "/queryBabyRiskReportQhd")
47 60 @ResponseBody
48 61 @TokenRequired
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/RiskReportFacade.java View file @ 72d344d
... ... @@ -1484,14 +1484,15 @@
1484 1484 List<RiskReportResult> datas = queryRiskReportCount(patientsQueryRequest, id).getData();
1485 1485 List<Map<String,Object>> result=new ArrayList<>();
1486 1486 Integer count =0;
1487   - if(CollectionUtils.isNotEmpty(datas)) {
1488   - count+= riskDataType(datas, "315107bd-91fe-42a1-9237-752f3c046a40", result);
1489   - count+= riskDataType(datas, "49a36aea-c5b6-4162-87d2-9eb3c6ec00c2", result);
1490   - count+= riskDataType(datas, "eb146c03-b19f-4e28-b85f-fda574b2283b", result);
1491   - count+= riskDataType(datas, "224b2329-cb82-4da3-a071-8527f8283aab", result);
1492   - //自定义高危
1493   - count+= datas.get(datas.size()-1).getRiskCount();
1494   - result.add(MapUtil.beanToMap(datas.get(datas.size()-1)));
  1487 + for (RiskReportResult data : datas) {
  1488 + //父级
  1489 + if(data.getLevel()==1 && null!=data.getLevel()){
  1490 + result.add(MapUtil.beanToMap(data));
  1491 + count+=data.getRiskCount();
  1492 + for (RiskReportResult data2 : datas) {
  1493 + riskDataTier(data,data2,datas,result);
  1494 + }
  1495 + }
1495 1496 }
1496 1497 try {
1497 1498 response.setContentType("application/octet-stream");
1498 1499  
1499 1500  
... ... @@ -1509,29 +1510,45 @@
1509 1510 }
1510 1511  
1511 1512 }
1512   - //高危分类
1513   - public int riskDataType(List<RiskReportResult> datas,String riskColor,List<Map<String,Object>> result) {
1514   - int count=0;
1515   - for (RiskReportResult data : datas) {
1516   - //黄色
1517   - if(data.getLevel()==1 && riskColor.equals(data.getHighRiskId())){
1518   - result.add(MapUtil.beanToMap(data));
1519   - count=data.getRiskCount();
1520   - for (RiskReportResult data2 : datas) {
1521   - riskDataTier(data,data2,datas,result);
1522   - }
1523   - }
1524   - }
1525   - return count;
1526   - }
1527 1513 //层级关系
1528 1514 public void riskDataTier(RiskReportResult data,RiskReportResult data2,List<RiskReportResult> datas,List<Map<String,Object>> result){
1529 1515 if(data.getHighRiskId().equals(data2.getPid())){
1530 1516 result.add(MapUtil.beanToMap(data2));
  1517 + //子集循环到最后一层。循环调自己
1531 1518 for (RiskReportResult dataN : datas) {
1532 1519 riskDataTier(data2, dataN,datas,result);
1533 1520 }
1534 1521 }
  1522 + }
  1523 +
  1524 + public void queryBabyRiskExport(RiskBabysQueryRequest babysQueryRequest, Integer id, HttpServletResponse response) {
  1525 + List<RiskReportResult> datas= queryBabyRiskReport(babysQueryRequest, id).getData();
  1526 + List<Map<String,Object>> result=new ArrayList<>();
  1527 + Integer count =0;
  1528 + for (RiskReportResult data : datas) {
  1529 + //父级
  1530 + if(null != data.getLevel() && data.getLevel() == 1){
  1531 + result.add(MapUtil.beanToMap(data));
  1532 + count+=data.getRiskCount();
  1533 + for (RiskReportResult data2 : datas) {
  1534 + riskDataTier(data,data2,datas,result);
  1535 + }
  1536 + }
  1537 + }
  1538 + try {
  1539 + response.setContentType("application/octet-stream");
  1540 + response.setHeader("Content-Disposition", "attachment;fileName=" + "高危人数统计.xls");
  1541 + Map <String, String> cnames = new LinkedHashMap <>();
  1542 + cnames.put("highRisk", "高危项");
  1543 + cnames.put("riskCount", "人数");
  1544 + cnames.put("percent", "发病率");
  1545 + final Integer finalCount = count;
  1546 + result.add(new HashMap(){{put("highRisk","合计");put("riskCount", finalCount);}});
  1547 + OutputStream out = response.getOutputStream();
  1548 + ExcelUtil.toExcel(out, result, cnames);
  1549 + } catch (IOException e) {
  1550 + ExceptionUtils.catchException(e, e.getMessage());
  1551 + }
1535 1552 }
1536 1553  
1537 1554