Commit 50cb8af892722757b02c372b968a6fbe6b699d4f
Exists in
master
and in
1 other branch
Merge remote-tracking branch 'origin/master'
Showing 2 changed files
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/StatisticsController.java
View file @
50cb8af
... | ... | @@ -9,6 +9,7 @@ |
9 | 9 | import com.lymsh.platform.reportdata.model.AreaDataQuery; |
10 | 10 | import com.lymsh.platform.reportdata.model.echarts.*; |
11 | 11 | import com.lymsh.platform.reportdata.service.StatisticsService; |
12 | +import org.apache.commons.beanutils.BeanUtils; | |
12 | 13 | import org.apache.commons.lang.StringUtils; |
13 | 14 | import org.joda.time.DateTime; |
14 | 15 | import org.springframework.beans.factory.annotation.Autowired; |
... | ... | @@ -520,6 +521,14 @@ |
520 | 521 | String cityName = null; |
521 | 522 | AreaDataQuery query = new AreaDataQuery(); |
522 | 523 | query.setCityId(pid); |
524 | + | |
525 | + //区县数据 | |
526 | + Map<String, Option> groupRiskOptionMap = new HashMap<>(); | |
527 | + Map<String, Option> patientMonthOptionMap = new HashMap<>(); | |
528 | + Map<String, Option> reportMonthOptionMap = new HashMap<>(); | |
529 | + Map<String, Option> groupRiskMonthOptionMap = new HashMap<>(); | |
530 | + | |
531 | + | |
523 | 532 | // 地图数据 |
524 | 533 | List<AreaData> provinceRiskList = statisticsService.queryRisksByCity(query); |
525 | 534 | List<AreaData> provincePatientList = statisticsService.queryPatientsByCity(query); |
526 | 535 | |
... | ... | @@ -599,13 +608,14 @@ |
599 | 608 | Series series = new Series(); |
600 | 609 | series.setName("建档及高危数"); |
601 | 610 | series.setType("map"); |
602 | - series.setMapType(cityPinyinMap.get(cityName.replace("市","").replace("省",""))); | |
611 | + series.setMapType(cityPinyinMap.get(cityName.replace("市", "").replace("省", ""))); | |
603 | 612 | series.setRoam(false); |
604 | 613 | series.setData(dataList); |
605 | 614 | series.setLabel(label); |
606 | 615 | seriesList.add(series); |
607 | 616 | option.setSeries(seriesList); |
608 | 617 | |
618 | + Map<String, Map<String, Integer>> subMapsData = new HashMap<>(); | |
609 | 619 | |
610 | 620 | // 高危数据 |
611 | 621 | List<AreaData> currentRiskList = statisticsService.queryRisks(query); |
... | ... | @@ -618,6 +628,19 @@ |
618 | 628 | mapsData.clear(); |
619 | 629 | for (AreaData areaData:currentRiskList) { |
620 | 630 | String groupName = areaData.getGroupName().replace("预警", ""); |
631 | + | |
632 | + Map<String, Integer> areaMap = subMapsData.get(areaData.getAreaName()); | |
633 | + if (areaMap == null) { | |
634 | + areaMap = new HashMap<>(); | |
635 | + subMapsData.put(areaData.getAreaName(), areaMap); | |
636 | + } | |
637 | + | |
638 | + if (areaMap.get(areaData.getRiskName()) == null) { | |
639 | + areaMap.put(areaData.getRiskName(),areaData.getVal()); | |
640 | + } else { | |
641 | + areaMap.put(areaData.getRiskName(), areaMap.get(areaData.getRiskName()) + areaData.getVal()); | |
642 | + } | |
643 | + | |
621 | 644 | if (mapsData.get(areaData.getRiskName()) == null) { |
622 | 645 | mapsData.put(areaData.getRiskName(),areaData.getVal()); |
623 | 646 | if (colormap.get(groupName) != null) { |
624 | 647 | |
625 | 648 | |
626 | 649 | |
... | ... | @@ -657,17 +680,85 @@ |
657 | 680 | groupRiskDataList.add(entry.getValue()); |
658 | 681 | } |
659 | 682 | } |
683 | + | |
660 | 684 | groupRiskSeries.setData(groupRiskDataList); |
661 | 685 | groupRiskSeriesList.add(groupRiskSeries); |
662 | 686 | groupRiskOption.setSeries(groupRiskSeriesList); |
663 | 687 | |
688 | + for (String areaName:subMapsData.keySet()) { | |
689 | + try { | |
690 | + Option subGroupRiskOption = buildyBarOption(areaName + "当前高危人数", null); | |
691 | + groupRiskOption.getTooltip().setShow(true); | |
692 | + List<Object> subGroupRiskSeriesList = new ArrayList<>(); | |
693 | + Series subGroupRiskSeries = new Series(); | |
694 | + subGroupRiskSeries.setName("高危人数"); | |
695 | + subGroupRiskSeries.setType("bar"); | |
696 | + // 按MAP的value排序 | |
697 | + List<Map.Entry<String, Integer>> subListData = new ArrayList<Map.Entry<String, Integer>>(subMapsData.get(areaName).entrySet()); | |
698 | + Collections.sort(subListData, new Comparator<Map.Entry<String, Integer>>() { | |
699 | + public int compare(Map.Entry<String, Integer> o1, Map.Entry<String, Integer> o2) { | |
700 | + if (o2.getValue() != null && o1.getValue() != null && o2.getValue().compareTo(o1.getValue()) > 0) { | |
701 | + return -1; | |
702 | + } else { | |
703 | + return 1; | |
704 | + } | |
705 | + } | |
706 | + }); | |
707 | + | |
708 | + List<Object> subGroupRiskDataList = new ArrayList<>(); | |
709 | + n = subListData.size(); | |
710 | + for (Map.Entry<String, Integer> entry:subListData) { | |
711 | + n--; | |
712 | + if (n>28) { | |
713 | + continue; | |
714 | + } | |
715 | + subGroupRiskOption.getyAxis().getData().add(entry.getKey()); | |
716 | + if (riskColorMap.containsKey(entry.getKey())) { | |
717 | + Data data = new Data(); | |
718 | + data.setValue(entry.getValue()); | |
719 | + data.setItemStyle(new ItemStyle(new Normal(true,riskColorMap.get(entry.getKey())),null)); | |
720 | + subGroupRiskDataList.add(data); | |
721 | + } else { | |
722 | + subGroupRiskDataList.add(entry.getValue()); | |
723 | + } | |
724 | + } | |
725 | + | |
726 | + subGroupRiskSeries.setData(subGroupRiskDataList); | |
727 | + subGroupRiskSeriesList.add(subGroupRiskSeries); | |
728 | + subGroupRiskOption.setSeries(subGroupRiskSeriesList); | |
729 | + groupRiskOptionMap.put(areaName, subGroupRiskOption); | |
730 | + } catch (Exception e) { | |
731 | + e.printStackTrace(); | |
732 | + } | |
733 | + } | |
734 | + | |
735 | + | |
664 | 736 | Map<String, Map<String, Integer>> patientMonthMap = new HashMap<>(); |
737 | + Map<String, Map<String, Map<String, Integer>>> subPatientMonthMap = new HashMap<>(); | |
665 | 738 | // 6. 按省或市或地区查询区域内近12个自然月每月产检中历史高危人数(按颜色分组) |
666 | 739 | query.setDays(12); |
667 | 740 | List<AreaData> riskMonthList = statisticsService.queryHrefYearRisks(query); |
668 | 741 | Map<String, Integer> rmap = new HashMap<>(); |
669 | 742 | for (AreaData areaData:riskMonthList) { |
670 | 743 | String month = buildMonth(areaData.getYear()); |
744 | + | |
745 | + Map<String, Map<String, Integer>> subrmap = subPatientMonthMap.get(areaData.getAreaName()); | |
746 | + if (subrmap == null) { | |
747 | + subrmap = new HashMap<>(); | |
748 | + subPatientMonthMap.put(areaData.getAreaName(), subrmap); | |
749 | + } | |
750 | + | |
751 | + Map<String, Integer> submap = subrmap.get("高危人数"); | |
752 | + if (submap == null) { | |
753 | + submap = new HashMap<>(); | |
754 | + subrmap.put("高危人数", submap); | |
755 | + } | |
756 | + if (submap.containsKey(month)) { | |
757 | + submap.put(month, submap.get(month) + areaData.getVal()); | |
758 | + } else { | |
759 | + submap.put(month, areaData.getVal()); | |
760 | + } | |
761 | + | |
671 | 762 | if (rmap.containsKey(month)) { |
672 | 763 | rmap.put(month, rmap.get(month) + areaData.getVal()); |
673 | 764 | } else { |
... | ... | @@ -680,6 +771,24 @@ |
680 | 771 | Map<String, Integer> pmap = new HashMap<>(); |
681 | 772 | for (AreaData areaData:patientMonthList) { |
682 | 773 | String month = buildMonth(areaData.getYear()); |
774 | + | |
775 | + Map<String, Map<String, Integer>> subrmap = subPatientMonthMap.get(areaData.getAreaName()); | |
776 | + if (subrmap == null) { | |
777 | + subrmap = new HashMap<>(); | |
778 | + subPatientMonthMap.put(areaData.getAreaName(), subrmap); | |
779 | + } | |
780 | + | |
781 | + Map<String, Integer> submap = subrmap.get("建档人数"); | |
782 | + if (submap == null) { | |
783 | + submap = new HashMap<>(); | |
784 | + subrmap.put("建档人数", submap); | |
785 | + } | |
786 | + if (submap.containsKey(month)) { | |
787 | + submap.put(month, submap.get(month) + areaData.getVal()); | |
788 | + } else { | |
789 | + submap.put(month, areaData.getVal()); | |
790 | + } | |
791 | + | |
683 | 792 | if (pmap.containsKey(month)) { |
684 | 793 | pmap.put(month, pmap.get(month) + areaData.getVal()); |
685 | 794 | } else { |
686 | 795 | |
687 | 796 | |
... | ... | @@ -689,13 +798,46 @@ |
689 | 798 | patientMonthMap.put("建档人数", pmap); |
690 | 799 | Option patientMonthOption = buildLineOption("建档及高危人数", null, patientMonthMap, buildDefaultMonth(12)); |
691 | 800 | |
801 | + for (String areaName:subPatientMonthMap.keySet()) { | |
802 | + patientMonthOptionMap.put(areaName, buildLineOption(areaName + "建档及高危人数", null, subPatientMonthMap.get(areaName), buildDefaultMonth(12))); | |
803 | + } | |
804 | + | |
692 | 805 | // 按省或市或地区查询区域内近12个自然月每月初诊人数、复诊人数 |
693 | 806 | List<AreaData> reportMonthList = statisticsService.queryMonthReports(query); |
694 | 807 | Map<String, Map<String, Integer>> reportMonthMap = new HashMap<>(); |
808 | + Map<String, Map<String, Map<String, Integer>>> subReportMonthMap = new HashMap<>(); | |
695 | 809 | Map<String, Integer> firstmap = new HashMap<>(); |
696 | 810 | Map<String, Integer> secondmap = new HashMap<>(); |
697 | 811 | for (AreaData areaData:reportMonthList) { |
698 | 812 | String month = buildMonth(areaData.getYear()); |
813 | + | |
814 | + Map<String, Map<String, Integer>> subrmap = subReportMonthMap.get(areaData.getAreaName()); | |
815 | + if (subrmap == null) { | |
816 | + subrmap = new HashMap<>(); | |
817 | + subReportMonthMap.put(areaData.getAreaName(), subrmap); | |
818 | + } | |
819 | + | |
820 | + Map<String, Integer> fmap = subrmap.get("初诊人数"); | |
821 | + if (fmap == null) { | |
822 | + fmap = new HashMap<>(); | |
823 | + subrmap.put("初诊人数", fmap); | |
824 | + } | |
825 | + if (fmap.containsKey(month)) { | |
826 | + fmap.put(month, fmap.get(month) + areaData.getVal()); | |
827 | + } else { | |
828 | + fmap.put(month, areaData.getVal()); | |
829 | + } | |
830 | + Map<String, Integer> smap = subrmap.get("复诊人数"); | |
831 | + if (smap == null) { | |
832 | + smap = new HashMap<>(); | |
833 | + subrmap.put("复诊人数", smap); | |
834 | + } | |
835 | + if (smap.containsKey(month)) { | |
836 | + smap.put(month, smap.get(month) + areaData.getVal2()); | |
837 | + } else { | |
838 | + smap.put(month, areaData.getVal2()); | |
839 | + } | |
840 | + | |
699 | 841 | if (firstmap.containsKey(month)) { |
700 | 842 | firstmap.put(month, firstmap.get(month) + areaData.getVal()); |
701 | 843 | } else { |
702 | 844 | |
703 | 845 | |
704 | 846 | |
705 | 847 | |
... | ... | @@ -711,17 +853,39 @@ |
711 | 853 | reportMonthMap.put("初诊人数", firstmap); |
712 | 854 | Option reportMonthOption = buildLineOption("初诊及复诊人数", null, reportMonthMap, buildDefaultMonth(12)); |
713 | 855 | |
856 | + for (String areaName:subReportMonthMap.keySet()) { | |
857 | + reportMonthOptionMap.put(areaName, buildLineOption(areaName + "初诊及复诊人数", null, subReportMonthMap.get(areaName), buildDefaultMonth(12))); | |
858 | + } | |
714 | 859 | |
860 | + | |
715 | 861 | // 近6个月高危数据(按颜色分组) |
716 | 862 | Map<String, Map<String, Integer>> groupRiskMonthMap = new HashMap<>(); |
863 | + Map<String, Map<String, Map<String, Integer>>> subGroupRiskMonthMap = new HashMap<>(); | |
717 | 864 | for (AreaData areaData:riskMonthList) { |
718 | 865 | String groupName = areaData.getGroupName().replace("预警", ""); |
866 | + String month = buildMonth(areaData.getYear()); | |
867 | + | |
868 | + Map<String, Map<String, Integer>> subrmap = subGroupRiskMonthMap.get(areaData.getAreaName()); | |
869 | + if (subrmap == null) { | |
870 | + subrmap = new HashMap<>(); | |
871 | + subGroupRiskMonthMap.put(areaData.getAreaName(), subrmap); | |
872 | + } | |
873 | + Map<String, Integer> smap = subrmap.get(groupName); | |
874 | + if (smap == null) { | |
875 | + smap = new HashMap<>(); | |
876 | + subrmap.put(groupName, smap); | |
877 | + } | |
878 | + if (smap.containsKey(month)) { | |
879 | + smap.put(month, smap.get(month) + areaData.getVal()); | |
880 | + } else { | |
881 | + smap.put(month, areaData.getVal()); | |
882 | + } | |
883 | + | |
719 | 884 | Map<String, Integer> grmap = groupRiskMonthMap.get(groupName); |
720 | 885 | if (grmap == null) { |
721 | 886 | grmap = new HashMap<>(); |
722 | 887 | groupRiskMonthMap.put(groupName, grmap); |
723 | 888 | } |
724 | - String month = buildMonth(areaData.getYear()); | |
725 | 889 | if (grmap.containsKey(month)) { |
726 | 890 | grmap.put(month, grmap.get(month) + areaData.getVal()); |
727 | 891 | } else { |
728 | 892 | |
... | ... | @@ -730,7 +894,11 @@ |
730 | 894 | } |
731 | 895 | Option groupRiskMonthOption = buildxBarOption("高危历史人数", null, groupRiskMonthMap, buildDefaultMonth(6), colormap); |
732 | 896 | |
897 | + for (String areaName:subGroupRiskMonthMap.keySet()) { | |
898 | + groupRiskMonthOptionMap.put(areaName, buildxBarOption(areaName + "高危历史人数", null, subGroupRiskMonthMap.get(areaName), buildDefaultMonth(6), colormap)); | |
899 | + } | |
733 | 900 | |
901 | + | |
734 | 902 | result.put("type", 3); |
735 | 903 | result.put("provinceId", provinceId); |
736 | 904 | result.put("cityName", cityName); |
... | ... | @@ -742,6 +910,12 @@ |
742 | 910 | result.put("patientMonthOption", patientMonthOption); |
743 | 911 | result.put("reportMonthOption", reportMonthOption); |
744 | 912 | result.put("groupRiskMonthOption", groupRiskMonthOption); |
913 | + | |
914 | + result.put("riskOptionMap", groupRiskOptionMap); | |
915 | + result.put("patientMonthOptionMap", patientMonthOptionMap); | |
916 | + result.put("reportMonthOptionMap", reportMonthOptionMap); | |
917 | + result.put("groupRiskMonthOptionMap", groupRiskMonthOptionMap); | |
918 | + | |
745 | 919 | ResultUtils.buildSuccessResultAndWrite(response, result); |
746 | 920 | } |
747 | 921 |
platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/MatDeliverFacade.java
View file @
50cb8af
... | ... | @@ -147,6 +147,7 @@ |
147 | 147 | babyModel.setMjob(patients.getPworkUnit()); |
148 | 148 | babyModel.setMphone(patients.getPhone()); |
149 | 149 | babyModel.setMbirth(patients.getBirth()); |
150 | + babyModel.setMcertNo(patients.getCardNo()); | |
150 | 151 | //父亲信息 |
151 | 152 | babyModel.setFjob(patients.getHworkUnit()); |
152 | 153 | babyModel.setFname(patients.getHusbandName()); |