Merge remote-tracking branch 'gitea/dev' into updateMenu
This commit is contained in:
@ -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
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user