...
|
...
|
@@ -195,7 +195,6 @@ public class StatisticsController extends BaseController { |
195
|
195
|
});
|
196
|
196
|
|
197
|
197
|
|
198
|
|
-
|
199
|
198
|
return JsonResult.ok(OptionStatus.OPT_SUCCESS.getName(), dataList);
|
200
|
199
|
} catch (Exception ex) {
|
201
|
200
|
ex.printStackTrace();
|
...
|
...
|
@@ -340,8 +339,8 @@ public class StatisticsController extends BaseController { |
340
|
339
|
public JsonResult totalLoss(@RequestBody StatisticsParams statisticsParams) {
|
341
|
340
|
try {
|
342
|
341
|
List<Case> dataList = caseService.getCaseLoss(statisticsParams);
|
343
|
|
- int caseTopLoss = caseService.getCaseTopLoss(statisticsParams,500000);
|
344
|
|
- int case100TopLoss = caseService.getCaseTopLoss(statisticsParams,1000000);
|
|
342
|
+ int caseTopLoss = caseService.getCaseTopLoss(statisticsParams, 500000);
|
|
343
|
+ int case100TopLoss = caseService.getCaseTopLoss(statisticsParams, 1000000);
|
345
|
344
|
Double totalLoss = 0d;
|
346
|
345
|
double avgLoss = 0d;
|
347
|
346
|
if (CollectionUtils.isNotEmpty(dataList)) {
|
...
|
...
|
@@ -401,6 +400,27 @@ public class StatisticsController extends BaseController { |
401
|
400
|
JsonResult totalCaseInfo = totalCaseInfo(statisticsParams);
|
402
|
401
|
dataMap.put("totalCaseInfo", totalCaseInfo.getData());
|
403
|
402
|
|
|
403
|
+
|
|
404
|
+ List<Case> caseList = caseService.getCaseLoss(statisticsParams);
|
|
405
|
+ List<Case> expressCassList = Optional.ofNullable(caseList).map(all -> all.stream()
|
|
406
|
+ .filter(e -> "快递".equals(e.getRainageMethod()))
|
|
407
|
+ .collect(Collectors.toList())).orElse(new ArrayList<>());
|
|
408
|
+
|
|
409
|
+ Map<String, Object> expressData = new HashMap<>();
|
|
410
|
+ Double expressAmount = 0d;
|
|
411
|
+ int expressCount = expressCassList.size();
|
|
412
|
+ for (Case aCase : expressCassList) {
|
|
413
|
+ expressAmount += aCase.getTotalAmount();
|
|
414
|
+ }
|
|
415
|
+ String expressAvg = "0";
|
|
416
|
+ if (expressCount > 0) {
|
|
417
|
+ expressAvg = String.format("%.1f", expressAmount * 1.0 / expressCount / 10000.0);
|
|
418
|
+ }
|
|
419
|
+ expressData.put("expressAmount", String.format("%.1f", expressAmount / 10000.0));
|
|
420
|
+ expressData.put("expressAvg", expressAvg);
|
|
421
|
+ expressData.put("expressCount", expressCount);
|
|
422
|
+ dataMap.put("expressData", expressData);
|
|
423
|
+
|
404
|
424
|
//警情各地市分布饼图
|
405
|
425
|
List<PieChartVo> wiAreaData = warningInstanceService.statisticsCountByArea(statisticsParams);
|
406
|
426
|
dataMap.put("wiAreaData", wiAreaData);
|
...
|
...
|
@@ -550,70 +570,75 @@ public class StatisticsController extends BaseController { |
550
|
570
|
dataMap.put("caseSequentialType", caseSequential.contains("-") ? "下降" : "上升");
|
551
|
571
|
}
|
552
|
572
|
|
|
573
|
+ Map<String, Object> expressData = (Map<String, Object>) data.get("expressData");
|
|
574
|
+ dataMap.put("expressAmount", expressData.get("expressAmount"));
|
|
575
|
+ dataMap.put("expressAvg", expressData.get("expressAvg"));
|
|
576
|
+ dataMap.put("expressCount", expressData.get("expressCount"));
|
|
577
|
+
|
553
|
578
|
//警情各地市分布饼图
|
554
|
579
|
List<PieChartVo> wiAreaDataList = (List<PieChartVo>) data.get("wiAreaData");
|
555
|
580
|
String dailyPicFile = JFChartUtils.createChart(wiAreaDataList, JFChartTypeEnum.PIE, dataRange + "警情分布图", "市", "数量");
|
556
|
|
- dataMap.put("sWIAreaPic", Pictures.ofStream(new FileInputStream(dailyPicFile), PictureType.JPEG).size(600, 200).create());
|
|
581
|
+ dataMap.put("sWIAreaPic", Pictures.ofStream(new FileInputStream(dailyPicFile), PictureType.JPEG).size(660, 220).create());
|
557
|
582
|
tempFilePath.add(dailyPicFile);
|
558
|
583
|
|
559
|
584
|
//警情各地市环比变化柱状图
|
560
|
585
|
List<PieChartVo> wissAreaData = (List<PieChartVo>) data.get("wissAreaData");
|
561
|
586
|
String sWISeqAreaPic = JFChartUtils.createChart(wissAreaData, JFChartTypeEnum.BAR, dataRange + "警情环比情况", "市", "环比");
|
562
|
|
- dataMap.put("sWISeqAreaPic", Pictures.ofStream(new FileInputStream(sWISeqAreaPic), PictureType.JPEG).size(600, 200).create());
|
|
587
|
+ dataMap.put("sWISeqAreaPic", Pictures.ofStream(new FileInputStream(sWISeqAreaPic), PictureType.JPEG).size(660, 220).create());
|
563
|
588
|
tempFilePath.add(sWISeqAreaPic);
|
564
|
589
|
|
565
|
590
|
//警情子类分布
|
566
|
591
|
List<PieChartVo> wiSubTypeData = (List<PieChartVo>) data.get("wiSubTypeData");
|
567
|
592
|
String wiSubTypeDataPic = JFChartUtils.createChart(wiSubTypeData, JFChartTypeEnum.PIE, dataRange + "警情类别分布", "警情类别", "数量");
|
568
|
|
- dataMap.put("wiSubTypeDataPic", Pictures.ofStream(new FileInputStream(wiSubTypeDataPic), PictureType.JPEG).size(600, 200).create());
|
|
593
|
+ dataMap.put("wiSubTypeDataPic", Pictures.ofStream(new FileInputStream(wiSubTypeDataPic), PictureType.JPEG).size(660, 220).create());
|
569
|
594
|
tempFilePath.add(wiSubTypeDataPic);
|
570
|
595
|
|
571
|
596
|
//警情分析
|
572
|
597
|
List<PieChartVo> wisDateData = (List<PieChartVo>) data.get("wisDateData");
|
573
|
598
|
String wisDateDataPic = JFChartUtils.createChart(wisDateData, JFChartTypeEnum.LINE, dataRange + "警情趋势", "市", "数量");
|
574
|
|
- dataMap.put("wisDateDataPic", Pictures.ofStream(new FileInputStream(wisDateDataPic), PictureType.JPEG).size(600, 200).create());
|
|
599
|
+ dataMap.put("wisDateDataPic", Pictures.ofStream(new FileInputStream(wisDateDataPic), PictureType.JPEG).size(660, 220).create());
|
575
|
600
|
tempFilePath.add(wisDateDataPic);
|
576
|
601
|
|
577
|
602
|
//案件各地市分布
|
578
|
603
|
List<PieChartVo> caseAreaData = (List<PieChartVo>) data.get("caseAreaData");
|
579
|
604
|
String caseAreaDataPic = JFChartUtils.createChart(caseAreaData, JFChartTypeEnum.PIE, dataRange + "案件分布图", "市", "数量");
|
580
|
|
- dataMap.put("caseAreaDataPic", Pictures.ofStream(new FileInputStream(caseAreaDataPic), PictureType.JPEG).size(600, 200).create());
|
|
605
|
+ dataMap.put("caseAreaDataPic", Pictures.ofStream(new FileInputStream(caseAreaDataPic), PictureType.JPEG).size(660, 220).create());
|
581
|
606
|
tempFilePath.add(caseAreaDataPic);
|
582
|
607
|
|
583
|
608
|
//电诈案件环比情况
|
584
|
609
|
List<PieChartVo> caseSsAreaData = (List<PieChartVo>) data.get("caseSsAreaData");
|
585
|
610
|
String caseSsAreaDataPic = JFChartUtils.createChart(caseSsAreaData, JFChartTypeEnum.BAR, dataRange + "电诈案件环比情况", "市", "环比");
|
586
|
|
- dataMap.put("caseSsAreaDataPic", Pictures.ofStream(new FileInputStream(caseSsAreaDataPic), PictureType.JPEG).size(600, 200).create());
|
|
611
|
+ dataMap.put("caseSsAreaDataPic", Pictures.ofStream(new FileInputStream(caseSsAreaDataPic), PictureType.JPEG).size(660, 220).create());
|
587
|
612
|
tempFilePath.add(caseSsAreaDataPic);
|
588
|
613
|
|
589
|
614
|
//案件诈骗类型分布
|
590
|
615
|
List<PieChartVo> csfData = (List<PieChartVo>) data.get("csfData");
|
591
|
616
|
String sCsfDataPic = JFChartUtils.createChart(csfData, JFChartTypeEnum.PIE, dataRange + "诈骗类型分布", "诈骗类型", "数量");
|
592
|
|
- dataMap.put("sCsfDataaPic", Pictures.ofStream(new FileInputStream(sCsfDataPic), PictureType.JPEG).size(600, 200).create());
|
|
617
|
+ dataMap.put("sCsfDataaPic", Pictures.ofStream(new FileInputStream(sCsfDataPic), PictureType.JPEG).size(660, 220).create());
|
593
|
618
|
tempFilePath.add(sCsfDataPic);
|
594
|
619
|
|
595
|
620
|
//案件引流方式分布图
|
596
|
621
|
List<PieChartVo> ccrmData = (List<PieChartVo>) data.get("ccrmData");
|
597
|
622
|
String ccrmDataPic = JFChartUtils.createChart(ccrmData, JFChartTypeEnum.PIE, dataRange + "引流方式分布图", "引流方式", "数量");
|
598
|
|
- dataMap.put("ccrmDataPic", Pictures.ofStream(new FileInputStream(ccrmDataPic), PictureType.JPEG).size(600, 200).create());
|
|
623
|
+ dataMap.put("ccrmDataPic", Pictures.ofStream(new FileInputStream(ccrmDataPic), PictureType.JPEG).size(660, 220).create());
|
599
|
624
|
tempFilePath.add(ccrmDataPic);
|
600
|
625
|
|
601
|
626
|
//案件支付方式分布图
|
602
|
627
|
List<PieChartVo> ccpmData = (List<PieChartVo>) data.get("ccpmData");
|
603
|
628
|
String ccpmDataPic = JFChartUtils.createChart(ccpmData, JFChartTypeEnum.PIE, dataRange + "支付方式分布图", "支付方式", "数量");
|
604
|
|
- dataMap.put("ccpmDataPic", Pictures.ofStream(new FileInputStream(ccpmDataPic), PictureType.JPEG).size(600, 200).create());
|
|
629
|
+ dataMap.put("ccpmDataPic", Pictures.ofStream(new FileInputStream(ccpmDataPic), PictureType.JPEG).size(660, 220).create());
|
605
|
630
|
tempFilePath.add(ccpmDataPic);
|
606
|
631
|
|
607
|
632
|
//案件受害人职业分布图
|
608
|
633
|
List<PieChartVo> ccCareerData = (List<PieChartVo>) data.get("ccCareerData");
|
609
|
634
|
String ccCareerDataPic = JFChartUtils.createChart(ccCareerData, JFChartTypeEnum.BAR, dataRange + "受害人职业分布图", "受害人职业", "数量");
|
610
|
|
- dataMap.put("ccCareerDataPic", Pictures.ofStream(new FileInputStream(ccCareerDataPic), PictureType.JPEG).size(600, 200).create());
|
|
635
|
+ dataMap.put("ccCareerDataPic", Pictures.ofStream(new FileInputStream(ccCareerDataPic), PictureType.JPEG).size(660, 220).create());
|
611
|
636
|
tempFilePath.add(ccCareerDataPic);
|
612
|
637
|
|
613
|
638
|
//案损分布
|
614
|
639
|
List<PieChartVo> ccLossData = (List<PieChartVo>) data.get("ccLossData");
|
615
|
640
|
String ccLossDataPic = JFChartUtils.createChart(ccLossData, JFChartTypeEnum.BAR, dataRange + "案损分布", "案损", "数量");
|
616
|
|
- dataMap.put("ccLossDataPic", Pictures.ofStream(new FileInputStream(ccLossDataPic), PictureType.JPEG).size(600, 200).create());
|
|
641
|
+ dataMap.put("ccLossDataPic", Pictures.ofStream(new FileInputStream(ccLossDataPic), PictureType.JPEG).size(660, 220).create());
|
617
|
642
|
tempFilePath.add(ccLossDataPic);
|
618
|
643
|
|
619
|
644
|
int clIndex = 1;
|
...
|
...
|
@@ -625,7 +650,7 @@ public class StatisticsController extends BaseController { |
625
|
650
|
//发案趋势
|
626
|
651
|
List<PieChartVo> ccDateData = (List<PieChartVo>) data.get("ccDateData");
|
627
|
652
|
String ccDateDataPic = JFChartUtils.createChart(ccDateData, JFChartTypeEnum.LINE, dataRange + "发案趋势", "日期", "数量");
|
628
|
|
- dataMap.put("ccDateDataPic", Pictures.ofStream(new FileInputStream(ccDateDataPic), PictureType.JPEG).size(600, 200).create());
|
|
653
|
+ dataMap.put("ccDateDataPic", Pictures.ofStream(new FileInputStream(ccDateDataPic), PictureType.JPEG).size(660, 220).create());
|
629
|
654
|
tempFilePath.add(ccDateDataPic);
|
630
|
655
|
|
631
|
656
|
//案件受害人性别占比
|
...
|
...
|
@@ -675,16 +700,19 @@ public class StatisticsController extends BaseController { |
675
|
700
|
Map<String, String> caseLossAreaMap = new HashMap<>();
|
676
|
701
|
if (CollectionUtils.isNotEmpty(majorCaseData)) {
|
677
|
702
|
for (Case cd : majorCaseData) {
|
|
703
|
+ CaseAnalysis analysis = cd.getAnalysis();
|
678
|
704
|
CaseLossVo clv = new CaseLossVo();
|
679
|
705
|
clv.setCode(cd.getCode());
|
680
|
706
|
clv.setArea(cd.getArea());
|
681
|
|
- clv.setCounty(cd.getAnalysis().getCounty());
|
682
|
707
|
clv.setTotalAmount(String.valueOf(cd.getTotalAmount()));
|
683
|
|
- clv.setFraudType(cd.getAnalysis().getFraudType());
|
684
|
|
- clv.setRainageMethod(cd.getAnalysis().getRainageMethod());
|
685
|
|
- clv.setPayMethod(cd.getAnalysis().getPayMethod());
|
686
|
|
- clv.setSex(cd.getAnalysis().getSex());
|
687
|
|
- clv.setCareer(cd.getAnalysis().getCareer());
|
|
708
|
+ if (analysis != null) {
|
|
709
|
+ clv.setFraudType(analysis.getFraudType());
|
|
710
|
+ clv.setCounty(analysis.getCounty());
|
|
711
|
+ clv.setRainageMethod(analysis.getRainageMethod());
|
|
712
|
+ clv.setPayMethod(analysis.getPayMethod());
|
|
713
|
+ clv.setSex(analysis.getSex());
|
|
714
|
+ clv.setCareer(analysis.getCareer());
|
|
715
|
+ }
|
688
|
716
|
nllDataList.add(clv);
|
689
|
717
|
caseLossAreaMap.put(cd.getArea(), "");
|
690
|
718
|
}
|
...
|
...
|
@@ -717,23 +745,27 @@ public class StatisticsController extends BaseController { |
717
|
745
|
Integer wi100wValue = 0;
|
718
|
746
|
if (CollectionUtils.isNotEmpty(majorWiData)) {
|
719
|
747
|
for (WarningInstance cd : majorWiData) {
|
|
748
|
+ WarningInstanceAnalysis analysis = cd.getAnalysis();
|
720
|
749
|
WiLossVo clv = new WiLossVo();
|
721
|
750
|
clv.setCode(cd.getCode());
|
722
|
751
|
clv.setArea(cd.getArea());
|
723
|
752
|
clv.setCounty(cd.getCounty());
|
724
|
753
|
clv.setAlarmSubType(cd.getAlarmSubType());
|
725
|
|
- clv.setAmount(String.valueOf(cd.getAnalysis().getAmount()));
|
726
|
|
- clv.setRainageMethod(cd.getAnalysis().getRainageMethod());
|
727
|
|
- clv.setPayMethod(cd.getAnalysis().getPayMethod());
|
728
|
|
- clv.setSex(cd.getAnalysis().getSex());
|
729
|
|
- clv.setCareer(cd.getAnalysis().getCareer());
|
|
754
|
+ if (analysis != null) {
|
|
755
|
+ clv.setAmount(String.valueOf(cd.getAnalysis().getAmount()));
|
|
756
|
+ clv.setRainageMethod(cd.getAnalysis().getRainageMethod());
|
|
757
|
+ clv.setPayMethod(cd.getAnalysis().getPayMethod());
|
|
758
|
+ clv.setSex(cd.getAnalysis().getSex());
|
|
759
|
+ clv.setCareer(cd.getAnalysis().getCareer());
|
|
760
|
+ if (cd.getAnalysis().getAmount() < 1000000) {
|
|
761
|
+ wi50wValue++;
|
|
762
|
+ } else {
|
|
763
|
+ wi100wValue++;
|
|
764
|
+ }
|
|
765
|
+ }
|
730
|
766
|
mwiDataList.add(clv);
|
731
|
767
|
caseLossAreaMap.put(cd.getArea(), "");
|
732
|
|
- if (cd.getAnalysis().getAmount() < 1000000) {
|
733
|
|
- wi50wValue++;
|
734
|
|
- } else {
|
735
|
|
- wi100wValue++;
|
736
|
|
- }
|
|
768
|
+
|
737
|
769
|
}
|
738
|
770
|
}
|
739
|
771
|
|
...
|
...
|
|