czh-20260710-支持统计完成事项状态以及逾期个数

This commit is contained in:
zhihao
2026-07-10 08:58:44 +08:00
parent 4bb9e82bad
commit 4e9f4380d8
2 changed files with 60 additions and 0 deletions
@@ -22,6 +22,8 @@ import org.springframework.web.servlet.ModelAndView;
import java.util.Arrays; import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.jeecg.common.util.oConvertUtils; import org.jeecg.common.util.oConvertUtils;
import org.jeecg.modules.demo.bgpartymatter.dto.BgPartymatterBpmSaveDTO; import org.jeecg.modules.demo.bgpartymatter.dto.BgPartymatterBpmSaveDTO;
@@ -97,6 +99,33 @@ public class BgPartymatterController extends JeecgController<BgPartymatter, IBgP
return Result.OK(pageList); return Result.OK(pageList);
} }
@Operation(summary = "党委会/所务会-状态统计")
@GetMapping(value = "/statusStats")
public Result<Map<String, Integer>> statusStats(BgPartymatter bgPartymatter, HttpServletRequest req) {
QueryWrapper<BgPartymatter> queryWrapper = QueryGenerator.initQueryWrapper(bgPartymatter, req.getParameterMap());
List<BgPartymatter> list = bgPartymatterService.list(queryWrapper);
int notStarted = 0, inProgress = 0, overdue = 0, completed = 0;
java.time.LocalDate today = java.time.LocalDate.now();
for (BgPartymatter item : list) {
String status = item.getBpmStatus();
if ("1".equals(status)) {
notStarted++;
} else if ("2".equals(status)) {
inProgress++;
if (item.getDeadline() != null && item.getDeadline().toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate().isBefore(today)) {
overdue++;
}
} else if ("3".equals(status)) {
completed++;
}
}
Map<String, Integer> result = new java.util.LinkedHashMap<>();
result.put("notStarted", notStarted);
result.put("inProgress", inProgress);
result.put("overdue", overdue);
result.put("completed", completed);
return Result.OK(result);
}
@GetMapping(value = "/queryById") @GetMapping(value = "/queryById")
public Result<BgPartymatter> queryById(@RequestParam(name = "id", required = true) String id) { public Result<BgPartymatter> queryById(@RequestParam(name = "id", required = true) String id) {
@@ -4,6 +4,7 @@ import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
import java.util.HashMap; import java.util.HashMap;
@@ -90,6 +91,36 @@ public class BgTakepulseController extends JeecgController<BgTakepulse, IBgTakep
IPage<BgTakepulse> pageList = bgTakepulseService.page(page, queryWrapper); IPage<BgTakepulse> pageList = bgTakepulseService.page(page, queryWrapper);
return Result.OK(pageList); return Result.OK(pageList);
} }
@Operation(summary = "我为四所把把脉-状态统计")
@GetMapping(value = "/statusStats")
public Result<Map<String, Integer>> statusStats(BgTakepulse bgTakepulse, HttpServletRequest req) {
Map<String, QueryRuleEnum> customeRuleMap = new HashMap<>();
customeRuleMap.put("year", QueryRuleEnum.LIKE_WITH_OR);
customeRuleMap.put("taskType", QueryRuleEnum.LIKE_WITH_OR);
QueryWrapper<BgTakepulse> queryWrapper = QueryGenerator.initQueryWrapper(bgTakepulse, req.getParameterMap(), customeRuleMap);
List<BgTakepulse> list = bgTakepulseService.list(queryWrapper);
int notStarted = 0, inProgress = 0, overdue = 0, completed = 0;
java.time.LocalDate today = java.time.LocalDate.now();
for (BgTakepulse item : list) {
String status = item.getBpmStatus();
if ("1".equals(status)) {
notStarted++;
} else if ("2".equals(status)) {
inProgress++;
if (item.getDeadline() != null && item.getDeadline().toInstant().atZone(java.time.ZoneId.systemDefault()).toLocalDate().isBefore(today)) {
overdue++;
}
} else if ("3".equals(status)) {
completed++;
}
}
Map<String, Integer> result = new LinkedHashMap<>();
result.put("notStarted", notStarted);
result.put("inProgress", inProgress);
result.put("overdue", overdue);
result.put("completed", completed);
return Result.OK(result);
}
/** /**
* 添加 * 添加