出库配送明细增删改;
This commit is contained in:
+22
@@ -1,5 +1,6 @@
|
|||||||
package com.mhd.oms.domain.reservationStockOutOrder.service;
|
package com.mhd.oms.domain.reservationStockOutOrder.service;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson2.JSONObject;
|
import com.alibaba.fastjson2.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@@ -108,6 +109,10 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
if (stockOutOrderDO.getCheckTaskDistribution() == null) {
|
if (stockOutOrderDO.getCheckTaskDistribution() == null) {
|
||||||
stockOutOrderDO.setCheckTaskDistribution(2);
|
stockOutOrderDO.setCheckTaskDistribution(2);
|
||||||
}
|
}
|
||||||
|
List<ReservationDeliveryDetailsLink> reservationDeliveryDetailsLinkList = stockOutOrderDO.getReservationDeliveryDetailsLinkList();
|
||||||
|
if (!CollectionUtils.isEmpty(reservationDeliveryDetailsLinkList)) {
|
||||||
|
reservationDeliveryDetailsLinkService.saveBatch(reservationDeliveryDetailsLinkList);
|
||||||
|
}
|
||||||
stockOutOrderService.insert(stockOutOrderDO);
|
stockOutOrderService.insert(stockOutOrderDO);
|
||||||
return outMaterialDetailService.batchInsert(stockOutOrderDO.getOutOrderNumber(), stockOutOrderDO.getMaterialDetailList());
|
return outMaterialDetailService.batchInsert(stockOutOrderDO.getOutOrderNumber(), stockOutOrderDO.getMaterialDetailList());
|
||||||
}
|
}
|
||||||
@@ -185,6 +190,23 @@ public class ReservationStockOutOrderDomainService {
|
|||||||
// }
|
// }
|
||||||
|
|
||||||
List<ReservationDeliveryDetailsLink> reservationDeliveryDetailsLinkList = stockOutOrderDO.getReservationDeliveryDetailsLinkList();
|
List<ReservationDeliveryDetailsLink> reservationDeliveryDetailsLinkList = stockOutOrderDO.getReservationDeliveryDetailsLinkList();
|
||||||
|
List<ReservationDeliveryDetailsLink> oldList = reservationDeliveryDetailsLinkService.list(new LambdaQueryWrapper<ReservationDeliveryDetailsLink>().eq(ReservationDeliveryDetailsLink::getOrderId, stockOutOrderDO.getOutOrderId()));
|
||||||
|
// ====================== 核心:取差值 ======================
|
||||||
|
// 第一步:把新列表的所有id存入Set(O(1)查找,效率最高)
|
||||||
|
Set<Long> newIdSet = reservationDeliveryDetailsLinkList.stream()
|
||||||
|
.map(ReservationDeliveryDetailsLink::getId)
|
||||||
|
.filter(Objects::nonNull) // 过滤null id,避免空指针
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
|
||||||
|
// 第二步:筛选出旧列表中 不在新列表里的元素(就是要删除的差值)
|
||||||
|
List<ReservationDeliveryDetailsLink> deleteList = oldList.stream()
|
||||||
|
.filter(oldItem -> !newIdSet.contains(oldItem.getId()))
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
// 第三步:执行删除(如果需要)
|
||||||
|
if (CollUtil.isNotEmpty(deleteList)) {
|
||||||
|
reservationDeliveryDetailsLinkService.removeByIds(deleteList);
|
||||||
|
}
|
||||||
if (!CollectionUtils.isEmpty(reservationDeliveryDetailsLinkList)) {
|
if (!CollectionUtils.isEmpty(reservationDeliveryDetailsLinkList)) {
|
||||||
reservationDeliveryDetailsLinkService.updateBatchById(reservationDeliveryDetailsLinkList);
|
reservationDeliveryDetailsLinkService.updateBatchById(reservationDeliveryDetailsLinkList);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user