use of com.albedo.java.modules.gen.domain.dto.TableColumnDto in project albedo by somowhere.
the class TableServiceImpl method getTableFormDb.
@Override
public TableDto getTableFormDb(TableDto tableDto) {
// 如果有表名,则获取物理表
if (StringUtil.isNotBlank(tableDto.getName())) {
List<TableDto> list = findTableListFormDb(tableDto);
if (list.size() > 0 && CollUtil.isEmpty(tableDto.getColumnList())) {
// 如果是新增,初始化表属性
if (ObjectUtil.isEmpty(tableDto.getId())) {
list.get(0).setDsName(tableDto.getDsName());
tableDto = list.get(0);
// 设置字段说明
if (StringUtil.isBlank(tableDto.getComments())) {
tableDto.setComments(tableDto.getName());
}
tableDto.setClassName(StringUtil.toCapitalizeCamelCase(tableDto.getName()));
}
// 添加新列
List<TableColumnDto> columnList = findTableColumnList(tableDto);
for (TableColumnDto column : columnList) {
boolean b = false;
for (TableColumnDto e : tableDto.getColumnList()) {
if (e.getName().equals(column.getName())) {
b = true;
break;
}
}
if (!b) {
tableDto.getColumnList().add(column);
}
}
// 删除已删除的列
for (TableColumnDto e : tableDto.getColumnList()) {
boolean b = false;
for (TableColumnDto column : columnList) {
if (column.getName().equals(e.getName())) {
b = true;
}
}
if (!b) {
e.setDelFlag(TableColumnDto.FLAG_DELETE);
}
}
// 获取主键
tableDto.setPkList(findTablePk(tableDto));
// 初始化列属性字段
GenUtil.initColumnField(tableDto);
}
}
return tableDto;
}
use of com.albedo.java.modules.gen.domain.dto.TableColumnDto in project albedo by somowhere.
the class GenUtil method initColumnField.
/**
* 初始化列属性字段
*
* @param table
*/
public static void initColumnField(TableDto table) {
for (TableColumnDto column : table.getColumnList()) {
// 如果是不是新增列,则跳过。
if (StringUtil.isNotBlank(column.getId())) {
continue;
}
// 设置字段说明
if (StringUtil.isBlank(column.getTitle())) {
column.setTitle(column.getName());
}
// 设置java类型
if (StringUtil.startWithIgnoreCase(column.getJdbcType(), "CHAR") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "VARCHAR") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "NARCHAR")) {
column.setJavaType(CommonConstants.TYPE_STRING);
} else if (StringUtil.startWithIgnoreCase(column.getJdbcType(), "DATETIME") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "DATE") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "TIMESTAMP")) {
column.setJavaType("java.util.Date");
column.setShowType("dateselect");
} else if (StringUtil.startWithIgnoreCase(column.getJdbcType(), "INT") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "TINYINT") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "BIGINT") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "NUMBER") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "DECIMAL") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "BIT") || StringUtil.startWithIgnoreCase(column.getJdbcType(), "DOUBLE")) {
// 如果是浮点型
List<String> ss = CharSequenceUtil.split(StringUtil.subBetween(column.getJdbcType(), StringUtil.BRACKETS_START, StringUtil.BRACKETS_END), StringUtil.SPLIT_DEFAULT);
if (ss != null && ss.size() == 2 && Integer.parseInt(ss.get(1)) > 0) {
column.setJavaType(CommonConstants.TYPE_DOUBLE);
} else // 如果是整形
if (ss != null && ss.size() == 1 && Integer.parseInt(ss.get(0)) <= 10) {
column.setJavaType(CommonConstants.TYPE_INTEGER);
} else // 长整形
{
column.setJavaType(CommonConstants.TYPE_LONG);
}
}
// 设置java字段名
column.setJavaFieldName(StringUtil.toCamelCase(column.getName()));
// 是否是主键
column.setPk(table.getPkList().contains(column.getName()));
// 插入字段
column.setInsertField(true);
if (column.getIsNotBaseField()) {
column.setListField(true);
column.setEditField(true);
}
// 查询字段
if (StringUtil.isEmpty(column.getShowType())) {
column.setShowType("input");
}
if (StringUtil.isEmpty(column.getQueryType())) {
column.setQueryType("eq");
}
if (StringUtil.isEmpty(column.getJavaType())) {
column.setJavaType("String");
}
initDataColumn(column);
initTreeColumn(column);
if (StringUtil.equalsIgnoreCase(column.getName(), TreeDo.F_TENANT_CODE)) {
column.setListField(false);
column.setEditField(false);
column.setNullField(false);
}
}
}
Aggregations