贴皮order-source接口属性整合

This commit is contained in:
gaoqr
2026-08-11 15:03:10 +08:00
parent 5b5c2a3741
commit 8173e1169c
5 changed files with 254 additions and 25 deletions
@@ -26,6 +26,21 @@ public class VeneerOptimizeGoodsRespVO {
@Schema(description = "颜色")
private String color;
@Schema(description = "品牌")
private String brand;
@Schema(description = "规格")
private String spec;
@Schema(description = "厂家")
private String factory;
@Schema(description = "贴皮库长度,单位:mm")
private BigDecimal length;
@Schema(description = "贴皮库宽度,单位:mm")
private BigDecimal width;
@Schema(description = "厚度,单位:mm")
private BigDecimal thickness;
}
@@ -2,20 +2,221 @@ package com.cf.imes.module.executor.controller.admin.veneer.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import java.math.BigDecimal;
/**
* 贴皮优化板件响应参数。
* 商品属性均来自订单贴皮商品快照,板件属性仅用于排样及板件筛选。
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class VeneerOptimizePlateRespVO extends VeneerManagePlateRespVO {
@JsonInclude(JsonInclude.Include.NON_NULL)
public class VeneerOptimizePlateRespVO {
@Schema(description = "板件贴皮记录ID")
private Long veneerId;
@Schema(description = "订单贴皮商品ID")
private Long id;
@Schema(description = "订单ID")
private Long orderId;
@Schema(description = "来源板件ID")
private Long plateId;
@Schema(description = "贴皮商品编号")
private String goodsId;
@Schema(description = "贴皮商品名称")
private String goodsName;
@Schema(description = "产品等级")
private Integer productLevel;
@Schema(description = "材质")
private String material;
@Schema(description = "颜色")
private String color;
@Schema(description = "品牌")
private String brand;
@Schema(description = "规格")
private String spec;
@Schema(description = "厂家")
private String factory;
@Schema(description = "贴皮商品厚度,单位:mm")
private BigDecimal veneerThickness;
private BigDecimal thickness;
@Schema(description = "贴皮逻辑面:A-A面,B-B面")
private String veneerSide;
@Schema(description = "实际板件面:0-正面,1-反面")
private Integer plateSurface;
@Schema(description = "贴皮编号")
private String veneerNo;
@Schema(description = "外扩余量,单位:mm")
private BigDecimal outerMargin;
@Schema(description = "贴皮排单ID")
private Long planId;
@Schema(description = "板件编号")
private String plateNo;
@Schema(description = "自定义板件编号")
private String customPlateNo;
@Schema(description = "板件名称")
private String name;
@Schema(description = "外扩后的贴皮长度,单位:mm")
private BigDecimal length;
@Schema(description = "外扩后的贴皮宽度,单位:mm")
private BigDecimal width;
@Schema(description = "拆单宽度")
private BigDecimal splitWidth;
@Schema(description = "拆单高度")
private BigDecimal splitHeight;
@Schema(description = "拆单厚度")
private BigDecimal splitThickness;
@Schema(description = "是否异形")
private Boolean isSpecialShaped;
@Schema(description = "左封边厚度")
private BigDecimal sealLeft;
@Schema(description = "右封边厚度")
private BigDecimal sealRight;
@Schema(description = "上封边厚度")
private BigDecimal sealUp;
@Schema(description = "下封边厚度")
private BigDecimal sealDown;
@Schema(description = "左预留边")
private BigDecimal reservedEdgeLeft;
@Schema(description = "右预留边")
private BigDecimal reservedEdgeRight;
@Schema(description = "上预留边")
private BigDecimal reservedEdgeUp;
@Schema(description = "下预留边")
private BigDecimal reservedEdgeDown;
@Schema(description = "贴皮面积,单位:平方米")
private BigDecimal area;
@Schema(description = "纹路类型:0正纹,1可翻转,2反纹")
private Integer texture;
@Schema(description = "孔面类型:0正面,1反面,2侧面")
private Integer holeFace;
@Schema(description = "排版面类型:0正面,1反面,2随意面")
private Integer holeArrange;
@Schema(description = "异型孔数量")
private Integer unregularPointCount;
@Schema(description = "正面孔数量")
private Integer frontHoleCount;
@Schema(description = "背面孔数量")
private Integer backHoleCount;
@Schema(description = "侧面孔数量")
private Integer sideHoleCount;
@Schema(description = "正面造型数量")
private Integer frontModelCount;
@Schema(description = "背面造型数量")
private Integer backModelCount;
@Schema(description = "是否门板")
private Boolean isDoor;
@Schema(description = "是否弧形对角")
private Boolean isArcAcross;
@Schema(description = "模块类型ID")
private Long moduleTypeId;
@Schema(description = "异形偏移X")
private BigDecimal offsetX;
@Schema(description = "异形偏移Y")
private BigDecimal offsetY;
@Schema(description = "备注")
private String remark;
@Schema(description = "板件类型:0层板,1立板,2背板,3自增板")
private Integer type;
@Schema(description = "加工组名称")
private String processGroupName;
@Schema(description = "开门类型:0无,1左,2右,3上,4下")
private Integer openDoorType;
@Schema(description = "是否有孔")
private Boolean isRowHole;
@Schema(description = "是否正反面造型")
private Boolean isSculpt;
@Schema(description = "是否侧面造型")
private Boolean isSideSculpt;
@Schema(description = "是否二维刀路")
private Boolean is2v;
@Schema(description = "是否侧面二维刀路")
private Boolean isSide2v;
@Schema(description = "是否双面造型")
private Boolean doubleSideModel;
@Schema(description = "是否双面排孔")
private Boolean doubleSideHole;
@Schema(description = "是否正面造型")
private Boolean frontModel;
@Schema(description = "是否背面造型")
private Boolean backModel;
@Schema(description = "是否正面排孔")
private Boolean frontHole;
@Schema(description = "是否反面排孔")
private Boolean backHole;
@Schema(description = "是否侧面造型")
private Boolean sideModel;
@Schema(description = "是否侧面排孔")
private Boolean sideHole;
/** 解压后的板件造型 JSON,仅用于组装 plateModels。 */
@JsonIgnore
private String modelData;
}
@@ -54,6 +54,21 @@ public class OrderVeneerGoodsDO extends BaseDO {
/** 颜色快照。 */
private String color;
/** 品牌快照。 */
private String brand;
/** 规格快照。 */
private String spec;
/** 厂家快照。 */
private String factory;
/** 贴皮库长度快照,单位:mm。 */
private BigDecimal length;
/** 贴皮库宽度快照,单位:mm。 */
private BigDecimal width;
/** 厚度快照,单位:mm。 */
private BigDecimal thickness;
@@ -154,6 +154,11 @@ public class OrderVeneerGoodsServiceImpl implements OrderVeneerGoodsService {
.productLevel(sourceVeneer.getProductLevel())
.material(ObjectUtil.defaultIfNull(sourceVeneer.getMaterial(), ""))
.color(ObjectUtil.defaultIfNull(sourceVeneer.getColor(), ""))
.brand(ObjectUtil.defaultIfNull(sourceVeneer.getBrand(), ""))
.spec(ObjectUtil.defaultIfNull(sourceVeneer.getSpec(), ""))
.factory(ObjectUtil.defaultIfNull(sourceVeneer.getFactory(), ""))
.length(ObjectUtil.defaultIfNull(sourceVeneer.getLength(), BigDecimal.ZERO))
.width(ObjectUtil.defaultIfNull(sourceVeneer.getWidth(), BigDecimal.ZERO))
.thickness(ObjectUtil.defaultIfNull(sourceVeneer.getThickness(), BigDecimal.ZERO))
.veneerNum(0)
.plannedVeneerNum(0)
@@ -19,6 +19,11 @@
ovg.product_level AS productLevel,
ovg.material,
ovg.color,
ovg.brand,
ovg.spec,
ovg.factory,
ovg.length,
ovg.width,
ovg.thickness
FROM order_plate_veneer opv
JOIN order_veneer_goods ovg ON ovg.order_id = opv.order_id
@@ -31,36 +36,28 @@
<select id="selectPlateList" resultMap="OptimizePlateMap">
SELECT opv.id AS veneerId,
opv.id,
ovg.id,
opv.order_id AS orderId,
opv.order_goods_id AS orderGoodsId,
opv.order_veneer_goods_id AS orderVeneerGoodsId,
opv.veneer_side AS veneerSide,
opv.plate_surface AS plateSurface,
opv.veneer_no AS veneerNo,
opv.outer_margin AS outerMargin,
opv.plan_id AS planId,
ovg.source_veneer_id AS sourceVeneerId,
ovg.goods_id AS sourceVeneerNo,
ovg.goods_name AS veneerName,
ovg.goods_id AS goodsId,
ovg.goods_name AS goodsName,
ovg.product_level AS productLevel,
ovg.color AS veneerColor,
ovg.material AS veneerMaterial,
ovg.thickness AS veneerThickness,
ovg.color,
ovg.material,
ovg.brand,
ovg.spec,
ovg.factory,
ovg.thickness,
op.id AS plateId,
og.goods_id AS goodsId,
og.goods_name AS goodsName,
op.plate_no AS plateNo,
op.custom_plate_no AS customPlateNo,
op.name,
op.name AS plateName,
og.color,
og.brand,
og.material,
op.height,
opv.plate_length AS length,
opv.plate_width AS width,
opv.plate_thickness AS thickness,
op.split_width AS splitWidth,
op.split_height AS splitHeight,
op.split_thickness AS splitThickness,
@@ -112,10 +109,6 @@
JOIN order_plate op ON op.order_id = opv.order_id
AND op.id = opv.order_plate_id
AND op.deleted = false
JOIN order_goods og ON og.order_id = opv.order_id
AND og.id = opv.order_goods_id
AND og.id = op.goods_id
AND og.deleted = false
JOIN order_veneer_goods ovg ON ovg.order_id = opv.order_id
AND ovg.id = opv.order_veneer_goods_id
AND ovg.deleted = false