List<QcStandardItemSaveBo> poForecastDetailList = qcStandardBo.getQcItemList();
//筛选 源单据的ID的数据
List<Integer> idList = poForecastDetailList.stream().map(QcStandardItemSaveBo::getItemId).filter(ObjectUtil::isNotNull).collect(Collectors.toList());
LambdaQueryWrapper<QcStandardItem> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(QcStandardItem::getStandardId, qcStandard.getStandardId());
if (CollUtil.isNotEmpty(idList)) {
queryWrapper.notIn(QcStandardItem::getItemId, idList);
}
//查询同一个单 但是不包含在修改明细列表的明细信息(代表被删除了的)
List<QcStandardItem> list = qcStandardItemService.list(queryWrapper);
List<Integer> delList = list.stream().map(QcStandardItem::getItemId).collect(Collectors.toList());
if (CollUtil.isNotEmpty(delList)) {
//删除明细
qcStandardItemService.deleteQcStandardItemByIds(CollUtil.join(delList, ","));
}
for (QcStandardItemSaveBo detail : poForecastDetailList) {
//判断是否有ID,没有就新增 有就更新
if (ObjectUtil.isNull(detail.getItemId())) {
detail.setStandardId(qcStandard.getStandardId());
qcStandardItemService.saveQcStandardItem(detail);
} else {
qcStandardItemService.updateQcStandardItem(detail);
}
}
list对象用流获取其中一个对象属性的值并且返回list
于 2023-07-13 09:27:11 首次发布