Commit 989cc36b2fa979d9b676a4450bb85ea1169d7709
1 parent
ab34eed0b5
Exists in
master
and in
6 other branches
育龄服务生孩统计
Showing 3 changed files with 116 additions and 21 deletions
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/MatDeliverController.java
View file @
989cc36
| ... | ... | @@ -362,16 +362,36 @@ |
| 362 | 362 | * @return |
| 363 | 363 | */ |
| 364 | 364 | @TokenRequired |
| 365 | + @ResponseBody | |
| 366 | + @RequestMapping(value = "getChildbearAgeCount", method = RequestMethod.GET) | |
| 367 | + public BaseObjectResponse getChildbearAgeCount(HttpServletRequest request, | |
| 368 | + @RequestParam String birth, | |
| 369 | + @RequestParam String hospitalId, | |
| 370 | + @RequestParam String proviceId, | |
| 371 | + @RequestParam String cityId, | |
| 372 | + @RequestParam String areaId) { | |
| 373 | + LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); | |
| 374 | + return matDeliverFacade.getChildbearAgeCount(birth,loginState.getId(),hospitalId,proviceId,cityId,areaId); | |
| 375 | + } | |
| 376 | + | |
| 377 | + /** | |
| 378 | + * 育龄服务生孩统计导出 | |
| 379 | + * @param request | |
| 380 | + * @param birth | |
| 381 | + * @return | |
| 382 | + */ | |
| 383 | + @TokenRequired | |
| 365 | 384 | @ResponseBody |
| 366 | - @RequestMapping(value = "getChildbearAgeCount", method = RequestMethod.GET) | |
| 367 | - public BaseObjectResponse getChildbearAgeCount(HttpServletRequest request, | |
| 385 | + @RequestMapping(value = "exportChildbearAgeCount", method = RequestMethod.GET) | |
| 386 | + public void exportChildbearAgeCount(HttpServletRequest request, | |
| 368 | 387 | @RequestParam String birth, |
| 369 | 388 | @RequestParam String hospitalId, |
| 370 | 389 | @RequestParam String proviceId, |
| 371 | 390 | @RequestParam String cityId, |
| 372 | - @RequestParam String areaId) { | |
| 391 | + @RequestParam String areaId, | |
| 392 | + HttpServletResponse httpServletResponse) { | |
| 373 | 393 | LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); |
| 374 | - return matDeliverFacade.getChildbearAgeCount(birth,loginState.getId(),hospitalId,proviceId,cityId,areaId); | |
| 394 | + matDeliverFacade.exportChildbearAgeCount(birth, loginState.getId(), hospitalId, proviceId, cityId, areaId, httpServletResponse); | |
| 375 | 395 | } |
| 376 | 396 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java
View file @
989cc36
| ... | ... | @@ -38,6 +38,7 @@ |
| 38 | 38 | import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; |
| 39 | 39 | import org.springframework.stereotype.Component; |
| 40 | 40 | |
| 41 | +import javax.servlet.http.HttpServletResponse; | |
| 41 | 42 | import java.text.ParseException; |
| 42 | 43 | import java.text.SimpleDateFormat; |
| 43 | 44 | import java.util.*; |
| ... | ... | @@ -2391,6 +2392,19 @@ |
| 2391 | 2392 | |
| 2392 | 2393 | public BaseObjectResponse getChildbearAgeCount(String birth, Integer userId,String hospitalId, |
| 2393 | 2394 | String proviceId,String cityId,String areaId) { |
| 2395 | + List<Map<String,String>> list = getChidbearAgeCountData( birth, userId, hospitalId, | |
| 2396 | + proviceId, cityId, areaId); | |
| 2397 | + | |
| 2398 | + BaseObjectResponse objectResponse = new BaseObjectResponse(); | |
| 2399 | + objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); | |
| 2400 | + objectResponse.setErrormsg("成功"); | |
| 2401 | + objectResponse.setData(list); | |
| 2402 | + return objectResponse; | |
| 2403 | + } | |
| 2404 | + | |
| 2405 | + private List<Map<String,String>> getChidbearAgeCountData(String birth, Integer userId,String hospitalId, | |
| 2406 | + String proviceId,String cityId,String areaId) | |
| 2407 | + { | |
| 2394 | 2408 | List<String> hospitalIds = new ArrayList<>(); |
| 2395 | 2409 | if (com.lyms.platform.common.utils.StringUtils.isNotEmpty(hospitalId)) { |
| 2396 | 2410 | hospitalIds.add(hospitalId); |
| 2397 | 2411 | |
| 2398 | 2412 | |
| ... | ... | @@ -2399,12 +2413,11 @@ |
| 2399 | 2413 | hospitalIds = areaCountFacade.getCurrentUserHospPermissions(userId, proviceId, |
| 2400 | 2414 | cityId, areaId); |
| 2401 | 2415 | } |
| 2416 | + List<Map<String,String>> list = new ArrayList<>(); | |
| 2402 | 2417 | |
| 2403 | - List<Map<String,Integer>> list = new ArrayList<>(); | |
| 2404 | - | |
| 2405 | 2418 | //String hospitalId = autoMatchFacade.getHospitalId(userId); |
| 2406 | 2419 | List<Integer> ages = new ArrayList<>(); |
| 2407 | - for (int i = 15; i < 16; i ++) | |
| 2420 | + for (int i = 15; i < 50; i ++) | |
| 2408 | 2421 | { |
| 2409 | 2422 | ages.add(i); |
| 2410 | 2423 | } |
| 2411 | 2424 | |
| ... | ... | @@ -2427,18 +2440,70 @@ |
| 2427 | 2440 | if (CollectionUtils.isNotEmpty(futures)) { |
| 2428 | 2441 | for (Future f : futures) { |
| 2429 | 2442 | try { |
| 2430 | - list.addAll((List<Map<String,Integer>>) f.get()); | |
| 2443 | + list.addAll((List<Map<String,String>>) f.get()); | |
| 2431 | 2444 | } catch (Exception e) { |
| 2432 | 2445 | ExceptionUtils.catchException(e, "getChildbearAgeCount list error."); |
| 2433 | 2446 | } |
| 2434 | 2447 | } |
| 2435 | 2448 | } |
| 2436 | 2449 | |
| 2437 | - BaseObjectResponse objectResponse = new BaseObjectResponse(); | |
| 2438 | - objectResponse.setErrorcode(ErrorCodeConstants.SUCCESS); | |
| 2439 | - objectResponse.setErrormsg("成功"); | |
| 2440 | - objectResponse.setData(list); | |
| 2441 | - return objectResponse; | |
| 2450 | + Integer columnOneCount = 0; | |
| 2451 | + Integer columnTwoCount = 0; | |
| 2452 | + Integer columnThreeCount = 0; | |
| 2453 | + Integer columnMoreCount = 0; | |
| 2454 | + Integer columnRowCount = 0; | |
| 2455 | + | |
| 2456 | + for (Map<String,String> map : list) | |
| 2457 | + { | |
| 2458 | + Integer oneCount = Integer.parseInt(map.get("oneCount")); | |
| 2459 | + columnOneCount+=oneCount; | |
| 2460 | + | |
| 2461 | + Integer twoCount = Integer.parseInt(map.get("twoCount")); | |
| 2462 | + columnTwoCount+=twoCount; | |
| 2463 | + | |
| 2464 | + Integer threeCount = Integer.parseInt(map.get("threeCount")); | |
| 2465 | + columnThreeCount+=threeCount; | |
| 2466 | + | |
| 2467 | + Integer moreCount = Integer.parseInt(map.get("moreCount")); | |
| 2468 | + columnMoreCount+=moreCount; | |
| 2469 | + | |
| 2470 | + Integer rowCount = Integer.parseInt(map.get("rowCount")); | |
| 2471 | + columnRowCount+=rowCount; | |
| 2472 | + | |
| 2473 | + } | |
| 2474 | + | |
| 2475 | + Map<String,String> allMap = new HashMap<>(); | |
| 2476 | + allMap.put("name","合计"); | |
| 2477 | + allMap.put("oneCount",String.valueOf(columnOneCount)); | |
| 2478 | + allMap.put("twoCount", String.valueOf(columnTwoCount)); | |
| 2479 | + allMap.put("threeCount", String.valueOf(columnThreeCount)); | |
| 2480 | + allMap.put("moreCount",String.valueOf(columnMoreCount)); | |
| 2481 | + allMap.put("rowCount", String.valueOf(columnRowCount)); | |
| 2482 | + | |
| 2483 | + list.add(allMap); | |
| 2484 | + return list; | |
| 2485 | + } | |
| 2486 | + | |
| 2487 | + public void exportChildbearAgeCount(String birth, Integer userId, String hospitalId, | |
| 2488 | + String proviceId, String cityId, String areaId, | |
| 2489 | + HttpServletResponse httpServletResponse) { | |
| 2490 | + try { | |
| 2491 | + List<Map<String,Object>> list = (ArrayList)getChidbearAgeCountData(birth, userId, hospitalId, | |
| 2492 | + proviceId, cityId, areaId); | |
| 2493 | + Map<String, String> header = new LinkedHashMap<>(); | |
| 2494 | + header.put("name", "年龄"); | |
| 2495 | + header.put("oneCount", "1孩"); | |
| 2496 | + header.put("twoCount", "2孩"); | |
| 2497 | + header.put("threeCount", "3孩"); | |
| 2498 | + header.put("moreCount", "多孩"); | |
| 2499 | + header.put("rowCount", "合计"); | |
| 2500 | + httpServletResponse.setContentType("application/force-download"); | |
| 2501 | + httpServletResponse.setHeader("Content-Disposition", "attachment;filename=" + new String(("育龄服务生孩统计.xls").getBytes("UTF-8"), "ISO-8859-1")); | |
| 2502 | + ExcelUtil.toExcel(httpServletResponse.getOutputStream(), list, header); | |
| 2503 | + }catch (Exception e) | |
| 2504 | + { | |
| 2505 | + ExceptionUtils.catchException(e,"exportChildbearAgeCount error"); | |
| 2506 | + } | |
| 2442 | 2507 | } |
| 2443 | 2508 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/worker/ChildbearAgeWorker.java
View file @
989cc36
| ... | ... | @@ -17,7 +17,7 @@ |
| 17 | 17 | /** |
| 18 | 18 | * Created by Administrator on 2018-08-14. |
| 19 | 19 | */ |
| 20 | -public class ChildbearAgeWorker implements Callable<List<Map<String,Integer>>> { | |
| 20 | +public class ChildbearAgeWorker implements Callable<List<Map<String,String>>> { | |
| 21 | 21 | |
| 22 | 22 | private String birth; |
| 23 | 23 | private List<Integer> ages; |
| 24 | 24 | |
| 25 | 25 | |
| ... | ... | @@ -36,16 +36,16 @@ |
| 36 | 36 | } |
| 37 | 37 | |
| 38 | 38 | @Override |
| 39 | - public List<Map<String,Integer>> call() throws Exception { | |
| 39 | + public List<Map<String,String>> call() throws Exception { | |
| 40 | 40 | |
| 41 | 41 | List<Integer> fmChildTimes = new ArrayList<>(); |
| 42 | 42 | |
| 43 | - List<Map<String,Integer>> list = new ArrayList<>(); | |
| 43 | + List<Map<String,String>> list = new ArrayList<>(); | |
| 44 | 44 | |
| 45 | 45 | for (Integer fmAge : ages) |
| 46 | 46 | { |
| 47 | - Map<String,Integer> map = new HashMap<>(); | |
| 48 | - map.put("age", fmAge); | |
| 47 | + Map<String,String> map = new HashMap<>(); | |
| 48 | + map.put("name", String.valueOf(fmAge)); | |
| 49 | 49 | MatDeliverQuery matDeliverQuery = new MatDeliverQuery(); |
| 50 | 50 | matDeliverQuery.setYn(YnEnums.YES.getId()); |
| 51 | 51 | matDeliverQuery.setFmAge(fmAge); |
| ... | ... | @@ -61,7 +61,7 @@ |
| 61 | 61 | fmChildTimes.add(1); |
| 62 | 62 | matDeliverQuery.setFmChildTimes(fmChildTimes); |
| 63 | 63 | int oneCount = matDeliverService.count(matDeliverQuery); |
| 64 | - map.put("oneChild", oneCount); | |
| 64 | + map.put("oneCount", String.valueOf(oneCount)); | |
| 65 | 65 | fmChildTimes.clear(); |
| 66 | 66 | |
| 67 | 67 | |
| 68 | 68 | |
| ... | ... | @@ -69,13 +69,23 @@ |
| 69 | 69 | matDeliverQuery.setFmChildTimes(fmChildTimes); |
| 70 | 70 | int twoCount = matDeliverService.count(matDeliverQuery); |
| 71 | 71 | fmChildTimes.clear(); |
| 72 | - map.put("twoChild", twoCount); | |
| 72 | + map.put("twoCount", String.valueOf(twoCount)); | |
| 73 | 73 | |
| 74 | 74 | fmChildTimes.add(3); |
| 75 | 75 | matDeliverQuery.setFmChildTimes(fmChildTimes); |
| 76 | 76 | int threeCount = matDeliverService.count(matDeliverQuery); |
| 77 | 77 | fmChildTimes.clear(); |
| 78 | - map.put("threeChild",threeCount); | |
| 78 | + map.put("threeCount", String.valueOf(threeCount)); | |
| 79 | + | |
| 80 | + fmChildTimes.add(4); | |
| 81 | + matDeliverQuery.setFmChildTimes(fmChildTimes); | |
| 82 | + int moreCount = matDeliverService.count(matDeliverQuery); | |
| 83 | + fmChildTimes.clear(); | |
| 84 | + map.put("moreCount", String.valueOf(moreCount)); | |
| 85 | + | |
| 86 | + int rowCount = oneCount+twoCount+threeCount+moreCount; | |
| 87 | + | |
| 88 | + map.put("rowCount", String.valueOf(rowCount)); | |
| 79 | 89 | |
| 80 | 90 | list.add(map); |
| 81 | 91 | } |