Commit 6cff3a7db29266aff70be55a68e8d7ca7e6fa187
1 parent
472f0c1352
Exists in
master
and in
6 other branches
BUG
Showing 5 changed files with 330 additions and 7 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyStatisticsManagerController.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyStatisticsManagerFacade.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyStatisticsManagerBuildSourceListRequest.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyStatisticsManagerSelfConversionListRequest.java
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyStatisticsManagerSelfConversionListResult.java
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/BabyStatisticsManagerController.java
View file @
6cff3a7
| ... | ... | @@ -5,6 +5,7 @@ |
| 5 | 5 | import com.lyms.platform.common.base.LoginContext; |
| 6 | 6 | import com.lyms.platform.common.constants.ErrorCodeConstants; |
| 7 | 7 | import com.lyms.platform.common.result.BaseListResponse; |
| 8 | +import com.lyms.platform.common.result.BaseObjectResponse; | |
| 8 | 9 | import com.lyms.platform.common.utils.BeanUtils; |
| 9 | 10 | import com.lyms.platform.common.utils.ExcelUtil; |
| 10 | 11 | import com.lyms.platform.common.utils.ExceptionUtils; |
| ... | ... | @@ -347,6 +348,31 @@ |
| 347 | 348 | } catch (Exception e) { |
| 348 | 349 | ExceptionUtils.catchException(e, "babyStatisticsManagerBuildSourceListExcel异常"); |
| 349 | 350 | } |
| 351 | + } | |
| 352 | + | |
| 353 | + /** | |
| 354 | + * @auther HuJiaqi | |
| 355 | + * @createTime 2017年01月16日 13时54分 | |
| 356 | + * @discription 本院转化统计 | |
| 357 | + */ | |
| 358 | + @TokenRequired | |
| 359 | + @ResponseBody | |
| 360 | + @RequestMapping(value = "babyStatisticsManagerSelfConversionList", method = RequestMethod.POST, consumes = "application/json") | |
| 361 | + public BaseObjectResponse babyStatisticsManagerSelfConversionList(HttpServletRequest httpServletRequest, @RequestBody BabyStatisticsManagerSelfConversionListRequest babyStatisticsManagerSelfConversionListRequest) { | |
| 362 | + BaseObjectResponse baseObjectResponse; | |
| 363 | + try { | |
| 364 | + babyStatisticsManagerSelfConversionListRequest.setOperatorId(((LoginContext) httpServletRequest.getAttribute("loginContext")).getId()); | |
| 365 | + BabyStatisticsManagerSelfConversionListResult babyStatisticsManagerSelfConversionListResult = babyStatisticsManagerFacade.babyStatisticsManagerSelfConversionList(babyStatisticsManagerSelfConversionListRequest); | |
| 366 | + if (babyStatisticsManagerSelfConversionListResult.getErrorcode() != ErrorCodeConstants.SUCCESS) { | |
| 367 | + baseObjectResponse = new BaseObjectResponse().setErrorcode(babyStatisticsManagerSelfConversionListResult.getErrorcode()).setErrormsg(babyStatisticsManagerSelfConversionListResult.getErrormsg()); | |
| 368 | + return baseObjectResponse; | |
| 369 | + } | |
| 370 | + baseObjectResponse = new BaseObjectResponse().setErrorcode(babyStatisticsManagerSelfConversionListResult.getErrorcode()).setErrormsg(babyStatisticsManagerSelfConversionListResult.getErrormsg()).setData(babyStatisticsManagerSelfConversionListResult); | |
| 371 | + } catch (Exception e) { | |
| 372 | + baseObjectResponse = new BaseObjectResponse().setErrorcode(ErrorCodeConstants.SYSTEM_ERROR).setErrormsg(ErrorCodeConstants.SYSTEM_ERROR_DESCRIPTION); | |
| 373 | + ExceptionUtils.catchException(e, "babyStatisticsManagerSelfConversionList异常"); | |
| 374 | + } | |
| 375 | + return baseObjectResponse; | |
| 350 | 376 | } |
| 351 | 377 | |
| 352 | 378 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BabyStatisticsManagerFacade.java
View file @
6cff3a7
| ... | ... | @@ -380,21 +380,19 @@ |
| 380 | 380 | } |
| 381 | 381 | } |
| 382 | 382 | }); |
| 383 | - for (BabyStatisticsManagerWeekAgeGroupQueryModel babyStatisticsManagerWeekAgeGroupQueryModel : babyStatisticsManagerWeekAgeGroupQueryModelList) { | |
| 384 | - System.out.println(babyStatisticsManagerWeekAgeGroupQueryModel.getWeekAge()); | |
| 385 | - } | |
| 383 | + | |
| 386 | 384 | List<BabyStatisticsManagerWeekAgeGroupQueryModel> babyStatisticsManagerWeekAgeGroupQueryModelListResult = new ArrayList<>(); |
| 387 | 385 | // 从0开始,没有也填充 |
| 388 | 386 | int index = 0; |
| 389 | 387 | for (Integer i = 0; i < 37; i++) { |
| 390 | 388 | try { |
| 391 | - while (!i.toString().equals(babyStatisticsManagerWeekAgeGroupQueryModelList.get(index).getWeekAge()) && i < Integer.valueOf(babyStatisticsManagerWeekAgeGroupQueryModelList.get(index).getWeekAge())) { | |
| 389 | + while (!i.toString().equals(babyStatisticsManagerWeekAgeGroupQueryModelList.get(index).getWeekAge()) && i > Integer.valueOf(babyStatisticsManagerWeekAgeGroupQueryModelList.get(index).getWeekAge())) { | |
| 392 | 390 | index++; |
| 393 | 391 | } |
| 394 | 392 | } catch (Exception e) { |
| 395 | 393 | index++; |
| 396 | 394 | } |
| 397 | - if (CollectionUtils.isEmpty(babyStatisticsManagerWeekAgeGroupQueryModelList) || babyStatisticsManagerWeekAgeGroupQueryModelList.size() < index || babyStatisticsManagerWeekAgeGroupQueryModelList.get(index) == null) { | |
| 395 | + if (CollectionUtils.isEmpty(babyStatisticsManagerWeekAgeGroupQueryModelList) || babyStatisticsManagerWeekAgeGroupQueryModelList.size() < index || babyStatisticsManagerWeekAgeGroupQueryModelList.get(index) == null || !i.toString().equals(babyStatisticsManagerWeekAgeGroupQueryModelList.get(index).getWeekAge())) { | |
| 398 | 396 | BabyStatisticsManagerWeekAgeGroupQueryModel babyStatisticsManagerWeekAgeGroupQueryModel = new BabyStatisticsManagerWeekAgeGroupQueryModel(); |
| 399 | 397 | babyStatisticsManagerWeekAgeGroupQueryModel.setCount("0"); |
| 400 | 398 | babyStatisticsManagerWeekAgeGroupQueryModel.setWeekAge(i.toString()); |
| ... | ... | @@ -540,7 +538,7 @@ |
| 540 | 538 | // "AND B.CITY_ID=" + |
| 541 | 539 | // "AND B.AREA_COUNTY_ID=" |
| 542 | 540 | if (StringUtils.isNotEmpty(babyStatisticsManagerBuildSourceListRequest.getBuildDate())) { |
| 543 | - sql += "AND A.INSERT_DATE BETWEEN" + buildDateStart + " AND" + buildDateEnd; | |
| 541 | + sql += "AND A.INSERT_DATE BETWEEN" + buildDateStart + "AND" + buildDateEnd; | |
| 544 | 542 | } |
| 545 | 543 | sql += "GROUP BY" + |
| 546 | 544 | "B.PROVINCE_ID," + |
| ... | ... | @@ -632,6 +630,209 @@ |
| 632 | 630 | babyStatisticsManagerBuildSourceListResult.setErrorcode(ErrorCodeConstants.SUCCESS); |
| 633 | 631 | babyStatisticsManagerBuildSourceListResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); |
| 634 | 632 | return babyStatisticsManagerBuildSourceListResult; |
| 633 | + } | |
| 634 | + | |
| 635 | + public BabyStatisticsManagerSelfConversionListResult babyStatisticsManagerSelfConversionList(BabyStatisticsManagerSelfConversionListRequest babyStatisticsManagerSelfConversionListRequest) { | |
| 636 | + BabyStatisticsManagerSelfConversionListResult babyStatisticsManagerSelfConversionListResult = new BabyStatisticsManagerSelfConversionListResult(); | |
| 637 | + | |
| 638 | + String hospitalId; | |
| 639 | + try { | |
| 640 | + hospitalId = autoMatchFacade.getHospitalId(babyStatisticsManagerSelfConversionListRequest.getOperatorId()); | |
| 641 | + } catch (Exception e) { | |
| 642 | + babyStatisticsManagerSelfConversionListResult.setErrorcode(ErrorCodeConstants.SYSTEM_ERROR); | |
| 643 | + babyStatisticsManagerSelfConversionListResult.setErrormsg("获取当前医院异常"); | |
| 644 | + return babyStatisticsManagerSelfConversionListResult; | |
| 645 | + } | |
| 646 | + | |
| 647 | + String birthDateStart = null; | |
| 648 | + String birthDateEnd = null; | |
| 649 | + if (StringUtils.isNotEmpty(babyStatisticsManagerSelfConversionListRequest.getBirthDate())) { | |
| 650 | + birthDateStart = DateUtil.getyyyy_MM_dd(DateUtil.getSNDate(babyStatisticsManagerSelfConversionListRequest.getBirthDate())[0]); | |
| 651 | + birthDateEnd = DateUtil.getyyyy_MM_dd(DateUtil.getSNDate(babyStatisticsManagerSelfConversionListRequest.getBirthDate())[1]); | |
| 652 | + } | |
| 653 | + | |
| 654 | + String sql = | |
| 655 | + "SELECT B.PROVINCE_ID," + | |
| 656 | + "B.PROVINCE," + | |
| 657 | + "B.CITY_ID," + | |
| 658 | + "B.CITY," + | |
| 659 | + "B.AREA_COUNTY_ID," + | |
| 660 | + "B.AREA_COUNTY," + | |
| 661 | + "B.HOSPITAL_NO," + | |
| 662 | + "B.HOSPITAL_NAME," + | |
| 663 | + "TRUNC(MONTHS_BETWEEN(C.EXAMINE_DATE,A.BIRTHDAY)) AS EXAMINE_MONTH," + | |
| 664 | + "COUNT(*) AS CNT" + | |
| 665 | + "FROM ODS_F_INFANT_RECORD A" + | |
| 666 | + "INNER JOIN ODS_D_HOSPITAL B ON A.HOSPITAL_NO=B.HOSPITAL_NO" + | |
| 667 | + "LEFT JOIN ODS_F_CHILD_PHYSICAL C ON A.RECORD_ID=C.RECORD_ID AND C.EXAMINE_HISTORY_NUM=1" + | |
| 668 | + "WHERE A.HOSPITAL_NO=A.BIRTH_HOSPITAL_NO" + | |
| 669 | + "AND B.YCY_STSTEM_ID=" + hospitalId; | |
| 670 | + // 这三个查询条件暂时没用,直接注释掉 | |
| 671 | + // "AND B.PROVINCE_ID="+ | |
| 672 | + // "AND B.CITY_ID="+ | |
| 673 | + // "AND B.AREA_COUNTY_ID="+ | |
| 674 | + if (StringUtils.isNotEmpty(babyStatisticsManagerSelfConversionListRequest.getBirthDate())) { | |
| 675 | + sql += "AND A.INSERT_DATE BETWEEN" + birthDateStart + "AND" + birthDateEnd; | |
| 676 | + } | |
| 677 | + sql += "GROUP BY" + | |
| 678 | + "B.PROVINCE_ID," + | |
| 679 | + "B.PROVINCE," + | |
| 680 | + "B.CITY_ID," + | |
| 681 | + "B.CITY," + | |
| 682 | + "B.AREA_COUNTY_ID," + | |
| 683 | + "B.AREA_COUNTY," + | |
| 684 | + "B.HOSPITAL_NO," + | |
| 685 | + "B.HOSPITAL_NAME," + | |
| 686 | + "TRUNC(MONTHS_BETWEEN(C.EXAMINE_DATE,A.BIRTHDAY))"; | |
| 687 | + | |
| 688 | + // jdbc查oracle | |
| 689 | + List<Map<String, Object>> list = JdbcUtil.getOracleListDataBySql("com.mysql.jdbc.Driver", "jdbc:oracle:thin:@127.0.0.1:1521:orcl", "LYMS_ODS", "Welcome1", sql); | |
| 690 | + | |
| 691 | + // List<Map<String, Object>> list = new ArrayList<>(); | |
| 692 | + // Map<String, Object> test1 = new HashMap<>(); | |
| 693 | + // test1.put("examineMonth", 2); | |
| 694 | + // test1.put("cnt", "2"); | |
| 695 | + // Map<String, Object> test2 = new HashMap<>(); | |
| 696 | + // test2.put("examineMonth", 3); | |
| 697 | + // test2.put("cnt", "3"); | |
| 698 | + // Map<String, Object> test3 = new HashMap<>(); | |
| 699 | + // test3.put("examineMonth", 1); | |
| 700 | + // test3.put("cnt", "1"); | |
| 701 | + // Map<String, Object> test4 = new HashMap<>(); | |
| 702 | + // test4.put("examineMonth", 0); | |
| 703 | + // test4.put("cnt", "5"); | |
| 704 | + // list.add(test1); | |
| 705 | + // list.add(test2); | |
| 706 | + // list.add(test3); | |
| 707 | + // list.add(test4); | |
| 708 | + | |
| 709 | + Collections.sort(list, new Comparator<Map<String, Object>>() { | |
| 710 | + @Override | |
| 711 | + public int compare(Map<String, Object> o1, Map<String, Object> o2) { | |
| 712 | + int i1; | |
| 713 | + int i2; | |
| 714 | + try { | |
| 715 | + i1 = Integer.valueOf(o1.get("examineMonth").toString()); | |
| 716 | + } catch (Exception e) { | |
| 717 | + i1 = 0; | |
| 718 | + } | |
| 719 | + try { | |
| 720 | + i2 = Integer.valueOf(o2.get("examineMonth").toString()); | |
| 721 | + } catch (Exception e) { | |
| 722 | + i2 = 0; | |
| 723 | + } | |
| 724 | + if (i1 > i2) { | |
| 725 | + return 1; | |
| 726 | + } else if (i1 < i2) { | |
| 727 | + return -1; | |
| 728 | + } else { | |
| 729 | + return 0; | |
| 730 | + } | |
| 731 | + } | |
| 732 | + }); | |
| 733 | + | |
| 734 | + // 检查人数 | |
| 735 | + List<Integer> result = new ArrayList<>(); | |
| 736 | + Integer total = 0; | |
| 737 | + // 从0开始,没有也填充 | |
| 738 | + int index = 0; | |
| 739 | + for (Integer i = 0; i < 13; i++) { | |
| 740 | + try { | |
| 741 | + while (!i.toString().equals(list.get(index).get("examineMonth").toString()) && index > Integer.valueOf(list.get(index).get("examineMonth").toString())) { | |
| 742 | + index++; | |
| 743 | + } | |
| 744 | + } catch (Exception e) { | |
| 745 | + index++; | |
| 746 | + } | |
| 747 | + if (CollectionUtils.isEmpty(list) || list.size() < index || list.get(index) == null || !i.toString().equals(list.get(index).get("examineMonth").toString())) { | |
| 748 | + result.add(0); | |
| 749 | + } else { | |
| 750 | + try { | |
| 751 | + result.add(Integer.valueOf(list.get(index).get("cnt").toString())); | |
| 752 | + total += Integer.valueOf(list.get(index).get("cnt").toString()); | |
| 753 | + index++; | |
| 754 | + } catch (Exception e) { | |
| 755 | + result.add(0); | |
| 756 | + index++; | |
| 757 | + } | |
| 758 | + } | |
| 759 | + } | |
| 760 | + | |
| 761 | + Integer check18 = 0; | |
| 762 | + Integer check24 = 0; | |
| 763 | + Integer check30 = 0; | |
| 764 | + Integer check36 = 0; | |
| 765 | + for (Map<String, Object> other : list) { | |
| 766 | + if ("18".equals(other.get("examineMonth").toString())) { | |
| 767 | + check18 = Integer.valueOf(other.get("cnt").toString()); | |
| 768 | + } | |
| 769 | + if ("24".equals(other.get("examineMonth").toString())) { | |
| 770 | + check24 = Integer.valueOf(other.get("cnt").toString()); | |
| 771 | + } | |
| 772 | + if ("30".equals(other.get("examineMonth").toString())) { | |
| 773 | + check30 = Integer.valueOf(other.get("cnt").toString()); | |
| 774 | + } | |
| 775 | + if ("36".equals(other.get("examineMonth").toString())) { | |
| 776 | + check36 = Integer.valueOf(other.get("cnt").toString()); | |
| 777 | + } | |
| 778 | + } | |
| 779 | + result.add(check18); | |
| 780 | + result.add(check24); | |
| 781 | + result.add(check30); | |
| 782 | + result.add(check36); | |
| 783 | + | |
| 784 | + for (int i = 1; i < result.size(); i++) { | |
| 785 | + result.set(i, result.get(i) + result.get(i - 1)); | |
| 786 | + } | |
| 787 | + result.remove(0); | |
| 788 | + | |
| 789 | + // 未检查人数 | |
| 790 | + List<Integer> resultOther = new ArrayList<>(); | |
| 791 | + for (Integer i : result) { | |
| 792 | + resultOther.add(total - i); | |
| 793 | + } | |
| 794 | + | |
| 795 | + // 下面的表格 | |
| 796 | + Integer check1 = result.get(0); | |
| 797 | + Integer check3 = 0; | |
| 798 | + Integer check6 = 0; | |
| 799 | + Integer check12 = 0; | |
| 800 | + for (int i = 0; i < 12; i++) { | |
| 801 | + if (i < 3) { | |
| 802 | + check3 += result.get(i); | |
| 803 | + } | |
| 804 | + if (i < 6) { | |
| 805 | + check6 += result.get(i); | |
| 806 | + } | |
| 807 | + if (i < 12) { | |
| 808 | + check12 += result.get(i); | |
| 809 | + } | |
| 810 | + } | |
| 811 | + Integer checkOther = total - check12; | |
| 812 | + | |
| 813 | + List<Integer> babyCount = new ArrayList<>(); | |
| 814 | + List<String> percent = new ArrayList<>(); | |
| 815 | + babyCount.add(total); | |
| 816 | + percent.add("100%"); | |
| 817 | + babyCount.add(check1); | |
| 818 | + percent.add(Math.round((double) check1 * 100 / (double) total) / 1.00 + "%"); | |
| 819 | + babyCount.add(check3); | |
| 820 | + percent.add(Math.round((double) check3 * 100 / (double) total) / 1.00 + "%"); | |
| 821 | + babyCount.add(check6); | |
| 822 | + percent.add(Math.round((double) check6 * 100 / (double) total) / 1.00 + "%"); | |
| 823 | + babyCount.add(check12); | |
| 824 | + percent.add(Math.round((double) check12 * 100 / (double) total) / 1.00 + "%"); | |
| 825 | + babyCount.add(checkOther); | |
| 826 | + percent.add(Math.round((double) checkOther * 100 / (double) total) / 1.00 + "%"); | |
| 827 | + | |
| 828 | + babyStatisticsManagerSelfConversionListResult.setResult(result); | |
| 829 | + babyStatisticsManagerSelfConversionListResult.setResultOther(resultOther); | |
| 830 | + babyStatisticsManagerSelfConversionListResult.setBabyCount(babyCount); | |
| 831 | + babyStatisticsManagerSelfConversionListResult.setPercent(percent); | |
| 832 | + | |
| 833 | + babyStatisticsManagerSelfConversionListResult.setErrorcode(ErrorCodeConstants.SUCCESS); | |
| 834 | + babyStatisticsManagerSelfConversionListResult.setErrormsg(ErrorCodeConstants.SUCCESS_DESCRIPTION); | |
| 835 | + return babyStatisticsManagerSelfConversionListResult; | |
| 635 | 836 | } |
| 636 | 837 | } |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyStatisticsManagerBuildSourceListRequest.java
View file @
6cff3a7
platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/BabyStatisticsManagerSelfConversionListRequest.java
View file @
6cff3a7
| 1 | +package com.lyms.platform.operate.web.request; | |
| 2 | + | |
| 3 | +/** | |
| 4 | + * @auther HuJiaqi | |
| 5 | + * @createTime 2017年01月17日 14时08分 | |
| 6 | + * @discription | |
| 7 | + */ | |
| 8 | +public class BabyStatisticsManagerSelfConversionListRequest { | |
| 9 | + | |
| 10 | + private String birthDate; | |
| 11 | + | |
| 12 | + private Integer operatorId; | |
| 13 | + | |
| 14 | + private String isExcel; | |
| 15 | + | |
| 16 | + public String getBirthDate() { | |
| 17 | + return birthDate; | |
| 18 | + } | |
| 19 | + | |
| 20 | + public void setBirthDate(String birthDate) { | |
| 21 | + this.birthDate = birthDate; | |
| 22 | + } | |
| 23 | + | |
| 24 | + public Integer getOperatorId() { | |
| 25 | + return operatorId; | |
| 26 | + } | |
| 27 | + | |
| 28 | + public void setOperatorId(Integer operatorId) { | |
| 29 | + this.operatorId = operatorId; | |
| 30 | + } | |
| 31 | + | |
| 32 | + public String getIsExcel() { | |
| 33 | + return isExcel; | |
| 34 | + } | |
| 35 | + | |
| 36 | + public void setIsExcel(String isExcel) { | |
| 37 | + this.isExcel = isExcel; | |
| 38 | + } | |
| 39 | +} |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/result/BabyStatisticsManagerSelfConversionListResult.java
View file @
6cff3a7
| 1 | +package com.lyms.platform.operate.web.result; | |
| 2 | + | |
| 3 | +import com.lyms.platform.common.result.BaseResponse; | |
| 4 | + | |
| 5 | +import java.util.List; | |
| 6 | + | |
| 7 | +/** | |
| 8 | + * @auther HuJiaqi | |
| 9 | + * @createTime 2017年01月17日 14时16分 | |
| 10 | + * @discription | |
| 11 | + */ | |
| 12 | +public class BabyStatisticsManagerSelfConversionListResult extends BaseResponse { | |
| 13 | + | |
| 14 | + // 检查人数 | |
| 15 | + private List<Integer> result; | |
| 16 | + | |
| 17 | + // 未检查人数 | |
| 18 | + private List<Integer> resultOther; | |
| 19 | + | |
| 20 | + // 儿童数量 | |
| 21 | + private List<Integer> babyCount; | |
| 22 | + | |
| 23 | + // 占比 | |
| 24 | + private List<String> percent; | |
| 25 | + | |
| 26 | + public List<Integer> getResult() { | |
| 27 | + return result; | |
| 28 | + } | |
| 29 | + | |
| 30 | + public void setResult(List<Integer> result) { | |
| 31 | + this.result = result; | |
| 32 | + } | |
| 33 | + | |
| 34 | + public List<Integer> getResultOther() { | |
| 35 | + return resultOther; | |
| 36 | + } | |
| 37 | + | |
| 38 | + public void setResultOther(List<Integer> resultOther) { | |
| 39 | + this.resultOther = resultOther; | |
| 40 | + } | |
| 41 | + | |
| 42 | + public List<Integer> getBabyCount() { | |
| 43 | + return babyCount; | |
| 44 | + } | |
| 45 | + | |
| 46 | + public void setBabyCount(List<Integer> babyCount) { | |
| 47 | + this.babyCount = babyCount; | |
| 48 | + } | |
| 49 | + | |
| 50 | + public List<String> getPercent() { | |
| 51 | + return percent; | |
| 52 | + } | |
| 53 | + | |
| 54 | + public void setPercent(List<String> percent) { | |
| 55 | + this.percent = percent; | |
| 56 | + } | |
| 57 | +} |