From 101f9f8e51b067dfbe2b4d1b142dde5e68ef3d02 Mon Sep 17 00:00:00 2001 From: changpengfei Date: Thu, 14 Oct 2021 14:13:04 +0800 Subject: [PATCH] =?UTF-8?q?1=E6=B2=B3=E5=8C=97=E7=9C=810-6=E5=B2=81?= =?UTF-8?q?=E5=84=BF=E7=AB=A5=E4=BF=9D=E5=81=A5=E7=B3=BB=E7=BB=9F=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E7=99=BB=E8=AE=B0=E8=A1=A8=20=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=88=86sheet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../web/controller/BabyHealthController.java | 2 +- .../operate/web/facade/BabyHealthFacade.java | 338 +++++++++++++++++++++ .../src/main/resources/babyhealthstat2.xls | Bin 0 -> 23552 bytes 3 files changed, 339 insertions(+), 1 deletion(-) create mode 100644 platform-operate-api/src/main/resources/babyhealthstat2.xls diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHealthController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHealthController.java index 87c943d..843f5f5 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHealthController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyHealthController.java @@ -92,7 +92,7 @@ public class BabyHealthController extends BaseController { @RequestParam(value = "checkDoctorId", required = false) String checkDoctorId, @RequestParam(value = "level", required = false) String level, Integer page, Integer limit, HttpServletRequest request, HttpServletResponse response) { - BaseResponse baseResponse=babyHealthFacade.babystatListReport(checkTime, queryNo, startCheckMonthAge, endCheckMonthAge, + BaseResponse baseResponse=babyHealthFacade.babystatListReport2(checkTime, queryNo, startCheckMonthAge, endCheckMonthAge, nextDate, highRisk, waskSon, checkDoctorId, page, limit, getUserId(request), level,response); System.out.println(baseResponse); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHealthFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHealthFacade.java index 437c01f..647f949 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHealthFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyHealthFacade.java @@ -558,6 +558,344 @@ public class BabyHealthFacade extends BaseServiceImpl { } + public BaseResponse babystatListReport2(String checkTime, String queryNo, Integer checkMonthAge, Integer endCheckMonthAge, String nextDate, + Integer highRisk, Integer waskSon, String checkDoctorId, Integer page, Integer limit, Integer userId, String level, HttpServletResponse response) { + boolean flag = false; + // List hospital = groupsFacade.findGroupHospital(userId, false); + int[] monthArr = {0, 3, 4, 8, 12, 18, 24, 30, 36, 48, 60, 72};//月龄 + String hospitalId = autoMatchFacade.getHospitalId(userId); + Criteria criteria = Criteria.where("yn").ne(0).and("hospitalId").is(hospitalId); + Criteria pCriteria = Criteria.where("yn").ne(0).and("hospitalId").is(hospitalId); + if (org.apache.commons.lang.StringUtils.isNotBlank(queryNo)) { + pCriteria.orOperator(Criteria.where("mcertNo").regex(queryNo), Criteria.where("name").regex(queryNo), + Criteria.where("fphone").regex(queryNo), Criteria.where("vcCardNo").regex(queryNo), Criteria.where("mname").regex(queryNo)); + flag = true; + } + PageResult pageResult = new PageResult(); + + try { + response.setContentType("application/force-download"); + response.setHeader("Content-Disposition", "attachment;filename=" + new String(("年报表.xls").getBytes("UTF-8"), "ISO-8859-1")); + String path = this.getClass().getResource("/").getPath() + "babyhealthstat2.xls"; + + // 导出excel + File file = new File(path); + InputStream in = new FileInputStream(file); + Workbook wb = Workbook.getWorkbook(in); + + + WritableWorkbook book = wb.createWorkbook(response.getOutputStream(), wb); + WritableSheet ws = book.getSheet(0); + WritableSheet ws1 = book.getSheet(1); + WritableSheet ws2 = book.getSheet(2); + + WritableCellFormat contentFormt = new WritableCellFormat(); + contentFormt.setAlignment(jxl.format.Alignment.CENTRE); + contentFormt.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN); + contentFormt.setVerticalAlignment(VerticalAlignment.CENTRE); + + int lastPage = 0, pageSize = 0; + + pageResult = findMongoPage(BabyModel.class, new Query(pCriteria).with(new Sort(Sort.Direction.DESC, "created")), page, limit); +// lastPage = pageResult.getLastPage(); +// pageSize = pageResult.getSize(); +// for (int n = 0; n < lastPage; n++) { +// pageResult = findMongoPage(BabyModel.class, new Query(pCriteria).with(new Sort(Sort.Direction.DESC, "created")), n, pageSize); + List babykModelsList = (List) pageResult.getGrid(); +// PageResult pageResult=new PageResult(); +// babykModelsList = this.mongoTemplate.find(new Query(pCriteria).with(new Sort(Sort.Direction.DESC, "created")),BabyModel.class); + List> grid = new ArrayList<>(); + + if (com.lyms.platform.operate.web.utils.CollectionUtils.isNotEmpty(babykModelsList)) { + for (int j=0; j row = new HashMap<>(); + Map babyMap = new HashMap<>(); + babyMap.put("babyName", babyModel.getName()); + babyMap.put("sex", babyModel.getSex()); + babyMap.put("birth", babyModel.getBirth()); + babyMap.put("mname", babyModel.getMname()); + babyMap.put("address", babyModel.getAddress()); + babyMap.put("mphone", babyModel.getMphone()); + row.put("baby", babyMap); + Criteria criteriaCheck = Criteria.where("buildId").in(babyModel.getId()); +// pageResult = findMongoPage(BabyCheckModel.class, new Query(criteriaCheck).with(new Sort(Sort.Direction.DESC, "created")), page, limit); + List babyCheckModelList = mongoTemplate.find(new Query(criteriaCheck).with(new Sort(Sort.Direction.DESC, "created")), BabyCheckModel.class); + + List> listAge = new ArrayList<>(); + + for (BabyCheckModel babyCheckModel : babyCheckModelList) { + Map map = new HashMap<>(); + String feedType = ""; + String feedTypeId = babyCheckModel.getFeedType(); + if (StringUtils.isNotEmpty(feedTypeId)) { + feedType = WyTypeEnums.getNameById(Integer.parseInt(feedTypeId)); + } + map.put("feedType", feedType); + + for (int i = 0; i < monthArr.length; i++) { + Map mapAge = new HashMap<>(); + if (monthArr[i] == babyCheckModel.getCheckMonth().intValue()) { + mapAge.put("height", babyCheckModel.getHeight()); + mapAge.put("heightEvaluate", babyCheckModel.getHeightEvaluate()); + mapAge.put("weight", babyCheckModel.getWeight()); + mapAge.put("weightEvaluate", babyCheckModel.getWeightEvaluate()); + mapAge.put("hemoglobin", babyCheckModel.getHemoglobin()); + } else { + mapAge.put("height", ""); + mapAge.put("heightEvaluate", ""); + mapAge.put("weight", ""); + mapAge.put("weightEvaluate", ""); + mapAge.put("hemoglobin", ""); + } + mapAge.put("age", monthArr[i]); + listAge.add(mapAge); + } + + row.put("monthChk", listAge); + + row.put("height", babyCheckModel.getHeight()); + row.put("weight", babyCheckModel.getWeight()); + //秦皇岛需求,查询最后一次检查的高危详情 + row.put("qhdHighRiskInfo", babyCheckModel.getQhdHighRiskInfo()); + } + if(babyCheckModelList.size()<1){ + for (int i = 0; i < monthArr.length; i++) { + Map mapAge = new HashMap<>(); + mapAge.put("height", ""); + mapAge.put("heightEvaluate", ""); + mapAge.put("weight", ""); + mapAge.put("weightEvaluate", ""); + mapAge.put("hemoglobin", ""); + listAge.add(mapAge); + } + } + +// 访视 + List newbornVisits = mongoTemplate.find(Query.query(Criteria.where("babyId").is(babyModel.getId()).and("hospitalId").in(hospitalId).and("yn").ne("0")) + .with(new Sort(Sort.Direction.ASC, "checkTime")), NewbornVisit.class); + List> rest = new ArrayList<>(); + for (NewbornVisit newbornVisit : newbornVisits) { + Map temp = new HashMap<>(); + temp.put("id", newbornVisit.getId()); + temp.put("hospitalId", newbornVisit.getHospitalId()); + temp.put("pid", newbornVisit.getPid()); + temp.put("checkTime", newbornVisit.getCheckTime() == null ? null : DateUtil.getyyyy_MM_dd(newbornVisit.getCheckTime())); + temp.put("checkTimeDesc", newbornVisit.getCheckTimeDesc()); + rest.add(temp); + } + row.put("visitcnt", newbornVisits.size()); + row.put("instWeight", ""); + if (newbornVisits.size() > 1) { + int size = newbornVisits.size(); + String wn1 = newbornVisits.get(size - 1).getWeightNow(); + String wn2 = newbornVisits.get(size - 2).getWeightNow(); + if (null == wn1) wn1 = "0"; + if (null == wn2) wn2 = "0"; + + row.put("instWeight", (Float.parseFloat(wn1) - Float.parseFloat(wn2))); + } + +// 写入excel + Label label = new Label(0, j + 5, (j + 1) + "", contentFormt); + ws.addCell(label); + + + label = new Label(1, j + 5, babyModel.getName(), contentFormt); + ws.addCell(label); + + label = new Label(2, j + 5, SexEnum.getTextById(babyModel.getSex()), contentFormt); + ws.addCell(label); + + label = new Label(3, j + 5, DateUtil.getyyyy_MM_dd(babyModel.getBirth()), contentFormt); + ws.addCell(label); + + label = new Label(4, j + 5, babyModel.getMname(), contentFormt); + ws.addCell(label); + + label = new Label(5, j + 5, babyModel.getAddress()==null?"":babyModel.getAddress(), contentFormt); + ws.addCell(label); +// 访视 + label = new Label(6, j + 5, newbornVisits.size()+"", contentFormt); + ws.addCell(label); + + label = new Label(7, j + 5,row.get("instWeight")+"", contentFormt); + ws.addCell(label); +// 喂养方式 + label = new Label(8, j + 5,row.get("feedType")==null?"":row.get("feedType")+"", contentFormt); + ws.addCell(label); + + + Map aRow=listAge.get(0); + label = new Label(9, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws.addCell(label); + label = new Label(10, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws.addCell(label); + + aRow=listAge.get(1); + label = new Label(11, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws.addCell(label); + label = new Label(12, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws.addCell(label); + + aRow=listAge.get(2); + label = new Label(13, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws.addCell(label); + label = new Label(14, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws.addCell(label); + + aRow=listAge.get(3); + label = new Label(15, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws.addCell(label); + label = new Label(16, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws.addCell(label); + + aRow=listAge.get(4); + label = new Label(17, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws.addCell(label); + label = new Label(18, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws.addCell(label); + label = new Label(19, j + 5,aRow.get("hemoglobin")+"", contentFormt); + ws.addCell(label); + label = new Label(20, j + 5,babyModel.getMphone(), contentFormt); + ws.addCell(label); + +// 第二个sheet + label = new Label(0, j + 5, (j + 1) + "", contentFormt); + ws1.addCell(label); + + + label = new Label(1, j + 5, babyModel.getName(), contentFormt); + ws1.addCell(label); + + label = new Label(2, j + 5, SexEnum.getTextById(babyModel.getSex()), contentFormt); + ws1.addCell(label); + + label = new Label(3, j + 5, DateUtil.getyyyy_MM_dd(babyModel.getBirth()), contentFormt); + ws1.addCell(label); + + label = new Label(4, j + 5, babyModel.getMname(), contentFormt); + ws1.addCell(label); + + label = new Label(5, j + 5, babyModel.getAddress()==null?"":babyModel.getAddress(), contentFormt); + ws1.addCell(label); +// 访视 + label = new Label(6, j + 5, newbornVisits.size()+"", contentFormt); + ws1.addCell(label); + + label = new Label(7, j + 5,row.get("instWeight")+"", contentFormt); + ws1.addCell(label); +// 喂养方式 + label = new Label(8, j + 5,row.get("feedType")==null?"":row.get("feedType")+"", contentFormt); + ws1.addCell(label); + + + aRow=listAge.get(5); + label = new Label(9, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws1.addCell(label); + label = new Label(10, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws1.addCell(label); + + aRow=listAge.get(6); + label = new Label(11, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws1.addCell(label); + label = new Label(12, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws1.addCell(label); + + aRow=listAge.get(7); + label = new Label(13, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws1.addCell(label); + label = new Label(14, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws1.addCell(label); + + aRow=listAge.get(8); + label = new Label(15, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws1.addCell(label); + label = new Label(16, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws1.addCell(label); + label = new Label(17, j + 5,aRow.get("hemoglobin")+"", contentFormt); + ws1.addCell(label); + + + label = new Label(18, j + 5,babyModel.getMphone(), contentFormt); + ws1.addCell(label); + +// 第3个sheet + label = new Label(0, j + 5, (j + 1) + "", contentFormt); + ws2.addCell(label); + + + label = new Label(1, j + 5, babyModel.getName(), contentFormt); + ws2.addCell(label); + + label = new Label(2, j + 5, SexEnum.getTextById(babyModel.getSex()), contentFormt); + ws2.addCell(label); + + label = new Label(3, j + 5, DateUtil.getyyyy_MM_dd(babyModel.getBirth()), contentFormt); + ws2.addCell(label); + + label = new Label(4, j + 5, babyModel.getMname(), contentFormt); + ws2.addCell(label); + + label = new Label(5, j + 5, babyModel.getAddress()==null?"":babyModel.getAddress(), contentFormt); + ws2.addCell(label); +// 访视 + label = new Label(6, j + 5, newbornVisits.size()+"", contentFormt); + ws2.addCell(label); + + label = new Label(7, j + 5,row.get("instWeight")+"", contentFormt); + ws2.addCell(label); +// 喂养方式 + label = new Label(8, j + 5,row.get("feedType")==null?"":row.get("feedType")+"", contentFormt); + ws2.addCell(label); + + aRow=listAge.get(9); + label = new Label(9, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws2.addCell(label); + label = new Label(10, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws2.addCell(label); + label = new Label(11, j + 5,aRow.get("hemoglobin")+"", contentFormt); + ws2.addCell(label); + + aRow=listAge.get(10); + label = new Label(12, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws2.addCell(label); + label = new Label(13, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws2.addCell(label); + label = new Label(14, j + 5,aRow.get("hemoglobin")+"", contentFormt); + ws2.addCell(label); + + aRow=listAge.get(11); + label = new Label(15, j + 5,aRow.get("weight")+"/"+aRow.get("height"), contentFormt); + ws2.addCell(label); + label = new Label(16, j + 5,aRow.get("weightEvaluate")+"/"+aRow.get("heightEvaluate"), contentFormt); + ws2.addCell(label); + label = new Label(17, j + 5,aRow.get("hemoglobin")+"", contentFormt); + ws2.addCell(label); + + + label = new Label(18, j + 5,babyModel.getMphone(), contentFormt); + ws2.addCell(label); + + } + + } + +// } + + + book.write(); + book.close(); + wb.close(); + + } catch (Exception e) { + e.printStackTrace(); + } +// pageResult.setGrid(grid); + return RespBuilder.buildSuccess(pageResult); + + + } public BaseResponse query(Integer userId, String babyId) { diff --git a/platform-operate-api/src/main/resources/babyhealthstat2.xls b/platform-operate-api/src/main/resources/babyhealthstat2.xls new file mode 100644 index 0000000000000000000000000000000000000000..03168521e45b670f3d71f9343826f970a26c4aec GIT binary patch literal 23552 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 literal 0 HcmV?d00001 -- 1.8.3.1