Merge remote-tracking branch 'gitea/dev' into updateMenu

This commit is contained in:
lcj
2025-12-10 19:02:01 +08:00

View File

@ -1513,60 +1513,61 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
} }
// 封装数据 // 封装数据
return projectList.stream().map(project -> { return projectList.stream().map(project -> {
MyProjectInfoVo vo = new MyProjectInfoVo(); MyProjectInfoVo vo = new MyProjectInfoVo();
Long id = project.getId(); Long id = project.getId();
vo.setProjectId(id); vo.setProjectId(id);
vo.setPrincipal(project.getPrincipal()); vo.setPrincipal(project.getPrincipal());
vo.setProjectName(project.getProjectName()); vo.setProjectName(project.getProjectName());
vo.setProjectGeneralize(project.getProjectGeneralize()); vo.setProjectGeneralize(project.getProjectGeneralize());
// 获取进度计划 // 获取进度计划
BigDecimal progress = totalProgressMap.getOrDefault(id, BigDecimal.ZERO); BigDecimal progress = totalProgressMap.getOrDefault(id, BigDecimal.ZERO);
vo.setProgress(progress); vo.setProgress(progress);
// 获取里程碑 // 获取里程碑
List<PgsConstructionSchedulePlan> planList = planMap.getOrDefault(id, Collections.emptyList()); List<PgsConstructionSchedulePlan> planList = planMap.getOrDefault(id, Collections.emptyList());
if (CollUtil.isNotEmpty(planList)) { if (CollUtil.isNotEmpty(planList)) {
List<MilestoneVo> milestoneVoList = new ArrayList<>(planList.stream().map(plan -> { List<MilestoneVo> milestoneVoList = new ArrayList<>(planList.stream().map(plan -> {
MilestoneVo milestoneVo = new MilestoneVo(); MilestoneVo milestoneVo = new MilestoneVo();
BeanUtils.copyProperties(plan, milestoneVo); BeanUtils.copyProperties(plan, milestoneVo);
// 统计最早的开始时间 // 统计最早的开始时间
LocalDate planStartDate = plan.getPlanStartDate(); LocalDate planStartDate = plan.getPlanStartDate();
LocalDate startTime = vo.getStartTime(); LocalDate startTime = vo.getStartTime();
if (startTime == null) { if (startTime == null) {
vo.setStartTime(planStartDate);
} else {
if (planStartDate.isBefore(startTime)) {
vo.setStartTime(planStartDate); vo.setStartTime(planStartDate);
} else {
if (planStartDate.isBefore(startTime)) {
vo.setStartTime(planStartDate);
}
} }
} // 统计最晚的结束时间
// 统计最晚的结束时间 LocalDate planEndDate = plan.getPlanEndDate();
LocalDate planEndDate = plan.getPlanEndDate(); LocalDate endTime = vo.getEndTime();
LocalDate endTime = vo.getEndTime(); if (endTime == null) {
if (endTime == null) {
vo.setEndTime(planEndDate);
} else {
if (planEndDate.isAfter(endTime)) {
vo.setEndTime(planEndDate); vo.setEndTime(planEndDate);
} else {
if (planEndDate.isAfter(endTime)) {
vo.setEndTime(planEndDate);
}
} }
return milestoneVo;
}).toList());
milestoneVoList.sort(Comparator.comparing(MilestoneVo::getPlanStartDate));
vo.setMilestones(milestoneVoList);
// 计算当前进度的节点
int size = milestoneVoList.size();
double percentage = progress.doubleValue(); // 转成普通数
percentage = Math.max(0, Math.min(percentage, 100));
int index = (int) Math.floor((percentage / 100.0) * size);
if (index >= size) {
index = size - 1;
} }
return milestoneVo; // 给对应对象设置标识
}).toList()); milestoneVoList.get(index).setActive(1);
milestoneVoList.sort(Comparator.comparing(MilestoneVo::getPlanStartDate)); } else {
vo.setMilestones(milestoneVoList); vo.setMilestones(Collections.emptyList());
// 计算当前进度的节点
int size = milestoneVoList.size();
double percentage = progress.doubleValue(); // 转成普通数
percentage = Math.max(0, Math.min(percentage, 100));
int index = (int) Math.floor((percentage / 100.0) * size);
if (index >= size) {
index = size - 1;
} }
// 给对应对象设置标识 return vo;
milestoneVoList.get(index).setActive(1); }).filter(v -> CollUtil.isNotEmpty(v.getMilestones()))
} else { .toList();
vo.setMilestones(Collections.emptyList());
}
return vo;
}).toList();
} }
@Override @Override
@ -1681,5 +1682,4 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
} }
} }