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

View File

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