Commit 742315c8 authored by 鲁鸿波's avatar 鲁鸿波

安全风险分析对象查询时多条bug问题

parent 3f4bcb82
......@@ -57,30 +57,53 @@ public class THazardAssessmentServiceImpl extends SuperServiceImpl<THazardAssess
@Override
public THazardAssessmentDTO getDetailsById(String typeId,String planId,String completeTime) {
THazardAssessment tHazardAssessment = null;
if(StringUtils.isEmpty(completeTime)){
tHazardAssessment = this.getOne(new LambdaQueryWrapper<THazardAssessment>().eq(THazardAssessment::getWorkTypeId, typeId).eq(THazardAssessment::getPlanId, planId));
}else{
tHazardAssessment = this.getOne(new LambdaQueryWrapper<THazardAssessment>().eq(THazardAssessment::getWorkTypeId, typeId).eq(THazardAssessment::getPlanId, planId).eq(THazardAssessment::getCreateDate,completeTime));
}
if (StringUtils.isNull(tHazardAssessment)) {
if(!StringUtils.isEmpty(completeTime)){
//可能计算的时候会有时间上的差异,减1后继续查询一次
//completeTime: 2025-08-19 08:57:04
//实际值2025-08-19 08:57:03
// 定义时间格式
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 将字符串解析为LocalDateTime对象
final int MAX_ATTEMPTS = 5;
if (StringUtils.isEmpty(completeTime)) {
// 构建不含时间条件的查询
tHazardAssessment = this.getOne(
new LambdaQueryWrapper<THazardAssessment>()
.eq(THazardAssessment::getWorkTypeId, typeId)
.eq(THazardAssessment::getPlanId, planId)
);
} else {
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
// 尝试原始时间
tHazardAssessment = this.getOne(
new LambdaQueryWrapper<THazardAssessment>()
.eq(THazardAssessment::getWorkTypeId, typeId)
.eq(THazardAssessment::getPlanId, planId)
.eq(THazardAssessment::getCreateDate, completeTime)
);
// 时间递减查询(最多5次)
if (tHazardAssessment == null) {
LocalDateTime dateTime = LocalDateTime.parse(completeTime, formatter);
// 减去1秒
LocalDateTime newDateTime = dateTime.minusSeconds(1);
// 格式化为字符串
completeTime = newDateTime.format(formatter);
tHazardAssessment = this.getOne(new LambdaQueryWrapper<THazardAssessment>().eq(THazardAssessment::getWorkTypeId, typeId).eq(THazardAssessment::getPlanId, planId).eq(THazardAssessment::getCreateDate,completeTime));
}else{
return null;
for (int i = 1; i <= MAX_ATTEMPTS; i++) {
// 每次递减1秒
LocalDateTime adjustedTime = dateTime.minusSeconds(i);
String newTime = adjustedTime.format(formatter);
// 每次创建全新的查询条件
tHazardAssessment = this.getOne(
new LambdaQueryWrapper<THazardAssessment>()
.eq(THazardAssessment::getWorkTypeId, typeId)
.eq(THazardAssessment::getPlanId, planId)
.eq(THazardAssessment::getCreateDate, newTime)
);
if (tHazardAssessment != null) break;
}
}
}
if(tHazardAssessment == null){
return null;
}
THazardAssessmentDTO tHazardAssessmentDTO = BeanHelper.beanToBean(tHazardAssessment, THazardAssessmentDTO.class);
THazardWorkPlan tHazardWorkPlan = tHazardWorkPlanService.getById(tHazardAssessment.getPlanId());
//设置作业单位
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment