| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- package ${basePackage}.module.${table.moduleName}.dal.dataobject.${table.businessName};
- import lombok.*;
- import java.util.*;
- #foreach ($column in $columns)
- #if (${column.javaType} == "BigDecimal")
- import java.math.BigDecimal;
- #end
- #if (${column.javaType} == "LocalDateTime")
- import java.time.LocalDateTime;
- #end
- #end
- import com.baomidou.mybatisplus.annotation.*;
- import ${BaseDOClassName};
- ## 处理 Excel 导出 + Schema 注解(仅 DO 模式)
- #if ($voType == 20)
- import io.swagger.v3.oas.annotations.media.Schema;
- import cn.idev.excel.annotation.*;
- #foreach ($column in $columns)
- #if ("$!column.dictType" != "")## 有设置数据字典
- import ${DictFormatClassName};
- import ${DictConvertClassName};
- #break
- #end
- #end
- #end
- /**
- * ${table.classComment} DO
- *
- * @author ${table.author}
- */
- @TableName("${table.tableName.toLowerCase()}")
- @KeySequence("${table.tableName.toLowerCase()}_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
- @Data
- @EqualsAndHashCode(callSuper = true)
- @ToString(callSuper = true)
- @Builder
- @NoArgsConstructor
- @AllArgsConstructor
- ## 处理 Excel 导出 + Schema 注解(仅 DO 模式)
- #if ($voType == 20)
- @Schema(description = "${sceneEnum.name} - ${table.classComment} Response VO")
- @ExcelIgnoreUnannotated
- #end
- public class ${table.className}DO extends BaseDO {
- ## 特殊:树表专属逻辑
- #if ( $table.templateType == 2 )
- public static final Long ${treeParentColumn_javaField_underlineCase.toUpperCase()}_ROOT = 0L;
- #end
- #foreach ($column in $columns)
- #if (!${baseDOFields.contains(${column.javaField})})##排除 BaseDO 的字段
- /**
- * ${column.columnComment}
- #if ("$!column.dictType" != "")##处理枚举值
- *
- * 枚举 {@link TODO ${column.dictType} 对应的类}
- #end
- */
- #if (${column.primaryKey})##处理主键
- @TableId#if (${column.javaType} == 'String')(type = IdType.INPUT)#end
- #end
- #if ($voType == 20)
- ## 1. 处理 Swagger 注解
- @Schema(description = "${column.columnComment}"#if (!${column.nullable}), requiredMode = Schema.RequiredMode.REQUIRED#end#if ("$!column.example" != ""), example = "${column.example}"#end)
- ## 2. 处理 Excel 导出
- #if ("$!column.dictType" != "")##处理枚举值
- @ExcelProperty(value = "${column.columnComment}", converter = DictConvert.class)
- @DictFormat("${column.dictType}") // TODO 代码优化:建议设置到对应的 DictTypeConstants 枚举类中
- #else
- @ExcelProperty("${column.columnComment}")
- #end
- #end
- ## 3. 处理字段定义
- private ${column.javaType} ${column.javaField};
- #end
- #end
- ## 特殊:主子表专属逻辑(非 ERP 模式)
- #if ( $voType == 20 && $subTables && $subTables.size() > 0 && $table.templateType != 11 )
- #foreach ($subTable in $subTables)
- #set ($index = $foreach.count - 1)
- #if ( $subTable.subJoinMany)
- /**
- * ${subTable.classComment}列表
- */
- @Schema(description = "${subTable.classComment}列表")
- @TableField(exist = false)
- private List<${subTable.className}DO> ${subClassNameVars.get($index)}s;
- #else
- /**
- * ${subTable.classComment}
- */
- @Schema(description = "${subTable.classComment}")
- @TableField(exist = false)
- private ${subTable.className}DO ${subClassNameVars.get($index)};
- #end
- #end
- #end
- }
|