saveReqVO.vm 2.2 KB

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