Merge remote-tracking branch 'origin/master'

This commit is contained in:
clay 2022-07-19 21:47:57 +08:00
commit 197073ab4c
17 changed files with 224 additions and 69 deletions

View File

@ -4,14 +4,18 @@ import com.ebts.common.core.controller.BaseController;
import com.ebts.common.core.entity.Result;
import com.ebts.common.utils.MapExcelUtil;
import com.ebts.system.entity.RealUniQuery;
import com.ebts.system.entity.RelColumnInfo;
import com.ebts.system.entity.vo.RealInfo;
import com.ebts.system.service.RealQueryService;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @Author 18209
@ -34,8 +38,15 @@ public class RealQueryController extends BaseController {
@PutMapping("/real/export")
public Result<Map<String, Object>> exportReal(@Validated @RequestBody RealUniQuery realUniQuery) {
Result<List<Map<String, Object>>> result = realQueryService.RealData(realUniQuery, 1);
List<RelColumnInfo> infoList = realQueryService.getInfoList(realUniQuery.getId());
if (result.isSuccess()) {
return new MapExcelUtil().exportExcel(result.getData(), result.getMsg());
List<Map<String,String>> infoMap = infoList.stream().map(info->{
Map<String,String> map = new HashMap<>();
map.put("label",info.getLabel());
map.put("prop",info.getProp());
return map;
}).collect(Collectors.toList());
return new MapExcelUtil().exportExcel(result.getData(), result.getMsg(),infoMap);
} else {
return Result.error(result.getMsg());
}
@ -48,7 +59,7 @@ public class RealQueryController extends BaseController {
* @return
*/
@GetMapping("/real/{id}")
public Result<List<RealUniQuery>> RealInfo(@PathVariable("id") Long id) {
public Result<RealInfo> RealInfo(@PathVariable("id") Long id) {
if (id == null) {
return Result.error("id不能为空!");
}

View File

@ -71,14 +71,15 @@ public class BaseController {
* 响应请求分页数据
*/
@SuppressWarnings({"rawtypes", "unchecked"})
protected TableDataTop getDataTable(List<?> list, List<?> uconList) {
TableDataTop rspData = new TableDataTop();
rspData.setCode(HttpStatus.SUCCESS);
rspData.setMsg("查询成功");
rspData.setRows(list);
rspData.setUconList(uconList);
rspData.setTotal(new PageInfo(list).getTotal());
return rspData;
protected TableDataTop getDataTable(List<?> list, List<?> uconList,List<?> infoList) {
TableDataTop dataTop = new TableDataTop();
dataTop.setCode(HttpStatus.SUCCESS);
dataTop.setMsg("查询成功");
dataTop.setRows(list);
dataTop.setUconList(uconList);
dataTop.setInfoList(infoList);
dataTop.setTotal(new PageInfo(list).getTotal());
return dataTop;
}
/**

View File

@ -23,6 +23,8 @@ public class TableDataTop implements Serializable {
private List<?> uconList;
private List<?> infoList;
/**
* 消息状态码
*/
@ -90,4 +92,12 @@ public class TableDataTop implements Serializable {
public void setMsg(String msg) {
this.msg = msg;
}
public List<?> getInfoList() {
return infoList;
}
public void setInfoList(List<?> infoList) {
this.infoList = infoList;
}
}

View File

@ -55,7 +55,8 @@ public class MapExcelUtil {
/**
* 注解列表
*/
private List<String> herders;
private List<Map<String, String>> herders;
/**
* 对list数据源将其里面的数据导入到excel表单
@ -69,14 +70,21 @@ public class MapExcelUtil {
return exportExcel();
}
public <T>Result<T> exportExcel(List<Map<String, Object>> list, String sheetName,List<Map<String,String>> infoMap) {
this.herders = infoMap;
this.init(list, sheetName);
return exportExcel();
}
public void init(List<Map<String, Object>> list, String sheetName) {
public void init(List<Map<String, Object>> list, String sheetName) {
if (list == null) {
list = new ArrayList<Map<String, Object>>();
}
this.list = list;
this.sheetName = sheetName;
createExcelField();
createWorkbook();
}
@ -87,18 +95,6 @@ public class MapExcelUtil {
this.wb = new SXSSFWorkbook(500);
}
/**
* 得到所有定义字段
*/
private void createExcelField() {
this.herders = new ArrayList<String>();
Map<String, Object> modeMap = this.list.get(0);
for (String key : modeMap.keySet()) {
this.herders.add(key);
}
}
/**
* 创建表格样式
@ -182,10 +178,14 @@ public class MapExcelUtil {
row = sheet.createRow(i + 1 - startNo);
//获取内容
int k = 0;
for (String key : herders) {
for (Map<String, String> herder : herders) {
// 填充单元格的值
this.addCell(row, key, i, k++);
this.addCell(row, herder.get("prop"), i, k++);
}
// for (String key : herders) {
// // 填充单元格的值
// this.addCell(row, key, i, k++);
// }
}
}
@ -262,10 +262,13 @@ public class MapExcelUtil {
Row row = sheet.createRow(0);
int column = 0;
// 写入各个字段的列头名称
for (String herder : herders) {
for (Map<String, String> herder : herders) {
//设置列名称
this.createCell(row, herder, column++);
this.createCell(row, herder.get("label"), column++);
}
// for (String herder : herders) {
// this.createCell(row, herder, column++);
// }
fillExcelData(index, row);
}
String filename = encodingFilename(sheetName);
@ -292,5 +295,4 @@ public class MapExcelUtil {
}
}
}
}

View File

@ -13,6 +13,7 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.io.Serializable;
import java.util.Map;
@ -84,10 +85,16 @@ public class TopQueryController extends BaseController {
@PreAuthorize("@ebts.hasPermi('top:preview')")
@Log(title = "top预览", businessType = BusinessType.OTHER)
@PostMapping("/preview")
public Result<TopResult> preview(@RequestBody Map<String, String> params) {
if (StringUtils.isNull(params.get("jsonData"))) {
public Serializable preview(@RequestBody Map<String, String> params) {
if (StringUtils.isNull(params.get("jsonData"))||StringUtils.isNull(params.get("id"))) {
return Result.error("缺少必要参数!");
}
return topQueryService.preview(params.get("jsonData"), params.get("id"));
Result<TopResult> result = topQueryService.preview(params.get("jsonData"), params.get("id"));
if (result.isSuccess()){
TopResult data = result.getData();
return getDataTable(data.getDataMap(),data.getUniCons(),data.getInfoList());
}else {
return Result.error(result.getMsg());
}
}
}

View File

@ -1,5 +1,6 @@
package com.ebts.generator.dto;
import com.ebts.generator.entity.UniColumnInfo;
import com.ebts.generator.entity.UniCon;
import java.util.List;
@ -14,11 +15,13 @@ import java.util.Map;
public class TopResult {
private List<Map<String, Object>> dataMap;
private List<UniCon> uniCons;
private List<UniColumnInfo> infoList;
public TopResult(List<Map<String, Object>> dataMap, List<UniCon> uniCons) {
public TopResult(List<Map<String, Object>> dataMap, List<UniCon> uniCons,List<UniColumnInfo> infoList) {
this.dataMap = dataMap;
this.uniCons = uniCons;
this.infoList = infoList;
}
public List<Map<String, Object>> getDataMap() {
@ -36,4 +39,12 @@ public class TopResult {
public void setUniCons(List<UniCon> uniCons) {
this.uniCons = uniCons;
}
public List<UniColumnInfo> getInfoList() {
return infoList;
}
public void setInfoList(List<UniColumnInfo> infoList) {
this.infoList = infoList;
}
}

View File

@ -53,9 +53,9 @@ public class TopNode {
tableSQL.append(", ");
}
tableSQL.append(this.relTable).append(".").append(column.getString("columnName"));
if (StringUtils.isNotNull(column.getString("columnComment"))) {
tableSQL.append(" as ").append("'").append(column.getString("columnComment")).append("'");
}
// if (StringUtils.isNotNull(column.getString("columnComment"))) {
// tableSQL.append(" as ").append("'").append(column.getString("columnComment")).append("'");
// }
start = true;
}

View File

@ -1,5 +1,6 @@
package com.ebts.generator.entity;
import com.ebts.common.utils.StringUtils;
import lombok.Builder;
import lombok.Data;
@ -10,6 +11,19 @@ public class UniColumnInfo {
private String prop;
private String label;
public UniColumnInfo() {
}
public UniColumnInfo(long queryId,String prop, String label) {
this.queryId = queryId;
if (StringUtils.isNull(label)){
this.label = prop;
}else {
this.label = label;
}
this.prop = prop;
}
public long getQueryId() {
return queryId;
}

View File

@ -6,10 +6,7 @@ import com.alibaba.fastjson.JSONObject;
import com.ebts.common.core.entity.Result;
import com.ebts.common.utils.SecurityUtils;
import com.ebts.common.utils.ServerResult;
import com.ebts.generator.dao.QueryDao;
import com.ebts.generator.dao.RelationalMapDao;
import com.ebts.generator.dao.TopSearchTableDao;
import com.ebts.generator.dao.UniQueryDao;
import com.ebts.generator.dao.*;
import com.ebts.generator.dto.TopResult;
import com.ebts.generator.entity.*;
import com.ebts.generator.service.TopQueryService;
@ -23,6 +20,7 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
* @author: Clay
@ -41,6 +39,8 @@ public class TopQueryServiceImpl implements TopQueryService {
private QueryDao queryDao;
@Resource
private UniQueryDao uniQueryDao;
@Resource
private UniColumnInfoDao uniColumnInfoDao;
@Override
public Map<String, Object> selectTopSearchTables() {
@ -65,6 +65,8 @@ public class TopQueryServiceImpl implements TopQueryService {
if (topNodes.size() == 0) {
return Result.error("top图结构有误,请整理后在试");
}
List<UniColumnInfo> infoList = new ArrayList<>();
//整理连线的关系
StringBuffer sql = new StringBuffer("");
StringBuilder selectSql = new StringBuilder("select ");
@ -118,27 +120,34 @@ public class TopQueryServiceImpl implements TopQueryService {
for (TopNode node : topNodes) {
JSONArray columns = node.getColumns();
for (int i = 0; i < columns.size(); i++) {
JSONObject column = columns.getJSONObject(i);
if (columns.getJSONObject(i).getInteger("isQuery") == 1) {
JSONObject column = columns.getJSONObject(i);
UniCon uniCon = new UniCon(uniQuery.getId(), column.getString("ucName"), node.getRelTable() + "." + column.getString("columnName"), column.getString("ucCon"), column.getString("ucType"), column.getInteger("type"));
uniCons.add(uniCon);
}
if (columns.getJSONObject(i).getInteger("isUse")==1){
// infoList.add(new UniColumnInfo(uniQuery.getId(),node.getRelTable()+"."+column.getString("columnName"),column.getString("columnComment")));
infoList.add(new UniColumnInfo(uniQuery.getId(),column.getString("columnName"),column.getString("columnComment")));
}
}
}
int query = uniQueryDao.updateUniQuery(uniQuery);
if (query > 0) {
if (uniQuery.getUniCons() != null && uniQuery.getUniCons().size() > 0) {
queryDao.deleteUniCon(uniQuery.getId());
queryDao.insertUniCon(uniCons);
}
uniQueryDao.updateUniQuery(uniQuery);
if (uniQuery.getUniCons() != null && uniQuery.getUniCons().size() > 0) {
queryDao.deleteUniCon(uniQuery.getId());
queryDao.insertUniCon(uniCons);
}
if (infoList.size() > 0) {
uniColumnInfoDao.deleteUniColumnInfo(uniQuery.getId());
uniColumnInfoDao.insertUniColumnInfo(infoList);
}
sql.append(selectQuery);
PageHelper.startPage(1, 10, "");
List<Map<String, Object>> dataMap = queryDao.UniQuery(sql.toString());
TopResult topResult = new TopResult(dataMap, uniCons);
TopResult topResult = new TopResult(dataMap, uniCons,infoList);
return Result.ok(topResult);
}

View File

@ -1,6 +1,7 @@
package com.ebts.system.dao;
import com.ebts.system.entity.RealUniQuery;
import com.ebts.system.entity.RelColumnInfo;
import java.util.List;
import java.util.Map;
@ -35,4 +36,5 @@ public interface RealQueryServiceDao {
*/
List<RealUniQuery> queryRealInfo(Long id);
List<RelColumnInfo> queryRealColumnInfo(Long id);
}

View File

@ -9,11 +9,6 @@ package com.ebts.system.entity;
public class RealUniCon {
/**
* id
*/
private Long id;
/**
* 万能查询tableid
*/
@ -75,14 +70,6 @@ public class RealUniCon {
this.type = type;
}
public void setId(Long id) {
this.id = id;
}
public Long getId() {
return id;
}
public void setUqId(Long uqId) {
this.uqId = uqId;
}

View File

@ -41,12 +41,29 @@ public class RealUniQuery extends BaseEntity {
private Integer isRelease;
private List<RealUniCon> realUniCons;
private List<RelColumnInfo> infoList;
private Integer pageNum;
private Integer pageSize;
public List<RealUniCon> getRealUniCons() {
return realUniCons;
}
public void setRealUniCons(List<RealUniCon> realUniCons) {
this.realUniCons = realUniCons;
}
public List<RelColumnInfo> getInfoList() {
return infoList;
}
public void setInfoList(List<RelColumnInfo> infoList) {
this.infoList = infoList;
}
public Integer getIsRelease() {
return isRelease;
}

View File

@ -0,0 +1,32 @@
package com.ebts.system.entity;
public class RelColumnInfo {
private long queryId;
private String prop;
private String label;
public long getQueryId() {
return queryId;
}
public void setQueryId(long queryId) {
this.queryId = queryId;
}
public String getProp() {
return prop;
}
public void setProp(String prop) {
this.prop = prop;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
}

View File

@ -0,0 +1,35 @@
package com.ebts.system.entity.vo;
import com.ebts.system.entity.RealUniQuery;
import com.ebts.system.entity.RelColumnInfo;
import java.util.List;
public class RealInfo {
private List<RealUniQuery> uniCons;
private List<RelColumnInfo> infoList;
public RealInfo() {
}
public RealInfo(List<RealUniQuery> uniCons, List<RelColumnInfo> infoList) {
this.uniCons = uniCons;
this.infoList = infoList;
}
public List<RealUniQuery> getUniCons() {
return uniCons;
}
public void setUniCons(List<RealUniQuery> uniCons) {
this.uniCons = uniCons;
}
public List<RelColumnInfo> getInfoList() {
return infoList;
}
public void setInfoList(List<RelColumnInfo> infoList) {
this.infoList = infoList;
}
}

View File

@ -2,6 +2,8 @@ package com.ebts.system.service;
import com.ebts.common.core.entity.Result;
import com.ebts.system.entity.RealUniQuery;
import com.ebts.system.entity.RelColumnInfo;
import com.ebts.system.entity.vo.RealInfo;
import java.util.List;
import java.util.Map;
@ -28,5 +30,7 @@ public interface RealQueryService {
* @param id
* @return
*/
Result<List<RealUniQuery>> RealInfo(Long id);
Result<RealInfo> RealInfo(Long id);
List<RelColumnInfo> getInfoList(Long id);
}

View File

@ -6,12 +6,16 @@ import com.ebts.common.core.entity.Result;
import com.ebts.system.dao.RealQueryServiceDao;
import com.ebts.system.entity.RealUniCon;
import com.ebts.system.entity.RealUniQuery;
import com.ebts.system.entity.RelColumnInfo;
import com.ebts.system.entity.vo.RealInfo;
import com.ebts.system.service.RealQueryService;
import com.github.pagehelper.PageHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Propagation;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
@ -28,14 +32,21 @@ public class RealQueryServiceImpl implements RealQueryService {
@Autowired
private RealQueryServiceDao realQueryServiceDao;
@Override
public Result<List<RealUniQuery>> RealInfo(Long id) {
List<RealUniQuery> uniCons = realQueryServiceDao.queryRealInfo(id);
return Result.ok(uniCons);
public List<RelColumnInfo> getInfoList(Long id) {
return realQueryServiceDao.queryRealColumnInfo(id);
}
@Override
@Transactional(propagation = Propagation.SUPPORTS)
public Result<RealInfo> RealInfo(Long id) {
List<RealUniQuery> uniCons = realQueryServiceDao.queryRealInfo(id);
List<RelColumnInfo> infoList = realQueryServiceDao.queryRealColumnInfo(id);
return Result.ok(new RealInfo(uniCons,infoList));
}
@Override
@Transactional(propagation = Propagation.SUPPORTS)
public Result<List<Map<String, Object>>> RealData(RealUniQuery realUniQuery, Integer type) {
List<RealUniCon> realUniCons = realUniQuery.getUniCons();
Integer pageNum = null, pageSize = null;

View File

@ -17,7 +17,6 @@
</resultMap>
<resultMap type="com.ebts.system.entity.RealUniCon" id="RealUniConResult">
<result property="id" column="uc_id" />
<result property="uqId" column="uq_id" />
<result property="ucName" column="uc_name" />
<result property="ucKey" column="uc_key" />
@ -32,7 +31,7 @@
select * from gen_uni_con where uq_id = #{id}
</select>
<sql id="selectUniQueryVo">
select id, uq_name, uq_sql, uq_describe, is_release, create_by, create_time, update_by, update_time from gen_uni_query
select uq_name, uq_sql, uq_describe, is_release, create_by, create_time, update_by, update_time from gen_uni_query
</sql>
<select id="selectRealUniQueryById" parameterType="Long" resultMap="RealUniQueryResult">
@ -43,4 +42,7 @@
<select id="realUniQuery" resultType="java.util.Map">
${paramSQL}
</select>
<select id="queryRealColumnInfo" resultType="com.ebts.system.entity.RelColumnInfo">
select label,prop from gen_uni_column_info where query_id = #{id}
</select>
</mapper>