diff --git a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/controller/SuggestionTypeController.java b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/controller/SuggestionTypeController.java index 8c08080..d63bc29 100644 --- a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/controller/SuggestionTypeController.java +++ b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/controller/SuggestionTypeController.java @@ -25,6 +25,7 @@ import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; +import com.elink.esua.epdc.dto.CascadeOptions; import com.elink.esua.epdc.dto.DeptOption; import com.elink.esua.epdc.dto.TypeNode; import com.elink.esua.epdc.dto.suggestion.SuggestionTypeDTO; @@ -113,4 +114,26 @@ public class SuggestionTypeController { return suggestionTypeService.getSuggestionTypeTree(); } + /** + * 获取 建议类别 级联器选项 PC端 + * + * @param + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:02 2021-09-18 + **/ + @GetMapping("getSuggestionTypeOptions") + public Result getSuggestionTypeOptions() { + return suggestionTypeService.getSuggestionTypeOptions(); + } + +} + +class A { + public static void main(String[] args) { + Long a = 1L; + long aa = 1L; + System.out.println(a.equals(aa)); +// System.out.println(a == a); + } } diff --git a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/SuggestionTypeService.java b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/SuggestionTypeService.java index 36af55a..4ce79c8 100644 --- a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/SuggestionTypeService.java +++ b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/SuggestionTypeService.java @@ -20,6 +20,7 @@ package com.elink.esua.epdc.modules.suggestion.service; import com.elink.esua.epdc.commons.mybatis.service.BaseService; import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.CascadeOptions; import com.elink.esua.epdc.dto.DeptOption; import com.elink.esua.epdc.dto.TypeNode; import com.elink.esua.epdc.dto.suggestion.SuggestionTypeDTO; @@ -106,4 +107,13 @@ public interface SuggestionTypeService extends BaseService **/ Result> getSuggestionTypeTree(); + /** + * 获取 建议类别 级联器选项 PC端 + * + * @param + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author zhangyong + * @Date 10:02 2021-09-18 + **/ + Result getSuggestionTypeOptions(); } diff --git a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/impl/SuggestionTypeServiceImpl.java b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/impl/SuggestionTypeServiceImpl.java index c15c744..77302d3 100644 --- a/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/impl/SuggestionTypeServiceImpl.java +++ b/epdc-cloud-custom/src/main/java/com/elink/esua/epdc/modules/suggestion/service/impl/SuggestionTypeServiceImpl.java @@ -30,6 +30,7 @@ import com.elink.esua.epdc.commons.tools.page.PageData; import com.elink.esua.epdc.commons.tools.utils.ConvertUtils; import com.elink.esua.epdc.commons.tools.utils.Result; import com.elink.esua.epdc.commons.tools.utils.TreeUtils; +import com.elink.esua.epdc.dto.CascadeOptions; import com.elink.esua.epdc.dto.DeptOption; import com.elink.esua.epdc.dto.TypeNode; import com.elink.esua.epdc.dto.suggestion.SuggestionTypeDTO; @@ -120,6 +121,74 @@ public class SuggestionTypeServiceImpl extends BaseServiceImpl>().ok(result); } + @Override + public Result getSuggestionTypeOptions() { + List allSuggestionType = baseDao.selectListSuggestionTypeTree(); + + JSONObject node; + JSONArray headNodes = new JSONArray(); + for (TypeNode itemDto : allSuggestionType) { + if (itemDto.getPid().equals(NumConstant.ZERO_L)) { + node = new JSONObject(); + node.put("value", itemDto.getValue()); + node.put("label", itemDto.getLabel()); + headNodes.add(node); + } + } + + // 用于存放所有父级节点 + JSONArray parent; + parent = headNodes; + // 用于存放所有子级节点 + JSONArray allChildren = new JSONArray(); + JSONArray children; + // 用于存放单个子级节点 + JSONObject childNode; + // 存放其余未处理的类别(节点) + List others = this.getOtherDept(allSuggestionType, parent); + while (!others.isEmpty()) { + for (int i = 0; i < parent.size(); i++) { + node = parent.getJSONObject(i); + children = new JSONArray(); + for (TypeNode categoryTreeDto : others) { + if (categoryTreeDto.getPid().equals(node.get("value"))) { + childNode = new JSONObject(); + childNode.put("value", categoryTreeDto.getValue()); + childNode.put("label", categoryTreeDto.getLabel()); + children.add(childNode); + allChildren.add(childNode); + } + } + if (!children.isEmpty()) { + node.put("children", children); + } + } + parent = allChildren; + others = this.getOtherDept(others, parent); + } + CascadeOptions option = new CascadeOptions(); + option.setOptions(headNodes); + + return new Result().ok(option); + } + + public List getOtherDept(List deptList, JSONArray parent) { + List already = Lists.newArrayList(); + for (int i = 0; i < parent.size(); i++) { + already.add((Long) parent.getJSONObject(i).get("value")); + } + + List others = Lists.newArrayList(); + + for (TypeNode categoryTreeDto : deptList) { + Long categoryTreeDtoId = categoryTreeDto.getValue(); + if (!already.contains(categoryTreeDtoId)) { + others.add(categoryTreeDto); + } + } + return others; + } + /** * 获取所有上级部门ID *