feat(oa): 实现项目延期时原始完成时间记录功能
- 在项目首次延期时,将当前完成时间保存为原始完成时间 - 更新延期逻辑以支持 original_finish_time 字段的设置 - 保持原有延期次数统计和状态标记功能不变
This commit is contained in:
@@ -510,8 +510,12 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
|
||||
|
||||
// 4. 构建更新条件,执行延期操作
|
||||
LambdaUpdateWrapper<SysOaProject> 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
|
||||
|
||||
Reference in New Issue
Block a user