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

[数据模型]

上级 6e686f5a
...@@ -34,6 +34,7 @@ public class GlobalExceptionHandler { ...@@ -34,6 +34,7 @@ public class GlobalExceptionHandler {
@ExceptionHandler(ApiException.class) @ExceptionHandler(ApiException.class)
public ResponseEntity errorMessage(ApiException e) { public ResponseEntity errorMessage(ApiException e) {
log.warn("[自定义异常] {}", e.toString()); log.warn("[自定义异常] {}", e.toString());
e.printStackTrace();
if (e.getResponseEntity() != null) { if (e.getResponseEntity() != null) {
return e.getResponseEntity(); return e.getResponseEntity();
} }
......
...@@ -64,7 +64,20 @@ public class ModelController { ...@@ -64,7 +64,20 @@ public class ModelController {
tableInfos = modelService.pageAllEntities(searchTableInfoVo); tableInfos = modelService.pageAllEntities(searchTableInfoVo);
return ResultUtil.success(tableInfos, "数据查询成功!"); 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 * @param searchColumnInfoVo
* @return java.util.List<com.tykj.workflowcore.model_layer.model.ColumnInfo> * @return java.util.List<com.tykj.workflowcore.model_layer.model.ColumnInfo>
...@@ -177,11 +190,11 @@ public class ModelController { ...@@ -177,11 +190,11 @@ public class ModelController {
@ApiOperation("编辑操作") @ApiOperation("编辑操作")
@PutMapping("/update") @PutMapping("/update")
public ResponseEntity updateTable(@RequestBody UpdateTableInfoVO updateTableInfoVO) { public ResponseEntity updateTable(@RequestBody UpdateTableInfoVO updateTableInfoVO) {
int i = modelService.updateTable(updateTableInfoVO); return modelService.updateTable(updateTableInfoVO);
if (i == 1) { // if (i == 1) {
return ResultUtil.success("", "修改成功!"); // return ResultUtil.success("", "修改成功!");
} // }
return ResultUtil.failed("业务类型不支持修改!"); // return ResultUtil.failed("业务不支持修改!");
} }
@ApiOperation("删除操作") @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; ...@@ -5,6 +5,7 @@ import com.tykj.datawarehouse.model.entity.ColumnInfo;
import com.tykj.datawarehouse.model.entity.TableInfo; import com.tykj.datawarehouse.model.entity.TableInfo;
import com.tykj.datawarehouse.model.entity.vo.*; import com.tykj.datawarehouse.model.entity.vo.*;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.sql.SQLException; import java.sql.SQLException;
...@@ -79,7 +80,7 @@ public interface ModelService { ...@@ -79,7 +80,7 @@ public interface ModelService {
*/ */
List<Map<String, Object>> findAllByName(String name) throws SQLException; 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 { ...@@ -105,7 +106,7 @@ public interface ModelService {
* @param updateTableInfoVO * @param updateTableInfoVO
* @return * @return
*/ */
int updateTable(UpdateTableInfoVO updateTableInfoVO); ResponseEntity updateTable(UpdateTableInfoVO updateTableInfoVO);
/** /**
......
...@@ -2,7 +2,9 @@ package com.tykj.datawarehouse.model.service.impl; ...@@ -2,7 +2,9 @@ package com.tykj.datawarehouse.model.service.impl;
import com.github.wenhao.jpa.PredicateBuilder; import com.github.wenhao.jpa.PredicateBuilder;
import com.github.wenhao.jpa.Specifications; import com.github.wenhao.jpa.Specifications;
import com.oscar.util.OSQLException;
import com.tykj.datawarehouse.base.result.ApiException; 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.ColumnInfoDao;
import com.tykj.datawarehouse.model.dao.QuoteDao; import com.tykj.datawarehouse.model.dao.QuoteDao;
import com.tykj.datawarehouse.model.dao.RuleDao; import com.tykj.datawarehouse.model.dao.RuleDao;
...@@ -28,10 +30,14 @@ import org.hibernate.type.*; ...@@ -28,10 +30,14 @@ import org.hibernate.type.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.env.Environment; import org.springframework.core.env.Environment;
import org.springframework.data.domain.Page; import org.springframework.data.domain.Page;
import org.springframework.http.ResponseEntity;
import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.sql.SQLException;
import java.sql.SQLNonTransientException;
import java.sql.SQLSyntaxErrorException;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.ZoneId; import java.time.ZoneId;
...@@ -101,8 +107,8 @@ public class ModelImpl implements ModelService { ...@@ -101,8 +107,8 @@ public class ModelImpl implements ModelService {
private PredicateBuilder<TableInfo> createPredicateBySearchTableInfoVo(SearchTableInfoVo stv) { private PredicateBuilder<TableInfo> createPredicateBySearchTableInfoVo(SearchTableInfoVo stv) {
PredicateBuilder<TableInfo> and = Specifications.and(); PredicateBuilder<TableInfo> and = Specifications.and();
if (stv != null) { if ( !isNull(stv)) {
and.like(!isNull(stv.getModelName().toUpperCase()) && isNotEmpty(stv.getModelName().toUpperCase()), "modelName", "%" + stv.getModelName().toUpperCase() + "%"); and.like(!isNull(stv.getModelName()) && isNotEmpty(stv.getModelName()), "modelName", "%" + stv.getModelName() + "%");
and.like(!isNull(stv.getModelTitle()) && isNotEmpty(stv.getModelTitle()), "modelTitle", "%" + stv.getModelTitle() + "%"); 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.getModelType()) && stv.getModelType().length > 0, "modelType", stv.getModelType());
and.in(!isNull(stv.getIds()) && stv.getIds().length > 0, "id", stv.getIds()); and.in(!isNull(stv.getIds()) && stv.getIds().length > 0, "id", stv.getIds());
...@@ -278,6 +284,7 @@ public class ModelImpl implements ModelService { ...@@ -278,6 +284,7 @@ public class ModelImpl implements ModelService {
//验证 //验证
validationAllRuleAndQuote(tableInfo, value, propertyType, propertyNames[i]); validationAllRuleAndQuote(tableInfo, value, propertyType, propertyNames[i]);
} }
session.saveOrUpdate(tableName, map); session.saveOrUpdate(tableName, map);
} }
...@@ -314,6 +321,24 @@ public class ModelImpl implements ModelService { ...@@ -314,6 +321,24 @@ public class ModelImpl implements ModelService {
} }
return new ArrayList<>(); 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 @Override
public CustomPage complexQueryWithGroup(String tableName, GroupCondition groupCondition, List<String> columnNames, List<QueryCondition> queryConditions, String groupByColumn, Integer page, Integer size) { 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 { ...@@ -358,7 +383,7 @@ public class ModelImpl implements ModelService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public int updateTable(UpdateTableInfoVO updateTableInfoVO) { public ResponseEntity updateTable(UpdateTableInfoVO updateTableInfoVO) {
//tableInfo和columnInfo变化 //tableInfo和columnInfo变化
//查询到TableInfo和ColumnInfo //查询到TableInfo和ColumnInfo
TableVO tableVO = updateTableInfoVO.getTableVO(); TableVO tableVO = updateTableInfoVO.getTableVO();
...@@ -372,8 +397,6 @@ public class ModelImpl implements ModelService { ...@@ -372,8 +397,6 @@ public class ModelImpl implements ModelService {
tableInfo.setDescription(tableVO.getDescription()); tableInfo.setDescription(tableVO.getDescription());
tableInfo.setModelTitle(tableVO.getModelTitle()); tableInfo.setModelTitle(tableVO.getModelTitle());
String xml = createTable(tableVO);
tableInfo.setXml(xml);
List<ColumnInfo> originalColumnInfos = columnInfoDao.findAllByDbId(dbId); List<ColumnInfo> originalColumnInfos = columnInfoDao.findAllByDbId(dbId);
//新的字段信息 //新的字段信息
...@@ -387,8 +410,19 @@ public class ModelImpl implements ModelService { ...@@ -387,8 +410,19 @@ public class ModelImpl implements ModelService {
for (String sql : sqls) { for (String sql : sqls) {
try { try {
jdbcTemplate.execute(sql); 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 { ...@@ -407,10 +441,12 @@ public class ModelImpl implements ModelService {
columnInfoDao.delete(originColumnInfo); columnInfoDao.delete(originColumnInfo);
} }
String xml = createTable(tableVO);
tableInfo.setXml(xml);
tableInfoDao.save(tableInfo); tableInfoDao.save(tableInfo);
sessionUtil.addXml(xml); sessionUtil.addXml(xml);
return 1; return ResultUtil.success("修改成功!");
} }
......
...@@ -3,6 +3,9 @@ package com.tykj.datawarehouse.model.sqlType; ...@@ -3,6 +3,9 @@ package com.tykj.datawarehouse.model.sqlType;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/**
* @author HASEE
*/
public class MysqlSqlType { public class MysqlSqlType {
/** /**
......
...@@ -3,6 +3,9 @@ package com.tykj.datawarehouse.model.sqlType; ...@@ -3,6 +3,9 @@ package com.tykj.datawarehouse.model.sqlType;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
/**
* @author HASEE
*/
public class OscarSqlType { public class OscarSqlType {
/** /**
...@@ -20,7 +23,7 @@ public class OscarSqlType { ...@@ -20,7 +23,7 @@ public class OscarSqlType {
TYPE_MAP.put("java.lang.Character", "char(1)"); TYPE_MAP.put("java.lang.Character", "char(1)");
TYPE_MAP.put("java.lang.String", "varchar"); TYPE_MAP.put("java.lang.String", "varchar");
TYPE_MAP.put("java.lang.Byte", "tinyint"); 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.lang.Class", "varchar");
TYPE_MAP.put("java.util.Date", "date"); TYPE_MAP.put("java.util.Date", "date");
TYPE_MAP.put("java.util.Calendar", "timestamp"); TYPE_MAP.put("java.util.Calendar", "timestamp");
......
...@@ -84,7 +84,7 @@ public class SessionUtil { ...@@ -84,7 +84,7 @@ public class SessionUtil {
} }
public void deleteTableInMeteData(String tableName){ public void deleteTableInMeteData(String tableName){
Integer needDelete = -1; int needDelete = -1;
List<Binding> xmlBindings = metadataSources.getXmlBindings(); List<Binding> xmlBindings = metadataSources.getXmlBindings();
for (int i = 0; i < xmlBindings.size(); i++) { for (int i = 0; i < xmlBindings.size(); i++) {
Object root = xmlBindings.get(i).getRoot(); Object root = xmlBindings.get(i).getRoot();
...@@ -103,6 +103,7 @@ public class SessionUtil { ...@@ -103,6 +103,7 @@ public class SessionUtil {
if (needDelete>-1){ if (needDelete>-1){
xmlBindings.remove(needDelete); xmlBindings.remove(needDelete);
} }
System.out.println("1");
} }
} }
...@@ -6,6 +6,9 @@ import com.tykj.datawarehouse.model.sqlType.OscarSqlType; ...@@ -6,6 +6,9 @@ import com.tykj.datawarehouse.model.sqlType.OscarSqlType;
import java.util.Map; import java.util.Map;
/**
* @author HASEE
*/
public class SqlTypeUtil { public class SqlTypeUtil {
public static Map<String, String> getSqlTypeMap(String driveName){ public static Map<String, String> getSqlTypeMap(String driveName){
......
package com.tykj.datawarehouse; package com.tykj.datawarehouse;
import com.oscar.util.OSQLException;
import com.tykj.datawarehouse.model.dao.RuleDao; import com.tykj.datawarehouse.model.dao.RuleDao;
import org.assertj.core.util.Lists;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
...@@ -22,9 +24,11 @@ class DataTestApplicationTests { ...@@ -22,9 +24,11 @@ class DataTestApplicationTests {
// boolean matches = pattern.matcher(str).matches(); // boolean matches = pattern.matcher(str).matches();
// //
// System.out.println(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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论