package cn.iocoder.yudao.module.mes.controller.admin.pro.batch.vo; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.validation.Valid; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import jakarta.validation.constraints.Size; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管理后台 - MES 生产批次新增/修改 Request VO") @Data public class MesProBatchSaveReqVO { @Schema(description = "编号", example = "1024") private Long id; @Schema(description = "产线编号(页面展示为「加工单位」)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "加工单位不能为空") private Long lineId; @Schema(description = "加工班组(手工填写)", example = "一号加工班组") @Size(max = 64, message = "加工班组长度不能超过 64") private String processingTeam; @Schema(description = "生产日期", requiredMode = Schema.RequiredMode.REQUIRED) @NotNull(message = "生产日期不能为空") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime produceDate; @Schema(description = "加工数量(原计划数量,页面展示为「加工数量」)", example = "1000") private BigDecimal planQuantity; @Schema(description = "责任人用户编号(责任落实到人)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "责任人不能为空") private Long ownerUserId; @Schema(description = "备注", example = "加急批次") private String remark; @Schema(description = "生产人员配置列表", requiredMode = Schema.RequiredMode.REQUIRED) @NotEmpty(message = "生产人员配置不能为空") @Valid private List workers; @Schema(description = "绑定托盘编号列表(可选;绑定时批次直接进入生产中,托盘下袋码级联录入本批次;新增/补录/编辑均可传入,编辑时仅需传本次新增勾选的托盘)") private List palletIds; @Schema(description = "生产人员配置") @Data public static class Worker { @Schema(description = "编号(更新时传入)", example = "1024") private Long id; @Schema(description = "生产人员用户编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "1") @NotNull(message = "生产人员不能为空") private Long userId; @Schema(description = "岗位类型(字典 mes_pro_batch_worker_type)", requiredMode = Schema.RequiredMode.REQUIRED, example = "10") @NotNull(message = "岗位类型不能为空") private Integer workerType; @Schema(description = "备注") private String remark; } }