package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; import ${jakartaPackage}.validation.constraints.*; ## 处理 BigDecimal 字段的引入 #foreach ($column in $columns) #if (${column.javaType} == "BigDecimal") import java.math.BigDecimal; #break #end #end ## 处理 LocalDateTime 字段的引入 #foreach ($column in $columns) #if ((${column.createOperation} || ${column.updateOperation}) && ${column.javaType} == "LocalDateTime") import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; #break #end #end ## 特殊:主子表专属逻辑 #foreach ($subTable in $subTables) import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO; #end @Schema(description = "${sceneEnum.name} - ${table.classComment}新增/修改 Request VO") @Data public class ${sceneEnum.prefixClass}${table.className}SaveReqVO { ## 逐个处理字段 #foreach ($column in $columns) #if (${column.createOperation} || ${column.updateOperation}) ## 1. 处理 Swagger 注解 @Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end) ## 2. 处理 Validator 参数校验 #if (!${column.nullable} && !${column.primaryKey}) #if (${column.javaType} == 'String') @NotEmpty(message = "${column.columnComment}不能为空") #else @NotNull(message = "${column.columnComment}不能为空") #end #end ## 3. 处理字段定义 private ${column.javaType} ${column.javaField}; #end #end ## 特殊:主子表专属逻辑(非 ERP 模式) #if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 ) #foreach ($subTable in $subTables) #set ($index = $foreach.count - 1) #if ( $subTable.subJoinMany) @Schema(description = "${subTable.classComment}列表") private List<${subTable.className}DO> ${subClassNameVars.get($index)}s; #else @Schema(description = "${subTable.classComment}") private ${subTable.className}DO ${subClassNameVars.get($index)}; #end #end #end }