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 1e50a1e..ecec491 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 @@ -2,6 +2,8 @@ package com.ebts.web.controller.system; import com.ebts.common.core.controller.BaseController; import com.ebts.common.core.entity.Result; +import com.ebts.common.core.entity.entity.DictData; +import com.ebts.common.utils.DictUtils; import com.ebts.common.utils.MapExcelUtil; import com.ebts.system.entity.RealUniQuery; import com.ebts.system.entity.RelColumnInfo; @@ -40,13 +42,18 @@ public class RealQueryController extends BaseController { Result>> result = realQueryService.RealData(realUniQuery, 1); List infoList = realQueryService.getInfoList(realUniQuery.getId()); if (result.isSuccess()) { - List> infoMap = infoList.stream().map(info->{ - Map map = new HashMap<>(); - map.put("label",info.getLabel()); - map.put("prop",info.getProp()); + Map> dictList = new HashMap<>(); + List> infoMap = infoList.stream().map(info -> { + Map map = new HashMap<>(); + map.put("label", info.getLabel()); + map.put("prop", info.getProp()); + map.put("dictType", info.getDictType()); + if (info.getDictType() != null) { + dictList.put(info.getDictType(), DictUtils.getDictCache(info.getDictType())); + } return map; }).collect(Collectors.toList()); - return new MapExcelUtil().exportExcel(result.getData(), result.getMsg(),infoMap); + return new MapExcelUtil().exportExcel(result.getData(), result.getMsg(), infoMap, dictList); } else { return Result.error(result.getMsg()); } 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 21bb41b..029ef5e 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 @@ -19,6 +19,7 @@ import org.springframework.web.bind.annotation.InitBinder; import java.beans.PropertyEditorSupport; import java.util.Date; import java.util.List; +import java.util.Map; /** * web层通用数据处理 @@ -71,13 +72,14 @@ public class BaseController { * 响应请求分页数据 */ @SuppressWarnings({"rawtypes", "unchecked"}) - protected TableDataTop getDataTable(List list, List uconList,List infoList) { + protected TableDataTop getDataTable(List list, List uconList, List infoList, Map dictList) { TableDataTop dataTop = new TableDataTop(); dataTop.setCode(HttpStatus.SUCCESS); dataTop.setMsg("查询成功"); dataTop.setRows(list); dataTop.setUconList(uconList); dataTop.setInfoList(infoList); + dataTop.setDictList(dictList); 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 9ae10b0..a14cb4d 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 @@ -2,6 +2,7 @@ package com.ebts.common.core.page; import java.io.Serializable; import java.util.List; +import java.util.Map; /** * 表格分页数据对象 @@ -24,6 +25,8 @@ public class TableDataTop implements Serializable { private List uconList; private List infoList; + private Map dictList; + /** * 消息状态码 @@ -100,4 +103,12 @@ public class TableDataTop implements Serializable { public void setInfoList(List infoList) { this.infoList = infoList; } + + public Map getDictList() { + return dictList; + } + + public void setDictList(Map dictList) { + this.dictList = dictList; + } } 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 5b7ae5d..279bf97 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 @@ -2,6 +2,7 @@ package com.ebts.common.utils; import com.ebts.common.config.EBTSConfig; import com.ebts.common.core.entity.Result; +import com.ebts.common.core.entity.entity.DictData; import com.ebts.common.exception.CustomException; import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.streaming.SXSSFWorkbook; @@ -56,6 +57,7 @@ public class MapExcelUtil { * 注解列表 */ private List> herders; + private Map> dictList; /** @@ -70,8 +72,9 @@ public class MapExcelUtil { return exportExcel(); } - public Result exportExcel(List> list, String sheetName,List> infoMap) { + public Result exportExcel(List> list, String sheetName, List> infoMap, Map> dictList) { this.herders = infoMap; + this.dictList = dictList; this.init(list, sheetName); return exportExcel(); } @@ -180,27 +183,31 @@ public class MapExcelUtil { int k = 0; for (Map herder : herders) { // 填充单元格的值 - this.addCell(row, herder.get("prop"), i, k++); + this.addCell(row, herder, i, k++); } -// for (String key : herders) { -// // 填充单元格的值 -// this.addCell(row, key, i, k++); -// } } } /** * 添加单元格 */ - public Cell addCell(Row row, String key, int column, Integer k) { + public Cell addCell(Row row, Map herder, int column, Integer k) { Cell cell = null; try { + Object value = this.list.get(column).get(herder.get("prop")); + String dictType = herder.get("dictType"); + if (dictType!=null&&!"".equals(dictType)){ + for (DictData dictData : dictList.get(dictType)) { + if (dictData.getDictValue().equals(value.toString())){ + value = dictData.getDictLabel(); + } + } + } // 设置行高 row.setHeight((short) 280); // 创建cell cell = row.createCell(k); cell.setCellStyle(styles.get("data")); - Object value = this.list.get(column).get(key); cell.setCellValue(value.toString()); } catch (Exception e) { logger.error("导出Excel失败{}", e); diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java index 8044bfa..cbcd491 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/controller/QueryController.java @@ -2,6 +2,8 @@ package com.ebts.generator.controller; import com.ebts.common.core.controller.BaseController; import com.ebts.common.core.entity.Result; +import com.ebts.common.core.entity.entity.DictData; +import com.ebts.common.utils.DictUtils; import com.ebts.common.utils.MapExcelUtil; import com.ebts.common.utils.StringUtils; import com.ebts.generator.entity.UniColumnInfo; @@ -18,9 +20,8 @@ import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.io.Serializable; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; +import java.util.stream.Collectors; /** @@ -70,7 +71,7 @@ public class QueryController extends BaseController { @PreAuthorize("@ebts.hasPermi('query:edit')") @PutMapping public Result edit(@Validated @RequestBody UniQuery uniQuery) { - if (uniQuery.getInfoList().size() == 0){ + if (uniQuery.getInfoList().size() == 0) { return Result.error("字段信息为空,请提取字段信息!"); } return queryService.updateQueryInfo(uniQuery); @@ -87,7 +88,28 @@ public class QueryController extends BaseController { public Result> export(@Validated @RequestBody UniQuery uniQuery) { Result>> result = queryService.previewQuery(uniQuery); if (result.isSuccess()) { - return new MapExcelUtil().exportExcel(result.getData(), uniQuery.getUqName()); + List infoList; + Map> dictList = new HashMap<>(); + if (uniQuery.getInfoList().size() != 0) { + infoList = uniQuery.getInfoList(); + } else { + infoList = new ArrayList<>(); + Set keySet = result.getData().get(0).keySet(); + keySet.forEach(s -> { + infoList.add(new UniColumnInfo(uniQuery.getId(), s, s, null)); + }); + } + List> infoMap = infoList.stream().map(info -> { + Map map = new HashMap<>(); + map.put("label", info.getLabel()); + map.put("prop", info.getProp()); + map.put("dictType", info.getDictType()); + if (info.getDictType() != null) { + dictList.put(info.getDictType(), DictUtils.getDictCache(info.getDictType())); + } + return map; + }).collect(Collectors.toList()); + return new MapExcelUtil().exportExcel(result.getData(), uniQuery.getUqName(), infoMap, dictList); } else { return Result.error(result.getMsg()); } @@ -103,7 +125,7 @@ public class QueryController extends BaseController { @PutMapping("preview") public Serializable Preview(@Validated @RequestBody UniQueryBo uniQuery) { UniQuery query = new UniQuery(); - BeanUtils.copyProperties(uniQuery,query); + BeanUtils.copyProperties(uniQuery, query); startPage(uniQuery); Result>> result = queryService.previewQuery(query); if (result.isSuccess()) { 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 6acfb2a..bec648e 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 @@ -92,7 +92,7 @@ public class TopQueryController extends BaseController { 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()); + return getDataTable(data.getDataMap(),data.getUniCons(),data.getInfoList(),data.getDictList()); }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 1f3e54c..32007fd 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.common.core.entity.entity.DictData; import com.ebts.generator.entity.UniColumnInfo; import com.ebts.generator.entity.UniCon; @@ -17,11 +18,14 @@ public class TopResult { private List uniCons; private List infoList; + private Map> dictList; - public TopResult(List> dataMap, List uniCons,List infoList) { + + public TopResult(List> dataMap, List uniCons,List infoList,Map> dictList) { this.dataMap = dataMap; this.uniCons = uniCons; this.infoList = infoList; + this.dictList = dictList; } public List> getDataMap() { @@ -47,4 +51,12 @@ public class TopResult { public void setInfoList(List infoList) { this.infoList = infoList; } + + public Map> getDictList() { + return dictList; + } + + public void setDictList(Map> dictList) { + this.dictList = dictList; + } } diff --git a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java index d221631..f42a74c 100644 --- a/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java +++ b/ebts/ebts-generator/src/main/java/com/ebts/generator/service/impl/QueryServiceImpl.java @@ -84,11 +84,11 @@ public class QueryServiceImpl implements QueryService { @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) public Result updateQueryInfo(UniQuery uniQuery) { uniQueryDao.updateUniQuery(uniQuery); + queryDao.deleteUniCon(uniQuery.getId()); if (uniQuery.getUniCons() != null && uniQuery.getUniCons().size() > 0) { - queryDao.deleteUniCon(uniQuery.getId()); queryDao.insertUniCon(uniQuery.getUniCons()); - resetColumnInfo(uniQuery); } + resetColumnInfo(uniQuery); return Result.ok(); } 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 3b1fcb7..9dacab5 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 @@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.ebts.common.core.entity.Result; +import com.ebts.common.core.entity.entity.DictData; +import com.ebts.common.utils.DictUtils; import com.ebts.common.utils.SecurityUtils; import com.ebts.common.utils.ServerResult; import com.ebts.generator.dao.*; @@ -41,6 +43,8 @@ public class TopQueryServiceImpl implements TopQueryService { private UniQueryDao uniQueryDao; @Resource private UniColumnInfoDao uniColumnInfoDao; +// @Resource +// private Dict @Override public Map selectTopSearchTables() { @@ -147,7 +151,15 @@ public class TopQueryServiceImpl implements TopQueryService { sql.append(selectQuery); PageHelper.startPage(1, 10, ""); List> dataMap = queryDao.UniQuery(sql.toString()); - TopResult topResult = new TopResult(dataMap, uniCons,infoList); + Map> dictList = new HashMap<>(); + infoList.forEach(info ->{ + if (info.getDictType()!=null){ + //todo 后期优化不适用循环 + dictList.put(info.getDictType(),DictUtils.getDictCache(info.getDictType())); + } + }); + + TopResult topResult = new TopResult(dataMap, uniCons,infoList,dictList); return Result.ok(topResult); } 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 index 75d80b3..d5c92b6 100644 --- 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 @@ -6,6 +6,8 @@ public class RelColumnInfo { private String prop; private String label; + private String dictType; + public long getQueryId() { return queryId; } @@ -29,4 +31,12 @@ public class RelColumnInfo { public void setLabel(String label) { this.label = label; } + + public String getDictType() { + return dictType; + } + + public void setDictType(String dictType) { + this.dictType = dictType; + } } 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 index dbf96ba..9c665c8 100644 --- 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 @@ -4,17 +4,20 @@ import com.ebts.system.entity.RealUniQuery; import com.ebts.system.entity.RelColumnInfo; import java.util.List; +import java.util.Map; public class RealInfo { private List uniCons; private List infoList; + private Map dictList; public RealInfo() { } - public RealInfo(List uniCons, List infoList) { + public RealInfo(List uniCons, List infoList,Map dictList) { this.uniCons = uniCons; this.infoList = infoList; + this.dictList = dictList; } public List getUniCons() { @@ -29,7 +32,16 @@ public class RealInfo { return infoList; } + public Map getDictList() { + return dictList; + } + + public void setDictList(Map dictList) { + this.dictList = dictList; + } + public void setInfoList(List infoList) { + this.infoList = infoList; } } 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 1f8c3e6..cf7061a 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 @@ -3,6 +3,8 @@ package com.ebts.system.service.impl; import com.alibaba.fastjson.JSONObject; import com.ebts.common.constant.ReturnConstants; import com.ebts.common.core.entity.Result; +import com.ebts.common.core.entity.entity.DictData; +import com.ebts.common.utils.DictUtils; import com.ebts.system.dao.RealQueryServiceDao; import com.ebts.system.entity.RealUniCon; import com.ebts.system.entity.RealUniQuery; @@ -18,6 +20,7 @@ import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -42,7 +45,13 @@ public class RealQueryServiceImpl implements RealQueryService { public Result RealInfo(Long id) { List uniCons = realQueryServiceDao.queryRealInfo(id); List infoList = realQueryServiceDao.queryRealColumnInfo(id); - return Result.ok(new RealInfo(uniCons,infoList)); + Map> dictList = new HashMap<>(); + infoList.forEach(info->{ + if (info.getDictType()!=null){ + dictList.put(info.getDictType(), DictUtils.getDictCache(info.getDictType())); + } + }); + return Result.ok(new RealInfo(uniCons,infoList,dictList)); } @Override 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 40941e1..c99c41c 100644 --- a/ebts/ebts-system/src/main/resources/mapper/system/RealQueryServiceMapper.xml +++ b/ebts/ebts-system/src/main/resources/mapper/system/RealQueryServiceMapper.xml @@ -43,6 +43,6 @@ ${paramSQL} \ No newline at end of file