fix(dms): 过滤维护实例ID为空的数据

- 在查询维护明细时增加维护实例ID非空判断
- 过滤维护实例ID为空的记录以避免空指针异常
- 确保统计唯一工单数量时排除空值影响
master
zangch@mesnac.com 2 months ago
parent df6159887f
commit 03bb2940fd

@ -19,6 +19,7 @@ import org.dromara.dms.service.IDmsBillsMaintDetailService;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.Objects;
import java.util.stream.Collectors;
/**
@ -179,6 +180,7 @@ public class DmsBillsMaintDetailServiceImpl implements IDmsBillsMaintDetailServi
List<DmsBillsMaintDetail> details = baseMapper.selectList(
Wrappers.<DmsBillsMaintDetail>lambdaQuery()
.eq(DmsBillsMaintDetail::getMachineId, machineId)
.isNotNull(DmsBillsMaintDetail::getMaintInstanceId)
);
if (details.isEmpty()) {
@ -188,6 +190,7 @@ public class DmsBillsMaintDetailServiceImpl implements IDmsBillsMaintDetailServi
// 提取唯一的工单ID
Set<Long> maintInstanceIds = details.stream()
.map(DmsBillsMaintDetail::getMaintInstanceId)
.filter(Objects::nonNull)
.collect(Collectors.toSet());
// 查询工单主表信息
@ -214,11 +217,13 @@ public class DmsBillsMaintDetailServiceImpl implements IDmsBillsMaintDetailServi
Wrappers.<DmsBillsMaintDetail>lambdaQuery()
.select(DmsBillsMaintDetail::getMaintInstanceId)
.eq(DmsBillsMaintDetail::getMachineId, machineId)
.isNotNull(DmsBillsMaintDetail::getMaintInstanceId)
);
// 统计唯一的工单数量
return (long) details.stream()
.map(DmsBillsMaintDetail::getMaintInstanceId)
.filter(Objects::nonNull)
.collect(Collectors.toSet())
.size();
}

Loading…
Cancel
Save