From 3c8b8029a94666ce55e38d1f11c0d1bb0330afa5 Mon Sep 17 00:00:00 2001
From: huangh <hshgjzd5@163.com>
Date: Tue, 29 Oct 2024 14:59:11 +0800
Subject: [PATCH] fix:统计重复案件,添加本级数据处理,修改请求方式
---
dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java | 147 +++++++------------------------------------------
1 files changed, 21 insertions(+), 126 deletions(-)
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java
index 2507e44..afa31d1 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/analysis/controller/AnalysisWebController.java
@@ -19,6 +19,7 @@
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -51,7 +52,7 @@
* @param
* @return Object
*/
- @GetMapping("/countRepeatedCasesByCaseType")
+ @PostMapping("/countRepeatedCasesByCaseType")
public ReturnBO countRepeatedCasesByCaseType(@RequestBody CountRepeateVo countRepeateVo) {
try{
countRepeateVo.setGroupByCaseType("true");
@@ -69,28 +70,18 @@
* @param
* @return Object
*/
- @GetMapping("/countRepeatedCasesByArea")
+ @PostMapping("/countRepeatedCasesByArea")
public ReturnBO countRepeatedCasesByArea(@RequestBody CountRepeateVo countRepeateVo) {
try{
+ countRepeateVo.setIsFinish("false");
+ List<CountRepeateDto> countRepeateDtoList = service.countRepeatedCasesByArea(countRepeateVo);
+ countRepeateVo.setIsFinish("true");
+ List<CountRepeateDto> countRepeateDtoListIsFinish = service.countRepeatedCasesByArea(countRepeateVo);
+ Map<String, List<CountRepeateDto>> collect = new HashMap<>();
+ collect.put("未办结",countRepeateDtoList);
+ collect.put("已办结",countRepeateDtoListIsFinish);
- // 判断 countRepeateVo 的 queRoad 是否为空
- // 如果 queRoad 和 queArea 都为空且 queCity 不为空,则设置 groupByArea 为 true 根据 区 聚合
- if (StringUtil.isEmpty(countRepeateVo.getQueRoad()) &&
- StringUtil.isEmpty(countRepeateVo.getQueArea()) &&
- ! StringUtil.isEmpty(countRepeateVo.getQueCity())) {
- countRepeateVo.setGroupByArea("true");
- }
- // 如果 queRoad 为空且 queCity 和 queArea 不为空,则设置 groupByRoad 为 true 根据 街道 聚合
- else if (StringUtil.isEmpty(countRepeateVo.getQueRoad()) &&
- ! StringUtil.isEmpty(countRepeateVo.getQueArea()) &&
- ! StringUtil.isEmpty(countRepeateVo.getQueCity())) {
- countRepeateVo.setGroupByRoad("true");
- }
- List<CountRepeateDto> countRepeateDtoList = service.countRepeatedCases(countRepeateVo);
- if (countRepeateDtoList.size() == 1 && StringUtil.isEmpty(countRepeateDtoList.get(0).getGroupByType())) {
- countRepeateDtoList.get(0).setGroupByType("本级");
- }
- return ReturnSucUtils.getRepInfo("请求成功",countRepeateDtoList);
+ return ReturnSucUtils.getRepInfo("请求成功",collect);
}catch (Exception e){
log.error("统计重复来访案件数量异常",e);
return ReturnFailUtils.getRepInfo(e.getMessage());
@@ -98,121 +89,25 @@
}
/**
- * 统计重复来访案件数量-根据案件类型分组
+ * 统计重复来访案件数量-根据时间分组
* @url {ctx}/api/web/analysis/countRepeatedCasesByCaseType
* @param
* @return Object
*/
- @GetMapping("/countRepeatedCasesByTime")
+ @PostMapping("/countRepeatedCasesByTime")
public ReturnBO countRepeatedCasesByTime(@RequestBody CountRepeateVo countRepeateVo) {
try{
- // countRepeateVo.setGroupByCaseType("true");
- // List<CountRepeateDto> countRepeateDtoList = service.countRepeatedCases(countRepeateVo);
- // return ReturnSucUtils.getRepInfo("请求成功",countRepeateDtoList);
-
- DateTimeFormatter DATE_TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
- // LocalDate start = LocalDate.parse(countRepeateVo.getCreateTimeStart(), DATE_TIME_FORMATTER);
- // LocalDate end = LocalDate.parse(countRepeateVo.getCreateTimeEnd(), DATE_TIME_FORMATTER);
- //
- // long daysBetween = java.time.temporal.ChronoUnit.DAYS.between(start, end);
- //
- // if (daysBetween < 15) {
- // return Map.of("days", getDaysList(start, end));
- // } else if ((daysBetween >= 15) && (daysBetween < 365)) {
- // return Map.of("months", getMonthsList(start, end));
- // } else {
- // return Map.of("years", getYearsList(start, end));
- // }
-
- LocalDate start = LocalDate.parse(countRepeateVo.getCreateTimeStart(), DATE_TIME_FORMATTER);
- LocalDate end = LocalDate.parse(countRepeateVo.getCreateTimeEnd(), DATE_TIME_FORMATTER);
-
- long daysBetween = java.time.temporal.ChronoUnit.DAYS.between(start, end);
- if (daysBetween < 15) {
- countRepeateVo.setGroupByTime("day");
- } else if ((daysBetween >= 15) && (daysBetween < 365)) {
- countRepeateVo.setGroupByTime("month");
- } else {
- countRepeateVo.setGroupByTime("year");
- }
- List<CountRepeateDto> countRepeateDtoList = service.countRepeatedCases(countRepeateVo);
- return ReturnSucUtils.getRepInfo("请求成功",countRepeateDtoList);
+ countRepeateVo.setIsFinish("false");
+ List<CountRepeateDto> countRepeateDtoList = service.countRepeatedCasesByTime(countRepeateVo);
+ countRepeateVo.setIsFinish("true");
+ List<CountRepeateDto> countRepeateDtoListIsFinish = service.countRepeatedCasesByTime(countRepeateVo);
+ Map<String, List<CountRepeateDto>> collect = new HashMap<>();
+ collect.put("未办结",countRepeateDtoList);
+ collect.put("已办结",countRepeateDtoListIsFinish);
+ return ReturnSucUtils.getRepInfo("请求成功",collect);
}catch (Exception e){
log.error("统计重复来访案件数量异常",e);
return ReturnFailUtils.getRepInfo(e.getMessage());
}
- }
-
- private List<String> getDaysList(LocalDate start, LocalDate end) {
- List<String> days = new ArrayList<>();
- while (!start.isAfter(end)) {
- days.add(start.toString());
- start = start.plusDays(1);
- }
- return days;
- }
-
- private List<String> getMonthsList(LocalDate start, LocalDate end) {
- List<String> months = new ArrayList<>();
- while (!start.isAfter(end)) {
- String month = start.getMonth().name().substring(0, 3); // 例如 "JAN"
- // 获取中文月份
- switch (month) {
- case "JAN":
- month = "一月";
- break;
- case "FEB":
- month = "二月";
- break;
- case "MAR":
- month = "三月";
- break;
- case "APR":
- month = "四月";
- break;
- case "MAY":
- month = "五月";
- break;
- case "JUN":
- month = "六月";
- break;
- case "JUL":
- month = "七月";
- break;
- case "AUG":
- month = "八月";
- break;
- case "SEP":
- month = "九月";
- break;
- case "OCT":
- month = "十月";
- break;
- case "NOV":
- month = "十一月";
- break;
- case "DEC":
- month = "十二月";
- break;
- }
- if (!months.contains(month)) {
- months.add(month);
- }
- start = start.plusMonths(1);
- }
- // return months.stream().map(m -> m + "月").collect(Collectors.toList());
- return months;
- }
-
- private List<String> getYearsList(LocalDate start, LocalDate end) {
- List<String> years = new ArrayList<>();
- while (!start.isAfter(end)) {
- String year = Integer.toString(start.getYear());
- if (!years.contains(year)) {
- years.add(year);
- }
- start = start.plusYears(1);
- }
- return years.stream().map(y -> y + "年").collect(Collectors.toList());
}
}
--
Gitblit v1.8.0