diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerPlanController.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerPlanController.java index f832b914d..a4676f1ac 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerPlanController.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/VeneerPlanController.java @@ -186,9 +186,9 @@ public class VeneerPlanController { } /** - * 查询指定订单中当前贴皮排单可继续加入的未排贴皮板件。 + * 查询指定订单中未排贴皮板件;传入排单ID时按排单贴皮商品过滤。 * - * @param req 订单ID列表和目标贴皮排单ID + * @param req 订单ID列表和可选的目标贴皮排单ID * @return 未排贴皮板件及原板件造型数据 */ @PostMapping("/orders/noplan") diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerPlanNoPlanPlateReqVO.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerPlanNoPlanPlateReqVO.java index e41dd1ea7..660654bfa 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerPlanNoPlanPlateReqVO.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/controller/admin/veneer/vo/VeneerPlanNoPlanPlateReqVO.java @@ -2,7 +2,6 @@ package com.cf.imes.module.executor.controller.admin.veneer.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.NotEmpty; -import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; @@ -20,7 +19,6 @@ public class VeneerPlanNoPlanPlateReqVO { @Size(max = 200, message = "{veneer.plan.noplan.order.ids.max}") private List orderIds; - @Schema(description = "目标贴皮排单ID", requiredMode = Schema.RequiredMode.REQUIRED) - @NotNull(message = "{veneer.plan.id.required}") + @Schema(description = "目标贴皮排单ID,不传时查询订单下全部未排贴皮") private Long planId; } diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerPlanMapper.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerPlanMapper.java index f5b148da6..77752e2b3 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerPlanMapper.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/dal/mysql/veneer/VeneerPlanMapper.java @@ -46,7 +46,7 @@ public interface VeneerPlanMapper extends BaseMapperX { * 查询指定订单中与目标贴皮排单商品匹配的未排贴皮板件。 * * @param orderIds 订单ID列表 - * @param planId 目标贴皮排单ID + * @param planId 目标贴皮排单ID,可为空 * @param organId 组织ID * @return 未排贴皮板件原始数据 */ diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanService.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanService.java index c4d708d2d..0e10e0f64 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanService.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanService.java @@ -90,7 +90,7 @@ public interface VeneerPlanService { /** * 查询指定订单中与目标贴皮排单商品匹配的未排贴皮板件。 * - * @param req 订单ID列表和目标贴皮排单ID + * @param req 订单ID列表和可选的目标贴皮排单ID * @return 未排贴皮板件及原板件造型数据 */ VeneerPlanNoPlanPlateDataRespVO getNoPlanPlateData(VeneerPlanNoPlanPlateReqVO req); diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java index 45d78e45c..7b0819c13 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/java/com/cf/imes/module/executor/service/veneer/VeneerPlanServiceImpl.java @@ -440,13 +440,15 @@ public class VeneerPlanServiceImpl implements VeneerPlanService { @Override public VeneerPlanNoPlanPlateDataRespVO getNoPlanPlateData( VeneerPlanNoPlanPlateReqVO req) { - OrderVeneerPlanDO plan = validatePlanExists(req.getPlanId()); + OrderVeneerPlanDO plan = req.getPlanId() == null + ? null : validatePlanExists(req.getPlanId()); LoginUser loginUser = Objects.requireNonNull(SecurityFrameworkUtils.getLoginUser()); - // 只查询当前排单贴皮商品对应的未排记录,A/B 面保留为独立记录。 + // 未传排单时查询订单下全部未排贴皮;传入排单时再按贴皮商品过滤。 List rawPlates = veneerPlanMapper.selectNoPlanVeneerPlateList( - req.getOrderIds(), plan.getId(), loginUser.getOrganId()); + req.getOrderIds(), plan == null ? null : plan.getId(), + loginUser.getOrganId()); List plates = mergeNoPlanVeneerPlateDetails(rawPlates); // 同一原板的 A/B 面共用一份造型数据,通过 plateId 关联,避免重复返回。 diff --git a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerPlanMapper.xml b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerPlanMapper.xml index 23255022f..1f26cbc03 100644 --- a/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerPlanMapper.xml +++ b/cf-module-prod-executor/cf-module-prod-executor-biz/src/main/resources/mapper/veneer/VeneerPlanMapper.xml @@ -242,16 +242,18 @@ ob.name AS bodyName, op.model_data AS modelData FROM order_plate_veneer opv - JOIN order_veneer_plan ovp - ON ovp.id = #{planId} - AND ovp.organ_id = #{organId} - AND ovp.deleted = false JOIN order_veneer_goods ovg ON ovg.organ_id = opv.organ_id AND ovg.order_id = opv.order_id AND ovg.id = opv.order_veneer_goods_id - AND ovg.source_veneer_id = ovp.source_veneer_id AND ovg.deleted = false + + JOIN order_veneer_plan ovp + ON ovp.id = #{planId} + AND ovp.organ_id = #{organId} + AND ovp.deleted = false + AND ovg.source_veneer_id = ovp.source_veneer_id + JOIN order_plate op ON op.organ_id = opv.organ_id AND op.order_id = opv.order_id