diff --git a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java index 38a9021cb..b43342795 100644 --- a/src/main/java/com/glxp/api/controller/inout/IoOrderController.java +++ b/src/main/java/com/glxp/api/controller/inout/IoOrderController.java @@ -47,10 +47,8 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; import static com.glxp.api.constant.ConstantStatus.ORDER_STATUS_CHECK_PROCESS; @@ -767,11 +765,17 @@ public class IoOrderController extends BaseController { originOrder.setReplicateNo(orderNo); List supplementCodes = new ArrayList<>(); - - // 生成业务单 + List products = addOrderChangeRequest.getProducts(); List orderDetailBizEntities = orderDetailBizService.findByOrderId(originOrder.getBillNo()); - if (CollUtil.isNotEmpty(orderDetailBizEntities)) { - for (IoOrderDetailBizEntity orderDetailBizEntity : orderDetailBizEntities) { + // 计算出两个集合之间产品批次号组成的差异 + List IoStatDayEntityList = orderDetailBizEntities.stream() + .filter(comment -> products.stream() + .anyMatch(p -> Objects.equals(p.getBatchNo(), comment.getBatchNo()) // 使用 Objects.equals 来进行非空判断 + && Objects.equals(p.getRelId(), comment.getBindRlFk()))) + .collect(Collectors.toList()); + //生成业务单 + if (CollUtil.isNotEmpty(IoStatDayEntityList)) { + for (IoOrderDetailBizEntity orderDetailBizEntity : IoStatDayEntityList) { orderDetailBizEntity.setOrderIdFk(newOrder.getBillNo()); orderDetailBizEntity.setId(IdUtil.getSnowflakeNextId()); orderDetailBizService.insert(orderDetailBizEntity); @@ -779,7 +783,7 @@ public class IoOrderController extends BaseController { } - List products = addOrderChangeRequest.getProducts(); + originCodes.forEach( code -> { //复制选中的产品