diff --git a/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java b/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java index d879203064ae0381b3843f21f31093279dcc408e..29e23065ee7304d4a8c9f1f7d699b7800eaa1410 100644 --- a/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java +++ b/src/main/java/com/pms/ocp/mapper/ModelSubscribeMapper.java @@ -19,5 +19,7 @@ public interface ModelSubscribeMapper extends BaseMapper { List selectOrganData(); - List selectModelAndModelGroup(@Param("searchCondition") String searchCondition); + List selectModelAndModelGroup(); + + List getModelList(@Param("searchCondition") String searchCondition); } diff --git a/src/main/java/com/pms/ocp/model/dto/TenanBaseDto.java b/src/main/java/com/pms/ocp/model/dto/TenanBaseDto.java index 93327b7214e3d8fce077fc9a6c2b4dfd4214d122..fef5c89b6775c0495e12cf446e3700f032cd348a 100644 --- a/src/main/java/com/pms/ocp/model/dto/TenanBaseDto.java +++ b/src/main/java/com/pms/ocp/model/dto/TenanBaseDto.java @@ -4,7 +4,6 @@ package com.pms.ocp.model.dto; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; -import com.pms.ocp.common.constants.StringUtils; import com.pms.ocp.model.entity.OcpTenantGroup; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; diff --git a/src/main/java/com/pms/ocp/model/entity/ModelClassify.java b/src/main/java/com/pms/ocp/model/entity/ModelClassify.java index 3be93a479590d314123bb21b1f2ada827fa69b84..463432aa636924c7e333467f661d18a2cf790464 100644 --- a/src/main/java/com/pms/ocp/model/entity/ModelClassify.java +++ b/src/main/java/com/pms/ocp/model/entity/ModelClassify.java @@ -10,6 +10,7 @@ import lombok.experimental.Accessors; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; +import java.util.List; /** * @Auther: wangjian @@ -83,4 +84,6 @@ public class ModelClassify { @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date groupUpdateTime; + @TableField(exist = false) + private List childrenList; } diff --git a/src/main/java/com/pms/ocp/model/entity/TreeNode.java b/src/main/java/com/pms/ocp/model/entity/TreeNode.java index a4de34f89939b1f64df9e0325ed1008f9dc10241..a0aa1cefc2fd50d3b6ef881580235c4cefd817c4 100644 --- a/src/main/java/com/pms/ocp/model/entity/TreeNode.java +++ b/src/main/java/com/pms/ocp/model/entity/TreeNode.java @@ -34,6 +34,9 @@ public class TreeNode implements Serializable { @ApiModelProperty("公司编码") private String companyCode; + @ApiModelProperty("子类") + private String modelGroupCode; + @ApiModelProperty("子类") private int belongLevel; @@ -52,4 +55,7 @@ public class TreeNode implements Serializable { return companyCode == null ? "":companyCode; } + public String getModelGroupCode() { + return modelGroupCode == null ? "":modelGroupCode; + } } diff --git a/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java b/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java index cecac406f731a986328e7ec3b7a7ce81e429cc44..30433cfb28ea49a1492b910c79863543e0caa880 100644 --- a/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java +++ b/src/main/java/com/pms/ocp/service/impl/ModelSubscribeServiceImpl.java @@ -18,6 +18,7 @@ import javax.annotation.Resource; import java.time.LocalDateTime; import java.util.LinkedList; import java.util.List; +import java.util.function.BiFunction; /** * @Auther: wangjian @@ -99,18 +100,31 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService { @Override public ResponseVO modelListNavigation(String searchCondition) { //查询模型和模型属性表列表 - List modelProperList = modelSubscribeMapper.selectModelAndModelGroup(searchCondition); - if (CollectionUtil.isEmpty(modelProperList)){ + List modelGroupList = modelSubscribeMapper.selectModelAndModelGroup(); + List modelList = modelSubscribeMapper.getModelList(searchCondition); + List groupAndChildrenList = setChildren(modelList,modelGroupList , (org, group) -> + org.getModelGroupCode().equals(group.getModelGroupCode()) + ); + if (CollectionUtil.isEmpty(groupAndChildrenList)){ return ResponseVO.error(CodeEnum.NO_DATA); } - List modelGroupList = TreeUtils.build(modelProperList); + List newModelGroupList = TreeUtils.build(groupAndChildrenList); //查询组织机构表 List organList = modelSubscribeMapper.selectOrganData(); //将分类放入各自所属于的组织机构下 + List groupOrgList = setChildren(newModelGroupList, organList,(org, group) -> + org.getCompanyCode().equals(group.getCompanyCode()) + ); + List result = TreeUtils.build(groupOrgList); + return ResponseVO.ok(result); + } + + private List setChildren(List modelGroupList, List organList, BiFunction function) { organList.forEach(org ->{ modelGroupList.forEach(group->{ - if (org.getCompanyCode().equals(group.getCompanyCode())){ + //org.getCompanyCode().equals(group.getCompanyCode() + if (function.apply(org,group)){ if(org.getChildren() == null){ org.setChildren(new LinkedList<>()); } @@ -118,7 +132,6 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService { } }); }); - List result = TreeUtils.build(organList); - return ResponseVO.ok(result); + return organList; } } diff --git a/src/main/resources/mapper/ModelSubscribeMapper.xml b/src/main/resources/mapper/ModelSubscribeMapper.xml index 8e7c417ce019c24e3a96095342f27a149449b6ac..c852b88366f383e77ab936677a4a8a95b727360e 100644 --- a/src/main/resources/mapper/ModelSubscribeMapper.xml +++ b/src/main/resources/mapper/ModelSubscribeMapper.xml @@ -7,33 +7,37 @@ - + - select - 2 AS groupModelBelongLevel, - 3 AS modelLevel, - omg.model_group_pcode, - omg.group_company_code, - omg.model_group_name, - omg.model_group_code, - omb.model_name, - omb.model_code + omg.model_group_name as name, + 2 as belongLevel, + omg.model_group_pcode as pCode, + omg.model_group_code as code, + omg.model_group_code as modelGroupCode, + omg.group_company_code as companyCode from ocp_model_group as omg - left join - ocp_model_base omb - on omg.model_group_code = omb.model_group_code + + + -