From 98b6da89d5b3201d2f4fea556fafcc9e99790753 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 6 Aug 2024 17:31:18 +0800 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20=E9=80=9A=E7=94=A8=E6=A0=91?= =?UTF-8?q?=E5=BD=A2=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/entity/SysDictItem.java | 7 +++ .../controller/LawsDictTreeController.java | 12 +++-- .../laws/standard/entity/TreePage.java | 4 ++ .../standard/service/DictTreeService.java | 48 +++++++++++++++++-- 4 files changed, 62 insertions(+), 9 deletions(-) diff --git a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java index 45cb2ac5..18c4e4b8 100644 --- a/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java +++ b/laws-module-system/src/main/java/com/jero/modules/system/entity/SysDictItem.java @@ -178,6 +178,13 @@ public class SysDictItem implements TreeNode { @TableField(exist = false) private List childrenList; + /** + * 是否还有子集 + */ + @TableField(exist = false) + @ApiModelProperty(value = "是否还有子集") + private boolean hasChild; + @Override public String obtainTreeNodeId() { return id; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java index c19eca37..d54277b7 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java @@ -33,9 +33,10 @@ public class LawsDictTreeController { @GetMapping("/page") public Result> queryTreeList( @RequestParam(name = "nodeName", required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName, + @RequestParam("dictId") @ApiParam("字典编码") String dictId, @RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面大小") Integer pageSize) { - TreePage list = dictTreeService.queryTreeList(nodeName, pageNo, pageSize); + TreePage list = dictTreeService.queryTreeList(nodeName, dictId, pageNo, pageSize); return Result.OK(list); } @@ -47,11 +48,12 @@ public class LawsDictTreeController { return Result.OK(list); } - @AutoLog(value = "树形结构-零部件树历史数据处理") - @ApiOperation(value = "树形结构-零部件树历史数据处理", notes = "树形结构-零部件树历史数据处理") + @AutoLog(value = "树形结构-获取子集") + @ApiOperation(value = "树形结构-获取子集", notes = "树形结构-获取子集") @GetMapping("/getChild") - public Result> getChild(@RequestParam("dictItemId") String dictItemId) { - return Result.OK(dictTreeService.getChild(dictItemId)); + public Result> getChild(@RequestParam("dictItemId") String dictItemId, + @RequestParam("dictId") @ApiParam("字典编码") String dictId) { + return Result.OK(dictTreeService.getChild(dictItemId, dictId)); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/TreePage.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/TreePage.java index 1c846c31..d389851b 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/TreePage.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/entity/TreePage.java @@ -1,7 +1,9 @@ package com.jero.modules.laws.standard.entity; import com.jero.modules.system.service.TreeNode; +import lombok.AllArgsConstructor; import lombok.Data; +import lombok.NoArgsConstructor; import java.util.*; import java.util.stream.Collectors; @@ -11,6 +13,8 @@ import java.util.stream.Collectors; * @Date: 2024/1/19 15:24 */ @Data +@NoArgsConstructor +@AllArgsConstructor public class TreePage { private List records; diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java index c723d8f2..0666066f 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java @@ -1,5 +1,8 @@ package com.jero.modules.laws.standard.service; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.modules.laws.standard.entity.TreePage; import com.jero.modules.system.entity.SysDictItem; import com.jero.modules.system.service.ISysDictItemService; @@ -8,6 +11,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.List; +import java.util.stream.Collectors; @Service public class DictTreeService { @@ -18,15 +22,51 @@ public class DictTreeService { @Resource private ISysDictItemService dictItemService; - public TreePage queryTreeList(String nodeName, Integer pageNo, Integer pageSize) { - return null; + public TreePage queryTreeList(String nodeName, String dictId, Integer pageNo, Integer pageSize) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDictItem::getDictId, dictId); + queryWrapper.eq(SysDictItem::getParentId, "0"); + if (nodeName != null && !nodeName.isEmpty()) { + queryWrapper.like(SysDictItem::getItemText, nodeName); + } + Page page = new Page<>(pageNo, pageSize); + IPage pageList = dictItemService.page(page, queryWrapper); + + List dictItemIds = pageList.getRecords().stream().map(SysDictItem::getId).collect(Collectors.toList()); + // 判断有没有子级 + queryWrapper.clear(); + queryWrapper.eq(SysDictItem::getDictId, dictId); + queryWrapper.in(SysDictItem::getParentId, dictItemIds); + List childList = dictItemService.list(queryWrapper); + pageList.getRecords().forEach(item -> { + if (childList.stream().anyMatch(child -> child.getParentId().equals(item.getId()))) { + item.setHasChild(true); + } + }); + return new TreePage<>(pageList.getRecords(), pageList.getTotal(), pageList.getSize(), pageList.getCurrent()); } public List queryEcho(String selectNodeCodes) { return null; } - public List getChild(String dictItemId) { - return null; + public List getChild(String dictItemId, String dictId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDictItem::getDictId, dictId); + queryWrapper.eq(SysDictItem::getParentId, dictItemId); + List list = dictItemService.list(queryWrapper); + + List dictItemIds = list.stream().map(SysDictItem::getId).collect(Collectors.toList()); + // 判断有没有子级 + queryWrapper.clear(); + queryWrapper.eq(SysDictItem::getDictId, dictId); + queryWrapper.in(SysDictItem::getParentId, dictItemIds); + List childList = dictItemService.list(queryWrapper); + list.forEach(item -> { + if (childList.stream().anyMatch(child -> child.getParentId().equals(item.getId()))) { + item.setHasChild(true); + } + }); + return list; } } From 5a31561762d8b8649e6980ebf54aab15dada2328 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 6 Aug 2024 17:31:58 +0800 Subject: [PATCH 2/5] =?UTF-8?q?ci:=20=E9=80=9A=E7=94=A8=E6=A0=91=E5=BD=A2?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/standard/controller/LawsDictTreeController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java index d54277b7..c8b610a9 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java @@ -29,7 +29,7 @@ public class LawsDictTreeController { private DictTreeService dictTreeService; @AutoLog(value = "树形结构-获取一级树") - @ApiOperation(value = "树形结构-零部件树", notes = "树形结构-零部件树") + @ApiOperation(value = "树形结构-获取一级树", notes = "树形结构-获取一级树") @GetMapping("/page") public Result> queryTreeList( @RequestParam(name = "nodeName", required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName, From b8186dfb299ba3e7a4572805426db58931f4cdcd Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 6 Aug 2024 17:43:13 +0800 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20=E9=80=9A=E7=94=A8=E6=A0=91?= =?UTF-8?q?=E5=BD=A2=E5=9B=9E=E6=98=BE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/standard/controller/LawsDictTreeController.java | 4 ++-- .../modules/laws/standard/service/DictTreeService.java | 8 ++++++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java index c8b610a9..b654f10e 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java @@ -43,8 +43,8 @@ public class LawsDictTreeController { @AutoLog(value = "树形结构-零部件树选中回显") @ApiOperation(value = "树形结构-零部件树选中回显", notes = "树形结构-零部件树选中回显") @PostMapping("/echo") - public Result> queryEcho(@RequestBody Map selectNodeCodes) { - List list = dictTreeService.queryEcho(selectNodeCodes.get("selectNodeCodes")); + public Result> queryEcho(@RequestBody Map map) { + List list = dictTreeService.queryEcho(map.get("selectNodeCodes"), map.get("dictId")); return Result.OK(list); } diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java index 0666066f..07b80313 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/service/DictTreeService.java @@ -10,6 +10,7 @@ import com.jero.modules.system.service.ISysDictService; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; @@ -46,8 +47,11 @@ public class DictTreeService { return new TreePage<>(pageList.getRecords(), pageList.getTotal(), pageList.getSize(), pageList.getCurrent()); } - public List queryEcho(String selectNodeCodes) { - return null; + public List queryEcho(String selectNodeCodes, String dictId) { + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(SysDictItem::getDictId, dictId); + queryWrapper.in(SysDictItem::getItemValue, Arrays.asList(selectNodeCodes.split(","))); + return dictItemService.list(queryWrapper); } public List getChild(String dictItemId, String dictId) { From 4a32843f1501523013c09e20a13d99880c2e43f0 Mon Sep 17 00:00:00 2001 From: caihaohan Date: Tue, 6 Aug 2024 17:43:46 +0800 Subject: [PATCH 4/5] =?UTF-8?q?ci:=20=E9=80=9A=E7=94=A8=E6=A0=91=E5=BD=A2?= =?UTF-8?q?=E5=9B=9E=E6=98=BE=E6=8E=A5=E5=8F=A3=E6=96=87=E6=A1=A3=E8=B0=83?= =?UTF-8?q?=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/standard/controller/LawsDictTreeController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java index b654f10e..192b5b49 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/standard/controller/LawsDictTreeController.java @@ -40,8 +40,8 @@ public class LawsDictTreeController { return Result.OK(list); } - @AutoLog(value = "树形结构-零部件树选中回显") - @ApiOperation(value = "树形结构-零部件树选中回显", notes = "树形结构-零部件树选中回显") + @AutoLog(value = "树形结构-通用树形选中回显") + @ApiOperation(value = "树形结构-通用树形选中回显", notes = "树形结构-通用树形选中回显") @PostMapping("/echo") public Result> queryEcho(@RequestBody Map map) { List list = dictTreeService.queryEcho(map.get("selectNodeCodes"), map.get("dictId")); From e52b107926ed821cc55a5a7dc032fee126a49190 Mon Sep 17 00:00:00 2001 From: yjz <3131811435@qq.com> Date: Tue, 6 Aug 2024 17:46:41 +0800 Subject: [PATCH 5/5] =?UTF-8?q?fix(=E6=9D=A1=E6=AC=BE):=20=E6=90=9C?= =?UTF-8?q?=E7=B4=A2=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../laws/documenttool/handler/impl/InConditionImpl.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/InConditionImpl.java b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/InConditionImpl.java index db25776a..fa0b9003 100644 --- a/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/InConditionImpl.java +++ b/laws-modules/src/main/java/com/jero/modules/laws/documenttool/handler/impl/InConditionImpl.java @@ -40,11 +40,17 @@ public class InConditionImpl extends AbstractConditionBase { } } for (String s : list) { - in.append("find_in_set('").append(s).append("', ").append(fieldName).append(") > 0"); + in.append(DocumentSplitCommon.INSTR_BEGIN).append(fieldName).append(",").append("'").append(s).append("'").append(")"); if (list.indexOf(s) != list.size() -1){ in.append(DocumentSplitCommon.OR); } } +// for (String s : list) { +// in.append("find_in_set('").append(s).append("', ").append(fieldName).append(") > 0"); +// if (list.indexOf(s) != list.size() -1){ +// in.append(DocumentSplitCommon.OR); +// } +// } in.append("))"); return in.toString(); }