fix(oa): 修正项目计划结束时间判断逻辑
- 修改XML中计划结束时间字段判断条件 - 更新Java服务类中计划结束时间处理逻辑 - 引入Timestamp类型以支持时间转换 - 确保original_end_time与plan_end比较准确性
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user