package cn.iocoder.yudao.module.mes.controller.admin.pro.process.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.constraints.DecimalMin; import jakarta.validation.constraints.NotBlank; import jakarta.validation.constraints.NotNull; import lombok.Data; import java.math.BigDecimal; @Schema(description = "管理后台 - MES 生产工序新增/修改 Request VO") @Data public class MesProProcessSaveReqVO { @Schema(description = "编号", example = "1") private Long id; @Schema(description = "工序编码", requiredMode = Schema.RequiredMode.REQUIRED, example = "PROCESS001") @NotBlank(message = "工序编码不能为空") private String code; @Schema(description = "工序名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "下料工序") @NotBlank(message = "工序名称不能为空") private String name; @Schema(description = "工艺要求", example = "按照图纸尺寸进行切割") private String attention; @Schema(description = "计费类型:1-计时 2-计件", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") @NotNull(message = "计费类型不能为空,请选择 1-计时 或 2-计件") private Integer billingType; @Schema(description = "工资定额:计时为元/小时,计件为元/件", requiredMode = Schema.RequiredMode.REQUIRED, example = "12.50") @NotNull(message = "工资定额不能为空,请填写计时(元/小时)或计件(元/件)的工资定额") @DecimalMin(value = "0", message = "工资定额不能小于 0;计时按元/小时填写,计件按元/件填写") private BigDecimal wageRate; @Schema(description = "辅助工时小时工资(元/小时),计件工序必填方能计算辅助工资", example = "25.00") @DecimalMin(value = "0", message = "辅助工时小时工资不能小于 0;请按元/小时填写辅助工时单价") private BigDecimal auxHourlyRate; @Schema(description = "标准工时计算方式:0-未启用 1-转速×节距 2-线速度直取 3-满速百分比×节距", example = "1") private Integer stdTimeMode; @Schema(description = "标准工时折算系数:束丝填 1.8,其余填 1", example = "1.8") @DecimalMin(value = "0", message = "折算系数不能小于 0;束丝一般填 1.8,其余工序填 1") private BigDecimal stdTimeFactor; @Schema(description = "机台满转速(r/min),计算方式=3 时必填且必须大于 0", example = "1200") @DecimalMin(value = "0", message = "机台满转速不能小于 0;计算方式为“满速百分比×节距”时请填写实际满转速") private BigDecimal maxRpm; @Schema(description = "转速参数编码,计算方式=1/3 时必填", example = "RPM") private String stdRpmParamCode; @Schema(description = "节距参数编码,计算方式=1/3 时必填", example = "PITCH") private String stdPitchParamCode; @Schema(description = "线速度(米/分)参数编码,计算方式=2 时必填", example = "SPEED") private String stdSpeedParamCode; @Schema(description = "转速百分比参数编码,计算方式=3 时必填", example = "RPM_PERCENT") private String stdPercentParamCode; @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0") @NotNull(message = "状态不能为空") private Integer status; @Schema(description = "备注", example = "金属板材下料") private String remark; }