提交 9e3ded72 authored 作者: ww1xhqc's avatar ww1xhqc

[数据模型]

上级 6e686f5a
......@@ -34,6 +34,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(ApiException.class)
public ResponseEntity errorMessage(ApiException e) {
log.warn("[自定义异常] {}", e.toString());
e.printStackTrace();
if (e.getResponseEntity() != null) {
return e.getResponseEntity();
}
......
......@@ -64,7 +64,20 @@ public class ModelController {
tableInfos = modelService.pageAllEntities(searchTableInfoVo);
return ResultUtil.success(tableInfos, "数据查询成功!");
}
/**
* @return org.springframework.http.ResponseEntity
* @Author WWW
* @Description 根据表名查询所有数据
* @Date 9:30 2021/3/11
**/
@ApiOperation("根据表名查询所有数据")
@PostMapping("/getAll")
public ResponseEntity getAll(@RequestBody SearchAllVO searchAllVO) throws SQLException {
if (searchAllVO.getOrderConditions() != null && searchAllVO.getOrderConditions().size() > 0) {
return ResultUtil.success(modelService.findAllByName(searchAllVO.getTableName(), searchAllVO.getOrderConditions()), "查询成功!");
}
return ResultUtil.success(modelService.findAllByName(searchAllVO.getTableName()), "查询成功!");
}
/**
* @param searchColumnInfoVo
* @return java.util.List<com.tykj.workflowcore.model_layer.model.ColumnInfo>
......@@ -177,11 +190,11 @@ public class ModelController {
@ApiOperation("编辑操作")
@PutMapping("/update")
public ResponseEntity updateTable(@RequestBody UpdateTableInfoVO updateTableInfoVO) {
int i = modelService.updateTable(updateTableInfoVO);
if (i == 1) {
return ResultUtil.success("", "修改成功!");
}
return ResultUtil.failed("业务类型不支持修改!");
return modelService.updateTable(updateTableInfoVO);
// if (i == 1) {
// return ResultUtil.success("", "修改成功!");
// }
// return ResultUtil.failed("业务不支持修改!");
}
@ApiOperation("删除操作")
......
package com.tykj.datawarehouse.model.entity.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/9 17:03
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class OrderCondition {
@ApiModelProperty("列")
private String columns;
@ApiModelProperty("排序")
private String sortValue;
}
package com.tykj.datawarehouse.model.entity.vo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.List;
/**
* @Description TODO
* @Author WWW
* @Date 2021/6/9 19:24
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
public class SearchAllVO {
private String tableName;
List<OrderCondition> orderConditions;
}
......@@ -5,6 +5,7 @@ import com.tykj.datawarehouse.model.entity.ColumnInfo;
import com.tykj.datawarehouse.model.entity.TableInfo;
import com.tykj.datawarehouse.model.entity.vo.*;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional;
import java.sql.SQLException;
......@@ -79,7 +80,7 @@ public interface ModelService {
*/
List<Map<String, Object>> findAllByName(String name) throws SQLException;
List<Map<String, Object>> findAllByName(String name,List<OrderCondition> orderConditions) ;
/**
* 复杂查询
*
......@@ -105,7 +106,7 @@ public interface ModelService {
* @param updateTableInfoVO
* @return
*/
int updateTable(UpdateTableInfoVO updateTableInfoVO);
ResponseEntity updateTable(UpdateTableInfoVO updateTableInfoVO);
/**
......
......@@ -2,7 +2,9 @@ package com.tykj.datawarehouse.model.service.impl;
import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications;
import com.oscar.util.OSQLException;
import com.tykj.datawarehouse.base.result.ApiException;
import com.tykj.datawarehouse.base.result.ResultUtil;
import com.tykj.datawarehouse.model.dao.ColumnInfoDao;
import com.tykj.datawarehouse.model.dao.QuoteDao;
import com.tykj.datawarehouse.model.dao.RuleDao;
......@@ -28,10 +30,14 @@ import org.hibernate.type.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment;
import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.sql.SQLException;
import java.sql.SQLNonTransientException;
import java.sql.SQLSyntaxErrorException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.time.ZoneId;
......@@ -101,8 +107,8 @@ public class ModelImpl implements ModelService {
private PredicateBuilder<TableInfo> createPredicateBySearchTableInfoVo(SearchTableInfoVo stv) {
PredicateBuilder<TableInfo> and = Specifications.and();
if (stv != null) {
and.like(!isNull(stv.getModelName().toUpperCase()) && isNotEmpty(stv.getModelName().toUpperCase()), "modelName", "%" + stv.getModelName().toUpperCase() + "%");
if ( !isNull(stv)) {
and.like(!isNull(stv.getModelName()) && isNotEmpty(stv.getModelName()), "modelName", "%" + stv.getModelName() + "%");
and.like(!isNull(stv.getModelTitle()) && isNotEmpty(stv.getModelTitle()), "modelTitle", "%" + stv.getModelTitle() + "%");
and.in(!isNull(stv.getModelType()) && stv.getModelType().length > 0, "modelType", stv.getModelType());
and.in(!isNull(stv.getIds()) && stv.getIds().length > 0, "id", stv.getIds());
......@@ -164,7 +170,7 @@ public class ModelImpl implements ModelService {
, tableInfo.getModelName().toUpperCase()
, tableInfo.getId()
, columnVO.getDescription()
);
);
ColumnInfo save = columnInfoDao.save(columnInfo);
/***/
// List<Quote> quoteList = columnVO.getQuoteList();
......@@ -278,6 +284,7 @@ public class ModelImpl implements ModelService {
//验证
validationAllRuleAndQuote(tableInfo, value, propertyType, propertyNames[i]);
}
session.saveOrUpdate(tableName, map);
}
......@@ -314,6 +321,24 @@ public class ModelImpl implements ModelService {
}
return new ArrayList<>();
}
@Override
public List<Map<String, Object>> findAllByName(String name, List<OrderCondition> orderConditions) {
StringBuilder sb = new StringBuilder();
if (StringUtils.isNotEmpty(name)) {
if (orderConditions.size() > 0) {
for (OrderCondition orderCondition : orderConditions) {
sb.append(orderCondition.getColumns() + " " + orderCondition.getSortValue() + " ,");
}
}
String sql = sb.substring(0, sb.toString().lastIndexOf(","));
try {
return jdbcTemplate.queryForList("select * from " + name + " order by " + sql);
}catch (Exception e){
throw new ApiException("操作数据库失败,请联系管理员");
}
}
return new ArrayList<>();
}
@Override
public CustomPage complexQueryWithGroup(String tableName, GroupCondition groupCondition, List<String> columnNames, List<QueryCondition> queryConditions, String groupByColumn, Integer page, Integer size) {
......@@ -358,7 +383,7 @@ public class ModelImpl implements ModelService {
@Override
@Transactional(rollbackFor = Exception.class)
public int updateTable(UpdateTableInfoVO updateTableInfoVO) {
public ResponseEntity updateTable(UpdateTableInfoVO updateTableInfoVO) {
//tableInfo和columnInfo变化
//查询到TableInfo和ColumnInfo
TableVO tableVO = updateTableInfoVO.getTableVO();
......@@ -372,8 +397,6 @@ public class ModelImpl implements ModelService {
tableInfo.setDescription(tableVO.getDescription());
tableInfo.setModelTitle(tableVO.getModelTitle());
String xml = createTable(tableVO);
tableInfo.setXml(xml);
List<ColumnInfo> originalColumnInfos = columnInfoDao.findAllByDbId(dbId);
//新的字段信息
......@@ -387,8 +410,19 @@ public class ModelImpl implements ModelService {
for (String sql : sqls) {
try {
jdbcTemplate.execute(sql);
} catch (Exception e) {
throw new ApiException("sql执行错误" + e.getMessage());
}
catch (Exception exception) {
//todo
throw new ApiException("出错");
// if (exception instanceof OSQLException) {
// String error = exception.getMessage();
// error.substring(error.lastIndexOf(":"));
// return ResultUtil.failed("已有数据类型不能转换"+error);
// }
// if (exception instanceof SQLSyntaxErrorException) {
// return ResultUtil.failed("sql语法错误"+ exception.getMessage());
// }
}
}
......@@ -407,10 +441,12 @@ public class ModelImpl implements ModelService {
columnInfoDao.delete(originColumnInfo);
}
String xml = createTable(tableVO);
tableInfo.setXml(xml);
tableInfoDao.save(tableInfo);
sessionUtil.addXml(xml);
return 1;
return ResultUtil.success("修改成功!");
}
......
......@@ -3,6 +3,9 @@ package com.tykj.datawarehouse.model.sqlType;
import java.util.HashMap;
import java.util.Map;
/**
* @author HASEE
*/
public class MysqlSqlType {
/**
......
......@@ -3,6 +3,9 @@ package com.tykj.datawarehouse.model.sqlType;
import java.util.HashMap;
import java.util.Map;
/**
* @author HASEE
*/
public class OscarSqlType {
/**
......@@ -20,7 +23,7 @@ public class OscarSqlType {
TYPE_MAP.put("java.lang.Character", "char(1)");
TYPE_MAP.put("java.lang.String", "varchar");
TYPE_MAP.put("java.lang.Byte", "tinyint");
TYPE_MAP.put("java.lang.Boolean", "number(1)");
TYPE_MAP.put("java.lang.Boolean", "BOOL");
TYPE_MAP.put("java.lang.Class", "varchar");
TYPE_MAP.put("java.util.Date", "date");
TYPE_MAP.put("java.util.Calendar", "timestamp");
......
......@@ -84,7 +84,7 @@ public class SessionUtil {
}
public void deleteTableInMeteData(String tableName){
Integer needDelete = -1;
int needDelete = -1;
List<Binding> xmlBindings = metadataSources.getXmlBindings();
for (int i = 0; i < xmlBindings.size(); i++) {
Object root = xmlBindings.get(i).getRoot();
......@@ -103,6 +103,7 @@ public class SessionUtil {
if (needDelete>-1){
xmlBindings.remove(needDelete);
}
System.out.println("1");
}
}
......@@ -6,6 +6,9 @@ import com.tykj.datawarehouse.model.sqlType.OscarSqlType;
import java.util.Map;
/**
* @author HASEE
*/
public class SqlTypeUtil {
public static Map<String, String> getSqlTypeMap(String driveName){
......
package com.tykj.datawarehouse;
import com.oscar.util.OSQLException;
import com.tykj.datawarehouse.model.dao.RuleDao;
import org.assertj.core.util.Lists;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
......@@ -22,9 +24,11 @@ class DataTestApplicationTests {
// boolean matches = pattern.matcher(str).matches();
//
// System.out.println(matches);
System.out.println(ruleDao.findAllByColumnId(71));
// System.out.println(ruleDao.findAllByColumnId(71));
String error="StatementCallback; SQL [ALTER TABLE TB1 MODIFY HAP DOUBLE PRECISION ;]; ERROR, Bad float8 input format 'q1 '\n" +
"; nested exception is com.oscar.util.: ERROR, Bad float8 input format 'q1 '";
System.out.println(error.substring(error.lastIndexOf(":")));
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论