新增 未排贴皮列表获取接口

This commit is contained in:
gaoqr
2026-08-10 18:13:00 +08:00
parent a9170fdbd0
commit d455954fa0
6 changed files with 17 additions and 15 deletions
@@ -186,9 +186,9 @@ public class VeneerPlanController {
}
/**
* 查询指定订单中当前贴皮排单可继续加入的未排贴皮板件。
* 查询指定订单中未排贴皮板件;传入排单ID时按排单贴皮商品过滤
*
* @param req 订单ID列表和目标贴皮排单ID
* @param req 订单ID列表和可选的目标贴皮排单ID
* @return 未排贴皮板件及原板件造型数据
*/
@PostMapping("/orders/noplan")
@@ -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<Long> orderIds;
@Schema(description = "目标贴皮排单ID", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "{veneer.plan.id.required}")
@Schema(description = "目标贴皮排单ID,不传时查询订单下全部未排贴皮")
private Long planId;
}
@@ -46,7 +46,7 @@ public interface VeneerPlanMapper extends BaseMapperX<OrderVeneerPlanDO> {
* 查询指定订单中与目标贴皮排单商品匹配的未排贴皮板件。
*
* @param orderIds 订单ID列表
* @param planId 目标贴皮排单ID
* @param planId 目标贴皮排单ID,可为空
* @param organId 组织ID
* @return 未排贴皮板件原始数据
*/
@@ -90,7 +90,7 @@ public interface VeneerPlanService {
/**
* 查询指定订单中与目标贴皮排单商品匹配的未排贴皮板件。
*
* @param req 订单ID列表和目标贴皮排单ID
* @param req 订单ID列表和可选的目标贴皮排单ID
* @return 未排贴皮板件及原板件造型数据
*/
VeneerPlanNoPlanPlateDataRespVO getNoPlanPlateData(VeneerPlanNoPlanPlateReqVO req);
@@ -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<UnplannedVeneerPlateRespVO> rawPlates =
veneerPlanMapper.selectNoPlanVeneerPlateList(
req.getOrderIds(), plan.getId(), loginUser.getOrganId());
req.getOrderIds(), plan == null ? null : plan.getId(),
loginUser.getOrganId());
List<UnplannedVeneerPlateRespVO> plates = mergeNoPlanVeneerPlateDetails(rawPlates);
// 同一原板的 A/B 面共用一份造型数据,通过 plateId 关联,避免重复返回。
@@ -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
<if test="planId != null">
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
</if>
JOIN order_plate op
ON op.organ_id = opv.organ_id
AND op.order_id = opv.order_id