saveReqVO.vm 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package ${basePackage}.module.${table.moduleName}.controller.${sceneEnum.basePackage}.${table.businessName}.vo;
  2. import io.swagger.v3.oas.annotations.media.Schema;
  3. import lombok.*;
  4. import java.util.*;
  5. import ${jakartaPackage}.validation.constraints.*;
  6. ## 处理 BigDecimal 字段的引入
  7. #foreach ($column in $columns)
  8. #if (${column.javaType} == "BigDecimal")
  9. import java.math.BigDecimal;
  10. #break
  11. #end
  12. #end
  13. ## 处理 LocalDateTime 字段的引入
  14. #foreach ($column in $columns)
  15. #if ((${column.createOperation} || ${column.updateOperation}) && ${column.javaType} == "LocalDateTime")
  16. import org.springframework.format.annotation.DateTimeFormat;
  17. import java.time.LocalDateTime;
  18. #break
  19. #end
  20. #end
  21. ## 特殊:主子表专属逻辑
  22. #foreach ($subTable in $subTables)
  23. import ${basePackage}.module.${subTable.moduleName}.dal.dataobject.${subTable.businessName}.${subTable.className}DO;
  24. #end
  25. @Schema(description = "${sceneEnum.name} - ${table.classComment}新增/修改 Request VO")
  26. @Data
  27. public class ${sceneEnum.prefixClass}${table.className}SaveReqVO {
  28. ## 逐个处理字段
  29. #foreach ($column in $columns)
  30. #if (${column.createOperation} || ${column.updateOperation})
  31. ## 1. 处理 Swagger 注解
  32. @Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end)
  33. ## 2. 处理 Validator 参数校验
  34. #if (!${column.nullable} && !${column.primaryKey})
  35. #if (${column.javaType} == 'String')
  36. @NotEmpty(message = "${column.columnComment}不能为空")
  37. #else
  38. @NotNull(message = "${column.columnComment}不能为空")
  39. #end
  40. #end
  41. ## 3. 处理字段定义
  42. private ${column.javaType} ${column.javaField};
  43. #end
  44. #end
  45. ## 特殊:主子表专属逻辑(非 ERP 模式)
  46. #if ( $subTables && $subTables.size() > 0 && $table.templateType != 11 )
  47. #foreach ($subTable in $subTables)
  48. #set ($index = $foreach.count - 1)
  49. #if ( $subTable.subJoinMany)
  50. @Schema(description = "${subTable.classComment}列表")
  51. private List<${subTable.className}DO> ${subClassNameVars.get($index)}s;
  52. #else
  53. @Schema(description = "${subTable.classComment}")
  54. private ${subTable.className}DO ${subClassNameVars.get($index)};
  55. #end
  56. #end
  57. #end
  58. }