From 73f648beaf3584f4d9beb0dae6605b954afe572a Mon Sep 17 00:00:00 2001 From: liquanyu Date: Wed, 22 Aug 2018 17:32:38 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A9=E4=BA=A7=E6=9C=BA=E6=9E=84=E6=8A=A5?= =?UTF-8?q?=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/lyms/platform/common/utils/ExcelUtil.java | 122 +++++++++++---------- .../operate/web/facade/MatDeliverFacade.java | 83 +++++++++----- .../src/main/resources/due_org_report.xls | Bin 0 -> 20992 bytes 3 files changed, 122 insertions(+), 83 deletions(-) create mode 100644 platform-operate-api/src/main/resources/due_org_report.xls diff --git a/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java b/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java index 6ceedb2..305aa27 100644 --- a/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java +++ b/platform-common/src/main/java/com/lyms/platform/common/utils/ExcelUtil.java @@ -235,7 +235,7 @@ public class ExcelUtil } - public static void writeExclFile(String filePath,OutputStream out) + public static void writeExclFile(String filePath,OutputStream out,List areaNams,String titleName,String area,String time,List> values) { File file = new File(filePath); @@ -247,12 +247,6 @@ public class ExcelUtil WritableWorkbook book = wb.createWorkbook(out,wb); WritableSheet ws = book.getSheet(0); - List columNames = new ArrayList<>(); - - for (int i = 0, len = 37; i < len; i++) - { - columNames.add(i); - } WritableFont contentFont = new WritableFont(WritableFont.ARIAL, 12, WritableFont.NO_BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK); WritableCellFormat contentFormt = new WritableCellFormat(contentFont); @@ -269,70 +263,88 @@ public class ExcelUtil WritableFont title = new WritableFont(WritableFont.ARIAL, 18, WritableFont.BOLD, false, UnderlineStyle.NO_UNDERLINE, Colour.BLACK); WritableCellFormat titleFormt = new WritableCellFormat(title); - titleFormt.setBorder(jxl.format.Border.ALL,jxl.format.BorderLineStyle.THIN); + titleFormt.setBorder(jxl.format.Border.ALL, jxl.format.BorderLineStyle.THIN); titleFormt.setAlignment(jxl.format.Alignment.CENTRE); titleFormt.setVerticalAlignment(VerticalAlignment.CENTRE); + int column = 25; + for (String key : areaNams) + { + column++; + ws.insertColumn(column); + ws.insertColumn(column); + ws.insertColumn(column); + } - ws.insertColumn(26); - ws.insertColumn(27); - ws.insertColumn(28); - ws.mergeCells(26, 3, 29, 3); + ws.mergeCells(26, 3, 26 + areaNams.size(), 3); ws.addCell(new Label(26, 3, "本市户籍", contentFormt)); - ws.addCell(new Label(26, 4, "区1", contentFormt)); - ws.addCell(new Label(27, 4, "区2", contentFormt)); - ws.addCell(new Label(28, 4, "区3", contentFormt)); - ws.addCell(new Label(29, 4, "区4", contentFormt)); + int index = 25; + for (String value : areaNams) + { + index++; + ws.addCell(new Label(index, 4, value, contentFormt)); + } + for (int i = 0; i < ws.getRows() ; i++) { for (int j = 0; j < ws.getColumns(); j++) { +// +// Cell cell = ws.getCell(i, j); +// System.out.println(i + "==" + j + " " +cell.getContents()); - Cell cell = ws.getCell(i, j); - System.out.println(i + "==" + j + " " +cell.getContents()); + if(i == 0 && j == 0){ + Label label = new Label(j, i, titleName,titleFormt); + ws.addCell(label); + } -// if(i == 0 && j == 0){ -// Label label = new Label(j, i, "四川省成都市统计",titleFormt); -// ws.addCell(label); -// } -// -// if(i == 1 && j == 0){ -// Label label = new Label(j, i, "成都市",leftFormt); -// ws.addCell(label); -// } -// -// if(i == 1 && j == 19){ -// Label label = new Label(j, i, "2018-08-20",leftFormt); -// ws.addCell(label); -// } + if(i == 1 && j == 0){ + Label label = new Label(j, i, area,leftFormt); + ws.addCell(label); + } + + if(i == 1 && j == 19){ + Label label = new Label(j, i, time,leftFormt); + ws.addCell(label); + } } } + for (int i = 5, len = values.size(); i < len; i++) + { -// for (int i = 5, len = 30; i < len; i++) -// { -// for (int j = 0; j < columNames.size() ; j++) -// { -// WritableCellFormat wcfN = new WritableCellFormat(contentFont); -// wcfN.setAlignment(jxl.format.Alignment.CENTRE); -// wcfN.setVerticalAlignment(VerticalAlignment.CENTRE); -// Number labelNF = new Number(j, i,j, wcfN); -// ws.addCell(labelNF); -// } -// -// } -// -// ws.addCell(new Label(0, 30, "注:统计时限:上月26日至本月25日;分娩方式中其他包括:吸引产、臀助产、臀牵引、产钳产等。", leftFormt)); -// -// ws.mergeCells(0, 30, 36, 30); -// -// ws.addCell(new Label(0, 31, "填报单位:", leftFormt)); -// ws.mergeCells(0, 31, 5, 31); -// ws.addCell(new Label(6, 31, "填报人:", leftFormt)); -// ws.mergeCells(6, 31, 10, 31); -// ws.addCell(new Label(11, 31, "填报日期:", leftFormt)); -// ws.mergeCells(11, 31,36, 31); + Set sets = values.get(i).keySet(); + int j = 0; + for (String key : sets) + { + String value = values.get(i).get(key); + if (StringUtils.isNotEmpty(value)) + { + WritableCellFormat wcfN = new WritableCellFormat(contentFont); + wcfN.setAlignment(jxl.format.Alignment.CENTRE); + wcfN.setVerticalAlignment(VerticalAlignment.CENTRE); + Number labelNF = new Number(j, i,Integer.parseInt(value), wcfN); + ws.addCell(labelNF); + } + else + { + ws.addCell(new Label(j, i,value, contentFormt)); + } + j++; + } + } + + ws.addCell(new Label(0, 30, "注:统计时限:"+ time +";分娩方式中其他包括:吸引产、臀助产、臀牵引、产钳产等。", leftFormt)); + + ws.mergeCells(0, 30, 36, 30); + + ws.addCell(new Label(0, 31, "填报单位:", leftFormt)); + ws.mergeCells(0, 31, 5, 31); + ws.addCell(new Label(6, 31, "填报人:", leftFormt)); + ws.mergeCells(6, 31, 10, 31); + ws.addCell(new Label(11, 31, "填报日期:", leftFormt)); + ws.mergeCells(11, 31,36, 31); book.write(); book.close(); diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java index a470c67..1e20ea0 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java @@ -2609,9 +2609,35 @@ public class MatDeliverFacade { String cityId, String areaId, HttpServletResponse httpServletResponse) { try { + + //本市户籍 + BasicConfigQuery basicConfigQuery = new BasicConfigQuery(); + basicConfigQuery.setYn(YnEnums.YES.getId()); + basicConfigQuery.setParentId(cityId); + + List basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery); + List areaNames = new LinkedList<>(); + if (CollectionUtils.isNotEmpty(basicConfigs)) { + for (BasicConfig basicConfig : basicConfigs) { + areaNames.add(basicConfig.getName()); + } + } + + Map params = new HashMap<>(); + params.put("proviceId",proviceId); + params.put("cityId", cityId); + params.put("areaId", areaId); + + //获取用户拥有的权限医院和条件筛选的医院交集 + List hospitalIds = areaCountFacade.getCurrentUserHospPermissions(userId, proviceId, + cityId, areaId); + + List> list = getDatas(hospitalIds, time,params, basicConfigs); + httpServletResponse.setContentType("application/force-download"); httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + new String(("助产机构报表.xls").getBytes("UTF-8"), "ISO-8859-1")); - ExcelUtil.writeExclFile("F:\\需求文档\\my.xls", httpServletResponse.getOutputStream()); + String path = this.getClass().getResource("/").getPath(); + ExcelUtil.writeExclFile(path + "\\due_org_report.xls", httpServletResponse.getOutputStream(), areaNames,"成都市","成都取",time,list); } catch (IOException e) { ExceptionUtils.catchException(e, "exporDueOrgCount error"); } @@ -2620,26 +2646,10 @@ public class MatDeliverFacade { public BaseObjectResponse getDueOrgCount(String time, Integer userId, String hospitalId, String proviceId, String cityId, String areaId) { - Map params = new HashMap<>(); - params.put("proviceId",proviceId); - params.put("cityId",cityId); - params.put("areaId",areaId); - - List hospitalIds = new ArrayList<>(); - if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(hospitalId)) { - hospitalIds.add(hospitalId); - } else { - //获取用户拥有的权限医院和条件筛选的医院交集 - hospitalIds = areaCountFacade.getCurrentUserHospPermissions(userId, proviceId, - cityId, areaId); - } - - List> list = new ArrayList<>(); - //本市户籍 BasicConfigQuery basicConfigQuery = new BasicConfigQuery(); basicConfigQuery.setYn(YnEnums.YES.getId()); - basicConfigQuery.setParentId(params.get("cityId")); + basicConfigQuery.setParentId(cityId); List basicConfigs = basicConfigService.queryBasicConfig(basicConfigQuery); List areaNames = new LinkedList<>(); @@ -2649,6 +2659,31 @@ public class MatDeliverFacade { } } + Map params = new HashMap<>(); + params.put("proviceId",proviceId); + params.put("cityId", cityId); + params.put("areaId", areaId); + + //获取用户拥有的权限医院和条件筛选的医院交集 + List hospitalIds = areaCountFacade.getCurrentUserHospPermissions(userId, proviceId, + cityId, areaId); + + List> list = getDatas(hospitalIds, time,params, basicConfigs); + + Map data = new HashMap<>(); + data.put("countData",list); + data.put("areaNames",areaNames); + + BaseObjectResponse objectResponse = new BaseObjectResponse(); + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); + objectResponse.setErrormsg("成功"); + objectResponse.setData(data); + return objectResponse; + } + + private List> getDatas(List hospitalIds,String time,Map params, List basicConfigs) + { + List> list = new ArrayList<>(); int batchSize = 5; int end = 0; @@ -2675,17 +2710,9 @@ public class MatDeliverFacade { } } - sum(list,basicConfigs); - - Map data = new HashMap<>(); - data.put("countData",list); - data.put("areaNames",areaNames); + sum(list, basicConfigs); - BaseObjectResponse objectResponse = new BaseObjectResponse(); - objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); - objectResponse.setErrormsg("成功"); - objectResponse.setData(data); - return objectResponse; + return list; } public void sum(List> list,List basicConfigs) diff --git a/platform-operate-api/src/main/resources/due_org_report.xls b/platform-operate-api/src/main/resources/due_org_report.xls new file mode 100644 index 0000000000000000000000000000000000000000..c2b8675bb137381fc1e44dcb9ce8a816de106425 GIT binary patch literal 20992 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 literal 0 HcmV?d00001 -- 1.8.3.1