fix: 字典字段lombok冲突
This commit is contained in:
@@ -179,12 +179,12 @@ public class SysDictItem implements TreeNode {
|
|||||||
private List<SysDictItem> childrenList;
|
private List<SysDictItem> childrenList;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTreeNodeId() {
|
public String obtainTreeNodeId() {
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTreeNodeParentId() {
|
public String obtainTreeNodeParentId() {
|
||||||
return parentId;
|
return parentId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.jero.modules.system.service;
|
package com.jero.modules.system.service;
|
||||||
|
|
||||||
public interface TreeNode {
|
public interface TreeNode {
|
||||||
String getTreeNodeId(); // 返回节点的唯一标识
|
String obtainTreeNodeId(); // 返回节点的唯一标识
|
||||||
String getTreeNodeParentId(); // 返回父节点的唯一标识
|
String obtainTreeNodeParentId(); // 返回父节点的唯一标识
|
||||||
}
|
}
|
||||||
+84
-2
@@ -2239,7 +2239,7 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
}
|
}
|
||||||
// 如果value不为null和"",则拼接查询条件
|
// 如果value不为null和"",则拼接查询条件
|
||||||
if (StringUtils.isNotBlank(value)) {
|
if (StringUtils.isNotBlank(value)) {
|
||||||
jointSelectCondition(fieldList, selectCondition, key, value, tableName);
|
jointSelectCondition(fieldList, selectCondition, key, value, tableName, parameterMap);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2279,6 +2279,79 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
return selectCondition.toString();
|
return selectCondition.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private String getTreeFatherChild(String tableName, String key, String value, String dicId) {
|
||||||
|
LambdaQueryWrapper<SysDictItem> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(SysDictItem::getDictId, dicId);
|
||||||
|
wrapper.eq(SysDictItem::getItemValue, value);
|
||||||
|
SysDictItem targetNode = sysDictItemService.getOne(wrapper);
|
||||||
|
List<SysDictItem> resultNodeList = new ArrayList<>();
|
||||||
|
// 获取所有数据
|
||||||
|
wrapper.clear();
|
||||||
|
wrapper.eq(SysDictItem::getDictId, dicId);
|
||||||
|
List<SysDictItem> allNodeList = sysDictItemService.list(wrapper);
|
||||||
|
TreePage<SysDictItem> treePage = new TreePage<>();
|
||||||
|
treePage.setRecords(allNodeList);
|
||||||
|
// 获取当前
|
||||||
|
Set<SysDictItem> allChildren = treePage.findAllChildren(allNodeList, targetNode);
|
||||||
|
Set<SysDictItem> pathToRoot = treePage.findPathToRoot(allNodeList, targetNode);
|
||||||
|
resultNodeList.addAll(allChildren);
|
||||||
|
resultNodeList.addAll(pathToRoot);
|
||||||
|
|
||||||
|
if (resultNodeList.isEmpty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> valueList = resultNodeList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList());
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder(" AND (");
|
||||||
|
for (int i = 0; i < valueList.size(); i++) {
|
||||||
|
sql.append("FIND_IN_SET('").append(valueList.get(i))
|
||||||
|
.append("', ").append(tableName).append(".").append(key).append(")");
|
||||||
|
if (i < valueList.size() - 1) {
|
||||||
|
sql.append(" OR ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sql.append(")");
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
private String getTreeChild(String tableName, String key, String value, String dicId) {
|
||||||
|
LambdaQueryWrapper<SysDictItem> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(SysDictItem::getDictId, dicId);
|
||||||
|
wrapper.eq(SysDictItem::getItemValue, value);
|
||||||
|
SysDictItem targetNode = sysDictItemService.getOne(wrapper);
|
||||||
|
// 获取整颗零部件树
|
||||||
|
wrapper.clear();
|
||||||
|
wrapper.eq(SysDictItem::getDictId, dicId);
|
||||||
|
List<SysDictItem> allNodeList = sysDictItemService.list(wrapper);
|
||||||
|
TreePage<SysDictItem> treePage = new TreePage<>();
|
||||||
|
treePage.setRecords(allNodeList);
|
||||||
|
// 获取当前
|
||||||
|
Set<SysDictItem> allChildren = treePage.findAllChildren(allNodeList, targetNode);
|
||||||
|
List<SysDictItem> resultNodeList = new ArrayList<>(allChildren);
|
||||||
|
|
||||||
|
if (resultNodeList.isEmpty()) {
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> valueList = resultNodeList.stream().map(SysDictItem::getItemValue).collect(Collectors.toList());
|
||||||
|
|
||||||
|
StringBuilder sql = new StringBuilder(" AND (");
|
||||||
|
for (int i = 0; i < valueList.size(); i++) {
|
||||||
|
sql.append("FIND_IN_SET('").append(valueList.get(i))
|
||||||
|
.append("', ").append(tableName).append(".").append(key).append(")");
|
||||||
|
if (i < valueList.size() - 1) {
|
||||||
|
sql.append(" OR ");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
sql.append(")");
|
||||||
|
|
||||||
|
return sql.toString();
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private List<String> getLawsPartNameStandard(String partName) {
|
private List<String> getLawsPartNameStandard(String partName) {
|
||||||
PartName targetNode = partNameService.getById(partName);
|
PartName targetNode = partNameService.getById(partName);
|
||||||
@@ -2384,7 +2457,8 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
* @Date: 2023/8/25 10:58
|
* @Date: 2023/8/25 10:58
|
||||||
* @Description: 拼接查询条件
|
* @Description: 拼接查询条件
|
||||||
**/
|
**/
|
||||||
private void jointSelectCondition(List<LawsTag> fieldList, StringBuilder selectCondition, String key, String value, String tableName) {
|
private void jointSelectCondition(List<LawsTag> fieldList, StringBuilder selectCondition, String key, String value,
|
||||||
|
String tableName, Map<String, Object> parameterMap) {
|
||||||
for (LawsTag lawsTag : fieldList) {
|
for (LawsTag lawsTag : fieldList) {
|
||||||
String dbFieldName = lawsTag.getDbFieldName();
|
String dbFieldName = lawsTag.getDbFieldName();
|
||||||
if (Objects.equals(key, "standard_state")) {
|
if (Objects.equals(key, "standard_state")) {
|
||||||
@@ -2414,6 +2488,14 @@ public class LawsCommonServiceImpl implements ILawsCommonService {
|
|||||||
} else if (LawsFieldTypeEnum.DATE_MANY.getValue().equals(fieldShowType)) {
|
} else if (LawsFieldTypeEnum.DATE_MANY.getValue().equals(fieldShowType)) {
|
||||||
// 多日期查询
|
// 多日期查询
|
||||||
processDateManyTypeCondition(selectCondition, key, value);
|
processDateManyTypeCondition(selectCondition, key, value);
|
||||||
|
}else if (FieldShowTypeEnum.TREE_FATHER_CHILD.getValue().equals(fieldShowType)) {
|
||||||
|
String sql = getTreeFatherChild(tableName, key, value, lawsTag.getDictId());
|
||||||
|
selectCondition.append(sql);
|
||||||
|
parameterMap.remove(key);
|
||||||
|
} else if (FieldShowTypeEnum.TREE_CHILD.getValue().equals(fieldShowType)) {
|
||||||
|
String sql = getTreeChild(tableName, key, value, lawsTag.getDictId());
|
||||||
|
selectCondition.append(sql);
|
||||||
|
parameterMap.remove(key);
|
||||||
}
|
}
|
||||||
// 处理其他类型
|
// 处理其他类型
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -347,7 +347,9 @@ public class ImportUtil {
|
|||||||
|
|
||||||
// 树形单选
|
// 树形单选
|
||||||
if ((FieldShowTypeEnum.TREE_STRUCTURE_SINGLE_SELECT.getValue().equals(tag.getFieldShowType()) ||
|
if ((FieldShowTypeEnum.TREE_STRUCTURE_SINGLE_SELECT.getValue().equals(tag.getFieldShowType()) ||
|
||||||
FieldShowTypeEnum.TREE_STRUCTURE_MULTI_SELECT.getValue().equals(tag.getFieldShowType())) &&
|
FieldShowTypeEnum.TREE_STRUCTURE_MULTI_SELECT.getValue().equals(tag.getFieldShowType()) ||
|
||||||
|
FieldShowTypeEnum.TREE_FATHER_CHILD.getValue().equals(tag.getFieldShowType()) ||
|
||||||
|
FieldShowTypeEnum.TREE_CHILD.getValue().equals(tag.getFieldShowType())) &&
|
||||||
(!FieldCommon.STANDARD_SYSTEM.equals(tag.getDbFieldName()))
|
(!FieldCommon.STANDARD_SYSTEM.equals(tag.getDbFieldName()))
|
||||||
) {
|
) {
|
||||||
// 根据tag找到dictCode
|
// 根据tag找到dictCode
|
||||||
|
|||||||
+58
@@ -0,0 +1,58 @@
|
|||||||
|
package com.jero.modules.laws.standard.controller;
|
||||||
|
|
||||||
|
import com.jero.common.api.vo.Result;
|
||||||
|
import com.jero.common.aspect.annotation.AutoLog;
|
||||||
|
import com.jero.modules.laws.standard.entity.TreePage;
|
||||||
|
import com.jero.modules.laws.standard.service.DictTreeService;
|
||||||
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import io.swagger.annotations.ApiParam;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author: Mzaxd
|
||||||
|
* @Date: 2024/1/19 10:42
|
||||||
|
*/
|
||||||
|
@Api(tags = "树形结构")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/laws/dictTree")
|
||||||
|
@Slf4j
|
||||||
|
public class LawsDictTreeController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private DictTreeService dictTreeService;
|
||||||
|
|
||||||
|
@AutoLog(value = "树形结构-获取一级树")
|
||||||
|
@ApiOperation(value = "树形结构-零部件树", notes = "树形结构-零部件树")
|
||||||
|
@GetMapping("/page")
|
||||||
|
public Result<TreePage<SysDictItem>> queryTreeList(
|
||||||
|
@RequestParam(name = "nodeName", required = false, defaultValue = "") @ApiParam("一级节点名称") String nodeName,
|
||||||
|
@RequestParam(name = "pageNo", defaultValue = "1") @ApiParam("页码") Integer pageNo,
|
||||||
|
@RequestParam(name = "pageSize", defaultValue = "10") @ApiParam("页面大小") Integer pageSize) {
|
||||||
|
TreePage<SysDictItem> list = dictTreeService.queryTreeList(nodeName, pageNo, pageSize);
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "树形结构-零部件树选中回显")
|
||||||
|
@ApiOperation(value = "树形结构-零部件树选中回显", notes = "树形结构-零部件树选中回显")
|
||||||
|
@PostMapping("/echo")
|
||||||
|
public Result<List<SysDictItem>> queryEcho(@RequestBody Map<String, String> selectNodeCodes) {
|
||||||
|
List<SysDictItem> list = dictTreeService.queryEcho(selectNodeCodes.get("selectNodeCodes"));
|
||||||
|
return Result.OK(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AutoLog(value = "树形结构-零部件树历史数据处理")
|
||||||
|
@ApiOperation(value = "树形结构-零部件树历史数据处理", notes = "树形结构-零部件树历史数据处理")
|
||||||
|
@GetMapping("/getChild")
|
||||||
|
public Result<List<SysDictItem>> getChild(@RequestParam("dictItemId") String dictItemId) {
|
||||||
|
return Result.OK(dictTreeService.getChild(dictItemId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -115,11 +115,11 @@ public class PartName implements Serializable, TreeNode {
|
|||||||
private String levelPath;
|
private String levelPath;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getTreeNodeId() {
|
public String obtainTreeNodeId() {
|
||||||
return code;
|
return code;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String getTreeNodeParentId() {
|
public String obtainTreeNodeParentId() {
|
||||||
return parentCode;
|
return parentCode;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,9 +24,9 @@ public class TreePage<T extends TreeNode> {
|
|||||||
T current = node;
|
T current = node;
|
||||||
while (current != null) {
|
while (current != null) {
|
||||||
pathNodes.add(current);
|
pathNodes.add(current);
|
||||||
String parentCode = current.getTreeNodeParentId();
|
String parentCode = current.obtainTreeNodeParentId();
|
||||||
current = allNodes.stream()
|
current = allNodes.stream()
|
||||||
.filter(n -> n.getTreeNodeId().equals(parentCode))
|
.filter(n -> n.obtainTreeNodeId().equals(parentCode))
|
||||||
.findFirst().orElse(null);
|
.findFirst().orElse(null);
|
||||||
}
|
}
|
||||||
return pathNodes;
|
return pathNodes;
|
||||||
@@ -36,7 +36,7 @@ public class TreePage<T extends TreeNode> {
|
|||||||
public Set<T> findAllChildren(List<T> allNodes, T node) {
|
public Set<T> findAllChildren(List<T> allNodes, T node) {
|
||||||
Set<T> childrenSet = new HashSet<>();
|
Set<T> childrenSet = new HashSet<>();
|
||||||
List<T> directChildren = allNodes.stream()
|
List<T> directChildren = allNodes.stream()
|
||||||
.filter(n -> n.getTreeNodeParentId().equals(node.getTreeNodeId()))
|
.filter(n -> n.obtainTreeNodeParentId().equals(node.obtainTreeNodeId()))
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
for (T child : directChildren) {
|
for (T child : directChildren) {
|
||||||
|
|||||||
+32
@@ -0,0 +1,32 @@
|
|||||||
|
package com.jero.modules.laws.standard.service;
|
||||||
|
|
||||||
|
import com.jero.modules.laws.standard.entity.TreePage;
|
||||||
|
import com.jero.modules.system.entity.SysDictItem;
|
||||||
|
import com.jero.modules.system.service.ISysDictItemService;
|
||||||
|
import com.jero.modules.system.service.ISysDictService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class DictTreeService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysDictService dictService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ISysDictItemService dictItemService;
|
||||||
|
|
||||||
|
public TreePage<SysDictItem> queryTreeList(String nodeName, Integer pageNo, Integer pageSize) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<SysDictItem> queryEcho(String selectNodeCodes) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<SysDictItem> getChild(String dictItemId) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-2
@@ -131,8 +131,7 @@ public class PartNameServiceImpl extends ServiceImpl<PartNameMapper, PartName>
|
|||||||
public List<PartName> queryEcho(String selectNodeCodes) {
|
public List<PartName> queryEcho(String selectNodeCodes) {
|
||||||
List<String> codeList = StrUtil.split(selectNodeCodes, ',');
|
List<String> codeList = StrUtil.split(selectNodeCodes, ',');
|
||||||
LambdaQueryWrapper<PartName> queryWrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<PartName> queryWrapper = new LambdaQueryWrapper<>();
|
||||||
queryWrapper.eq(PartName::getDelFlag, YesOrNoEnum.NO.getValue())
|
queryWrapper.in(PartName::getCode, codeList);
|
||||||
.in(PartName::getCode, codeList);
|
|
||||||
return partNameMapper.selectList(queryWrapper);
|
return partNameMapper.selectList(queryWrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user