修改bug
This commit is contained in:
@ -1,11 +1,8 @@
|
||||
package org.dromara.bigscreen.domain.vo;
|
||||
|
||||
import com.alibaba.excel.annotation.ExcelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
import org.dromara.common.excel.annotation.ExcelDictFormat;
|
||||
import org.dromara.common.excel.convert.ExcelDictConvert;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@ -63,6 +60,11 @@ public class MilestoneVo {
|
||||
*/
|
||||
private String status;
|
||||
|
||||
/**
|
||||
* 是否为当前节点(0不是 1是)
|
||||
*/
|
||||
private Integer active = 0;
|
||||
|
||||
/**
|
||||
* 备注
|
||||
*/
|
||||
|
||||
@ -1475,6 +1475,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
||||
List<BusProject> projectList = this.listByIds(projectIds);
|
||||
// 获取里程碑计划
|
||||
List<PgsConstructionSchedulePlan> constructionSchedulePlanList = constructionSchedulePlanService.lambdaQuery()
|
||||
.eq(PgsConstructionSchedulePlan::getParentId, 0L)
|
||||
.in(PgsConstructionSchedulePlan::getProjectId, projectIds)
|
||||
.list();
|
||||
// 根据项目进行分类
|
||||
@ -1488,7 +1489,6 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
||||
allProjectIds.addAll(projectIds);
|
||||
// 获取进度计划
|
||||
List<PgsProgressCategory> progressCategoryList = progressCategoryService.lambdaQuery()
|
||||
.eq(PgsProgressCategory::getParentId, 0L)
|
||||
.in(PgsProgressCategory::getProjectId, allProjectIds)
|
||||
.list();
|
||||
// 根据项目进行分类
|
||||
@ -1518,10 +1518,13 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
||||
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)) {
|
||||
vo.setMilestones(planList.stream().map(plan -> {
|
||||
List<MilestoneVo> milestoneVoList = new ArrayList<>(planList.stream().map(plan -> {
|
||||
MilestoneVo milestoneVo = new MilestoneVo();
|
||||
BeanUtils.copyProperties(plan, milestoneVo);
|
||||
// 统计最早的开始时间
|
||||
@ -1546,11 +1549,21 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
|
||||
}
|
||||
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());
|
||||
}
|
||||
// 获取进度计划
|
||||
vo.setProgress(totalProgressMap.getOrDefault(id, BigDecimal.ZERO));
|
||||
return vo;
|
||||
}).toList();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user