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 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 保存前的数据校验
|
* 保存前的数据校验
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user