LambdaQueryWrapper<MaintainWorkSpareConsume> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(MaintainWorkSpareConsume::getVWorkId, work.getId());
List<MaintainWorkSpareConsume> dbSpareConsumes = workSpareConsumeMapper.selectList(queryWrapper);
List<MaintainWorkSpareConsume> newSpareConsumes = work.getSpareConsumes();
// 将数据库中的列表转换为以 id 为键的 Map
Map<String, MaintainWorkSpareConsume> dbMap = dbSpareConsumes.stream()
.collect(Collectors.toMap(MaintainWorkSpareConsume::getId, item -> item));
// 记录修改、删除和新增的数据
List<MaintainWorkSpareConsume> modified = new ArrayList<>();
List<MaintainWorkSpareConsume> deleted = new ArrayList<>(dbSpareConsumes);
List<MaintainWorkSpareConsume> added = new ArrayList<>();
// 查找修改和新增的数据
for (MaintainWorkSpareConsume newItem : newSpareConsumes) {
if (newItem.getId() == null) {
// 如果没有 id,说明是新增项
added.add(newItem);
} else {
// 如果有 id,检查是否在数据库中存在
MaintainWorkSpareConsume dbItem = dbMap.get(newItem.getId());
if (dbItem != null) {
// 检查字段是否有变化
if (isModified(dbItem, newItem)) {
modified.add(newItem);
}
// 从 deleted 列表中移除已存在的项
deleted.remove(dbItem);
}
}
}
java判断两个list,哪些是新增,哪些是删除,哪些是修改
最新推荐文章于 2024-09-16 21:37:07 发布