diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanDetailServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanDetailServiceImpl.java index 8304a35a..28a2d700 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanDetailServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/progress/service/impl/PgsProgressPlanDetailServiceImpl.java @@ -330,7 +330,11 @@ public class PgsProgressPlanDetailServiceImpl extends ServiceImpl= 0) { - progressCategory.setStatus(PgsFinishStatusEnum.FINISH.getValue()); - } - } - // 判断是否跨过计划数量阈值 if (oldPlanFinished.compareTo(progressPlan.getPlanNumber()) < 0 && newPlanFinished.compareTo(progressPlan.getPlanNumber()) >= 0) { progressCategory.setPlanTotal(progressCategory.getPlanTotal().subtract(progressPlan.getPlanNumber())); } + // 完成判定 + if (unitType.equals(PgsProgressUnitTypeEnum.PERCENTAGE.getValue())) { + if (completedTotal.compareTo(BigDecimal.valueOf(100)) == 0) { + // 清空计划数量 + progressCategory.setPlanTotal(BigDecimal.ZERO); + // 设置完成状态 + progressCategory.setStatus(PgsFinishStatusEnum.FINISH.getValue()); + } + } else { // NUMBER + if (completedTotal.compareTo(progressCategory.getTotal()) >= 0) { + // 清空计划数量 + progressCategory.setPlanTotal(BigDecimal.ZERO); + // 设置完成状态 + progressCategory.setStatus(PgsFinishStatusEnum.FINISH.getValue()); + } + } + if (!progressCategoryService.updateById(progressCategory)) { throw new ServiceException("更新进度分类异常", HttpStatus.ERROR); }