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 -> {
MyProjectInfoVo vo = new MyProjectInfoVo();
Long id = project.getId();
vo.setProjectId(id);
vo.setPrincipal(project.getPrincipal());
vo.setProjectName(project.getProjectName());
vo.setProjectGeneralize(project.getProjectGeneralize());
// 获取进度计划
BigDecimal progress = totalProgressMap.getOrDefault(id, BigDecimal.ZERO);
vo.setProgress(progress);
// 获取里程碑
List<PgsConstructionSchedulePlan> planList = planMap.getOrDefault(id, Collections.emptyList());
if (CollUtil.isNotEmpty(planList)) {
List<MilestoneVo> milestoneVoList = new ArrayList<>(planList.stream().map(plan -> {
MilestoneVo milestoneVo = new MilestoneVo();
BeanUtils.copyProperties(plan, milestoneVo);
// 统计最早的开始时间
LocalDate planStartDate = plan.getPlanStartDate();
LocalDate startTime = vo.getStartTime();
if (startTime == null) {
vo.setStartTime(planStartDate);
} else {
if (planStartDate.isBefore(startTime)) {
MyProjectInfoVo vo = new MyProjectInfoVo();
Long id = project.getId();
vo.setProjectId(id);
vo.setPrincipal(project.getPrincipal());
vo.setProjectName(project.getProjectName());
vo.setProjectGeneralize(project.getProjectGeneralize());
// 获取进度计划
BigDecimal progress = totalProgressMap.getOrDefault(id, BigDecimal.ZERO);
vo.setProgress(progress);
// 获取里程碑
List<PgsConstructionSchedulePlan> planList = planMap.getOrDefault(id, Collections.emptyList());
if (CollUtil.isNotEmpty(planList)) {
List<MilestoneVo> milestoneVoList = new ArrayList<>(planList.stream().map(plan -> {
MilestoneVo milestoneVo = new MilestoneVo();
BeanUtils.copyProperties(plan, milestoneVo);
// 统计最早的开始时间
LocalDate planStartDate = plan.getPlanStartDate();
LocalDate startTime = vo.getStartTime();
if (startTime == null) {
vo.setStartTime(planStartDate);
} else {
if (planStartDate.isBefore(startTime)) {
vo.setStartTime(planStartDate);
}
}
}
// 统计最晚的结束时间
LocalDate planEndDate = plan.getPlanEndDate();
LocalDate endTime = vo.getEndTime();
if (endTime == null) {
vo.setEndTime(planEndDate);
} else {
if (planEndDate.isAfter(endTime)) {
// 统计最晚的结束时间
LocalDate planEndDate = plan.getPlanEndDate();
LocalDate endTime = vo.getEndTime();
if (endTime == null) {
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.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;
// 给对应对象设置标识
milestoneVoList.get(index).setActive(1);
} else {
vo.setMilestones(Collections.emptyList());
}
// 给对应对象设置标识
milestoneVoList.get(index).setActive(1);
} else {
vo.setMilestones(Collections.emptyList());
}
return vo;
}).toList();
return vo;
}).filter(v -> CollUtil.isNotEmpty(v.getMilestones()))
.toList();
}
@Override
@ -1681,5 +1682,4 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
}
}