From d5947777e0f763b40457bb5a2fdc748b263a9bcd Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 18 Oct 2025 17:39:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E5=AE=9E=E7=8E=B0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E5=BB=B6=E6=9C=9F=E6=97=B6=E5=8E=9F=E5=A7=8B=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E6=97=B6=E9=97=B4=E8=AE=B0=E5=BD=95=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在项目首次延期时,将当前完成时间保存为原始完成时间 - 更新延期逻辑以支持 original_finish_time 字段的设置 - 保持原有延期次数统计和状态标记功能不变 --- .../ruoyi/oa/service/impl/SysOaProjectServiceImpl.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java index ec9a3ce..93c839a 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java @@ -510,8 +510,12 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { // 4. 构建更新条件,执行延期操作 LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.eq(SysOaProject::getProjectId, bo.getProjectId()) // 锁定指定项目 - .set(SysOaProject::getFinishTime, bo.getFinishTime()) // 延期日期赋值给finish_time + updateWrapper.eq(SysOaProject::getProjectId, bo.getProjectId()); // 锁定指定项目 + // 关键逻辑:如果原始结束时间为空(首次延期),则将当前finish_time赋值给original_finish_time + if (project.getOriginalFinishTime() == null) { + updateWrapper.set(SysOaProject::getOriginalFinishTime, project.getFinishTime()); + } + updateWrapper.set(SysOaProject::getFinishTime, bo.getFinishTime()) // 延期日期赋值给finish_time .set(SysOaProject::getPostponeTime, bo.getFinishTime()) // 同步更新“延期至日期” .set(SysOaProject::getIsPostpone, 1) // 标记为已延期(1=是) .setSql("postpone_count = postpone_count + 1") // 延期次数+1