Commit d1401310 authored by 胡秀武's avatar 胡秀武

模型列表增加统推自建

parent 50c28b0a
......@@ -40,11 +40,12 @@ public class TreeNode implements Serializable {
@ApiModelProperty("子类")
private int belongLevel;
@ApiModelProperty("统推,自建")
private Integer modelPromotion;
@ApiModelProperty("子类")
private List<TreeNode> children;
public String getCode() {
return code == null ? "":code;
}
......@@ -55,6 +56,10 @@ public class TreeNode implements Serializable {
return companyCode == null ? "":companyCode;
}
public Integer getModelPromotion() {
return modelPromotion == null ? -1 : modelPromotion;
}
public String getModelGroupCode() {
return modelGroupCode == null ? "":modelGroupCode;
}
......
package com.pms.ocp.model.vo;
import lombok.Data;
import java.util.LinkedList;
import java.util.List;
/**
* @author huxiuwu
* @version 1.0
* @date 2022/4/2 15:28
*/
@Data
public class ModelListNavigationVO<T> {
//统推
private List<T> unifiedPush = new LinkedList<>();
//自建
private List<T> selfBuilt = new LinkedList<>();
}
......@@ -53,14 +53,6 @@ public interface ModelSubscribeService {
*/
List<ModelSubscribe> getModelSubscribeList(String objId, String modelCode, String subsCompanyCode);
/**
* 获取模型订阅列表
*
* @param modelId
* @return
*/
ModelSubscribeDTO getModelSubscribe(String modelId);
ResponseVO modelListNavigation(String searchCondition);
}
package com.pms.ocp.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.pms.ocp.common.constants.CodeEnum;
import com.pms.ocp.common.constants.Constant;
import com.pms.ocp.common.utils.TreeUtils;
import com.pms.ocp.mapper.ModelSubscribeMapper;
import com.pms.ocp.model.dto.ModelSubscribeDTO;
import com.pms.ocp.model.entity.ModelSubscribe;
import com.pms.ocp.model.entity.TreeNode;
import com.pms.ocp.model.vo.ModelListNavigationVO;
import com.pms.ocp.model.vo.ResponseVO;
import com.pms.ocp.service.ModelSubscribeService;
import org.apache.commons.lang3.StringUtils;
......@@ -18,7 +18,9 @@ import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.function.BiFunction;
import java.util.stream.Collectors;
/**
* @Auther: wangjian
......@@ -84,12 +86,6 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService {
return modelSubscribeMapper.selectList(queryWrapper);
}
@Override
public ModelSubscribeDTO getModelSubscribe(String modelId) {
return null;
}
/**
* 服务列表导航树
* @author huxiuwu
......@@ -99,26 +95,39 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService {
**/
@Override
public ResponseVO modelListNavigation(String searchCondition) {
ModelListNavigationVO<TreeNode> modelNavigationVO = new ModelListNavigationVO<>();
//查询模型和模型属性表列表
List<TreeNode> modelGroupList = modelSubscribeMapper.selectModelAndModelGroup();
List<TreeNode> modelList = modelSubscribeMapper.getModelList(searchCondition);
List<TreeNode> groupAndChildrenList = setChildren(modelList,modelGroupList , (org, group) ->
org.getModelGroupCode().equals(group.getModelGroupCode())
);
if (CollectionUtil.isEmpty(groupAndChildrenList)){
return ResponseVO.error(CodeEnum.NO_DATA);
}
List<TreeNode> newModelGroupList = TreeUtils.build(groupAndChildrenList);
//统推自建分组
Map<Integer,List<TreeNode>> modelGroupMap = modelList.stream().collect(Collectors.groupingBy(TreeNode::getModelPromotion));
//统推list
List<TreeNode> unifiedPushList = setChildren(HandlingNullPointers(modelGroupMap.get(Constant.Number.ZERO)),modelGroupList ,(org, group) ->
org.getModelGroupCode().equals(group.getModelGroupCode()));
List<TreeNode> newModelGroupList = TreeUtils.build(unifiedPushList);
modelNavigationVO.setUnifiedPush(newModelGroupList);
List<TreeNode> selfModelBuildList = setChildren(HandlingNullPointers(modelGroupMap.get(Constant.Number.ONE)),modelGroupList ,(org, group) ->
org.getModelGroupCode().equals(group.getModelGroupCode()));
//查询组织机构表
List<TreeNode> organList = modelSubscribeMapper.selectOrganData();
//将分类放入各自所属于的组织机构下
List<TreeNode> groupOrgList = setChildren(newModelGroupList, organList,(org, group) ->
List<TreeNode> groupOrgList = setChildren(selfModelBuildList, organList,(org, group) ->
org.getCompanyCode().equals(group.getCompanyCode())
);
List<TreeNode> result = TreeUtils.build(groupOrgList);
return ResponseVO.ok(result);
List<TreeNode> selfBuildList = TreeUtils.build(groupOrgList);
modelNavigationVO.setSelfBuilt(selfBuildList);
return ResponseVO.ok(modelNavigationVO);
}
/**
* 处理空指针问题
* @author huxiuwu
* @date 2022/4/6
* @param list
* @return List<com.pms.ocp.model.entity.TreeNode>
**/
private List<TreeNode> HandlingNullPointers(List<TreeNode> list){
return list == null ? new LinkedList<>() : list;
}
/**
* 合并list设置子类
* @param modelGroupList
......@@ -129,7 +138,7 @@ public class ModelSubscribeServiceImpl implements ModelSubscribeService {
private List<TreeNode> setChildren(List<TreeNode> modelGroupList, List<TreeNode> organList, BiFunction<TreeNode,TreeNode,Boolean> function) {
organList.forEach(org -> {
modelGroupList.forEach(group -> {
if (function.apply(org, group)) {
if (function.apply(org, group) ) {
if (org.getChildren() == null) {
org.setChildren(new LinkedList<>());
}
......
......@@ -18,7 +18,8 @@
3 as belongLevel,
model_name as name ,
model_code as code,
model_group_code as modelGroupCode
model_group_code as modelGroupCode,
model_promotion as modelPromotion
from
ocp_model_base
<if test="searchCondition != null and searchCondition != '' ">
......@@ -34,7 +35,7 @@
org_id AS code,
org_code AS companyCode
from
t_public_organization
ocp_organization
where
trim(org_level) != ''
and
......
......@@ -25,7 +25,7 @@
is_delete,
apply_version,
pre_api_version
from ocp_api_audit
from ocp_api_audit
</select>
<select id="sById" resultType="com.pms.ocp.model.entity.PmsApiAudit">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment