修改bug

This commit is contained in:
lcj
2025-11-07 19:50:36 +08:00
parent d9d2688e24
commit 048a175526
2 changed files with 22 additions and 7 deletions

View File

@ -1,11 +1,8 @@
package org.dromara.bigscreen.domain.vo; package org.dromara.bigscreen.domain.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
import org.dromara.common.excel.annotation.ExcelDictFormat;
import org.dromara.common.excel.convert.ExcelDictConvert;
import java.time.LocalDate; import java.time.LocalDate;
@ -63,6 +60,11 @@ public class MilestoneVo {
*/ */
private String status; private String status;
/**
* 是否为当前节点(0不是 1是)
*/
private Integer active = 0;
/** /**
* 备注 * 备注
*/ */

View File

@ -1475,6 +1475,7 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
List<BusProject> projectList = this.listByIds(projectIds); List<BusProject> projectList = this.listByIds(projectIds);
// 获取里程碑计划 // 获取里程碑计划
List<PgsConstructionSchedulePlan> constructionSchedulePlanList = constructionSchedulePlanService.lambdaQuery() List<PgsConstructionSchedulePlan> constructionSchedulePlanList = constructionSchedulePlanService.lambdaQuery()
.eq(PgsConstructionSchedulePlan::getParentId, 0L)
.in(PgsConstructionSchedulePlan::getProjectId, projectIds) .in(PgsConstructionSchedulePlan::getProjectId, projectIds)
.list(); .list();
// 根据项目进行分类 // 根据项目进行分类
@ -1488,7 +1489,6 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
allProjectIds.addAll(projectIds); allProjectIds.addAll(projectIds);
// 获取进度计划 // 获取进度计划
List<PgsProgressCategory> progressCategoryList = progressCategoryService.lambdaQuery() List<PgsProgressCategory> progressCategoryList = progressCategoryService.lambdaQuery()
.eq(PgsProgressCategory::getParentId, 0L)
.in(PgsProgressCategory::getProjectId, allProjectIds) .in(PgsProgressCategory::getProjectId, allProjectIds)
.list(); .list();
// 根据项目进行分类 // 根据项目进行分类
@ -1518,10 +1518,13 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
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);
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)) {
vo.setMilestones(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);
// 统计最早的开始时间 // 统计最早的开始时间
@ -1546,11 +1549,21 @@ public class BusProjectServiceImpl extends ServiceImpl<BusProjectMapper, BusProj
} }
return milestoneVo; return milestoneVo;
}).toList()); }).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 { } else {
vo.setMilestones(Collections.emptyList()); vo.setMilestones(Collections.emptyList());
} }
// 获取进度计划
vo.setProgress(totalProgressMap.getOrDefault(id, BigDecimal.ZERO));
return vo; return vo;
}).toList(); }).toList();
} }