diff --git a/ebts/ebts-admin/src/main/java/com/ebts/web/controller/system/RealQueryController.java b/ebts/ebts-admin/src/main/java/com/ebts/web/controller/system/RealQueryController.java index 51b5542..1e50a1e 100644 --- a/ebts/ebts-admin/src/main/java/com/ebts/web/controller/system/RealQueryController.java +++ b/ebts/ebts-admin/src/main/java/com/ebts/web/controller/system/RealQueryController.java @@ -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> exportReal(@Validated @RequestBody RealUniQuery realUniQuery) { Result>> result = realQueryService.RealData(realUniQuery, 1); + List infoList = realQueryService.getInfoList(realUniQuery.getId()); if (result.isSuccess()) { - return new MapExcelUtil().exportExcel(result.getData(), result.getMsg()); + List> infoMap = infoList.stream().map(info->{ + Map 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> RealInfo(@PathVariable("id") Long id) { + public Result RealInfo(@PathVariable("id") Long id) { if (id == null) { return Result.error("id不能为空!"); } diff --git a/ebts/ebts-common/src/main/java/com/ebts/common/core/controller/BaseController.java b/ebts/ebts-common/src/main/java/com/ebts/common/core/controller/BaseController.java index f6087d6..21bb41b 100644 --- a/ebts/ebts-common/src/main/java/com/ebts/common/core/controller/BaseController.java +++ b/ebts/ebts-common/src/main/java/com/ebts/common/core/controller/BaseController.java @@ -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; } /** diff --git a/ebts/ebts-common/src/main/java/com/ebts/common/core/page/TableDataTop.java b/ebts/ebts-common/src/main/java/com/ebts/common/core/page/TableDataTop.java index 9dfab90..9ae10b0 100644 --- a/ebts/ebts-common/src/main/java/com/ebts/common/core/page/TableDataTop.java +++ b/ebts/ebts-common/src/main/java/com/ebts/common/core/page/TableDataTop.java @@ -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; + } } diff --git a/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java b/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java index 4a4e98d..5b7ae5d 100644 --- a/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java +++ b/ebts/ebts-common/src/main/java/com/ebts/common/utils/MapExcelUtil.java @@ -55,7 +55,8 @@ public class MapExcelUtil { /** * 注解列表 */ - private List herders; + private List> herders; + /** * 对list数据源将其里面的数据导入到excel表单 @@ -69,14 +70,21 @@ public class MapExcelUtil { return exportExcel(); } + public Result exportExcel(List> list, String sheetName,List> infoMap) { + this.herders = infoMap; + this.init(list, sheetName); + return exportExcel(); + } - public void init(List> list, String sheetName) { + + + public void init(List> list, String sheetName) { if (list == null) { list = new ArrayList>(); } 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(); - Map 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 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 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 { } } } - } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/TopQueryController.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/TopQueryController.java index d210424..b738e8d 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/TopQueryController.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/TopQueryController.java @@ -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 preview(@RequestBody Map params) { - if (StringUtils.isNull(params.get("jsonData"))) { + public Serializable preview(@RequestBody Map 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 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()); + } } } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/dto/TopResult.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/dto/TopResult.java index d60d401..1f3e54c 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/dto/TopResult.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/dto/TopResult.java @@ -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> dataMap; private List uniCons; + private List infoList; - public TopResult(List> dataMap, List uniCons) { + public TopResult(List> dataMap, List uniCons,List infoList) { this.dataMap = dataMap; this.uniCons = uniCons; + this.infoList = infoList; } public List> getDataMap() { @@ -36,4 +39,12 @@ public class TopResult { public void setUniCons(List uniCons) { this.uniCons = uniCons; } + + public List getInfoList() { + return infoList; + } + + public void setInfoList(List infoList) { + this.infoList = infoList; + } } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/TopNode.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/TopNode.java index 511862d..c0db580 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/TopNode.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/TopNode.java @@ -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; } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/UniColumnInfo.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/UniColumnInfo.java index cade8c6..a5faab9 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/UniColumnInfo.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/entity/UniColumnInfo.java @@ -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; } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/TopQueryServiceImpl.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/TopQueryServiceImpl.java index 7116f22..6ced88e 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/TopQueryServiceImpl.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/TopQueryServiceImpl.java @@ -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 selectTopSearchTables() { @@ -65,6 +65,8 @@ public class TopQueryServiceImpl implements TopQueryService { if (topNodes.size() == 0) { return Result.error("top图结构有误,请整理后在试"); } + List 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> dataMap = queryDao.UniQuery(sql.toString()); - TopResult topResult = new TopResult(dataMap, uniCons); + TopResult topResult = new TopResult(dataMap, uniCons,infoList); return Result.ok(topResult); } diff --git a/ebts/ebts-system/src/main/java/com/ebts/system/dao/RealQueryServiceDao.java b/ebts/ebts-system/src/main/java/com/ebts/system/dao/RealQueryServiceDao.java index 88a931c..8074857 100644 --- a/ebts/ebts-system/src/main/java/com/ebts/system/dao/RealQueryServiceDao.java +++ b/ebts/ebts-system/src/main/java/com/ebts/system/dao/RealQueryServiceDao.java @@ -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 queryRealInfo(Long id); + List queryRealColumnInfo(Long id); } diff --git a/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniCon.java b/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniCon.java index 42d67e8..df5ad96 100644 --- a/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniCon.java +++ b/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniCon.java @@ -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; } diff --git a/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniQuery.java b/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniQuery.java index 5d66772..6afe397 100644 --- a/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniQuery.java +++ b/ebts/ebts-system/src/main/java/com/ebts/system/entity/RealUniQuery.java @@ -41,12 +41,29 @@ public class RealUniQuery extends BaseEntity { private Integer isRelease; private List realUniCons; + private List infoList; private Integer pageNum; private Integer pageSize; + public List getRealUniCons() { + return realUniCons; + } + + public void setRealUniCons(List realUniCons) { + this.realUniCons = realUniCons; + } + + public List getInfoList() { + return infoList; + } + + public void setInfoList(List infoList) { + this.infoList = infoList; + } + public Integer getIsRelease() { return isRelease; } diff --git a/ebts/ebts-system/src/main/java/com/ebts/system/entity/RelColumnInfo.java b/ebts/ebts-system/src/main/java/com/ebts/system/entity/RelColumnInfo.java new file mode 100644 index 0000000..75d80b3 --- /dev/null +++ b/ebts/ebts-system/src/main/java/com/ebts/system/entity/RelColumnInfo.java @@ -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; + } +} diff --git a/ebts/ebts-system/src/main/java/com/ebts/system/entity/vo/RealInfo.java b/ebts/ebts-system/src/main/java/com/ebts/system/entity/vo/RealInfo.java new file mode 100644 index 0000000..dbf96ba --- /dev/null +++ b/ebts/ebts-system/src/main/java/com/ebts/system/entity/vo/RealInfo.java @@ -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 uniCons; + private List infoList; + + public RealInfo() { + } + + public RealInfo(List uniCons, List infoList) { + this.uniCons = uniCons; + this.infoList = infoList; + } + + public List getUniCons() { + return uniCons; + } + + public void setUniCons(List uniCons) { + this.uniCons = uniCons; + } + + public List getInfoList() { + return infoList; + } + + public void setInfoList(List infoList) { + this.infoList = infoList; + } +} diff --git a/ebts/ebts-system/src/main/java/com/ebts/system/service/RealQueryService.java b/ebts/ebts-system/src/main/java/com/ebts/system/service/RealQueryService.java index aa9fe1b..df14cad 100644 --- a/ebts/ebts-system/src/main/java/com/ebts/system/service/RealQueryService.java +++ b/ebts/ebts-system/src/main/java/com/ebts/system/service/RealQueryService.java @@ -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> RealInfo(Long id); + Result RealInfo(Long id); + + List getInfoList(Long id); } diff --git a/ebts/ebts-system/src/main/java/com/ebts/system/service/impl/RealQueryServiceImpl.java b/ebts/ebts-system/src/main/java/com/ebts/system/service/impl/RealQueryServiceImpl.java index cb9a4e0..1f8c3e6 100644 --- a/ebts/ebts-system/src/main/java/com/ebts/system/service/impl/RealQueryServiceImpl.java +++ b/ebts/ebts-system/src/main/java/com/ebts/system/service/impl/RealQueryServiceImpl.java @@ -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> RealInfo(Long id) { - List uniCons = realQueryServiceDao.queryRealInfo(id); - return Result.ok(uniCons); + public List getInfoList(Long id) { + return realQueryServiceDao.queryRealColumnInfo(id); } @Override + @Transactional(propagation = Propagation.SUPPORTS) + public Result RealInfo(Long id) { + List uniCons = realQueryServiceDao.queryRealInfo(id); + List infoList = realQueryServiceDao.queryRealColumnInfo(id); + return Result.ok(new RealInfo(uniCons,infoList)); + } + + @Override + @Transactional(propagation = Propagation.SUPPORTS) public Result>> RealData(RealUniQuery realUniQuery, Integer type) { List realUniCons = realUniQuery.getUniCons(); Integer pageNum = null, pageSize = null; diff --git a/ebts/ebts-system/src/main/resources/mapper/system/RealQueryServiceMapper.xml b/ebts/ebts-system/src/main/resources/mapper/system/RealQueryServiceMapper.xml index 04188a3..40941e1 100644 --- a/ebts/ebts-system/src/main/resources/mapper/system/RealQueryServiceMapper.xml +++ b/ebts/ebts-system/src/main/resources/mapper/system/RealQueryServiceMapper.xml @@ -17,7 +17,6 @@ - @@ -32,7 +31,7 @@ select * from gen_uni_con where uq_id = #{id} - 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 ${paramSQL} + \ No newline at end of file