Commit 897ab3c79c7fd6f466044b09552815de14d3d464
1 parent
23a86f006b
Exists in
master
and in
3 other branches
add statistics(map) common index
Showing 6 changed files with 201 additions and 5 deletions
- platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/StatisticsController.java
- platform-reportData/src/main/java/com/lymsh/platform/reportdata/dao/StatisticsMapper.java
- platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/StatisticsService.java
- platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/impl/StatisticsServiceImpl.java
- platform-reportData/src/main/resources/reportOrm/StatisticsMapper.xml
- platform-reportData/src/test/sql.txt
platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/StatisticsController.java
View file @
897ab3c
| ... | ... | @@ -74,7 +74,7 @@ |
| 74 | 74 | Map<String, Integer> mapsData = new HashMap<>(); |
| 75 | 75 | Map<String, String> riskColorMap = new HashMap<>(); |
| 76 | 76 | |
| 77 | - Option areaBarOption = buildBarOption("建档&高危人数", null); | |
| 77 | + Option areaBarOption = buildyBarOption("建档&高危人数", null); | |
| 78 | 78 | areaBarOption.getLegend().getData().add("近30天建档人数"); |
| 79 | 79 | areaBarOption.getLegend().getData().add("当前高危总人数"); |
| 80 | 80 | areaBarOption.getLegend().setOrient("horizontal"); |
| ... | ... | @@ -148,7 +148,7 @@ |
| 148 | 148 | |
| 149 | 149 | // 高危数据 |
| 150 | 150 | List<AreaData> currentRiskList = statisticsService.queryRisks(new AreaDataQuery()); |
| 151 | - Option groupRiskOption = buildBarOption("当前高危人数", null); | |
| 151 | + Option groupRiskOption = buildyBarOption("当前高危人数", null); | |
| 152 | 152 | groupRiskOption.getTooltip().setShow(true); |
| 153 | 153 | List<Object> groupRiskSeriesList = new ArrayList<>(); |
| 154 | 154 | Series groupRiskSeries = new Series(); |
| 155 | 155 | |
| ... | ... | @@ -240,9 +240,9 @@ |
| 240 | 240 | firstmap.put(month, areaData.getVal()); |
| 241 | 241 | } |
| 242 | 242 | if (secondmap.containsKey(month)) { |
| 243 | - secondmap.put(month, secondmap.get(month) + areaData.getVal()); | |
| 243 | + secondmap.put(month, secondmap.get(month) + areaData.getVal2()); | |
| 244 | 244 | } else { |
| 245 | - secondmap.put(month, areaData.getVal()); | |
| 245 | + secondmap.put(month, areaData.getVal2()); | |
| 246 | 246 | } |
| 247 | 247 | } |
| 248 | 248 | reportMonthMap.put("初诊人数", firstmap); |
| 249 | 249 | |
| ... | ... | @@ -250,7 +250,25 @@ |
| 250 | 250 | Option reportMonthOption = buildLineOption("初诊&复诊人数", null, reportMonthMap, buildDefaultMonth(12)); |
| 251 | 251 | |
| 252 | 252 | |
| 253 | + // 近6个月高危数据(按颜色分组) | |
| 254 | + Map<String, Map<String, Integer>> groupRiskMonthMap = new HashMap<>(); | |
| 255 | + for (AreaData areaData:riskMonthList) { | |
| 256 | + String groupName = areaData.getGroupName().replace("预警", ""); | |
| 257 | + Map<String, Integer> grmap = groupRiskMonthMap.get(groupName); | |
| 258 | + if (grmap == null) { | |
| 259 | + grmap = new HashMap<>(); | |
| 260 | + groupRiskMonthMap.put(groupName, grmap); | |
| 261 | + } | |
| 262 | + String month = buildMonth(areaData.getYear()); | |
| 263 | + if (grmap.containsKey(month)) { | |
| 264 | + grmap.put(month, grmap.get(month) + areaData.getVal()); | |
| 265 | + } else { | |
| 266 | + grmap.put(month, areaData.getVal()); | |
| 267 | + } | |
| 268 | + } | |
| 269 | + Option groupRiskMonthOption = buildxBarOption("高危历史人数", null, groupRiskMonthMap, buildDefaultMonth(6), colormap); | |
| 253 | 270 | |
| 271 | + | |
| 254 | 272 | result.put("type", 1); |
| 255 | 273 | result.put("kvData", kvData); |
| 256 | 274 | result.put("mapsOption", option); |
| ... | ... | @@ -258,6 +276,7 @@ |
| 258 | 276 | result.put("riskOption", groupRiskOption); |
| 259 | 277 | result.put("patientMonthOption", patientMonthOption); |
| 260 | 278 | result.put("reportMonthOption", reportMonthOption); |
| 279 | + result.put("groupRiskMonthOption", groupRiskMonthOption); | |
| 261 | 280 | ResultUtils.buildSuccessResultAndWrite(response, result); |
| 262 | 281 | } |
| 263 | 282 | |
| ... | ... | @@ -362,7 +381,7 @@ |
| 362 | 381 | return option; |
| 363 | 382 | } |
| 364 | 383 | |
| 365 | - private Option buildBarOption(String titleText, String subTitle) { | |
| 384 | + private Option buildyBarOption(String titleText, String subTitle) { | |
| 366 | 385 | Option option = new Option(); |
| 367 | 386 | Title title = new Title(); |
| 368 | 387 | title.setText(titleText); |
| ... | ... | @@ -397,6 +416,66 @@ |
| 397 | 416 | List<Object> dataList = new ArrayList<Object>(); |
| 398 | 417 | yAxis.setData(dataList); |
| 399 | 418 | option.setyAxis(yAxis); |
| 419 | + return option; | |
| 420 | + } | |
| 421 | + | |
| 422 | + private Option buildxBarOption(String titleText, String subTitle, Map<String, Map<String, Integer>> map, List<Object> xData, Map<String, String> colormap) { | |
| 423 | + Option option = new Option(); | |
| 424 | + Title title = new Title(); | |
| 425 | + title.setText(titleText); | |
| 426 | + title.setSubtext(subTitle); | |
| 427 | + option.setTitle(title); | |
| 428 | + Tooltip tooltip = new Tooltip(); | |
| 429 | + tooltip.setTrigger("axis"); | |
| 430 | + AxisPointer axisPointer = new AxisPointer(); | |
| 431 | + axisPointer.setType("shadow"); | |
| 432 | + tooltip.setAxisPointer(axisPointer); | |
| 433 | + option.setTooltip(tooltip); | |
| 434 | + Legend legend = new Legend(); | |
| 435 | + List<Object> tempList = new ArrayList<Object>(); | |
| 436 | + legend.setData(tempList); | |
| 437 | + option.setLegend(legend); | |
| 438 | + Grid grid = new Grid(); | |
| 439 | + grid.setContainLabel(true); | |
| 440 | + grid.setTop("55px"); | |
| 441 | + grid.setLeft("3%"); | |
| 442 | + grid.setRight("3%"); | |
| 443 | + grid.setBottom("3%"); | |
| 444 | + option.setGrid(grid); | |
| 445 | + AxisPointer xAxis = new AxisPointer(); | |
| 446 | + xAxis.setType("value"); | |
| 447 | + List<Object> gapList = new ArrayList<Object>(); | |
| 448 | + gapList.add(0); | |
| 449 | + gapList.add(0.1); | |
| 450 | + xAxis.setBoundaryGap(gapList); | |
| 451 | + option.setyAxis(xAxis); | |
| 452 | + List<Object> seriesList = new ArrayList<>(); | |
| 453 | + option.setSeries(seriesList); | |
| 454 | + for (String groupName:map.keySet()) { | |
| 455 | + Map<String, Integer> sub = map.get(groupName); | |
| 456 | + Series series = new Series(); | |
| 457 | + series.setName(groupName); | |
| 458 | + series.setType("bar"); | |
| 459 | + List<Object> list = new ArrayList<>(); | |
| 460 | + series.setData(list); | |
| 461 | + for (Object o:xData) { | |
| 462 | + if (sub.get(o) == null) { | |
| 463 | + list.add(0); | |
| 464 | + } else if (colormap.containsKey(groupName)) { | |
| 465 | + Data data = new Data(); | |
| 466 | + data.setValue(sub.get(o)); | |
| 467 | + data.setItemStyle(new ItemStyle(new Normal(true,colormap.get(groupName)),null)); | |
| 468 | + list.add(data); | |
| 469 | + } else { | |
| 470 | + list.add(sub.get(o)); | |
| 471 | + } | |
| 472 | + } | |
| 473 | + seriesList.add(series); | |
| 474 | + } | |
| 475 | + AxisPointer yAxis = new AxisPointer(); | |
| 476 | + yAxis.setType("category"); | |
| 477 | + yAxis.setData(xData); | |
| 478 | + option.setxAxis(yAxis); | |
| 400 | 479 | return option; |
| 401 | 480 | } |
| 402 | 481 |
platform-reportData/src/main/java/com/lymsh/platform/reportdata/dao/StatisticsMapper.java
View file @
897ab3c
platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/StatisticsService.java
View file @
897ab3c
platform-reportData/src/main/java/com/lymsh/platform/reportdata/service/impl/StatisticsServiceImpl.java
View file @
897ab3c
| ... | ... | @@ -87,5 +87,10 @@ |
| 87 | 87 | public List<AreaData> queryHrefYearRisks(AreaDataQuery query) { |
| 88 | 88 | return statisticsMapper.queryHrefYearRisks(query); |
| 89 | 89 | } |
| 90 | + | |
| 91 | + @Override | |
| 92 | + public List<AreaData> queryDaysRisks(AreaDataQuery query) { | |
| 93 | + return statisticsMapper.queryDaysRisks(query); | |
| 94 | + } | |
| 90 | 95 | } |
platform-reportData/src/main/resources/reportOrm/StatisticsMapper.xml
View file @
897ab3c
| ... | ... | @@ -574,5 +574,64 @@ |
| 574 | 574 | ORDER BY F.HIGH_RISK_GROUP,E.YEAR_MONTH |
| 575 | 575 | </select> |
| 576 | 576 | |
| 577 | + <!--6.1. 按省或市或地区查询区域内近30天每天产检中历史高危人数(按颜色分组)--> | |
| 578 | + <select id="queryDaysRisks" resultMap="AreaDataResultMap" | |
| 579 | + parameterType="com.lymsh.platform.reportdata.model.AreaDataQuery"> | |
| 580 | + SELECT D.PROVINCE_ID as province_id, | |
| 581 | + D.PROVINCE as province_name, | |
| 582 | + <if test="provinceId != null and provinceId != ''"> | |
| 583 | + D.CITY_ID as city_id, | |
| 584 | + D.CITY as city_name, | |
| 585 | + </if> | |
| 586 | + <if test="cityId != null and cityId != ''"> | |
| 587 | + D.CITY_ID as city_id, | |
| 588 | + D.CITY as city_name, | |
| 589 | + D.AREA_COUNTY_ID as area_id, | |
| 590 | + D.AREA_COUNTY as area_name, | |
| 591 | + </if> | |
| 592 | + F.HIGH_RISK_GROUP as group_name, | |
| 593 | + E.DATE_2 as year, | |
| 594 | + COUNT(A.RECORD_ID) AS val | |
| 595 | + FROM ODS_F_GRAVIDA_RECORD A, | |
| 596 | + ODS_F_EXAMINE_HISTORY B, | |
| 597 | + ODS_D_HOSPITAL C, | |
| 598 | + ODS_D_AREA_COUNTY D, | |
| 599 | + ODS_D_DIM_DATE E, | |
| 600 | + ODS_F_HIGH_RISK_VALUE F | |
| 601 | + WHERE A.RECORD_ID=B.RECORD_ID | |
| 602 | + AND A.HOSPITAL_NO=C.HOSPITAL_NO | |
| 603 | + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID | |
| 604 | + AND B.INSERT_DATE=E.DATE_1 | |
| 605 | + AND B.EXAMINE_ID=F.EXAMINE_ID | |
| 606 | + <![CDATA[ | |
| 607 | + AND F.HIGH_RISK_CONTENT<>'健康' | |
| 608 | + AND F.HIGH_RISK_GROUP<>'其他' | |
| 609 | + AND B.EXAMINE_HISTORY_NUM=1 | |
| 610 | + AND B.INSERT_DATE<=TRUNC(SYSDATE) | |
| 611 | + AND B.INSERT_DATE>=(TRUNC(SYSDATE)-${days}) | |
| 612 | + ]]> | |
| 613 | + <if test="provinceId != null and provinceId != ''"> | |
| 614 | + AND D.PROVINCE_ID=#{provinceId} | |
| 615 | + </if> | |
| 616 | + <if test="cityId != null and cityId != ''"> | |
| 617 | + AND D.CITY_ID=#{cityId} | |
| 618 | + </if> | |
| 619 | + GROUP BY D.PROVINCE_ID, | |
| 620 | + D.PROVINCE, | |
| 621 | + <if test="provinceId != null and provinceId != ''"> | |
| 622 | + D.CITY_ID, | |
| 623 | + D.CITY, | |
| 624 | + </if> | |
| 625 | + <if test="cityId != null and cityId != ''"> | |
| 626 | + D.CITY_ID, | |
| 627 | + D.CITY, | |
| 628 | + D.AREA_COUNTY_ID, | |
| 629 | + D.AREA_COUNTY, | |
| 630 | + </if> | |
| 631 | + F.HIGH_RISK_GROUP, | |
| 632 | + E.DATE_2 | |
| 633 | + ORDER BY F.HIGH_RISK_GROUP,E.DATE_2; | |
| 634 | + </select> | |
| 635 | + | |
| 577 | 636 | </mapper> |
platform-reportData/src/test/sql.txt
View file @
897ab3c
| ... | ... | @@ -508,4 +508,44 @@ |
| 508 | 508 | F.HIGH_RISK_GROUP, |
| 509 | 509 | E.YEAR_MONTH |
| 510 | 510 | ORDER BY F.HIGH_RISK_GROUP,E.YEAR_MONTH |
| 511 | + | |
| 512 | +------------------------------------------------------- | |
| 513 | +6.1. 按省或市或地区查询区域内近30天每天产检中历史高危人数(按颜色分组) | |
| 514 | +SELECT D.PROVINCE_ID as province_id, | |
| 515 | + D.PROVINCE as province_name, | |
| 516 | + D.CITY_ID as city_id, | |
| 517 | + D.CITY as city_name, | |
| 518 | + D.AREA_COUNTY_ID as area_id, | |
| 519 | + D.AREA_COUNTY as area_name, | |
| 520 | + F.HIGH_RISK_GROUP as group_name, | |
| 521 | + E.DATE_2 as year, | |
| 522 | + COUNT(A.RECORD_ID) AS val | |
| 523 | +FROM ODS_F_GRAVIDA_RECORD A, | |
| 524 | + ODS_F_EXAMINE_HISTORY B, | |
| 525 | + ODS_D_HOSPITAL C, | |
| 526 | + ODS_D_AREA_COUNTY D, | |
| 527 | + ODS_D_DIM_DATE E, | |
| 528 | + ODS_F_HIGH_RISK_VALUE F | |
| 529 | +WHERE A.RECORD_ID=B.RECORD_ID | |
| 530 | + AND A.HOSPITAL_NO=C.HOSPITAL_NO | |
| 531 | + AND C.AREA_COUNTY_ID=D.AREA_COUNTY_ID | |
| 532 | + AND B.INSERT_DATE=E.DATE_1 | |
| 533 | + AND B.EXAMINE_ID=F.EXAMINE_ID | |
| 534 | + AND F.HIGH_RISK_CONTENT<>'健康' | |
| 535 | + AND F.HIGH_RISK_GROUP<>'其他' | |
| 536 | + AND B.EXAMINE_HISTORY_NUM=1 | |
| 537 | + AND B.INSERT_DATE<=TRUNC(SYSDATE) | |
| 538 | + AND B.INSERT_DATE>=(TRUNC(SYSDATE)-30) | |
| 539 | + AND D.PROVINCE_ID=130000 | |
| 540 | + AND D.CITY_ID=130300 | |
| 541 | + AND D.AREA_COUNTY_ID=130302 | |
| 542 | +GROUP BY D.PROVINCE_ID, | |
| 543 | + D.PROVINCE, | |
| 544 | + D.CITY_ID, | |
| 545 | + D.CITY, | |
| 546 | + D.AREA_COUNTY_ID, | |
| 547 | + D.AREA_COUNTY, | |
| 548 | + F.HIGH_RISK_GROUP, | |
| 549 | + E.DATE_2 | |
| 550 | +ORDER BY F.HIGH_RISK_GROUP,E.DATE_2; |