fix(oa): 修正项目计划结束时间判断逻辑

- 修改XML中计划结束时间字段判断条件
- 更新Java服务类中计划结束时间处理逻辑
- 引入Timestamp类型以支持时间转换
- 确保original_end_time与plan_end比较准确性
This commit is contained in:
2025-12-11 17:30:03 +08:00
parent 1330ef6826
commit 70d380ac65
2 changed files with 6 additions and 4 deletions

View File

@@ -27,6 +27,7 @@ import com.ruoyi.oa.service.ISysOaTaskService;
import com.ruoyi.system.mapper.SysUserMapper;
import java.math.BigDecimal;
import java.sql.Timestamp;
import java.util.Date;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@@ -191,16 +192,17 @@ public class OaProjectScheduleStepServiceImpl implements IOaProjectScheduleStepS
}
// 3. 处理结束时间逻辑(此时 original 一定非 null可安全调用方法
if (original.getEndTime() == null && bo.getEndTime() != null) {
if (original.getPlanEnd() == null && bo.getPlanEnd() != null) {
// 首次修改:设置结束时间和原始结束时间
update.setEndTime(bo.getEndTime());
update.setOriginalEndTime(bo.getEndTime());
update.setPlanEnd(bo.getPlanEnd());
update.setOriginalEndTime(new Timestamp(bo.getPlanEnd().getTime()).toLocalDateTime());
}
// 4. 执行更新
return baseMapper.updateById(update) > 0;
}
/**
* 保存前的数据校验
*/

View File

@@ -57,7 +57,7 @@
WHERE opss.schedule_id = ops.schedule_id AND opss.del_flag = '0'
AND (
opss.use_flag = 0
OR (opss.original_end_time IS NOT NULL AND opss.end_time IS NOT NULL AND opss.end_time > opss.original_end_time)
OR (opss.original_end_time IS NOT NULL AND opss.plan_end IS NOT NULL AND opss.plan_end > opss.original_end_time)
OR (opss.status = 0 AND opss.original_end_time IS NOT NULL AND CURDATE() > DATE(opss.original_end_time))
)
) AS delayCount