|
@@ -80,10 +80,6 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
|
|
|
for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
|
|
|
SQL += SQL_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
|
|
|
SQL += vo.getSearchFieldList().size() - 1 == i ? ")" : ",\n";
|
|
|
- SQL +=SQL_END;
|
|
|
- if(vo.getConditionDefaultValueMap()!=null&&vo.getConditionDefaultValueMap().size()>0){
|
|
|
- SQL += " AND "+vo.getSearchFieldList().get(i)+"="+vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
|
|
|
- }
|
|
|
}
|
|
|
break;
|
|
|
case "DM":
|
|
@@ -92,23 +88,54 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
|
|
|
for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
|
|
|
SQL += SQL_DM_SERVER_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
|
|
|
SQL += vo.getSearchFieldList().size() - 1 == i ? ",'')" : ",\n";
|
|
|
- SQL +=SQL_END;
|
|
|
}
|
|
|
break;
|
|
|
case "ORACLE":
|
|
|
for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
|
|
|
SQL += vo.getSearchFieldList().get(i);
|
|
|
SQL += (vo.getSearchFieldList().size() - 1 == i ? " " : "||");
|
|
|
- SQL +=SQL_END;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+ SQL += SQL_END;
|
|
|
String where = vo.getDtTableName() + ".del_flag = '0' AND "+ SQL;
|
|
|
vo.getTableSqlList().stream().forEach(t -> t.setTableCondition(where));
|
|
|
tableSqlMapper.batchInsertTableSql(vo.getTableSqlList());
|
|
|
return dragTableStatisticMapper.batchInsertDragTableStatistic(vo.getDragTableStatisticList());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public int batchInsertGroupDragTableStatistic(DragTableVo vo)
|
|
|
+ {
|
|
|
+ vo.getDragTableStatisticList().stream().
|
|
|
+ forEach(s -> {s.setCreateBy(SecurityUtils.getUserId().toString());});
|
|
|
+ // 拼接sql查询条件
|
|
|
+ String SQL = "";
|
|
|
+ switch (SecurityUtils.getDatabaseType().toUpperCase()) {
|
|
|
+ case "MYSQL":
|
|
|
+ //有拼接的统计条件值
|
|
|
+ for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
|
|
|
+ if (vo.getConditionDefaultValueMap() != null && vo.getConditionDefaultValueMap().size() > 0) {
|
|
|
+ SQL += " AND"+vo.getSearchFieldList().get(i) + "=" + vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "DM":
|
|
|
+ case "SQLSERVER":
|
|
|
+ break;
|
|
|
+ case "ORACLE":
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ String where = vo.getDtTableName() + ".del_flag = '0'"+ SQL;
|
|
|
+ vo.getTableSqlList().stream().forEach(t -> t.setTableCondition(where));
|
|
|
+ vo.getTableSqlList().forEach(item->{item.setDelFlag("0");});
|
|
|
+ tableSqlMapper.batchInsertTableSql(vo.getTableSqlList());
|
|
|
+ return dragTableStatisticMapper.batchInsertDragTableStatistic(vo.getDragTableStatisticList());
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional
|
|
|
public void updateDragTableStatistic(DragTableVo vo)
|
|
@@ -121,10 +148,6 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
|
|
|
for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
|
|
|
SQL += SQL_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
|
|
|
SQL += vo.getSearchFieldList().size() - 1 == i ? ")" : ",\n";
|
|
|
- SQL +=SQL_END;
|
|
|
- if(vo.getConditionDefaultValueMap()!=null&&vo.getConditionDefaultValueMap().size()>0){
|
|
|
- SQL += " AND "+vo.getSearchFieldList().get(i)+"="+vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
|
|
|
- }
|
|
|
}
|
|
|
break;
|
|
|
case "DM":
|
|
@@ -133,19 +156,17 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
|
|
|
for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
|
|
|
SQL += SQL_DM_SERVER_MIDDLE.replace("#{VAL}", vo.getSearchFieldList().get(i));
|
|
|
SQL += vo.getSearchFieldList().size() - 1 == i ? ",'')" : ",\n";
|
|
|
- SQL +=SQL_END;
|
|
|
}
|
|
|
break;
|
|
|
case "ORACLE":
|
|
|
for (int i = 0; vo.getSearchFieldList().size() > i; i++) {
|
|
|
SQL += vo.getSearchFieldList().get(i);
|
|
|
SQL += (vo.getSearchFieldList().size() - 1 == i ? " " : "||");
|
|
|
- SQL +=SQL_END;
|
|
|
}
|
|
|
break;
|
|
|
}
|
|
|
+ SQL += SQL_END;
|
|
|
String sql = vo.getDtTableName() + ".del_flag = '0' AND "+ SQL;
|
|
|
-
|
|
|
LinkedList<DragTableStatistic> addList = new LinkedList<>();
|
|
|
LinkedList<DragTableStatistic> editList = new LinkedList<>();
|
|
|
List<Long> numList = new ArrayList<>();
|
|
@@ -203,6 +224,95 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
|
|
|
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public void updateGroupDragTableStatistic(DragTableVo vo)
|
|
|
+ {
|
|
|
+
|
|
|
+ vo.getDragTableStatisticList().stream().
|
|
|
+ forEach(s -> {
|
|
|
+ s.setUpdateById(SecurityUtils.getUserId());
|
|
|
+ s.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ s.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ ;});
|
|
|
+ // 拼接sql查询条件
|
|
|
+ String SQL = "";
|
|
|
+ switch (SecurityUtils.getDatabaseType().toUpperCase()) {
|
|
|
+ case "MYSQL":
|
|
|
+ for (int i = 0; vo.getSearchFieldList().size() > i; i++){
|
|
|
+ if(vo.getConditionDefaultValueMap()!=null&&vo.getConditionDefaultValueMap().size()>0){
|
|
|
+ SQL += " AND "+vo.getSearchFieldList().get(i)+"="+vo.getConditionDefaultValueMap().get(vo.getSearchFieldList().get(i));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "DM":
|
|
|
+ case "SQLSERVER":
|
|
|
+ case "ORACLE":
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ String sql = vo.getDtTableName() + ".del_flag = '0'"+ SQL;
|
|
|
+ LinkedList<DragTableStatistic> addList = new LinkedList<>();
|
|
|
+ LinkedList<DragTableStatistic> editList = new LinkedList<>();
|
|
|
+ List<Long> numList = new ArrayList<>();
|
|
|
+ vo.getDragTableStatisticList().stream().forEach(s -> {
|
|
|
+ if(s.getId() == null){
|
|
|
+ s.setCreateById(SecurityUtils.getUserId());
|
|
|
+ s.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ s.setCreateTime(DateUtils.getNowDate());
|
|
|
+ addList.add(s);//新添加的
|
|
|
+ }else {
|
|
|
+ s.setUpdateById(SecurityUtils.getUserId());
|
|
|
+ s.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ s.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ editList.add(s); //修改的
|
|
|
+ }
|
|
|
+ numList.add(s.getId());
|
|
|
+ });
|
|
|
+ //select Statistic ids
|
|
|
+ List<Long> allIds = dragTableStatisticMapper.selectIdsByTableKey(vo.getTableKey());
|
|
|
+ allIds.removeAll(numList); //把所有的统计都给干掉
|
|
|
+ //remove Statistic
|
|
|
+ if(allIds.size() > 0){
|
|
|
+ dragTableStatisticMapper.deleteDragTableStatisticByIds(allIds);
|
|
|
+ }
|
|
|
+ //add Statistic
|
|
|
+ if(addList.size() > 0){
|
|
|
+ dragTableStatisticMapper.batchInsertDragTableStatistic(addList);
|
|
|
+ }
|
|
|
+ //update Statistic
|
|
|
+ if(editList.size() > 0){
|
|
|
+ editList.stream().forEach(e -> dragTableStatisticMapper.updateDragTableStatistic(e));
|
|
|
+ }
|
|
|
+ // select Statistic sqlKey
|
|
|
+ List<String> allSqlKey = dragTableStatisticMapper.selectSqlKeyByTableKey(vo.getTableKey());
|
|
|
+
|
|
|
+ if(vo.getTableSqlList().size() > 0){
|
|
|
+ vo.getTableSqlList().stream().forEach(t -> {
|
|
|
+ t.setCreateById(SecurityUtils.getUserId());
|
|
|
+ t.setCreateBy(SecurityUtils.getUsername());
|
|
|
+ t.setCreateTime(DateUtils.getNowDate());
|
|
|
+ t.setUpdateById(SecurityUtils.getUserId());
|
|
|
+ t.setUpdateBy(SecurityUtils.getUsername());
|
|
|
+ t.setUpdateTime(DateUtils.getNowDate());
|
|
|
+ t.setTableCondition(sql);
|
|
|
+ });
|
|
|
+ if(allSqlKey.size() > 0){
|
|
|
+ //remove tableSql
|
|
|
+ tableSqlMapper.deleteTableSqlBySqlKeys(allSqlKey);
|
|
|
+ }
|
|
|
+ //add tableSql
|
|
|
+ tableSqlMapper.batchInsertTableSql(vo.getTableSqlList());
|
|
|
+ }else {
|
|
|
+ if(allSqlKey.size() > 0){
|
|
|
+ //remove tableSql
|
|
|
+ tableSqlMapper.deleteTableSqlBySqlKeys(allSqlKey);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
@Override
|
|
|
public int deleteDragTableStatisticByTableKey(String tableKey)
|
|
|
{
|
|
@@ -244,10 +354,10 @@ public class DragTableStatisticServiceImpl implements IDragTableStatisticService
|
|
|
if(commonEntity.getQueryMap()!=null||commonEntity.getQueryMap().size()>0){
|
|
|
commonEntity.getQueryMap().forEach((k,v)->{
|
|
|
if(!k.equals("tableKey")){
|
|
|
- String replace = tableSql.getTableCondition().replace(k, v.toString());
|
|
|
+ String replace = tableSql.getTableCondition().replace(k, "'"+v.toString()+"'");
|
|
|
+ tableSql.setTableCondition(replace);
|
|
|
endSQLAtomic.set(replace);
|
|
|
}
|
|
|
-
|
|
|
});
|
|
|
}
|
|
|
String endSQL = endSQLAtomic.get().replace("#{val}", queryCriteriaValue);
|